Форум Trainsim

Форум Trainsim (http://www.trainsim.ru/forum/index.php)
-   MSTS - Об игре (http://www.trainsim.ru/forum/forumdisplay.php?f=17)
-   -   Мультиплеер. Разработка сетевого блока. (http://www.trainsim.ru/forum/showthread.php?t=4457)

DeBUG 11.10.2008 12:14

Мультиплеер. Разработка сетевого блока.
 
Для приближения к нормальной сетевой игре пишу код сетевого блока. Если есть информация по данной теме предлагаю ее опубликовать, также можно высказывать свои пожелания и предположения по работе сетевого модуля. Разбирающиеся люди могут предлагать структуру и модель приложения. Любые толковые идеи всегда выслушаю.

Краткое ТЗ:

1.Клиент-серверное приложение.
2.Модульность приложений.
3.Открытая архитектура.
4.Взаимодействие по интерфейсам.

Основная работа идет в направлении таких этапов:

Этапы разработки.

1.Модуль управления стрелками. Выполнен, тестирование.
2.Модуль построения схемы пути.
3.Модуль сигнализации.
4.Модуль управления занятости пути.
5.Модуль визуализации ПС других игроков.


Любой желающий может разрабатывать код любого модуля, потом проведем объединение и компиляцию. Если нет желания раскрывать свои исходники можно будет создать dll с последующим ее подключением к основной программе.

Предположительная дата первых тестирований всего приложения конец декабря.

Colonel_Abel 11.10.2008 12:43

Могу сказать только одно. Если получится, то все любители МСТС тебе и той команде, что будет с тобой работать памятник при жизни поставят. Я серьезно.

art-trans 11.10.2008 12:48

Очень полезная вещь, но с трудом верится что настолько быстро всё удастся выполнить.

Касаемо построения схемы пути - то для диспетчерского пульта можно взять одно из приложений симуляции диспетчерского пульта - Train Director, Train Dispatcher и т.д. Также желательно чтобы Модуль построения пути был выполнен этаким редактором с детальной привязкой к координатам MSTS, и с возможностью передачи информации о скорости движения состава и некоторых дополнительных элементов, при использовании приложения в качестве диспетчерского пульта при мультиплеерах.

Кроме того я догадываюсь, что могут возникнуть проблемы именно с третьим - модуль сигнализации. Ввиду того, что сейчас уже имеется целых 3 версии, и причём все разные, и ещё и четвёртая готовится, то настроить модуль под все будет довольно сложно, особенно с учётом того, что каждый из вариантов рано или поздно обновляется. Но с учётом возможности задать конкретный закрытый светофор дальше сигнализация может сработать уже самостоятельно.

Что же касается последнего пункта - его рекомендуется выполнить в двух вариантах
1. Модуль, при котором передаётся только информация о местоположении состава другого игрока, и сама составность, а вагоны и локомотивы будут загружаться из компьютера самого игрока - при этом экономия трафа и т.д.
2. Модуль при котором от игрока будет передавать вся информация вместе с файлами вагонов и локомотивов, при этом нужно иметь очень высокоскоростной интернет.

Если оба варианта выполнять, то думаю достаточно сделать в настройках клиента или ещё лучше - сервера - опцию с отметкой того или иного варианта.

DeBUG 11.10.2008 14:11

Кратко.
Лучше постамент!

Схему пути будем строить по файлу "ИМЯ_РОУТА.tdb" + что-то. Там по всей видимости бинарное дерево. Я еще не изучал досконально. Думаю что сделаю только алгоритм, а там выставлю на общее усмотрение, может кто поможет с внедрением данных в пульт.

Сигналицазия будет работать из расчета положения стрелок + занятости блок-участков. Сама игра будет делать все за нашу программу. Я буду говорить игре какое положение стрелок + что считать блокированным.

Для визуализации думаю кубиков хватит, а там буду думать, что делать дальше.

Вот и все что есть на сегодня. Пока изучаю алгоритмы файлов маршрутов. Если кто разбираеться в структуре пишите в данной теме. Быстрей будет дело двигаться.

jawa634 11.10.2008 15:04

Вот немного: [url]http://www.climbatized.narod.ru/folderstructure.html[/url]
Ну и здесь: [url]http://www.trainsim.ru/forum/showthread.php?t=336&highlight=%F1%F2%F0%F3%EA%F2%F3%F0%E0+%EF%E0%EF%EE%EA[/url]

dj.dan.mc 11.10.2008 21:09

Ну, что-ж если сделают MSTS: MP., (также как, например SA:MP) то будет действительно круто.

APK-LVDZ 11.10.2008 21:36

Сам я в программировании такого уровня не шарю, но если нужно - могу помочь в оформлении программы, может и новыми идеями. Уж очень хочется, чтобы такая программа вышла. Обращайтесь в ЛС если что, приблизительно знаю схему управления пультом ДСП (сам готовил несколько маршрутов для поездов).

Dump 11.10.2008 22:28

Сам третью неделю занимаюсь этим делом, в частности вторым пунктом т.е. Модуль построения схемы пути. Впринципе успехи есть, написан парсер tdb файла, уже есть алгоритм построения карты маршрута, вот только думаю как рисовать карту маршрута, как это сделано в диспетчерских или же как это сделано в AE, склоняюсь к альтернативному варианту, т.е. рисовать без кривых, просто от VectorNode до VectorNode и т.д. Во первых это будет быстрее, во вторых ПС отображать легче будет (на кривых расчётов больше)

Я вообще думал писать сначала модуль диспетчера, затем модуль машиниста, модуль машиниста передает данные о текущем состоянии состава (скорость, на каком км находится и т.д.), потом отображать все это дело у диспетчера, а вот про переключение стрелок я пока не думал..

Общение между игрокам пока возлагал на тимспик..

[B]DeBUG[/B], про управление стрелками поподробнее, если не сложно, я честно говоря пока даже не представляю как это можно реализовать, хотя и не копался с этой проблемой!

art-trans 11.10.2008 23:49

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

Dump 12.10.2008 02:03

[B]art-trans[/B] Ну сколько поездов поместиться на экране, это уже будет зависеть , я думаю, от зума...


Посидел я так подумал и все таки понял, что полноценный мультиплеер в MSTS сделать нельзя, не получится, [B]dj.dan.mc[/B], помахать рукой встречному, к сожалению. Единственно, что можно сделать, это написать нормальный диспетчерский пульт конкретно для MSTS, и соответственно нормальная сетевая игра будет реализована только для диспетчера, а машинисты по-прежнему будут представлять себе встречные и воображать:( . Хотя у меня были такие идиотские мысли типа создания "динамического сценария" и т.д. но это бред... не будем об этом:)
Поэтому предлагаю сосредоточиться на диспетчере и действовать по плану [B]DeBUG[/B]'a. Первый этап уже готов, на сколько я понял, второй этап готов ~65% (у меня пока что), оставшиеся 35% это собственно код отображения карты по данным из файла (проблема там в координатной системе, но выход уже нашел...). 5 этап по сути является частью второго, т.к. отображать это надо наверно все вместе...

А вот 3 и 4 этап я немного не пойму. Чего в сигнализации такого? Файл sigcfg.dat, в нем все есть, что нужно. Да и потом можно отображать только зеленый и красный (открыт\закрыт), или диспетчеру нужно четко знать, что там щас творится на светофоре?

И сразу же тогда вопрос про стрелки: диспетчер должен сам переводить стрелки игроку? Или игрок переводит эти стрелки по указанию диспетчера.

rs-basique 12.10.2008 04:08

Готовить маршрут и открывать сигнал должен диспетчер. При этом у стрелок бывают только 2 положения: "+" и "-", а у сигналов только 2 варианта: "Открыт" или "Закрыт".

И ещё. Очень хотелось бы оставить проходные светофоры на автодействии, так как в реале управлять проходными светофорами невозможно вручную, они работают только автоматически.

То есть на пульт передаётся показание светофора ("открыт"/"закрыт"), и это показание транслируется другим игрокам, но диспетчер не может вручную перекрыть сигнал, по дефолту он должен быть открыт.

P.S. Это уже мелочи "притирки".

Aleks 12.10.2008 13:42

[QUOTE=rs-basique;49005]И ещё. Очень хотелось бы оставить проходные светофоры на автодействии, так как в реале управлять проходными светофорами невозможно вручную, они работают только автоматически.[/QUOTE]
Не совсем. Если делать двустороннюю АБ, то нужно как-то гасить светофоры противоположного установленному направления.
ИМНО, лучше всего, воздействовать на переменную enabled светофора. Устанавливаем ей значение TRUE и светофор открывается, после проезда поезда сбрасываем значение в FALSE.

art-trans 12.10.2008 15:14

Лучше всего чтобы после проезда поезда сигнал сам менялся на красный, и чтобы была опция автоматического задания открытого сигнала где это возможно для проходных светофоров, как это выполненно в Train Director'е. Если не понятно - могу добавить иллюстрированное пояснение.

Aleks 12.10.2008 16:13

[QUOTE=art-trans;49052]Лучше всего чтобы после проезда поезда сигнал сам менялся на красный, и чтобы была опция автоматического задания открытого сигнала где это возможно для проходных светофоров, как это выполненно в Train Director'е.[/QUOTE]
А так и будет. Переменная enabled просто разрешает светофору открываться, при выполнении определенных условий (свободность блок-участка, показание след. светофора и т.д.). Условия задаются в файле sigscr.dat.

ВIGMAN 12.10.2008 16:26

ИМХО Сколько не мутузили эти программы для мультиплеера всё стремиться к нулю!


Текущее время: 08:39. Часовой пояс GMT +4.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
© 2001-2019, Администраторы и разработчики Клуба Trainsim