Что такое хорошие JS-библиотеки для игры dev? [закрыто]

Если я решил написать простую игру как текстовую, так и графическую (2d), какие библиотеки я бы использовал? (Предположим, мы используем браузер, совместимый с HTML5)

Основные вещи, которые я могу придумать

  • Отображение текста на экране
  • Анимация спрайтов (с использованием изображений /css)
  • Вход (захват клавиш со стрелками и получение относительных положений мыши)
  • Возможно, некоторый ресурс предварительной загрузки или динамическая загрузка ресурсов и выбор порядка
  • Звук (но я не уверен, насколько это будет важно для меня сначала). Возможно, со смешением и цепочкой звуков или циклов навсегда до остановки.
  • Сетевое взаимодействие (низкий приоритет) для подключения пользователя к другому или для непрерывного получения данных без множественного запроса (я знаю, что это существует, но я не знаю, как легко настроить или использовать. Но это не важно для меня На вопрос).
56 голосов | спросил 3 revs, 2 users 80%
user1047
1 Jam1000000amThu, 01 Jan 1970 03:00:00 +030070 1970, 03:00:00

18 ответов


25

jQuery и MooTools - отличные библиотеки JavaScript; Я предпочитаю сам jQuery. Любой из них поможет вам в разработке JS-игр, если вы используете DOM. Если вы идете с рендерингом Canvas, я все же думаю, что вы должны использовать одну из этих библиотек, но вам нужно будет изучить функции Canvas. Вот учебник , в котором вы познакомите вас с холстом, создав клон Breakout, так что это может быть именно то, что вы делаете (и он использует jQuery).

Анимация спрайтов - это вопрос об изменении изображения src или предварительном загрузке нескольких изображений и их замене, или в холсте, только рисовании кадров анимации. Вышеупомянутые библиотеки могут помочь в любом из этих случаев. Библиотеки также помогают с вводом (просмотрите такие события, как onkeypress и onmousemove).

Для предварительной загрузки ресурсов я вижу несколько игр, в которых используется одно изображение «спрайт-листа» ( здесь является для Pacman Google). Я считаю, что они в основном создают DIV одного размера плитки, а свойство background-image CSS установлено на лист спрайта и background-position , установленное на смещение плитки на листе спрайта. Я не видел библиотеку, которая сделает это за вас, но jQuery или MooTools могут помочь вам в динамическом создании DIV и управлении его CSS. В противном случае предварительная загрузка изображений связана с созданием тегов <img> изображений, которые вы хотите предварительно загрузить, и не добавляя их на страницу (или добавляя их невидимо). Вот сообщение в блоге , в котором есть код для функция, использующая jQuery для предварительной загрузки изображений для вас.

SoundManager 2 - это звуковая библиотека JS; Я знаю, Vanthia использует его, а Pacman использовал что-то подобное (или, по крайней мере, тот же метод, используя скрытый файл Flash на странице для воспроизведения звуков).

Для работы в сети jQuery может обрабатывать AJAX для вас, или если вы хотите гораздо больше сетей в режиме реального времени (и сервер должен сделать это), просмотрите сокеты JavaScript . Я не знаю, есть ли там стабильная библиотека, но вы можете заглянуть в это или . По сути, он использует скрытый Java или Flash-файл на странице, чтобы вы могли сделать true связь сокетов с JavaScript, что много быстрее, чем опрос AJAX и немного более эффективен, чем «AJAX Push» . Однако, скорее всего, AJAX Push будет тем, что вы хотите, и APE (Ajax Push Engine) это, вероятно, библиотека для использования.

Кроме того, здесь рассказывается о Tech Tech о «Создание движка для JavaScript на основе JavaScript для Интернета» , Он выглядит аккуратно.

ответил Ricket 4 +04002010-10-04T04:56:56+04:00312010bEurope/MoscowMon, 04 Oct 2010 04:56:56 +0400 2010, 04:56:56
12

Когда я недавно оценил движки JavaScript, мой любимый был Crafty:

http://craftyjs.com/

Были варианты, которые я должен был рассмотреть, и некоторые другие, которые мне нравились:

http://easeljs.com/

http://www.limejs.com/

http://code.google.com/p/casualjs/

