Можно ли разрабатывать многопользовательские игры на HTML5?

9

Я знаю, что HTML5 отлично подходит для веб-игр, но я не знаю, возможно ли разрабатывать онлайн-игры для нескольких пользователей, синхронизировать всех и обрабатывать логины и так далее. Можно ли сделать это?

arrrrgv
источник

Ответы:

7

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

Многие люди написали многопользовательские html5 игры, даже я. Использование самого html5, вероятно, не самая важная его часть. Большинство необходимых вещей (если не все) были также доступны в html 4.01. Исключением является canvas, но canvas медленнее svg, и svg уже был доступен во многих браузерах.

Я думаю, что по-настоящему породило манию "html5 game" - это возможность создавать приложения на стороне сервера в javascript. Это означает, что все программисты на стороне клиента могут внезапно создать всю систему самостоятельно, и они обычно являются творческими людьми, когда дело доходит до таких вещей, как игры. Не говоря уже о том, что JS настолько прост, что даже ваша бабушка может программировать с ним. Может быть.

Обновление после комментария от OP:

Общая архитектура для браузерной игры будет

          Client                                     Server
|-----------------------|                   |---------------------|
View - input/output logic - Communication - Validation - Game World
              |                                              |
   client database (if needed)                    server database (if needed)

Или с точки зрения реальных "языков":

  • Вид клиента: HTML5 (возможно, с angular.js, пока не проверял, насколько быстро он работает с LOTS. Также посмотрите raphael.js на предмет «графики»)
  • Клиентская логика: JavaScript (jquery / steam / plain / что угодно)
  • База данных клиента: WebSQL (я полагаю, это часть HTML5-пакета)
  • Связь: JSON (нотация объектов Javascript, по существу сериализованные объекты javascript) через socket.io (библиотека JS для автоматического определения оптимальных протоколов связи)
  • Язык сервера: также JS (node.js, если у вас TONS одновременных пользователей на нескольких ядрах, доступны и другие решения)
  • Проверка: просто убедитесь, что ваши ВХОДЯЩИЕ данные игры (от клиента) действительны. Исходящие не нужно проверять даже на клиенте. Это считается правильным. Всегда .
  • Game World: коллекция проверенных данных, которая перераспределяется среди всех клиентов по мере их поступления
  • База данных сервера: couchdb, mongodb, любая база данных, которая дает вам необработанные объекты json для работы.

Вот ты где. Полная интернет-игра, написанная только с использованием JavaScript и HTML. Прекрасный.

Тор Валамо
источник
я нахожу очень интересным ваш ответ, не могли бы вы дать мне небольшой совет о том, какие части я должен создавать (наиболее важные) от начала до конца и какие технологии используются в каждой части, извините за это, просто пытаясь понять, как создать что-то надежное , Спасибо!
arrrrgv
1
+1, HTML5 - это ярость, но люди приписывают ему в основном функциональность 4.01 и JavaScript. Могу ли я попросить вас не называть JavaScript простым? У него есть свои преимущества, но если вы хотите писать настоящие программы, вы должны быть настоящим программистом. JavaScript избавляет от рутинных операций по объявлению переменных и управлению памятью, но не упрощает организацию вашего кода и разработку алгоритмов и структур данных, и вам определенно необходимы навыки и опыт программистов для выполнения этих задач.
aaaaaaaaaaaa
@eBusiness, что я имею в виду под легким - это то, что оно настолько сжато с точки зрения программирования, и его случаи использования документированы до смерти. Вы всегда можете найти учебник или функцию, которая делает то, что вы хотите. И это легко настроить (вам не нужно, это уже в браузере).
Тор Валамо
@arrrrgv обновил пост с ответом на ваш вопрос
Tor Valamo
1
+1 за хороший ответ, хотя я сомневаюсь, что рост игр HTML5 имеет какое-либо отношение к серверному JavaScript. Строго говоря, JS даже не является частью HTML5. Я думаю, что новые функции, такие как canvas, webGL, аудио и видео и локальное хранилище, дают толчок играм HTML5. И, конечно же, тот факт, что он новый и раскрученный, так что все прыгают с парашютом.
Bummzack
3

Взгляните на статью по адресу http://smus.com/multiplayer-html5-games-with-node, а также на источник, предоставленный в статье. Обратите внимание, что здесь также используется JavaScript для работы в сети.

FrenchyNZ
источник
2
Пожалуйста, напишите «JavaScript» одним словом, чтобы избежать путаницы.
о0 '.
Однажды Node.js не понадобится, когда широко распространена поддержка кросс-браузерных веб-сокетов.
Инженер
Я не понимаю, почему кросс-браузерная поддержка веб-сокетов изменила бы потребность в серверном компоненте вне любого браузера. Вы всегда должны программировать многопользовательскую игру так, чтобы клиенты подключались к центральному серверу, а не напрямую к клиенту.
Джоккинг 8.11.11
1
Также проверьте NowJS ( nowjs.com )
Тим Холт
веб-сокеты по своей природе небезопасны для любого приложения, что является причиной того, что запланированное внедрение было отменено многими браузерами. Вы не можете разрешить среду, которая получает доступ к «где угодно» и в то же время может принимать данные из «где угодно».
Тор Валамо