Клиент-серверная игра на Java с апплетами - PullRequest
7 голосов
/ 04 октября 2011

Мне нужно реализовать простую тур-клиент-серверную игру на Java.К сожалению, я только начинаю с сетевого программирования и у меня есть некоторые проблемы с выбором подходящего решения.

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

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

Должен ли я создать исполняемый сервер, который будет постоянно работать на сервере и ждать игроков?Это кажется мне странным способом.Или есть какой-нибудь более простой способ сделать это, например, можно ли сделать сервлет и поместить его на сервер Tomcat, чтобы сервер работал только при наличии игроков?Может ли этот сервлет общаться с апплетами (клиентами) и наоборот? *

Буду очень признателен за некоторые советы.

Ответы [ 3 ]

3 голосов
/ 04 октября 2011

можно ли сделать сервлет и поместить его на сервер Tomcat, чтобы сервер работал только при наличии игроков

Экземпляр Tomcat будет работать в любом случае, иначе игроки не смогутt подключиться к нему.

Что вы можете сделать, это предоставить сервер, который запускает новый игровой экземпляр при подключении игроков.Сам сервер должен работать всегда.

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

Так что, если у вас уже есть знания в области коммуникационных технологий, попробуйте и используйте их.Просто помните об ограничениях и принимайте их во внимание (например, форматы сообщений, общение между двумя пользователями и т. Д.).

0 голосов
/ 04 октября 2011

Зависит от того, какую игру вы играете.Апплеты обычно являются хорошим выбором для представления анимации (полностью на Java) и доступны из браузера.Примеры из реального мира будут направлены на Flash для презентации клиента.

Если ваша игра представляет собой игру типа «ход» (шахматы, карты и т. Д.), То вы можете реализовать свою логику в форме сервлетов, веб-служб или ajax с соответствующим использованием хеш-таблиц или баз данных для хранения сеансов в реальном времени.серверная сторона.Если ваша игра более ориентирована на взаимодействие с пользователем (например, на примере типа Need For Speed), то создание собственного сервера имеет больше смысла.

0 голосов
/ 04 октября 2011

Если вы ищете инфраструктуру сетевых приложений на Java, то вы можете прочитать о Apache MINA . В документации утверждается, что она «помогает пользователям легко разрабатывать высокопроизводительные и масштабируемые сетевые приложения». и он поддерживает различные виды транспорта, такие как TCP / IP и UDP / IP через Java NIO. Резюме функций можно увидеть здесь .

Мой личный опыт работы с MINA пока хорош и используется в различных проектах. Одна реализация похожа на ваш случай, это не многопользовательская игра, но включает в себя несколько апплетов, соединяющих сервер. Я нашел MINA очень хорошо справляться с несколькими сессиями. Делать это очень аккуратно. Кроме того, его очень легко масштабировать и поддерживать код. Легко добавлять фильтры и определять протоколы.

Нет. хорошего учебного пособия, доступного для быстрого старта , и начальная настройка очень проста.

Однако, как и у любого нового проекта с открытым исходным кодом, у него тоже есть свои проблемы. А именно: интернет-сообщество невелико, а документация, хотя и быстро улучшается, очень ограничена.

Официальное руководство пользователя охватывает большинство основ и является хорошей отправной точкой, если вы хотите узнать больше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...