(Кстати, другой вариант, выглядящий довольно гладко, - http://impactjs.com/, но учитывая, что это стоит денег, а другие варианты Я смотрел на двигатели с открытым исходным кодом, были некоторые вопиющие упущения, такие как невозможность прикрепить элементы отображения в иерархию.)


ОБНОВЛЕНИЕ: Прошло почти 2 года с тех пор, как я опубликовал этот ответ, и ситуация немного изменилась (это зарождающаяся область технологий.) Хотя Crafty по-прежнему отличный выбор, в прошлом году EaselJS набрал много импульсов (особенно учитывая Adobe, прыгнув на поезде EaselJS .) Я собираюсь переключиться на этот инструмент для будущих проектов (также обратите внимание, что он имеет новый сайт )

ответил Ricket 4 +04002010-10-04T04:56:56+04:00312010bEurope/MoscowMon, 04 Oct 2010 04:56:56 +0400 2010, 04:56:56
7

Эффект игры движок (javascript) является фантастическим для игр 2d, tile /sprite. Веб-сайт не очень хорошо описывает, что в этом хорошего, но как только вы вникнете в отличную документацию, вы увидите, сколько вам было застраховано:

  • спрайтов
  • обнаружение конфликтов
  • редактирование уровня
  • Управление активами
  • <Литий> аудио
  • вход и управление
  • создание и управление наборами таблиц
  • отводки
  • анимация
  • производительность (блокировка для частоты кадров)
  • поддержка кросс-браузера и абстракции
  • хостинг
  • <Литий> вложение
  • Поддержка HUD

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

ответил Ricket 4 +04002010-10-04T04:56:56+04:00312010bEurope/MoscowMon, 04 Oct 2010 04:56:56 +0400 2010, 04:56:56
6

Я поддерживаю двухмерный игровой движок canvas JawsJS - http://jawsjs.com/

Источник @ https://github.com/ippa/jaws

cliffnotes:

  • Считываемый, документированный код
  • 12+ документированные примеры
  • Полезные конструкторы, такие как Sprite (), SpriteSheet () и Animation ()
  • Игровые состояния - Отдельные разделы вашей игры для лучшего организованного кода.
  • Активы - Челюсти будут загружать все ваши активы до начала игры.
  • Не зависит от какой-либо другой библиотеки javascript
  • Основывается на уроках, извлеченных из лет разработки Chingu, Ruby game lib
ответил Ricket 4 +04002010-10-04T04:56:56+04:00312010bEurope/MoscowMon, 04 Oct 2010 04:56:56 +0400 2010, 04:56:56
4

Воздействие будет больным! Просто взгляните на демо-версию, Biolab Disaster .

ответил Ricket 4 +04002010-10-04T04:56:56+04:00312010bEurope/MoscowMon, 04 Oct 2010 04:56:56 +0400 2010, 04:56:56
4

В последнее время я занимаюсь некоторыми исследованиями в этой области, поэтому позвольте мне обмануть мои $ 0,02:

PlayN . Это библиотека кросс-платформенных инструментов от Google, которая компилирует объектно-ориентированная игра от Java до javascript /Flash /Android. Он будет обрабатывать JSON (AJAX), модели данных и имеет здравую семантику для обновлений и рендеринга. Very классный материал.

Обработка Простая в использовании библиотека, предназначенная для дизайнеров и художников. Он исключительно прост в использовании и может дать вам отличные результаты. Я использовал версию Java для научного моделирования, и это приятно использовать. Для 3D-сцен потребуется WebGL, но 2D-сцены работают без.

Three.js Есть несколько замечательных демонстраций. Это требует WebGL, но результат, похоже, стоит того. Некоторые из них выходят из примеров в Интернете.

Вот некоторые из других пунктов в моих личных ссылках, которые относятся к WebGL:

ответил Ricket 4 +04002010-10-04T04:56:56+04:00312010bEurope/MoscowMon, 04 Oct 2010 04:56:56 +0400 2010, 04:56:56
3

Акихабара - это рамка, которую я видел в разных местах. Мой друг также создал серию учебников и документацию для рамки.

ответил Ricket 4 +04002010-10-04T04:56:56+04:00312010bEurope/MoscowMon, 04 Oct 2010 04:56:56 +0400 2010, 04:56:56
3

http://rocketpack.fi/, похоже, что-то пришло.

ответил Ricket 4 +04002010-10-04T04:56:56+04:00312010bEurope/MoscowMon, 04 Oct 2010 04:56:56 +0400 2010, 04:56:56
2

Еще один, с которым я недавно смотрел с большим интересом, - CreateJs . Это коллекция библиотек с открытым исходным кодом для включения ...

Дополнительная информация EaslJs хорошо сочетается с Box2D JS

ответил Ricket 4 +04002010-10-04T04:56:56+04:00312010bEurope/MoscowMon, 04 Oct 2010 04:56:56 +0400 2010, 04:56:56
1

Плагины Pixie

Создатели Contrasaurus выпустили много своих отдельных компонентов !!!

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

Их код отличный , и их библиотеки действительно полезны.

ответил Ricket 4 +04002010-10-04T04:56:56+04:00312010bEurope/MoscowMon, 04 Oct 2010 04:56:56 +0400 2010, 04:56:56
1

Уязвимость JavaScript Game Engine для iOS выглядит многообещающе. Ссылка показывает демонстрацию, но она еще не была выпущена.

ответил Ricket 4 +04002010-10-04T04:56:56+04:00312010bEurope/MoscowMon, 04 Oct 2010 04:56:56 +0400 2010, 04:56:56
1

Странно, что Google Closure Library не упоминается. Он имеет огромный API, позволяет больше объектно-ориентированного стиля кодирования и имеет компилятор.

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

ответил Ricket 4 +04002010-10-04T04:56:56+04:00312010bEurope/MoscowMon, 04 Oct 2010 04:56:56 +0400 2010, 04:56:56
1

Я обычно использую jawsjs , потому что его очень легко настроить и начать разработку игры за считанные минуты. Он имеет множество действительно полезных классов по умолчанию (Tilemap, Viewport, Sprite и др.), Которые действительно помогают в разработке игр.

ответил Ricket 4 +04002010-10-04T04:56:56+04:00312010bEurope/MoscowMon, 04 Oct 2010 04:56:56 +0400 2010, 04:56:56
1

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

2D игровые движки

  • Cocos2D имеет тенденцию быть немного более модным на данный момент. Я видел проблемы Cocos2D, появляющиеся здесь и там в Stackoverflow в последнее время.
  • Воздействие , вы можете увидеть контрольный показатель, который запущен на официальном сайте.

3D-игровые движки

Фонд Mozilla работает над движком 3D-игр под названием Паладин . Это Mozilla, что я не могу навредить, думаю.

ответил Ricket 4 +04002010-10-04T04:56:56+04:00312010bEurope/MoscowMon, 04 Oct 2010 04:56:56 +0400 2010, 04:56:56
0

Существует также игровой движок gameQuery, основанный на jQuery. Имеет приличную документацию по их API, а также несколько API-интерфейсов звуковой оболочки, на которые они ссылаются на своем сайте.

http://gamequery.onaluf.org/

ответил Ricket 4 +04002010-10-04T04:56:56+04:00312010bEurope/MoscowMon, 04 Oct 2010 04:56:56 +0400 2010, 04:56:56
0

Mozilla Gaming имеет список на ресурсах . Он ссылается на Diggy , который является игровым движком DHTML, который я построил некоторое время назад. Живая демо здесь!

ответил Ricket 4 +04002010-10-04T04:56:56+04:00312010bEurope/MoscowMon, 04 Oct 2010 04:56:56 +0400 2010, 04:56:56
0

Matrix.js хорош, если вы хотите получить преобразования в стиле Flash-стиля.

ответил Ricket 4 +04002010-10-04T04:56:56+04:00312010bEurope/MoscowMon, 04 Oct 2010 04:56:56 +0400 2010, 04:56:56
0

Том из Scirra, мы команда из 2 человек, создавших конструктор 2, создателя HTML5 . (Бесплатная версия доступна).

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

ответил Ricket 4 +04002010-10-04T04:56:56+04:00312010bEurope/MoscowMon, 04 Oct 2010 04:56:56 +0400 2010, 04:56:56

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132