Кодирование игрового лобби в ASP.NET - PullRequest
0 голосов
/ 01 июня 2011

У меня есть многопользовательская онлайн-игра, в которой используется плагин для встраивания себя в веб-страницу, и я пытаюсь понять, как создать для нее веб-лобби, не обращаясь к Flash.

Идея состоит в том, что вошедшие в систему игроки выбирают тип игры на странице и автоматически перенаправляются в открытое лобби, которое принимает до x игроков. Лобби - это веб-страница, где пользователь может выбрать свой скин и обновления. Как только игрок x присоединяется, лобби должно начать обратный отсчет, который после успешного завершения перенаправляет всех пользователей на другую страницу, которая загружает встроенную игру и объединяет этих пользователей на одном сервере.

Если пользователь выходит из лобби / страницы до окончания таймера, обратный отсчет должен прекратиться, и лобби должно ждать, пока комната снова не заполнится. Я не уверен, как сделать эту часть, так как кажется, что мне нужен какой-нибудь объект таймера на стороне сервера, который знает, когда игрок уходит. Я смотрю на использование WebSync для связи с каждым пользователем на странице лобби о том, сколько игроков в данный момент находятся в лобби, и я предполагаю, что я также могу использовать это для отправки команды на загрузку пользователей на новую страницу при успешном отсчете таймера. Я также представляю, что могу использовать WebSync или что-то еще, чтобы мой сервер знал, когда кто-то покидает вестибюль, чтобы остановить обратный отсчет.

Как мне создать этот таймер на стороне сервера и как с ним взаимодействовать? Я думаю об использовании Quartz.Net для доступа к планировщику или что-то еще, но я еще не уверен.

Есть идеи?

1 Ответ

1 голос
/ 01 июня 2011

У вас есть возможность использовать WebSockets?Вы сможете (более или менее мгновенно) наблюдать за изменением состояния и обновлять как клиента, так и сервер после событий.

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

(Plug: друг и я написали библиотеку C #,пример рабочего чата, найденный здесь: https://github.com/Olivine-Labs/Alchemy-Websockets)

...