
Опишу что у нас получилось, и что нужно чтобы поиграть.
- Подключиться к нашему серверу получается как из нашей сети так и из интернет. Пообщатся в общем чате.. А вот дальше - сложнее
- Клент, который создает игру - будет ее хостить. Т.е. каждый из учасников игры должен иметь возможность подключиться к этому хостеру.
-- Если все игроки внутри нашей сети, то они без проблем подключаются друг к другу по нашим внутренним ИП адресам (ну естественно при правильной настройке фаервола). При этом игрок, который будет "снаружи" никак не сможет подключиться к хостеру по нашему внутресетевому адресу..

-- Теперь предположим что игру создает по прежнему человек из нашей сети, но у него есть внешний реальный адрес. Потенциально пользователь снаружи может подключиться к хостеру по этому адресу.. но он незнает его.. так как серверу известен лишь внутрисетевой адрес с которого собственно клиент и подключался.
Для решения этой проблемы предусмотрен механизм трансляции внутрисетевых адресов. Т.е. я в настройках сервера прописываю примерно следующее: для клиентов не из нашей сети в случае если хостит игру клиент с ИП адресом 10.8.х.х передать адрес 80.92.х.х, где 10.8.х.х и 80.92.х.х соответственно внутренний и внешний адрес одного из наших клиентов.
Вобщем если игру создает пользователь нашей сети у которого есть реальный адрес и я прописал в настройках сервера трансляцию его адреса для интернет пользователей то к игре, созданной этим человеком могут подключаться и внутренние игроки и любые(как с реальными так и без адресами) внешние.
-- Если игру создает интернет пользователь, и у него есть выделенный реальный адрес.. то к этой игре также смогут подключаться игроки как внутренние так и внешние.
-- Игроки из интернет, без реального адреса.. могут даже не пытаться создавать игру.. к ней никто не сможет подключиться.
Резюмирую следующее:
1. Присылайте свои данные - внутренний адрес и реальный адрес для того чтобы иметь возможность создавать игры к которым смогут подключаться любые игроки
2. Внешние игроки в реальными адресами могут хостить игры к которым могут подключаться все.