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:
вообщем данные передаются - все пашет, но столкнулся с проблемой получения клиентами IPшника хоста - не буду же я всевремя по аське свой ип всем писать :D
Проблему эту я решил всетаки: написал 3 пхп скрипта (1 - добавляет ипшник в файл, 2 - удаляет (REMOTE_ADDRESS) и 3 полностью чистит файл) скрипты захостил и 3ий скрипт (по crontab`у) поставил на выполнение каждые полчаса. А 1 и 2 соотв. запускались из приложения: 1 - при создании хоста, 2 - при закрытии, ну а при выборе в меню "Обновить список" (серверов) - просто скачивается файл, в котором айпишники сервов хранятся.
Все работает, но... во1ых хостинг не очень надежный (зато бесплатный :)), во2ых я думаю если одновременно человек 20 будут создавать хосты и\или обновлять список - будут тормоза...
Хотелось бы узнать как еще (попроще, побыстрей) можно реализовать Игру по сети - без центрального сервера?
З.Ы. гуглил, статьи читал - находил нечто похожее на тот метод, который я использовал, но ничего лучше не нашел... :confused: