Niezbędna wiedza do tworzenia gier opartych na HTML / JavaScript [zamknięte]

17

Zastanawiałem się, czy jacyś eksperci nie mogliby dzielić się wiedzą i zasobami na temat tego, co jest konieczne, aby zacząć tworzyć gry z najnowszymi standardami HTML i JavaScript (lub jak niektórzy nazywają HTML 5). Czy istnieją biblioteki JavaScript, które są niezbędne w tym procesie? Oprócz <canvas>tagu, jakie inne elementy HTML powinniśmy wiedzieć?

Edmundito
źródło

Odpowiedzi:

9

Powinieneś być świadomy tagów audio i wideo . Przechowywanie w Internecie jest bardzo ważne, jeśli musisz zapisać dużo danych dla zapisanych gier itp.

Istnieje już kilka frameworków JavaScript html5, Akihabara jest raczej popularna.

Jeśli chodzi o inne biblioteki, Jquery i Functional JavaScript to 2 z moich ulubionych.

jdeseno
źródło
jakie są mocne strony każdego frameworka? Który z nich jest najprostszy, najsolidniejszy i ma najczystszy kod? Słowo „funkcjonalny” w funkcjonalnym języku JavaScript brzmi interesująco, o co tak naprawdę jest? Jakie ramy sugerowałbyś pythonistowi?
co zapewnia Web Storage, którego db nie może?
expiredninja
@expiredninja baza danych byłaby rzeczywiście lepsza, ale pamięć internetowa jest lokalna dla komputera użytkownika. Brak hostingu i szybsze niż wykonywanie wywołań ajax itp. Ta odpowiedź jest (nieznacznie) nieaktualna w stosunku do technik stosowanych w nowoczesnych grach opartych na przeglądarce.
jdeseno
6

Istnieje już kilka frameworków: GameQuery i Akihabara , które są wtyczką dla jQuery do wykonywania niektórych czynności związanych z grą, takich jak animacje, grupowanie duszków, wykrywanie kolizji i odczytywanie danych gracza.

chiguire
źródło
4

Aby rzucić więcej zasobów, sprawdź RaphaelJS . To bardzo ładna biblioteka do rysowania i animacji SVG, która ma ładne API. Nie zapomnij sprawdzić wersji demo.

Ogólnie rzecz biorąc, polecam <canvas>tagi zamiast prostej manipulacji DOM (np. Tworzenie każdego sprite'a, <div>aby testowanie trafień było niezwykle proste). Łatwo jest pomylić i DOM źle manipulować DOM, podczas gdy tradycyjne strategie programowania 2D działają dobrze na kanwie HTML.

drhayes
źródło
3

Oprócz niektórych frameworków do tworzenia gier, które są tam dostępne, powinieneś wiedzieć o Burst Engine, który jest frameworkiem JS do wyświetlania animacji opartych na SVG na kanwie HTML5:

http://burst.bocoup.com/

Do tej pory widziałem, jak ludzie wspominają o tagach i, ale istnieją inne rzeczy DOM, które są niezbędne do rozwoju gier JS / HTML, w tym takie rzeczy, jak dodawanie wywołań zwrotnych EventListener do elementu dla takich rzeczy, jak zdarzenia „ruch myszy” i „mousedown”. Na przykład, bierze pierwszy element canvas, który może znaleźć, i ustawia go tak, aby po kliknięciu na canvas wywoływał zdefiniowaną przez Ciebie funkcję o nazwie „shootAtClick”:

document.getElementsByTagName („CANVAS”) [0] .addEventListener („mousedown”, shootAtClick, false);

Możesz to zobaczyć w akcji w tym przykładzie, w którym rozszerzyłem silnik Akihabara, aby akceptował podstawową kontrolę myszy. (Naciśnij Z, aby rozpocząć, użyj klawiszy strzałek, aby poruszać się, kliknij myszą, aby strzelać w kierunku kursora).

DariusK
źródło
3

Wiedza o tym, jakie komponenty HTML5 są obsługiwane w jakich przeglądarkach.

Chociaż kompatybilność między przeglądarkami staje się coraz lepsza i bardziej jednolita z czasem, niektóre nowsze komponenty wciąż nie są w pełni obsługiwane.

Pamięć lokalna może mieć pewne różnice specyficzne dla przeglądarki, a do obsługi starszych wersji na pewno potrzebujesz biblioteki, takiej jak jStorage lub YUI Storage Lite .

Również gniazda sieciowe mogą różnić się w zależności od przeglądarki, ale socket.io wygląda jak obiecująca biblioteka zapewniająca wygodną abstrakcję.

Kompatybilność audio jest dość ważnym składnikiem, który wymaga różnych plików dźwiękowych dla różnych przeglądarek: http://html5doctor.com/native-audio-in-the-browser/

Chrome ma kilka istotnych błędów dźwiękowych, takich jak niemożność odtwarzania krótkich plików audio , a odtwarzanie wielu jednoczesnych dźwięków może spowodować awarię całej przeglądarki.

Najważniejsze jest zrozumienie różnic między przeglądarkami, używanie bibliotek do tworzenia streszczeń i zapewnianie starszej obsługi w razie potrzeby.

Daniel X Moore
źródło
1

HTML i JavaScript są naprawdę kiepskimi platformami do tworzenia gier, ale nie będzie to miało znaczenia, dopóki nie zdecydujesz się na rodzaj gry. Odpowiedź byłaby zupełnie inna w przypadku strzelanek FPS, RTS lub łamigłówki.

Zauważ, że zaczynasz otrzymywać niejasne, zawiłe odpowiedzi, grzechotające przypadkowe technologie, które wydają się schludne. To znak ostrzegawczy, że nie zadałeś pytania ze szczególnie uzasadnioną odpowiedzią.

Równie dobrze możesz zapytać, jakich rzeczy w C ++ potrzebujesz do pisania aplikacji. To zależy. Powiedz nam więcej o projekcie, a możesz uzyskać przydatną odpowiedź.

Ogólnie rzecz biorąc, istnieje powód, dla którego prawie wszystkie gry internetowe są nadal Flash.

John Haugeland
źródło
4
Zgadzam się, że pytanie jest niejasne i odpowiedzi są wszędzie, ale nie zgadzam się, że „HTML i [JS] są… złymi platformami do tworzenia gier”. Pamiętasz doodle Google Pac-Man? Prosty HTML i JS. Myślę, że pewien rodzaj zwykłej gry działa całkiem dobrze na tej platformie, a ludzie korzystający z sieci mają już środowisko uruchomieniowe. (=
drhayes
1
Wow, Pac-Man. Przełomowe. Jest powód, dla którego nikt nie używa HTML / JS w grach do celów innych niż demonstracje technologii.
John Haugeland,
1
@Edmundito: Jeśli uważasz, że tak powinno wyglądać to „pytanie”, należy je oznaczyć jako CW.
Jesse Dorsey
12
-1 bezwartościowa odpowiedź. Jeśli uważasz, że gry internetowe nie są dobrą platformą, usiądź. Nie wiem, dlaczego zyskało tak wiele pozytywnych opinii, być może inni podzielają twoje opinie, ale to wcale nie przyczynia się do odpowiedzi na to pytanie.
Ricket,
1
Chłopaki, przestańcie szaleć. Odpowiedź była zupełnie inna w 2010 r. Niż dzisiaj w 2014 r. Mam teraz do dyspozycji wiele gier HTML.
John Haugeland,