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.
źródło
Odpowiedzi:
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.
źródło
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:
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.
źródło
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ącreateElement
jest 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.źródło
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 ...
źródło
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.
źródło
Gorąco sugeruję libgdx, jest to framework oparty na Javie, przeznaczony głównie do wdrażania na Androidzie i komputerach stacjonarnych, ale ostatnio dodał html5 do swojego arsenału, gorąco polecam. http://code.google.com/p/libgdx/
Niektóre gry przeniesione do HTML5:
Pax Britannia
Matematyka
Vector Pinball (gra przykładowa)
źródło
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.
źródło
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-
źródło