Чи можливо розробити багатокористувацькі ігри з HTML5?


9

Я знаю, що HTML5 чудово підходить для веб-ігор, але я не знаю, чи можливо розвивати онлайн-ігри з декількома користувачами, зберігаючи всі синхронізовані та обробляючи входи та інше. Чи можна це зробити?

Відповіді:


7

Ви не можете написати це лише одним HTML5. Вам завжди знадобляться сценарії та сервер для управління спілкуванням між користувачами через обмеження безпеки сценаріїв браузера, а також для запобігання обману.

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

Я думаю, що насправді породила манія "гри html5" - це можливість робити додатки на сервері в JavaScript. Це означає, що всі програмісти на стороні клієнта можуть раптом зробити всю систему самостійно, і вони, як правило, творчі люди, коли справа стосується таких речей, як ігри. Не кажучи вже про те, що JS так легко, що навіть ваша бабуся могла програмувати з цим. Можливо.

Оновлення після коментарів від ОП:

Загальна архітектура для браузерної гри була б

          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 / пара / звичайний / що завгодно)
  • Клієнтська база даних: WebSQL (я думаю, частина "набору" HTML5)
  • Зв'язок: JSON (позначення об'єктів Javascript, по суті серіалізовані об'єкти javascript) через socket.io (бібліотека JS для автоматичного виявлення оптимальних протоколів зв'язку)
  • Мова сервера: також JS (node.js, якщо у вас є TONS одночасних користувачів на кількох ядрах, доступні й інші рішення)
  • Перевірка: просто переконайтеся, що ваші дані про ІНТОМИНГУ (від клієнта) є дійсними Вихідні не потрібно перевіряти, навіть на клієнта. Це вважається правильним. Завжди .
  • Ігровий світ: це набір ПЕРЕВІРЕНИХ даних, які перерозподіляються серед всіх клієнтів під час їх надходження
  • Серверна база даних: couchdb, mongodb, будь-яка база даних, яка дає вам сирої json об’єкти для роботи.

Ось ти де. Повна Інтернет-гра, написана лише за допомогою JavaScript та HTML. Прекрасна.


я вважаю дуже цікавою вашу відповідь, чи не могли б ви дати мені невелику пораду щодо того, які деталі я повинен будувати (найважливіші) від кінця до кінця та які технології живлять у кожній частині? . Дякую!
arrrrgv

1
+1, HTML5 - це лють, але те, що люди приписують йому, - це переважно функціональність 4.01 та JavaScript. Чи можу я попросити вас не називати JavaScript легко? У нього є пільги, але якщо ти хочеш писати реальні програми, ти повинен бути справжнім програмістом. JavaScript забирає завдання змінного декларування та управління пам'яттю, але це не полегшує організацію коду та алгоритми та структури даних, і для цих завдань вам точно потрібен розум і досвід програмістів.
aaaaaaaaaaaa

@eBusiness, що я маю на увазі легко, це те, що він настільки стислий з точки зору програмування, а випадки його використання документуються до смерті. Ви завжди можете знайти підручник або функцію, яка виконує те, що ви хочете. І це легко налаштувати (не потрібно, це вже в браузері).
Tor Valamo

@arrrrgv оновив пост з відповіддю на ваше запитання
Tor Valamo

1
+1 за гарну відповідь, хоча я сумніваюся, що зростання ігор HTML5 має щось спільне з JavaScript на сервері. Власне кажучи, JS навіть не є частиною HTML5. Я думаю, що нові функції, такі як полотно, webGL, аудіо та відео та локальне сховище, сприяють іграм HTML5. І звичайно факт у тому, що він новий і розкручений, тому всі стрибають на смузі.
bummzack

3

Погляньте на статтю за адресою http://smus.com/multiplayer-html5-games-with-node, а також на джерело, надане зі статтею. Зауважте, що для цього також використовується JavaScript.


2
Будь ласка, напишіть "JavaScript" одним словом, щоб уникнути плутанини.
o0 '.

Одного разу Node.js не знадобиться - коли підтримка крос-браузера для веб-сокетів широко поширена.
Інженер

Я не розумію, чому підтримка крос-браузера для веб-сокетів змінила б потребу в серверному компоненті поза будь-якого браузера. Ви завжди повинні програмувати багатокористувацьку гру, щоб клієнти підключалися до центрального сервера, а не безпосередньо від клієнта до клієнта.
поштовх

1
Також перевіряйте NowJS ( nowjs.com )
Тім Холт

Веб-розетки за своєю суттю небезпечні для будь-якого додатка, через що стільки браузерів відмовилося від запланованої реалізації. ви не можете дозволити середовище, яке отримує доступ до "будь-де", і в той же час може приймати дані з "будь-де".
Tor Valamo
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.