Основные знания для создания игр на основе HTML / JavaScript [закрыто]

17

Мне было интересно, смогут ли какие-нибудь эксперты поделиться знаниями и ресурсами о том, что необходимо для создания игр с последними стандартами HTML и JavaScript (или как некоторые называют HTML 5). Существуют ли библиотеки JavaScript, которые необходимы для этого процесса? Помимо <canvas>тега, какие еще фрагменты HTML нам нужно знать?

Edmundito
источник

Ответы:

9

Вы должны знать о тэгах аудио и видео . Веб-хранилище очень важно, если вам нужно сохранить много данных для сохраненных игр и т. Д.

Уже есть несколько игровых фреймворков Javascript html5, Акихабара довольно популярна.

Что касается других библиотек, то Jquery и Functional Javascript - 2 из моих любимых.

jdeseno
источник
Каковы сильные стороны каждой структуры? Какой из них самый простой, самый надежный и с самым чистым кодом? Слово «Функциональный» в термине «Функциональный Javascript» звучит интересно, о чем оно на самом деле? Какие рамки вы бы предложили питонисту?
Что такое веб-хранилище, что БД не может?
expiredninja
@expiredninja база данных на самом деле была бы лучше, но веб-хранилище является локальным для компьютера пользователя. Нет хостинга и быстрее, чем звонки с помощью ajax и т. Д. Этот ответ (немного) устарел с методами, используемыми в современных играх на основе браузера.
jdeseno
6

Уже есть пара фреймворков: GameQuery и Akihabara , который является плагином для jQuery для выполнения некоторых связанных с игрой действий, таких как анимация, группировка спрайтов, обнаружение коллизий и чтение ввода игрока.

chiguire
источник
4

Просто чтобы выбросить больше ресурсов, проверьте RaphaelJS . Это очень хорошая библиотека для рисования и анимации SVG с хорошим API. Не забудьте проверить демо.

В целом, я бы порекомендовал <canvas>теги для прямых манипуляций с DOM (например, чтобы каждый спрайт создавался по-своему, <div>чтобы сделать тестирование на удивление простым). Легко получить неправильную и неэффективную манипуляцию с DOM, в то время как традиционные стратегии разработки 2D хорошо работают на холсте HTML.

drhayes
источник
3

В дополнение к некоторым из существующих инфраструктур для создания игр, вам следует знать о Burst Engine, который является JS-средой для отображения SVG-анимации в HTML5 Canvas:

http://burst.bocoup.com/

До сих пор я видел, как люди упоминают теги и, но есть и другие вещи DOM, которые жизненно важны для разработки игр на JS / HTML, включая такие, как добавление обратных вызовов EventListener к элементу для таких вещей, как события mousemove и mousedown. Например, это берет первый элемент canvas, который он может найти, и настраивает его так, чтобы при нажатии на холст он вызывал функцию, которую вы определили, с именем shootAtClick:

document.getElementsByTagName ("CANVAS") [0] .addEventListener ('mousedown', shootAtClick, false);

Вы можете увидеть это в действии в этом примере, где я расширил механизм Акихабара, чтобы принять базовое управление мышью. (Нажмите Z, чтобы начать, используйте клавиши со стрелками для перемещения, щелкните мышью, чтобы стрелять в направлении курсора.)

DariusK
источник
3

Знание того, какие компоненты HTML5 поддерживаются в каких браузерах.

Хотя кросс-браузерная совместимость становится все лучше и однороднее, со временем некоторые из новых компонентов все еще не поддерживаются полностью одинаково.

Локальное хранилище может иметь некоторые специфичные для браузера различия, и для устаревшей поддержки вам определенно понадобится библиотека, такая как jStorage или YUI Storage Lite .

Веб-сокеты также могут иметь специфические отличия для браузера, но socket.io выглядит как многообещающая библиотека, которая предоставляет удобную абстракцию.

Аудио совместимость является довольно важным компонентом, который требует разных звуковых файлов для разных браузеров: http://html5doctor.com/native-audio-in-the-browser/

В Chrome есть пара значительных ошибок в аудиосистеме, таких как невозможность воспроизведения коротких аудиофайлов и проигрывание множества одновременных звуков, которые могут вызвать сбой всего браузера.

Главное - понять различия между браузерами, используя библиотеки для абстрагирования и поддержки устаревшего ПО по мере необходимости.

Даниэль Х Мур
источник
1

HTML и JavaScript, честно говоря, довольно плохие платформы для разработки игр, но это не будет иметь значения, пока вы не определитесь с какой-то игрой. Ответ будет радикально другим для шутера от первого лица, RTS или игры-головоломки.

Обратите внимание, что вы начинаете получать расплывчатые, неопрятные ответы, отбрасывающие случайные технологии, которые кажутся изящными. Это предупреждающий знак того, что вы не задали вопрос с особенно законным ответом.

С таким же успехом вы можете спросить, какие вещи на C ++ вам нужны для написания приложений. Это зависит. Расскажите нам больше о проекте, и вы можете получить полезный ответ.

В целом, есть причина, по которой почти все веб-игры все еще являются Flash.

Джон Хаугеланд
источник
4
Я бы согласился, что вопрос расплывчатый и ответы повсюду, но не согласен с тем, что «HTML и [JS] ... плохие платформы для разработки игр». Помните каракули Google Pac-Man? Прямой HTML и JS. Я думаю, что на этой платформе довольно хорошо работает определенный тип казуальных игр, и люди, использующие веб, уже имеют время выполнения. (=
Drhayes
1
Вау, пак человек. Groundbreaking. Есть причина, по которой никто не использует HTML / JS в играх ни для чего, кроме технических демонстраций.
Джон Хаугеланд
1
@ Эдмундито: если вы считаете, что этот «вопрос» должен идти, он должен быть помечен как CW.
Джесси Дорси
12
-1 бесполезный ответ. Если вы считаете, что веб-игры не являются хорошей платформой, садитесь. Я не знаю, почему это вызвало столько голосов, может быть, другие люди разделяют ваше мнение, но это никак не способствует ответу на этот вопрос.
Рикет
1
Ребята, бросьте бушевать. Ответ в 2010 году сильно отличался от сегодняшнего в 2014 году. У меня сейчас куча HTML-игр.
Джон Хаугеланд,