Мультиплеерная игра
Занялся разработкой игр на js/jquery.
Возникла проблема в том, что делаю крестики-нолики, но делать разные уровни сложности и их потом проходить - это не интересно. Гораздо интересней, если есть мультиплеер. Но вот проблема, не знаю как его реализовать. Подскажите пожалуйста. Может есть какая-то библиотека или скрипт уже существующий для этих потребностей? |
ctpz, одного js/jquery недостаточно для мультиплеерной игры... Нужен игровой сервер с БД для всех игроков.
|
Ну это понятно. Но как реализуется подобное.
|
Цитата:
- Пользователи регистрируются - Показывают своё желание играть - Выбирают противников - Ход игры отслеживает сервер и судья так же он - В ходе поединка сервер определяет победителя Вот собственно и всё... Походу дела еще статистику вести можно... Призы, награды, призовой фонд... :) |
Спасибо. Слышал, что мультиплеер можно организовать на ajax push engine. Практично ли это и не будет ли вызывать лишней нагрузки?
|
Цитата:
Цитата:
|
Действительно, стоит на аре делать.
|
В таком случае вам потребуется либо высунуть наружу свой компьютер, это можно сделать например с помощью сервиса dyn-dns.org либо арендовать удаленный сервер.
Или же просто использовать push-методики описанные на этом сайте, которые можно без проблем реализовать на любом серверном языке. |
Мультиплеер легко организуется посредствами самого jquery и только его + php и mysql.
Jquery может отслеживать чей идет ход и отправлять аджаксом на сервер данные и обратно игрокам (очередность хода, значение выбранной клетки и т.д.). Вполне ясно представляю себе механизм такой игры на jquery. |
а можете его описать?
|
Для крестиков ноликов хватит банального Long Poll.
Т.е. игрок походил - данные отправились на серв, что он походил и как это сделал. Когда юзер сделал ход, то скрипт асинхронно с таймаутом стучит на серв, не походил ли оппонент, но серв отвечает не сразу, а спит до тех пор пока не произойдёт событие. Можете почитать про Long Poll на этом сайте в разделе Comet. Данный алгоритм не единственный, но наиболее простой в реализации (Polling не беру в расчёт ибо бяка ;)) |
Все проще на самом деле. Сразу после того как игрок сделал ход браузер (скрипт) запрещает игроку делать следующий ход, пока не поступит разрешение от сервера. Запрещение может быть в появлении закрывающего прозрачного блока на экране, не дающего сделать клик или удаление функции рисования крестика(нолика), а разрешение, поступающее после того, как оппонент сделал ход, заключается в исчезновении закрывающего блока или же добавления функции рисования крестика/нолика.
|
Спасибо, ArmagedDance, этот алгоритм гораздо проще и реализуемее выглядит.
|
ArmagedDance ну собственно, вы просто сказали логику работы на клиенте, а связь с сервером нет, он же не телепат ;) Для этого можно использовать разные методики, но проще ето Long Poll)
|
Часовой пояс GMT +3, время: 18:48. |