Страница 10 из 10

Re: мультиплеер

СообщениеДобавлено: 23.08.2010, 23:22
Ant
StrVL, впечатляет. Такой вопрос: у тебя комп и ноут каким образом связаны?

Re: мультиплеер

СообщениеДобавлено: 24.08.2010, 00:22
TRam_
ну что ж, у кого-то наконец руки до этого дошли :). Жалко у моего ноута видеокарта перегревается, в самом интересном принять участие наверно не получится...

Re: мультиплеер

СообщениеДобавлено: 24.08.2010, 09:04
StrVL
Ant писал(а):комп и ноут каким образом связаны?

Через WiFi, но видимо из-за наводок от электромотора лифтерного отделения за стеной, сеть нестабильная – скорость скачет от 10 Мбит, до 100 Кбит… (странно, но когда лифт едет, даже в телевизионной антенне помехи наводятся).
А прога, как я уже писал, подключается через DirectPlay версии седьмого DirectX. DirectPlay поддерживает прямые соединения по TCP/IP и IPX (ну поддерживается дозвон по модему и соединение через последовательный порт, но не думаю, что найдутся такие юзеры :lool: ).

Добавлено:
Вообще хотелось бы услышать мнение общественности по вопросу того, что какой минимум возможностей должен быть реализован в мультиплеере, чтобы он мог состояться. Все-таки в первую очередь нужно сделать то, что действительно необходимо, а уж потом «фичами» заниматься.
Пока я вижу себе этот минимум в трех пунктах:
  • Обеспечение синхронного движения поездов у всех игроков (почти сделано)
  • Обеспечение синхронного переключения стрелок у всех игроков (сделано)
  • Голосовой чат между игроками (для отладки надо купить нормальный микрофон взамен старого настольного недоразумения с поврежденным проводом). Кстати о последнем, будет возможность заскриптовать рацию в кабине, и управлять чатом через неё. Скрипт рации будет отправлять программе служебные пакеты с командой (например, начать запись, отправляя звуковой поток игроку с таким-то номером, или остановить запись). Программа же будет захватывать звук с микрофона, передавать и воспроизводить его.
Повторюсь, речь идет о минимуме функциональности, при котором возможен мультиплеер. Такие вещи, как пульты диспетчеров, бесспорно вещи полезные и нужные, но без них поначалу можно обойтись. Да и делать их, однозначно, буду не я, так как их даже воочию не видел, к сожалению… :dontknow: Сигналкой тоже лучше будет потом заняться авторам, или их «доверенным лицам» (®, как-никак ;) ).

Re: мультиплеер

СообщениеДобавлено: 24.08.2010, 13:01
Dandi
StrVL, молодец :up: так держать! Наконец-то этим кто-то всерьез занялся.
Из пожеланий: надо бы еще сигналы (гудок и тифон) передавать, состояние прожектора. Буферники, наверное, не стоит - слишком по-разному они у всех реализованы.
С сигналкой в любом случае придется что-то делать, и даже не в последнюю очередь. Понятно, что дефолт работает исключительно по стрелкам и проблем не возникнет. В z7 же есть такая штука как предоткрытие, без которой чужие поезда будут проскакивать на красный только так.
А диспетчерские пульты, что-то мне подсказывает, будут изготавливаться специально для каждой отдельной карты. Пока и так погоняем, с диспетчером без пульта :)

Re: мультиплеер

СообщениеДобавлено: 24.08.2010, 13:53
TRam_
по поводу пульта - да, будут отдельно для каждой карты, так как граф пульта для крупных станций (типа Бекасово) слишком сложен. Посмотреть, что представляет собой карта-схема пульта можно в её симуляторе post178520.html#p178520

Из "первой необходимости" нужен ещё мониторинг поездов (сцепка и расцепка - при них объекты "Train" создаются и удаляются) и синхронизация приоритета поездов (смена приоритета необходима для переключения режимов поездной-маневровый). По поводу предоткрытия - его можно довольно просто передавать, т.к. оно инициируется сообщением (которое легко может быть передано по данной системе)

Re: мультиплеер

СообщениеДобавлено: 24.08.2010, 20:50
StrVL
Сцепление/расцепление, а также контроль за приоритетами включены в список. А вот по поводу свистка/тифона – да, вне всякого сомнения весьма существенная и достойная воплощения идея, однако проблема в том, как отловить момент подачи локомотивом свистка/тифона (соответствующего сообщения в игре нет). Разве что если заскриптовать под это дело отдельные локомотивы. С буферными огнями та же история.
Что касается пульта диспетчера, то мне кажется замечательной идеей сделать его так, как здесь уже предлагалось: в виде локомотива на невидимых рельсах с кабиной - комнатой диспетчера (а не тупо в виде картинки на странице браузера). Тем более, что можно взять за основу эти «домики» (конечно, если авторы не против ;) ) – останется только саму комнату смоделировать:
http://murmansk-trainz.ucoz.ru/load/vok ... 12-1-0-339
http://murmansk-trainz.ucoz.ru/load/pos ... 12-1-0-337
http://neoklai.ucoz.ru/load/27-1-0-95 (в особенности этот :nyam: )
http://neoklai.ucoz.ru/load/27-1-0-94
А насчет предоткрытия и прочих тонкостей сигналки, повторюсь, лучше этим заняться её авторам (или тем, кто знаком с её скриптами). Мне, во-первых, крайне не хочется посягать на ®, во-вторых, потребуется масса времени на изучение всех тонкостей скриптов z7 :book: . Эффективнее будет потратить это время на воплощение какой-нибудь «фичи».

