Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Мультиплеерная игра (https://javascript.ru/forum/dom-window/18737-multipleernaya-igra.html)

ctpz 13.07.2011 15:47

Мультиплеерная игра
 
Занялся разработкой игр на js/jquery.
Возникла проблема в том, что делаю крестики-нолики, но делать разные уровни сложности и их потом проходить - это не интересно. Гораздо интересней, если есть мультиплеер. Но вот проблема, не знаю как его реализовать. Подскажите пожалуйста. Может есть какая-то библиотека или скрипт уже существующий для этих потребностей?

ksa 13.07.2011 15:52

ctpz, одного js/jquery недостаточно для мультиплеерной игры... Нужен игровой сервер с БД для всех игроков.

ctpz 13.07.2011 15:55

Ну это понятно. Но как реализуется подобное.

ksa 13.07.2011 15:59

Цитата:

Сообщение от ctpz
как реализуется подобное

Ну примерно такой алгоритм...
- Пользователи регистрируются
- Показывают своё желание играть
- Выбирают противников
- Ход игры отслеживает сервер и судья так же он
- В ходе поединка сервер определяет победителя
Вот собственно и всё...

Походу дела еще статистику вести можно... Призы, награды, призовой фонд... :)

ctpz 13.07.2011 16:03

Спасибо. Слышал, что мультиплеер можно организовать на ajax push engine. Практично ли это и не будет ли вызывать лишней нагрузки?

ksa 13.07.2011 16:10

Цитата:

Сообщение от ctpz
Слышал, что мультиплеер можно организовать на ajax push engine.

А я слышал что такое можно сделать на любом серверном языке и любой СУБДшке, с которой тот язык умеет контачить...

Цитата:

Сообщение от ctpz
Практично ли это и не будет ли вызывать лишней нагрузки?

Не знаю не пробовал... :D

ctpz 13.07.2011 17:24

Действительно, стоит на аре делать.

da_ff 13.07.2011 19:05

В таком случае вам потребуется либо высунуть наружу свой компьютер, это можно сделать например с помощью сервиса dyn-dns.org либо арендовать удаленный сервер.
Или же просто использовать push-методики описанные на этом сайте, которые можно без проблем реализовать на любом серверном языке.

ArmagedDance 13.07.2011 21:44

Мультиплеер легко организуется посредствами самого jquery и только его + php и mysql.
Jquery может отслеживать чей идет ход и отправлять аджаксом на сервер данные и обратно игрокам
(очередность хода, значение выбранной клетки и т.д.).
Вполне ясно представляю себе механизм такой игры на jquery.

ctpz 13.07.2011 22:14

а можете его описать?

kobezzza 15.07.2011 03:13

Для крестиков ноликов хватит банального Long Poll.

Т.е. игрок походил - данные отправились на серв, что он походил и как это сделал.

Когда юзер сделал ход, то скрипт асинхронно с таймаутом стучит на серв, не походил ли оппонент, но серв отвечает не сразу, а спит до тех пор пока не произойдёт событие.

Можете почитать про Long Poll на этом сайте в разделе Comet.

Данный алгоритм не единственный, но наиболее простой в реализации (Polling не беру в расчёт ибо бяка ;))

ArmagedDance 17.07.2011 10:29

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

ctpz 17.07.2011 14:46

Спасибо, ArmagedDance, этот алгоритм гораздо проще и реализуемее выглядит.

kobezzza 17.07.2011 15:35

ArmagedDance ну собственно, вы просто сказали логику работы на клиенте, а связь с сервером нет, он же не телепат ;) Для этого можно использовать разные методики, но проще ето Long Poll)


Часовой пояс GMT +3, время: 18:48.