IPB

Здравствуйте, гость ( Вход | Регистрация )

> Лобби-сервер для HotA, обсуждение разработки
baratorch
сообщение 27 Jan 2017, 18:00 (Сообщение отредактировал baratorch - 22 Feb 2017, 13:15)
Сообщение #1

Immortal
Сообщений: 2 413
Спасибо сказали: 4619 раз




Давным давно востребованная вещь: лобби сервер для онлайн игры в героев.
Чтобы можно было коннектиться без всяких хамачей и прочего.
Чтобы можно было легко искать оппонента.
Общие рейтинг, чат, и прочие вещи, которые являются обыденностью для современных многопользовательских игр.

И я очень хочу этим заняться, но мне катастрофически не хватает знаний и опыта для разработки сего.


--------------------
HoMM 3 HD:
http://sites.google.com/site/heroes3hd
последняя версия - 3.61f
Go to the top of the pageAdd Nick
 
+Quote Post
 
Start new topic
Ответов
SaintDark
сообщение 28 Jan 2017, 04:23 (Сообщение отредактировал SaintDark - 28 Jan 2017, 04:27)
Сообщение #2

Working hard
Сообщений: 455
Спасибо сказали: 558 раз




Оригинальное лобби героев разве TCP? Для игр в рнжиме онлайн актуально UDP, т.к. игра не зависает при потере пакетов.

p2p через сервер видится так: Игроки логинятся, получают токены сессий и на основе этих токенов за ними закрепляется адрес вида token.hlobby.com, и они подключаются друг к другу уже посредством этих адресов (что- то вроде vpn выходит). Такой способ гарантирует подключение двух пользователей независимо от того, белые ip у них или нет.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
baratorch
сообщение 28 Jan 2017, 05:01
Сообщение #3

Immortal
Сообщений: 2 413
Спасибо сказали: 4619 раз




Цитата(SaintDark @ 28 Jan 2017, 06:23) *
Оригинальное лобби героев разве TCP? Для игр в режиме онлайн актуально UDP, т.к. игра не зависает при потере пакетов.

UDP актуален для реал тайм игр, шутанов всяких. Где скорость обмена данными важнеe целостности данных и гарантии доставки.
Героям это не нужно им как раз нужна гарантия доставки и целостности, т.е. Один игрок должен 100% получать то что отправил другой и никак иначе.
Как вы представляете себе шахматы в которых ход соперника может не дойти до вас или дойти не таким, каким его сделал игрок?
Если инет медленный и глючный, то пускай на передачу данных уйдет сколь угодно много времени (до установленного таймаута), но они обязаны дойти 100% целостными.
UDP же не гарантирует целостность и вообще доставку данных. а TCP гарантирует - в этом разница, я так понимаю.

Оригинальный сетевой API использованный в героях предполагает отправку данных как с гарантией доставки, так и без. Но практически используется только вариант с гарантией - по факту это tcp


--------------------
HoMM 3 HD:
http://sites.google.com/site/heroes3hd
последняя версия - 3.61f


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
t800
сообщение 28 Jan 2017, 07:32 (Сообщение отредактировал t800 - 28 Jan 2017, 08:04)
Сообщение #4

Разработчик
Сообщений: 534
Спасибо сказали: 222 раза




Цитата(baratorch @ 28 Jan 2017, 08:01) *
Цитата(SaintDark @ 28 Jan 2017, 06:23) *
Оригинальное лобби героев разве TCP? Для игр в режиме онлайн актуально UDP, т.к. игра не зависает при потере пакетов.

UDP актуален для реал тайм игр, шутанов всяких. Где скорость обмена данными важнеe целостности данных и гарантии доставки.
Героям это не нужно им как раз нужна гарантия доставки и целостности, т.е. Один игрок должен 100% получать то что отправил другой и никак иначе.
Как вы представляете себе шахматы в которых ход соперника может не дойти до вас или дойти не таким, каким его сделал игрок?
Если инет медленный и глючный, то пускай на передачу данных уйдет сколь угодно много времени (до установленного таймаута), но они обязаны дойти 100% целостными.
UDP же не гарантирует целостность и вообще доставку данных. а TCP гарантирует - в этом разница, я так понимаю.

