bomberman (aka dynablaster)

Модератор: Модераторы

скалогрыз
долгожитель
Сообщения: 1804
Зарегистрирован: 03.09.2008 02:36:48

Сообщение скалогрыз »

Дож писал(а):Почему не HTTP? Стандартизация, HTTPS, реализаций на паскале хватает

HTTP подразумевает разговор в одну сторону - запросы идут от клиента к серверу. Сервер не может послать какое-нибудь сообщение клиенту, пока клиент сам об этом не попросит.

Чат-протоколы (IRC или XMPP) для игр лучше подходят, т.к. сообщение от сервера может прийти в любой момент.

HTTP хорош для пошаговых стратегий :)
stanilar
постоялец
Сообщения: 289
Зарегистрирован: 09.03.2010 18:09:02

Сообщение stanilar »

скалогрыз писал(а):Чат-протоколы (IRC или XMPP) для игр лучше подходят

У меня слово jabber (использующий xmpp) прочно ассоциируется с HTTP, просто потому используется в веб-страничках. Собственно то, что в нем постоянно гоняют статус-сообщения говорит о ориентированности протокола на веб, соответственно на HTTP.
скалогрыз
долгожитель
Сообщения: 1804
Зарегистрирован: 03.09.2008 02:36:48

Сообщение скалогрыз »

stanilar писал(а):У меня слово jabber (использующий xmpp) прочно ассоциируется с HTTP, просто потому используется в веб-страничках

а IRC ассоциируется с веб страничками? ;)

Дальнейшее чтиво о том, почему вдруг XMPP интегрируется со страничками, вывел на BOSH
Собственно "ускоренный" обмен по http, хотя тут нужно заметить, что такой подход требует два соединения... причём разрывать их нельзя (т.е. http 1.1 обязателен к использованию), иначе будут тормоза на пересоединении.

и есть мнение, что Synapse с таким может не справиться, т.к. он ориентирован на синхронную передачу данных... хотя есть и ReadFilter и Монитор в их TBlockSocket
скалогрыз
долгожитель
Сообщения: 1804
Зарегистрирован: 03.09.2008 02:36:48

Сообщение скалогрыз »

MysticCoder писал(а):Можешь покурить мой код https://bitbucket.org/MysticCoder/eve а конкретно модуль _APOC_net.pas. udp, с возможностью подтверждения доставки.

подтверждение доставки через UDP мне как-то не нравится, лучше сделать через TCP. Вот что я точно буду делать через UDP, так это поиск севрера (имеется ввиду севрер в локальной сети).
Что на мой взгляд удачно - так это единый "серверерный модуль" обслуживающий несколько соединений, в отличии от того же synapse, или indy. Которые, по своей архитектуре (блокирующих сокетов) заставляют выделять поток на соединение.

А проект в целом интересный, но жаль что сошёл на нет.
скалогрыз
долгожитель
Сообщения: 1804
Зарегистрирован: 03.09.2008 02:36:48

Сообщение скалогрыз »

Всё! Релиз v1.0

А теперь непочатый край работы на доработку - локализация, сетевая игра, андройд версия, и т.д. и т.п.

---
Про App Review рассказывают всякие ужасы! На самом деле, это всё чистая правда!

Причём на Review приложение берут действительно быстро (в течении 24 часов).
Если у игры есть технические проблемы, вроде того что она падает (спасибо arm-64!), то отвергают тоже быстро, в течении нескольких часов после начала Review... а вот потом тягомотина может тянутся очень долго.
Мне пришлось ждать 10 дней, пока пришёл очередной отказ, по причине того, что работает "не так как мы поняли".

Пришлось расписать (со скриншотами), что приложение работает как и задумано и вообще всё хорошо.
После чего послал снова в Review (не поменяв бинарик)... и менее чем через 24 часа, приложение принято.
MysticCoder
постоялец
Сообщения: 154
Зарегистрирован: 14.09.2013 00:20:28

Сообщение MysticCoder »

скалогрыз писал(а):
MysticCoder писал(а):Можешь покурить мой код https://bitbucket.org/MysticCoder/eve а конкретно модуль _APOC_net.pas. udp, с возможностью подтверждения доставки.

подтверждение доставки через UDP мне как-то не нравится, лучше сделать через TCP. Вот что я точно буду делать через UDP, так это поиск севрера (имеется ввиду севрер в локальной сети).
Что на мой взгляд удачно - так это единый "серверерный модуль" обслуживающий несколько соединений, в отличии от того же synapse, или indy. Которые, по своей архитектуре (блокирующих сокетов) заставляют выделять поток на соединение.

А проект в целом интересный, но жаль что сошёл на нет.

Спасибо, пытался заточить максимально быстрым)
В сети бытует устойчивое мнение и где то даже приводилась аналитика и статистика, что юзание TCP параллельно с UDP ухудшает соединение(то ли потери пакетов, то ли искажения начинаются). Ну а подтверждение доставки у меня оно реализовано просто флагом, хочешь вешай на пакет флаг "подтвердить доставку", хочешь не вешай. Советую глянуть еще на реализацию сериализации, если у класса игрока надо добавить новое поле допустим MaxAmmo : integer;
То в сетевом коде надо будет добавить всего лишь одну строчку типа Registerчтототам(@MaxAmmo, SizeOf(MaxAmmo)), ну и при пересылке данных автоматически вычисляются те поля которые изменились и посылаются только они, вместо всего состояния класса. В планах было добавить сжатие, ибо при подключении >= 5 локальных ботов к серваку в инете мой adsl канал забивался полностью, но мотивация закончилась)
скалогрыз
долгожитель
Сообщения: 1804
Зарегистрирован: 03.09.2008 02:36:48

Сообщение скалогрыз »

Погряз в сетевой части. Слишком хочу сделать на Вебсокетах, чтобы использовать Udp.

На андроид времени не остаётся! так что прошу помощи за вознаграждение, у кого есть свободное время и желание.
Детали и стоимость указаны на Gamedev.ru
Ответить