Кстати, архитектура скрипта передачи данных изменяться уже не будет (возможно только, что будет дополняться), поэтому, в принципе, есть возможность его обнародовать, чтобы можно было начинать творить всяческие «мультиплеерные» дополнения. Следует опубликовать его?

Re: мультиплеер

СообщениеДобавлено: 24.08.2010, 22:41
kemal
Публикация протокола - это очень хорошая идея :nyam:
Вообще, идея такая, что реализовывать надо только дефолт (сигнал, фары, дефолтный пант...). Остальное пусть реализуется скриптами дополнений поверх протокола.
Насчёт z7. Оно, конечно, ®.. Однако существует документ, в котором перечислены сообщения которыми можно управлять светофорами извне. Так что я считаю, что, например, в z8 надо реализовывать мультиплеер в самой сигналке, а для z7 создать некое дополнение. Т.е. реализовать связь средствами "модема", но в него самого не включать.

Офф: А "лифтёрка" - именно лифтёрка, где диспетчеры с механиками сидят или МП, где мотор у лифта располагается? 0_о

Re: мультиплеер

СообщениеДобавлено: 25.08.2010, 09:39
TRam_
как отловить момент подачи локомотивом свистка/тифона (соответствующего сообщения в игре нет)
а я помню что есть.
Пропиши -enablescriptmessagelogging в trainzoptions.txt , тогда будут в jetlog.txt выводиться все сообщения

Re: мультиплеер

СообщениеДобавлено: 25.08.2010, 20:31
StrVL
TRam_ писал(а):Пропиши -enablescriptmessagelogging в trainzoptions.txt , тогда будут в jetlog.txt выводиться все сообщения

То, что пишется в лог, не представляет ценности, так как trainz открывает файл лога для записи «монопольно», и пока он открыт, его нельзя прочитать. Я имел ввиду сообщение, на которое можно Handler повесить.
С голосовым чатом пока проблема: транслировать удается только треск и шумы =|
Протокол же опубликую чуть позже, как чат заработает.
kemal писал(а):А "лифтёрка" - именно лифтёрка, где диспетчеры с механиками сидят или МП, где мотор у лифта располагается? 0_о

Где мотор.

Re: мультиплеер

СообщениеДобавлено: 25.08.2010, 21:31
TRam_
и пока он открыт, его нельзя прочитать. Я имел ввиду сообщение, на которое можно Handler повесить.
ну так там и можешь посмотреть, на какие сообщения и на какие объекты хендлеры вешать. Например запустил сессию, погудел, вышел из трейнз, посмотрел лог - опа, там же сообщение о гудке (вот например так - http://www.trainsim.ru/forum/showthread ... %E8+trainz - сообщение №22 )

С голосовым чатом пока проблема
можно же одновременно запустить TeamSpeak и твою программу. Тогда будет не так удобно, но проблема испаряется.
По поводу нечитаемости этого файла - попробуй поизучать OA_message.dat (находится в папке кэша)

Re: мультиплеер

СообщениеДобавлено: 31.08.2010, 19:56
StrVL
Ну что ж, голосовой чат готов! Как когда-то говорилось, ура, товарищи >:D !
Вот только пролистал я файл keyboard.txt и «ахнул» :o : на какие клавиши чат вешать? Вся клавиатура занята! У меня сделано так, что каждому игроку нужно вручную задать комбинацию Alt + <клавиша>, где клавишей может быть следующая: A – Z и 0 – 9.
И ещё по чату. 20 Кбайт/сек на одно голосовое соединение это чересчур большой трафик, или терпимо?
Как и обещал, вот Мультиплеер в trainz. Принцип. Технология. Протокол.
TRam_ писал(а):(вот например так - http://www.trainsim.ru/forum/showthread ... %E8+trainz - сообщение №22 )

Спасибо за ссылку – очень познавательно и популярно. Однако ж как оказалось, событие NotifyHorn и ему подобные вызывается только при подаче свистка с клавиатуры. Если свистеть из панели в упрощенном режиме DCC, то событие не инициируется. Кроме этого, если клавишу не отпускать, пытаясь подать долгий свисток, то событие вызывается лишь один раз (хотелось бы, чтобы оно инициировалось периодически). И если я правильно понял статью, то при подаче свистка из кабины событие также не будет инициироваться. Тем не менее, реализовал гудок с посредством этого события – лучше все-таки, чем никак.
Ещё вопрос: как скриптом «завести» колокольню (что запускается при нажатии на клавишу B ).

Re: мультиплеер

СообщениеДобавлено: 31.08.2010, 21:31
TRam_
не, колокольня не запускается. Запускается свисток Train.SoundHorn();

Re: мультиплеер

СообщениеДобавлено: 01.09.2010, 09:28
UTUBE
Всем доброе утро.Есть вопросик_два?
В блоге у разработчика мультиплеера,есть фаил на закачку,мне удалось его скачать,там лежит один фаил GS,что это за расширение и как этим пользоваться.Спасибо.
И можно ли попробовать в игре сие чудо?

Re: мультиплеер

СообщениеДобавлено: 01.09.2010, 15:22
StrVL
Это скрипт с интерфейсами классов, обеспечивающих передачу данных в мультиплеере. Понадобится он разработчикам «мультиплеерных» дополнений. Выложил, чтобы уже можно было приступить к сотворению оных, да и для ознакомления общественности…
Сам же мультиплеер пока не готов.