Оригинальный сетевой API использованный в героях предполагает отправку данных как с гарантией доставки, так и без. Но практически используется только вариант с гарантией - по факту это tcp



А мне вот кажется как это сделано в Heroes3 это слишком сложно, потому что надо ставить Хамачи и какие-то старые протоколы и все такое. По моему проще вырезать все это дело совсем (забить NOP-ами) и сделать внешнений вызов curl-а и выгрузку мира в фалик и пусть curl его послылает на сайт с каким-нибудь именем а другой игрок его оттуда тоже curl-ом из игры в свой ход скачивает и загружает. И тогда нужен будет только интернет и все.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
baratorch
сообщение 29 Jan 2017, 11:39 (Сообщение отредактировал baratorch - 29 Jan 2017, 11:44)
Сообщение #5

Immortal
Сообщений: 2 413
Спасибо сказали: 4619 раз




Цитата(t800 @ 28 Jan 2017, 09:32) *
А мне вот кажется как это сделано в Heroes3 это слишком сложно, потому что надо ставить Хамачи и какие-то старые протоколы и все такое. По моему проще вырезать все это дело совсем (забить NOP-ами) и сделать внешнений вызов curl-а и выгрузку мира в фалик и пусть curl его послылает на сайт с каким-нибудь именем а другой игрок его оттуда тоже curl-ом из игры в свой ход скачивает и загружает. И тогда нужен будет только интернет и все.

Во-первых, это плохое решение. Думаю, так будет вообще невозможно сделать.
Как узнавать что противник ход завершил? как именовать файл чтобы он точно поступал адресату при нескольких одновременных играх?
Как реализовать то что противник реалтайм видит перемещения героев оппонента?
В общем, извини, но бред.
Разве что под эту идею можно скрипты написать чтобы они сейвили хот сит игру, отправляли сейв, а затем скачивали его и загружали. Но это же тоже довольно тормозное и уродское решение. Уж лучше один раз поставить и настроить хамачи/тангл/тимвьюер/геймренджер и играть нормально.

Цитата
Почему не эффективно? Для битвы путь curl отправляет и скачивает другой файлик в котором состояние битвы.
ИМХО как раз все напротив очень хорошо все будет потому что можно будет даже сейвы в самой битве делать! Сегодня сохранть а завтра продолжить с того же хода.


Во вторых это сложное решение, ибо в игре мир посылается один раз - в начале/при загрузке игры. Дальше игроки обмениваются изменениями. В битве - только действиями. Что в общем то предельно разумно. Было бы странно, если б было иначе.


--------------------
HoMM 3 HD:
http://sites.google.com/site/heroes3hd
последняя версия - 3.61f
Go to the top of the pageAdd Nick
 
+Quote Post
t800
сообщение 29 Jan 2017, 16:41 (Сообщение отредактировал t800 - 29 Jan 2017, 16:57)
Сообщение #6

Разработчик
Сообщений: 534
Спасибо сказали: 222 раза




Цитата
Во-первых, это плохое решение. Думаю, так будет вообще невозможно сделать.


Цитата
Как узнавать что противник ход завершил?


Сделать lock файлик


Цитата
как именовать файл чтобы он точно поступал адресату при нескольких одновременных играх?


Путь берут файлы из разных каталогов


Цитата
Как реализовать то что противник реалтайм видит перемещения героев оппонента?


А он их видит реалтайм? Я почему то думал что он их видит когда тот ход завершил уже.


Цитата
В общем, извини, но бред.


Ну не знаю. Я просто думаю что так проще просто все вырезать и сделать вызов готовой внешней программы и пусть она сама обмениватся файликами. Например curl он все может и логинится и файлы отравлять и получать и сообщения посылать и почту. А в файлы это можно записать и команды и мир и все что хочешь. И не нужно будет людям ставить никакие протоколы и делать непонятные VPN.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
Spartak
сообщение 29 Jan 2017, 23:42
Сообщение #7

