Tworzenie gier mobilnych HTML5 a natywne aplikacje do gier [zamknięte]


12

Jaki jest obecny stan silników gier, struktur, bibliotek i konwersji związanych z zestawem technologii HTML5 (w tym bibliotek CSS3 i JavaScript, takich jak RaphaelJS, Impact, gameQuery); i jak wypada to najlepiej w przypadku tworzenia aplikacji natywnej (szczególnie na iOS i Androida)?

Zwłaszcza jeśli chodzi o wydajność, wygląd i „rodzimy klimat”.

Doceniane są również przemyślenia na temat rozwiązań takich jak Appcelerator i Corona SDK. Jeśli chodzi o Unity3D, czy można się w nim rozwijać i nadal grać w przeglądarkę (przynajmniej takie jak aktualne wersje Chrome lub Firefox) bez żadnych zależności lub konieczności instalacji przez użytkownika (bez odtwarzacza internetowego Unity) .

Szukam tego, jak rozwijać się w standardach internetowych, aby osiągnąć maksymalną liczbę platform (w tym poza urządzeniami mobilnymi), zachowując przy tym natywną obsługę urządzeń mobilnych bez konieczności ponownego wdrażania gry na iOS i Androida.


2
Unity nadal wymaga odtwarzacza internetowego. Pracują nad wdrożeniem Flasha 11, ale to nie potrwa długo. Nie grałem w grę HTML5 w przeglądarce mobilnej, która byłaby dobra. A dźwięk HTML5 wciąż jest kupą szczęścia.
michael.bartnett

1
Jeśli chcesz mieć „natywną atmosferę”, potrzebujesz natywnej aplikacji ... w przeciwnym razie zawsze jesteś ograniczony wspólnym mianownikiem platform, które chcesz obsługiwać.
bummzack

Och, jasne, bez dodatkowej pracy byłbym. Ale można było osiągnąć kompromis, o ile nie będę musiał przepisywać wszystkich podstaw gry, dodanie bardziej specjalistycznego kodu dla interfejsów dotykowych byłoby całkowicie dopuszczalne.
Vic Goldfeld,

1
Z mojego doświadczenia
wynika

Odpowiedzi:


7

Biblioteki HTML5 są zaskakująco dobre, szczególnie biorąc pod uwagę ich młody wiek. Istnieją solidne silniki 2D / 3D, które obsługują efekty cząstek, fizykę i tym podobne. Jednak nie ma nic porównywalnego z uznanymi i dojrzałymi silnikami gier, takimi jak Unity lub Unreal Engine.

Z mojego doświadczenia wynika także, że biblioteki HTML5 są oparte na zdarzeniach. Na przykład, duszki będą miały wydarzenia onclick i tak naprawdę nie będzie tradycyjnej pętli gry.

Pod względem wydajności natywne aplikacje są znacznie, znacznie szybsze niż cokolwiek innego, co ma związek z kanwą HTML 5. Taki jest zakres mojego doświadczenia, nie mam pojęcia o Appcelerator lub Corona SDK.

Jeśli jednak Twoim celem jest bardziej „maksymalna liczba platform” niż część „standardy sieciowe”, proponuję rozwiązanie takie jak Unity, które działa na prawie wszystkim, a dzięki wbudowanemu edytorowi jest bardzo wydajnym silnikiem.


6

Tom tutaj ze Scirry, robimy Construct 2 twórcą gier HTML5 .

Niedawno o tym napisaliśmy na blogu, porównując wydajność HTML5 Canvas / WebGl / C ++ DX. Możesz przeczytać o tym tutaj:

http://www.scirra.com/blog/58/html5-2d-gaming-performance-analysis

A oto wykres:

wprowadź opis zdjęcia tutaj

Wiem, że nie jest to wydajność w porównaniu z natywnymi formatami mobilnymi, ale jest to porównanie z natywnymi aplikacjami komputerowymi, które powinny dawać pewne wskazówki dotyczące luki w wydajności.


Uwielbiam wykres. Czy jest jakaś szansa na aktualizację 2016?
Dan Dascalescu,

4

Po pierwsze, zestaw Corona SDK jest cudowny w pracy. Lua to świetny język, Corona to bardzo dokładna struktura, a dokumentacja była jak dotąd świetna.

