Додавання мультиплеєра до гри HTML5 [закрито]


15

Мені цікаво зробити гру, в якій зараз маю досвід кооперативу, однак мені цікаво, як найкращий спосіб реалізувати це в HTML5.

Я робив ігри, перш ніж використовувати прямі розетки C, а також з бібліотекою Net для SDL.

Які мої найкращі варіанти зробити це в полотні?

В даний час все, що я можу придумати, - це або рішення AJAX / бази даних (з високою швидкістю оновлення), або якимось чином реалізую PHP-сервер, який би переніс дані через сокети.


Загальний геймплей би представляв собою 2.5D-платформер-ігровий тип гри, тому обом клієнтам потрібно постійно оновлювати позиції гравця, позиції противника, снаряди, дані про навколишнє середовище тощо.


1
Коли веб-сокети ( en.wikipedia.org/wiki/WebSockets ) будуть доопрацьовані (та впроваджені тощо), це, мабуть, було б хорошим способом, до цього часу я думаю, що AJAX (без X, для цього не потрібен XML) був би, мабуть, найкращим способом (все-таки не дуже вдалий спосіб, напевно).
Ельва

Здається, підтримка веб-розеток швидко падає ...
the_e

Ви хочете зробити підставку чи гру? Якщо ви хочете зробити гру; не турбуйтеся йти на html5.

@stefan: чому б не обидва? тільки тому, що він ще не доопрацьований ще не означає, що я не можу працювати з ним!
the_e

Відповіді:


12

Socket.IO пропонує систему, побудовану на декількох інших шарах (включаючи веб-розетки, флеш, методи комети) з витонченим вибором.

Node.js - це один із варіантів запуску на стороні сервера.


5

Дивіться цю відповідь :

Однак ви можете використовувати Flash, коли це доступно, щоб забезпечити ваш сценарій відсипом, поки WebSocket не стане широкодоступним. Веб-socket-js Gimite - це один безкоштовний приклад такого. Однак ви маєте ті ж самі обмеження, що і Flash Sockets, а саме, що ваш сервер повинен мати змогу виплюнути поліс міждоменних запитів на запит до порту сокета, і у вас часто будуть виникати труднощі з проксі-серверами / брандмауерами. (Flash розетки створюються безпосередньо; для тих, хто не має прямого доступу до загального доступу до IP, хто може вийти з мережі лише через HTTP-проксі, вони не працюватимуть.)


3

" Комета " - це, мабуть, парасольовий термін, який ви можете використати тут. WebSockets буде хоч більш бажаним варіантом (коли вони щасливі, що це безпечно).


3

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

Клієнтська та серверна сторони записуються в javascript та ділять класи / логіку між собою. Це починає рахуватися при спробі виправити помилки, оскільки вам не доведеться реалізувати все двічі.

Гра тривала близько 2 місяців, не перезапускаючись, і було проведено тисячі матчів.

Socket.io - це втілення сокетів і використовує node.js, однак він занадто роздутий в цій точці для гри. На github для node.js є й інші реалізації веб-сокетів, а також приклади ігор, що використовують його.


2

Ви завжди можете просто використовувати AJAX та якусь чергу повідомлень. ActiveMQ - хороший приклад. Ви запускаєте ActiveMQ на сервері, тоді ваш JavaScript може надсилати та отримувати повідомлення. Просто змусьте кожного гравця мати унікальне ім’я та надсилати повідомлення іншому гравцеві.




2

Ми працюємо над багатокористувацькою платформою, яка може вам бути цікавою. Ви можете побачити наш проект на веб- сайті www.16cubes.com - ми надаємо простий шар JavaScript, щоб зробити спілкування одноранговим. Це дещо базується на принципі Комети, і ми плануємо перейти до використання веб-розеток, оскільки це стає трохи більш стандартизованим. З іншого боку, ми надаємо деякі функції з полиці .. як автоматичне узгодження супротивника, ігровий чат, запрошення друзів у Facebook одним натисканням кнопки тощо.

У нас демонстраційний тик-так-носок, ви, мабуть, зможете отримати краще уявлення, якщо його побачите. І так, ви також можете грати анонімно. Реєстрація не потрібна, якщо ви не хочете. Існує менше 10 API Javascript, з якими потрібно кодувати , і його можна знайти на веб- сайті www.16cubes.com/documentation

Ми активно шукаємо зворотній зв'язок, тому повідомте нам і про хороше, і про погане


1

Погляньте на цю рамку, яку я створив спеціально для створення багатокористувацьких ігор html5 в реальному часі за допомогою node.js в підході клієнт / сервер. Там, де сервер запускає ігрове моделювання, а гравці надсилають лише входи.

демонстрація: http://vimeo.com/24149718

репо: https://github.com/onedayitwillmake/RealtimeMultiplayerNodeJs

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