![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
![]()
Сообщение
#1
|
|
Immortal Сообщений: 2 413 Спасибо сказали: 4619 раз ![]() |
Давным давно востребованная вещь: лобби сервер для онлайн игры в героев.
Чтобы можно было коннектиться без всяких хамачей и прочего. Чтобы можно было легко искать оппонента. Общие рейтинг, чат, и прочие вещи, которые являются обыденностью для современных многопользовательских игр. И я очень хочу этим заняться, но мне катастрофически не хватает знаний и опыта для разработки сего. -------------------- Спасибо сказали: Seiffear, hippocamus, AKuHAK, lion-killer, BlackBred, Throutle, packa, nosferatu, Doomђammer, J2K, Axolotl, Day7, SaintDark, igrik, Zabuza-san, AGG, Odin, Orzie, Cthulhu_55, KypaToP_HM, USBhere, the_new_pirate, Lokos, Tovio, AlexejKa83, Joric |
|
|
![]() |
![]()
Сообщение
#2
|
|
![]() Working hard Сообщений: 455 Спасибо сказали: 558 раз ![]() |
Оригинальное лобби героев разве TCP? Для игр в рнжиме онлайн актуально UDP, т.к. игра не зависает при потере пакетов.
p2p через сервер видится так: Игроки логинятся, получают токены сессий и на основе этих токенов за ними закрепляется адрес вида token.hlobby.com, и они подключаются друг к другу уже посредством этих адресов (что- то вроде vpn выходит). Такой способ гарантирует подключение двух пользователей независимо от того, белые ip у них или нет. -------------------- |
|
|
![]()
Сообщение
#3
|
|
Immortal Сообщений: 2 413 Спасибо сказали: 4619 раз ![]() |
Оригинальное лобби героев разве TCP? Для игр в режиме онлайн актуально UDP, т.к. игра не зависает при потере пакетов. UDP актуален для реал тайм игр, шутанов всяких. Где скорость обмена данными важнеe целостности данных и гарантии доставки. Героям это не нужно им как раз нужна гарантия доставки и целостности, т.е. Один игрок должен 100% получать то что отправил другой и никак иначе. Как вы представляете себе шахматы в которых ход соперника может не дойти до вас или дойти не таким, каким его сделал игрок? Если инет медленный и глючный, то пускай на передачу данных уйдет сколь угодно много времени (до установленного таймаута), но они обязаны дойти 100% целостными. UDP же не гарантирует целостность и вообще доставку данных. а TCP гарантирует - в этом разница, я так понимаю. Оригинальный сетевой API использованный в героях предполагает отправку данных как с гарантией доставки, так и без. Но практически используется только вариант с гарантией - по факту это tcp -------------------- |
|
|
![]()
Сообщение
#4
|
|
![]() Разработчик Сообщений: 534 Спасибо сказали: 222 раза ![]() |
Оригинальное лобби героев разве TCP? Для игр в режиме онлайн актуально UDP, т.к. игра не зависает при потере пакетов. UDP актуален для реал тайм игр, шутанов всяких. Где скорость обмена данными важнеe целостности данных и гарантии доставки. Героям это не нужно им как раз нужна гарантия доставки и целостности, т.е. Один игрок должен 100% получать то что отправил другой и никак иначе. Как вы представляете себе шахматы в которых ход соперника может не дойти до вас или дойти не таким, каким его сделал игрок? Если инет медленный и глючный, то пускай на передачу данных уйдет сколь угодно много времени (до установленного таймаута), но они обязаны дойти 100% целостными. UDP же не гарантирует целостность и вообще доставку данных. а TCP гарантирует - в этом разница, я так понимаю. Оригинальный сетевой API использованный в героях предполагает отправку данных как с гарантией доставки, так и без. Но практически используется только вариант с гарантией - по факту это tcp А мне вот кажется как это сделано в Heroes3 это слишком сложно, потому что надо ставить Хамачи и какие-то старые протоколы и все такое. По моему проще вырезать все это дело совсем (забить NOP-ами) и сделать внешнений вызов curl-а и выгрузку мира в фалик и пусть curl его послылает на сайт с каким-нибудь именем а другой игрок его оттуда тоже curl-ом из игры в свой ход скачивает и загружает. И тогда нужен будет только интернет и все. -------------------- |
|
|
![]()
Сообщение
#5
|
|
Immortal Сообщений: 2 413 Спасибо сказали: 4619 раз ![]() |
А мне вот кажется как это сделано в Heroes3 это слишком сложно, потому что надо ставить Хамачи и какие-то старые протоколы и все такое. По моему проще вырезать все это дело совсем (забить NOP-ами) и сделать внешнений вызов curl-а и выгрузку мира в фалик и пусть curl его послылает на сайт с каким-нибудь именем а другой игрок его оттуда тоже curl-ом из игры в свой ход скачивает и загружает. И тогда нужен будет только интернет и все. Во-первых, это плохое решение. Думаю, так будет вообще невозможно сделать. Как узнавать что противник ход завершил? как именовать файл чтобы он точно поступал адресату при нескольких одновременных играх? Как реализовать то что противник реалтайм видит перемещения героев оппонента? В общем, извини, но бред. Разве что под эту идею можно скрипты написать чтобы они сейвили хот сит игру, отправляли сейв, а затем скачивали его и загружали. Но это же тоже довольно тормозное и уродское решение. Уж лучше один раз поставить и настроить хамачи/тангл/тимвьюер/геймренджер и играть нормально. Цитата Почему не эффективно? Для битвы путь curl отправляет и скачивает другой файлик в котором состояние битвы. ИМХО как раз все напротив очень хорошо все будет потому что можно будет даже сейвы в самой битве делать! Сегодня сохранть а завтра продолжить с того же хода. Во вторых это сложное решение, ибо в игре мир посылается один раз - в начале/при загрузке игры. Дальше игроки обмениваются изменениями. В битве - только действиями. Что в общем то предельно разумно. Было бы странно, если б было иначе. -------------------- |
|
|
![]()
Сообщение
#6
|
|
![]() Разработчик Сообщений: 534 Спасибо сказали: 222 раза ![]() |
Цитата Во-первых, это плохое решение. Думаю, так будет вообще невозможно сделать. Цитата Как узнавать что противник ход завершил? Сделать lock файлик Цитата как именовать файл чтобы он точно поступал адресату при нескольких одновременных играх? Путь берут файлы из разных каталогов Цитата Как реализовать то что противник реалтайм видит перемещения героев оппонента? А он их видит реалтайм? Я почему то думал что он их видит когда тот ход завершил уже. Цитата В общем, извини, но бред. Ну не знаю. Я просто думаю что так проще просто все вырезать и сделать вызов готовой внешней программы и пусть она сама обмениватся файликами. Например curl он все может и логинится и файлы отравлять и получать и сообщения посылать и почту. А в файлы это можно записать и команды и мир и все что хочешь. И не нужно будет людям ставить никакие протоколы и делать непонятные VPN. -------------------- |
|
|
![]()
Сообщение
#7
|
|
![]() FFuck_oFF Сообщений: 3 993 Спасибо сказали: 1398 раз ![]() |
Цитата Как реализовать то что противник реалтайм видит перемещения героев оппонента? А он их видит реалтайм? Я почему то думал что он их видит когда тот ход завершил уже. -------------------- http://heroes3towns.com/ Сайт Новых Городов
|
|
|
![]() ![]() |
Текстовая версия | Сейчас: 23 September 2025 - 01:01 |
Copyright by Алексей Крючков
![]() Programming by Degtyarev Dmitry |
|