Moim zdaniem tworzenie gier HTML5 nie jest jeszcze tego warte. Zarówno w przeglądarkach stacjonarnych, jak i mobilnych. Jeśli Twoim celem jest stworzenie niesamowitej gry do uruchamiania na komputerach stacjonarnych i urządzeniach mobilnych, nie przejmuj się. Jeśli Twoim celem jest stworzenie gry HTML5, to zrób to i skorzystaj z jednego ze szkieletów, o których wspominali ludzie (spójrz także na Crafty'ego lub Gee, by uzyskać więcej interfejsu do rysowania).

Głównym powodem jest to, że kiedy tworzę grę, chcę stworzyć kompletną i dopracowaną grę. Częścią tworzenia kompletnej i dopracowanej gry jest dobry dźwięk. Chociaż <audio>znacznik jest obsługiwany w głównych przeglądarkach (zakładając, że udostępniasz wystarczającą liczbę różnych formatów), programowe zarządzanie ścieżką dźwiękową createElementjest dość uciążliwe. SoundManager 2 to zespół pomocy, a nie rozwiązanie. W wielu przypadkach po prostu poprzestanie na używaniu obiektu Flash do komputerów stacjonarnych. W którym momencie pytam, dlaczego nie zrobić cholernej rzeczy we Flashu?

Na iOS, chyba że użyjesz hacka, takiego jak w bibliotece Jukebox firmy Zynga , w rzeczywistości jesteś ograniczony do odtwarzania dźwięków tylko w odpowiedzi na sugestie użytkownika. To jest niedorzeczne.

Ponadto, chyba że pakujesz grę HTML5 jako aplikację, ludzie potrzebują połączenia, aby grać. Najwięcej czasu spędzam na graniu w gry mobilne w metrze - brak sygnału. A jeśli spakujesz grę, czy to nie dziwne, że nie ma dźwięku? Jeśli pobieram grę, oczekuję pewnej szybkości reakcji i dopracowania. Przeczytaj: natywna aplikacja.

Dopóki dalsze rozwijane i mobilne przeglądarki HTML5 nie będą szybsze, a dźwięk HTML5 przestanie ssać, będę się dobrze bawić z Javascriptem i <canvas>tak dalej, ale nie posunę się tak daleko, aby stworzyć z nim dopracowaną grę. Sprowadza się to do twoich celów. Bardzo niewielu wiem, którzy grają w gry i którzy nie są programistami, mają nawet mobilne gry HTML5 na swoim radarze. Ponownie, jeśli chcesz tworzyć niesamowite gry HTML5, twórz gry HTML5. Jeśli chcesz tworzyć i sprzedawać niesamowite gry, priorytetem jest jakość obsługi graczy.


Żądanie aktualizacji w połowie 2012 r. - czy ulepszono tworzenie gier HTML5? Czy nadal występują luki w wydajności i problemy z dźwiękiem?
Błysk

3

Sprawdź http://cocos2d-javascript.org/

Nie jest jeszcze w pełni zaimplementowany. Ale kiedy to zrobisz, może być najlepsze :)

Na tej stronie znajduje się kilka wersji demonstracyjnych, są one całkiem dobre ...

Edycja: właśnie sprawdzone, wersje demo nie są przyjazne dla urządzeń mobilnych ...


3

Jak pokazały inne odpowiedzi, różnica w wydajności jest dość duża. Istnieją jednak nowe sposoby uzyskiwania natywnej wydajności w Internecie (w przeglądarce Chrome).

MonoGame to implementacja środowiska XNA typu open source, zaprojektowana z myślą o pracy na jak największej liczbie platform. W połączeniu z Google Chromes NaCl (klient natywny) wyniki są dość niesamowite (wymaga chrome).

Moja rada to zbudowanie natywnej aplikacji w XNA lub MonoGame i rozważenie NaCl i / lub ExEn, aby przenieść grę na inne platformy. Zdecydowana większość kodu bazowego będzie taka sama na wszystkich platformach, ale mniejszy rozmiar związany z wydaniem gry nie będzie miał prostoty gry HTML5.

Moim zdaniem HTML5 nie jest jeszcze dostępny pod względem użytecznej wydajności, ale istnieją inne opcje, które prawie rywalizują z dostępnością HTML5, choć dodają nieco więcej złożoności (i kosztują w niektórych sytuacjach) do wydania gry.


O mój boże, myślałem, że NaCl jest tylko dla natywnego kodu C ++, ale obsługuje też Mono ?!
David Gouveia,


1

Możesz wypróbować PlayN . W tej chwili nie jest on zbyt dojrzały ani dobrze udokumentowany i wymaga trochę wysiłku, aby go uruchomić, ale pozwala programować w Javie i eksportować grę na wiele różnych platform (obecnie Java, HTML5, Flash, Android i iOS, a w przyszłości Windows Phone 7).

Przewaga nad Coroną, Phonegap itp. Polega na tym, że kompiluje twoją grę na każdą platformę, a nie tylko uruchamia ją za pomocą maszyny wirtualnej; to gwarantuje, że osiągniesz niemal natywną wydajność na każdej platformie.


0

Niesamowita odpowiedź i linki - dzięki!

Robię własne testy porównawcze (HTML5 / JS i PhoneGap) i znajduję tę samą odpowiedź. HTML5 jeszcze nie istnieje. Nie grałem w żadną z bardziej „egzotycznych” odpowiedzi, takich jak app * mobi, która twierdzi, że ma uproszczoną przeglądarkę zoptymalizowaną do grania, ale ogólny plan „Napisz grę w HTML5 i zagraj na telefonie” to nie opłacalne w tym momencie. Może się tam dostać, ale nie jestem pewien. Przeglądarka po prostu nie jest przeznaczona do renderowania, a my przeskakujemy przez wiele obręczy, aby się tam dostać. Myślę, że zamiast tego zobaczymy, jak ktoś wymyśli alternatywę, która uzyska masę krytyczną i która wystartuje. Czas pokaże.

Chciałbym uzyskać wszelkie opinie i konstruktywną krytykę mojej pracy, która jest na GitHub i jest bezpłatna dla wszystkich.

https://github.com/GameMaker/PhoneGap-Performance-Test--PGPT-

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.