FFuck_oFF
Сообщений: 3 993
Спасибо сказали: 1398 раз




Цитата(t800 @ 29 Jan 2017, 16:41) *
Цитата
Как реализовать то что противник реалтайм видит перемещения героев оппонента?

А он их видит реалтайм? Я почему то думал что он их видит когда тот ход завершил уже.
Одновременные ходы для Хоты.


--------------------
http://heroes3towns.com/ Сайт Новых Городов


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post

Сообщений в этой теме
- baratorch   Лобби-сервер для HotA   27 Jan 2017, 18:00
- - t800   А прочему вам просто не взять исходники Хамачи и ...   27 Jan 2017, 20:23
- - SaintDark   Оригинальное лобби героев разве TCP? Для игр в рнж...   28 Jan 2017, 04:23
|- - baratorch   Цитата(SaintDark @ 28 Jan 2017, 06:23) Ор...   28 Jan 2017, 05:01
|- - t800   Цитата(baratorch @ 28 Jan 2017, 08:01) Ци...   28 Jan 2017, 07:32
|- - baratorch   Цитата(t800 @ 28 Jan 2017, 09:32) А мне в...   29 Jan 2017, 11:39
|- - t800   ЦитатаВо-первых, это плохое решение. Думаю, так бу...   29 Jan 2017, 16:41
|- - Spartak   Цитата(t800 @ 29 Jan 2017, 16:41) ЦитатаК...   29 Jan 2017, 23:42
- - the_new_pirate   Ооо это крутая вещь была бы. Голосую обеими руками...   28 Jan 2017, 11:08
|- - t800   Цитата(the_new_pirate @ 28 Jan 2017, 14:0...   28 Jan 2017, 12:22
- - the_new_pirate   а, ну если это не весь мир будет, а только то, что...   29 Jan 2017, 09:28
- - hippocamus   t800, ну пойми уже, что всё реально гораздо сложне...   30 Jan 2017, 00:04
|- - t800   Цитата(hippocamus @ 30 Jan 2017, 03:04) t...   30 Jan 2017, 04:50
- - SaintDark   Можно поточнее, что будет отсылаться на сервер с к...   30 Jan 2017, 06:16
|- - baratorch   Цитата(SaintDark @ 30 Jan 2017, 08:16) Мо...   30 Jan 2017, 07:42
|- - the_new_pirate   Цитата(baratorch @ 30 Jan 2017, 07:42) Не...   01 Feb 2017, 21:36
- - tolich   Другими словами, Heavenly Conflux.   30 Jan 2017, 08:24
- - SAG19330184   Цитата(t800 @ 29 Jan 2017, 16:41) ЦитатаК...   01 Feb 2017, 18:40
- - SaintDark   В общем, почитал про пробивание NAT. Делается это...   02 Feb 2017, 12:08
|- - t800   Цитата(SaintDark @ 02 Feb 2017, 15:08) Оп...   04 Feb 2017, 08:42
- - baratorch   В общем со всем разобрался. Буду писать все сам.   22 Feb 2017, 13:21
- - igrik   Мощно!!! baratorch, даже не знаю, чтоб...   22 Feb 2017, 13:53
- - tmn   Возможно, имеет смысл добавить поддержку URI для и...   28 Mar 2017, 07:54
- - baratorch   Запускаю открытый альфа-тест HD мода 5.0 (онлайн л...   13 Jul 2017, 22:07
- - baratorch   по той же ссылке доступен оффлайн апдейт до alpha ...   14 Jul 2017, 21:14
- - tmienei   Здравствуйте, возникла проблема при игре втроем с ...   15 Jul 2017, 01:37
- - baratorch   по той же ссылке доступен оффлайн апдейт до alpha ...   15 Jul 2017, 09:04
- - baratorch   по той же ссылке доступен оффлайн апдейт до alpha ...   15 Jul 2017, 19:35
- - baratorch   по той же ссылке доступен оффлайн апдейт до alpha ...   16 Jul 2017, 20:58
- - baratorch   по той же ссылке доступен оффлайн апдейт до alpha ...   17 Jul 2017, 12:28
- - baratorch   по той же ссылке доступен оффлайн апдейт до alpha ...   18 Jul 2017, 13:34
- - baratorch   по той же ссылке доступен оффлайн апдейт до alpha ...   19 Jul 2017, 13:32
- - baratorch   Теперь вместо плагина HotA HW 1.38+ следует исполь...   19 Jul 2017, 15:05
- - baratorch   по той же ссылке доступен оффлайн апдейт до alpha ...   25 Jul 2017, 10:07
- - baratorch   по той же ссылке доступен оффлайн апдейт до alpha ...   26 Jul 2017, 13:29
- - baratorch   по той же ссылке доступен оффлайн апдейт до alpha ...   07 Aug 2017, 09:19
- - baratorch   по той же ссылке доступен оффлайн апдейт до alpha ...   18 Aug 2017, 07:37
|- - the_new_pirate   Цитата(baratorch @ 18 Aug 2017, 07:37) по...   26 Aug 2017, 17:21
- - Lokos   При прокрутке колесом мыши, прокручивается сразу ...   18 Aug 2017, 13:29
- - Docent Picolan   Цитатарейтинг лучше сделать по типу ELO Он и так э...   27 Aug 2017, 13:31
- - igrik   В чём проблема? Постоянно просит скачать обнову, н...   28 Aug 2017, 16:14
- - the_new_pirate   Из HD лаунчера нормально можно (авто)обновиться, н...   28 Aug 2017, 19:20
- - hippocamus   В игре этот диалог возникает в том случае, если от...   28 Aug 2017, 21:06
- - BlackBred   Очень не хватает функции восстановления пароля от ...   03 Oct 2017, 00:17
|- - baratorch   Цитата(BlackBred @ 03 Oct 2017, 03:17) Оч...   05 Oct 2017, 01:35
|- - BlackBred   Цитата(baratorch @ 05 Oct 2017, 01:35) Пи...   06 Oct 2017, 10:57
- - hippocamus   BlackBred, это - бета-тест (а в начале вообще альф...   03 Oct 2017, 01:46
|- - BlackBred   Цитата(hippocamus @ 03 Oct 2017, 01:46) В...   03 Oct 2017, 21:45
- - Docent Picolan   ЦитатаНе знал о планах по удалению всех аккаунтов ...   03 Oct 2017, 21:51
|- - BlackBred   Цитата(Docent Picolan @ 03 Oct 2017, 21:5...   04 Oct 2017, 10:13
- - Odin   Будет ли возможность наблюдать за текущими играми?   13 Jan 2018, 14:09
|- - baratorch   Цитата(Odin @ 13 Jan 2018, 16:09) Будет л...   22 Jan 2018, 11:15
- - deadman_blr87   Есть ли какие-то идеи по следующим проблемам?: - в...   21 Jan 2018, 21:36
- - fireman   Как-то форум миновала новость, что в последних вер...   13 Mar 2018, 23:56
- - hippocamus   Не велика потеря, что миновала.   14 Mar 2018, 02:10
- - MasterBuilder   Наверное дурацкий вопрос, но так и не нашел ответа...   02 Apr 2018, 01:34
- - 1/2   Как сдаваться в онлайн игре?   02 Aug 2019, 18:59
|- - hippocamus   Цитата(1/2 @ 02 Aug 2019, 18:59) Как сдав...   02 Aug 2019, 19:37
- - starting   Здравствуйте, а можно узнать как восстановить или ...   15 Aug 2022, 14:22
- - Dolmatov   Цитата(starting @ 15 Aug 2022, 15:22) Здр...   12 Sep 2022, 23:18


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 23 September 2025 - 01:01
Copyright by Алексей Крючков
Strategy Gamez by GrayMage
Programming by Degtyarev Dmitry
  Яндекс.Метрика