Многопользовательский централизованный сервер с несколькими экземплярами, использующий игровую систему по протоколу TCP в Java - PullRequest
0 голосов
/ 25 марта 2012

Я не новичок в программировании на Java. Я хотел бы знать, как я могу продолжить свой проект.

Я хочу разработать централизованную игровую систему на Java, используя систему сокетов протокола TCP / IP. Он должен получить информацию об игроке и отобразить информацию в игровом окне.

Вот мои критерии:

Максимальное и минимальное количество игроков могут участвовать ?? Поведение сервера перед заданным состоянием игрового поля: следует ли пригласить одного или нескольких игроков предложить свои удары, оповестить о ударе противника или игрок может объявить партию оконченной? Как обновить игру, если игрок предоставил выстрел ???

Я не ищу прямой ответ здесь. Я ищу некоторые рекомендации, которые были бы полезны для меня, чтобы начать с проекта. Существуют ли какие-либо инструменты для многопользовательского централизованного сервера с несколькими экземплярами, использующего протокол TCP ???

Ответы [ 2 ]

1 голос
/ 25 марта 2012

Я думаю, что минимальное количество игроков равно 0;

Максимум, вероятно, зависит от;- ваша пропускная способность, вы должны иметь значительную скорость загрузки для вы хотите тысячи пользователей.- сколько работы есть в управлении каждым пользователем.Вы можете подключиться к 10000 пользователей на одном сервере, если они мало что делают, но по мере добавления функциональности количество пользователей на сервер упадет до 1000, возможно, только до 100.

Выбор инфраструктуры ввода-вывода делаетбольшая разница, когда у вас неограниченная пропускная способность и тривиальная работа на соединение (обычно копирование byte[] нулей). Для реальных приложений это менее вероятно.Я предлагаю любое решение, которое вы выберете, чтобы его было легко заменить, если вы найдете лучшее решение позже.

Существуют ли какие-либо инструменты для мультиклиентного централизованного сервера с несколькими экземплярами, использующего протокол TCP ???

Распространенным инструментом является JMS, но игры - это одна из областей, в которой вы можете его не использовать.Я бы начал с ActiveMQ, так как это поможет вам быстро приступить к работе, просто убедитесь, что вы можете легко заменить его позже.

1 голос
/ 25 марта 2012

Первый сетевой уровень

Существует несколько сетевых библиотек для java, mina, netty ..

С помощью этих сетевых библиотек вы можете легко решить сетевые проблемы .

и уровень логики

Вы должны сохранить все объекты user_context в памяти вашего сервера и привязать каждый из них к соответствующему tcp-соединению.В большинстве случаев объекты user_context сохраняются как хэш-карта / словарь дерева RB.

Таким образом, когда происходят некоторые события, вы можете найти соответствующего пользователя / клиента и отправить ему сообщение.

...