Наилучшая реализация игры по сети

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Markus_13, 2 Dec 2009.

  1. Markus_13

    Markus_13 Member

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

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

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

    t04 Elder - Старейшина

    Joined:
    10 Jan 2007
    Messages:
    137
    Likes Received:
    40
    Reputations:
    8
    все подробно описанно в первых 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
     
    #2 t04, 2 Dec 2009
    Last edited: 2 Dec 2009
    1 person likes this.
Loading...