Сеть Java: создание серверов без статических IP-адресов - PullRequest
2 голосов
/ 22 февраля 2012

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

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

В идеале, когда игроки входят в мир другого игрока, все они будут эффективноотключен (за исключением, возможно, от универсального канала чата), так что игрок, в мир которого вошла группа, становится новым сервером для других игроков.Надеемся, что эта установка придаст игре непрерывность MMO, а также сохранит трафик на моем сервере как минимум, так как игроки будут в основном не размещать свои собственные области.

Я считаю, что это оченьСкорее всего, что у среднего плеера не будет статического IP - это проблема?Существуют ли угрозы безопасности при передаче информации о соединении одного клиента другому?Есть ли какие-либо другие проблемы или невозможности, о которых мне следует знать, прежде чем начинать попытки?

1 Ответ

1 голос
/ 22 февраля 2012

Интересная идея, я рассмотрел похожую концепцию для пары игровых проектов.

Я вижу три большие проблемы:

  • Сложность установления P2P-соединений между игроками. Возможно, вам лучше всего принять существующий сетевой инструмент P2P и адаптировать его для своей игры, а не писать что-то с нуля, но в любом случае будут проблемы (динамические IP-адреса, брандмауэры и т. Д.). Вы можете использовать что-то вроде JXTA .
  • Кто бы ни был назначен сервером, он может очень легко «обмануть», и у вас будет ограниченное количество способов остановить это, поскольку вы больше не управляете сервером. В конечном итоге вам придется убедиться, что вы планируете это - вы можете гарантировать, что некоторые игроки попытаются злоупотребить этим, если ваша игра станет достаточно популярной.
  • Механика определения, кто присоединяется к каждому игровому миру - может быть довольно сложной, что происходит, например, при отключении? Как вы гарантируете игрокам знать о каждом мире? Нужно ли им присоединиться одновременно? и т. д.

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

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