Java клиент / сервер пошаговая помощь - PullRequest
1 голос
/ 13 апреля 2011

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

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

Апплеты не могут общаться друг с другом, поэтому связь должна осуществляться через сервер / потоки (я полагаю).1006 * Я не новичок в Java, но никогда раньше не работал в сети.Кто-нибудь может мне помочь?

Ответы [ 2 ]

3 голосов
/ 13 апреля 2011

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

Вы должны поместить большую часть логики игрового движка в серверный компонент. Клиенты должны быть максимально тонкими, ориентируясь в первую очередь на

  1. Связь с игровым движком
  2. Принятие пользовательских данных
  3. Интерпретация ответов игрового движка
  4. Рисование экранов

Ваш сервер / игровой движок должен быть относительно не сохраняющим состояния, но вести список текущих игровых сессий в игре. Веб-службы SOAP с отслеживанием состояния или даже сервлеты HTTP были бы хорошим выбором, поскольку они поддерживают сессию для вас, размещая и читая сессионные cookie-файлы в запросе.

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

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

  1. Игрок 1 отправляет запрос на окончание хода со всей информацией об изменении состояния игры.
  2. Движок игры интерпретирует запрос, вносит необходимые изменения в состояние игры.
  3. Игрок 2 посылает частые запросы, чтобы проверить и посмотреть, не настал ли еще ход игрока 2 *. 1026 *
  4. Игровой движок подтверждает запрос Игрока 2 на его ход и отправляет новое игровое состояние в ответ.
  5. Игрок 2 получает ответ, обновляет свою копию состояния игры, отмечая изменения с момента его последнего хода.
  6. Сполосните и повторите.
0 голосов
/ 13 апреля 2011

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

  1. Клиент A отправляет (записывает) сообщение на сервер с атрибутом, обозначающим клиента B в качестве пункта назначения
  2. Сервер получает (читает)сообщение и пересылает (пишет) сообщение клиенту B
  3. клиент B получает (читает) сообщение.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...