PDA

Просмотр полной версии : Наилучшая реализация игры по сети


Markus_13
02.12.2009, 03:36
Вообщем пишу игру (2D аркада на OpenGL) - решил добавить "мультиплеер" - обмен данныи реализовал на сокетах (TClient Socket; TServerSocket) - схема простая: кто-то один становится хостом - остальные к нему подключаются...
вообщем данные передаются - все пашет, но столкнулся с проблемой получения клиентами IPшника хоста - не буду же я всевремя по аське свой ип всем писать :D
Проблему эту я решил всетаки: написал 3 пхп скрипта (1 - добавляет ипшник в файл, 2 - удаляет (REMOTE_ADDRESS) и 3 полностью чистит файл) скрипты захостил и 3ий скрипт (по crontab`у) поставил на выполнение каждые полчаса. А 1 и 2 соотв. запускались из приложения: 1 - при создании хоста, 2 - при закрытии, ну а при выборе в меню "Обновить список" (серверов) - просто скачивается файл, в котором айпишники сервов хранятся.
Все работает, но... во1ых хостинг не очень надежный (зато бесплатный :)), во2ых я думаю если одновременно человек 20 будут создавать хосты и\или обновлять список - будут тормоза...

Хотелось бы узнать как еще (попроще, побыстрей) можно реализовать Игру по сети - без центрального сервера?

З.Ы. гуглил, статьи читал - находил нечто похожее на тот метод, который я использовал, но ничего лучше не нашел... :confused:

t04
02.12.2009, 04:37
все подробно описанно в первых 4 статьях. udp тебе в руки. для сети сначала посылаешь широковещательный пакет на который должны ответить другие игроки и сервер, в ответ получаешь ip адрес и кем является откликнувшийся: игроком или сервером. можно сделать чтобы отвечал только сервер.


Полное руководство по сетевому программированию для разработчиков игр. Часть 1 (скучная).
http://www.gamedev.ru/code/articles/?id=4262
Полное руководство по сетевому программированию для разработчиков игр. Часть 2.
http://www.gamedev.ru/code/articles/?id=4261
Полное руководство по сетевому программированию для разработчиков игр. Часть 3. UDP
http://www.gamedev.ru/code/articles/?id=4260
Полное руководство по сетевому программированию для разработчиков игр. Часть 4. TCP
http://www.gamedev.ru/code/articles/?id=4259


WinSock2 для игр.
http://www.gamedev.ru/code/articles/?id=4256
Сетевой код.
http://www.gamedev.ru/code/articles/?id=4254
Устранение эффекта запаздывания с помощью кубических сплайнов.
http://www.gamedev.ru/code/articles/?id=4257
On-line игры: взаимодействие с сервером (на примере игры MOBL от компании K-D LAB).
http://www.gamedev.ru/code/articles/?id=4255