Наступил тот долгожданный мной день, когда я наконец могу представить эту разработку. Проект был начат ровно год назад, 1 сентября 2018 года, по крайней мере в репозитории RRS на Gtihub первый коммит имеет именно такую дату.

Пассажирский поезд на станции Ростов Главный (кликабельно)



Что такое RRS? Это открытый кроссплатформенный симулятор подвижного состава колеи 1520 мм. Читатель закономерно задаст вопрос: «Позвольте, а для чего нужен этот проект, если симуляторов железнодорожной тематики, как коммерческих, так и открытых, достаточное количество?» За ответом на этот вопрос я и предлагаю заглянуть под кат

История проекта


Когда-то давным давно, в 2001 году, увидел свет Microsoft Train Simulator (MSTS), породивший в нашей стране огромное сообщество ж/д-симмеров. За несколько лет, которые просуществовал этот проект (пока Майкрософт не забросила его, занявшись более интересными для неё вещами, типа обанкрочивания Нокии и т.п.) проект оброс массой созданных для него дополнений: маршрутов, подвижного состава, сценариев.

На основе MSTS, в последствии, был создан ряд других проектов, такие как OpenRails, RTrainSim (RTS) и прочие дополнения и производные. Появились и коммерческие проекты, такие как знаменитейший Trainz. И все бы хорошо, но многих любителей ж/д транспорта эти продукты не устраивают по вполне объективным причинам — они никак не отражают специфику отечественного подвижного состава, эксплуатируемого и разрабатываемого на постсоветском пространстве. Особенно остро это проявляется при взгляде на то, как реализуются тормоза поезда — ни в одном из перечисленных проектов нет и не будет нормальной реализации автоматических тормозов системы Матросова.

В неблизком уже, 2008 году появился другой проект — ZDSimulator, разработанный Вячеславом Усовым. Проект замечателен тем, что вышеперечисленные недостатки он учитывает и исправляет, при этом изначально ориентирован на подвижной состав русской колеи. Но есть одно большое «но» — проект проприетарный и закрытый, архитектурно не допускающий внедрение в него собственного подвижного состава.

Сам я пришел к железнодорожной тематике в 2007 году, когда стал работать в ОАО ВЭлНИИ, в должности научного сотрудника, а после защиты кандидатской диссертации в 2008 году — старшего научного сотрудника. Тогда же я и познакомился с последними на тот момент достижениями в области железнодорожных игр-симуляторов. И то что я увидел, мне не понравилось, а проекта ZDSimulator на тот момент еще не было. В дальнейшем я, увлеченный динамикой подвижного состава, пришел в Ростовский государственный университет путей сообщения (РГУПС) с темой докторской диссертации по динамике торможения грузового поезда. На сегодняшний день я руковожу разработкой тренажерных комплексов ж/д транспорта для нашего вуза и преподаю профильные дисциплины на кафедре «Тяговый подвижной состав».

В связи со всем вышеперечисленным возникла идея создания симулятора, который позволял бы разработчику дополнения для него получить полный контроль над физическими процессами, протекающими в подвижном составе. Сродни космическому симулятору Orbiter, для которого я разработал в свое время дополнение в виде семейства ракет носителей на базе Р-7. Год назад я взялся за эту работу и ушел в нее с головой. 26 декабря 2018 года увидела свет вот эта технологическая демка.

Моя работа была замечена энтузиастами, и известный в кругах ж/д-симмеров, создатель визуального контента для ZDsimulator Роман Бирюков (Ромыч РЖДУЗ) предложил мне помощь и сотрудничество в дальнейшем развитии проекта. Позже к нам присоединился еще один разработчик — Александр Мищенко (Ulovskii2017), создатель маршрутов для ZDsimulator. Наша совместная работа привела нас к первому релизу. На видео — некоторый обзор того, как игра выглядит к своему первому релизу


Особенности симулятора RRS


Прежде всего это — открытая программная архитектура. Не говоря даже о том, что код симулятора открыт, существует API и SDK, ориентированный на разработчиков сторонних дополнений к нему. Порог вхождения довольно высок — требуются базовые навыки разработки на языке C++. Симулятор написан именно на нем, с применением компилятора GCC и его варианта MinGW для операционной системы Windows. Кроме того, желательно знакомство разработчика с фреймворком Qt, так как многие концепции из него лежат в основе архитектуры игры.

Однако, при должном усердии и желании, данный проект открывает для разработчика дополнений огромные возможности. Подвижной состав реализуется в виде модулей на базе динамических библиотек. Основным структурным элементом в симуляторе является единица подвижного состава, или подвижная единица (ПЕ) — вагон (несамоходный или в составе моторвагонного поезда) или секция локомотива. API дает возможность задавать крутящий момент, приложенный к колесным парам ПЕ, в ответ получая угловую скорость колесных пар, а так же внешние параметры, вроде напряжения и рода тока в контактной сети. Больше симулятор ни о чем не знает и знать не хочет, что оставляет физику работы внутреннего оборудования на совести разработчика конкретного локомотива или вагона.

Нетрудно догадаться, что такой относительно низкоуровневый подход дает возможность реализовать мельчайшие нюансы схемы локомотива. Кроме того, в комплект симулятора входит набор стандартного оборудования, устанавливаемого на отечественный подвижной состав: поездной кран машиниста усл. №395, воздухораспределитель усл. №242, кран вспомогательного тормоза усл. №254 и прочие элементы тормозного оборудования. Разработчику дополнения достаточно лишь соединить эти элементы в пневматическую схему конкретного локомотива или вагона. Кроме того, имеется API для создания собственных блоков оборудования.

Архитектурно RRS построен на взаимодействии двух главных процессов

  • simulator — физический движок динамики поезда TrainEngine 2. Реализует физику движения поезда с учетом множества внешних факторов, учитывая взаимодействие подвижных единиц через сцепные приборы, занимается обработкой данных, поступающих из внешних модулей, реализующих физику работы оборудования подвижного состава
  • viewer — графическая подсистема, выполняющая визуализацию движения поезда, построенная на базе графического движка OpenSceneGraph

Эти подсистемы взаимодействуют между собой через общую память, реализуемую на базе класса QSharedMemory фреймворка Qt. Первые демо-версии использовали IPC на базе сокетов, и в дальнейшем планируется возврат на эту технологию, учитывая доработку некоторых частей симулятора и потребности с прицелом на будущее. Переход на общую память был в какой-то степени вынужденной мерой, которая изжила себя.

Не буду описывать нюансы — многие из перипетий развития этого проекта уже изложены в моих публикациях на ресурсе, в частности у меня есть довольно обширный цикл туториалов по движку OpenSceneGraph, выросший как раз из практики работы над данным проектом.

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

Перспективы


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

Спасибо за внимание!

Комментарии (183)


  1. AllexIn
    01.09.2019 05:34
    +2

    У вас очень крутой симулятор. Желаю вам успеха.
    Но то как вы в «интервью» наезжаете(хочется сказать более грубое слово) на сообщество ZDS выглядит как нытье обиженного подростка. Уберите ту статью из паблика, не позорьтесь.


    1. maisvendoo Автор
      01.09.2019 13:45
      +1

      Это не нытье, а наезд на в конец обалдевших проприетарщиков, разрывающих отрасль на куски. Не буду убирать, мне не стыдно за эту публикацию


      1. AllexIn
        01.09.2019 14:00
        +1

        Если бы вы там просто аргументированно рассказали что за хрень они творят — это был бы наезд.
        А так, с выкладыванием переписки, придумыванием обзывательств, да еще и с замаскированным этим всем под якобы интервью. Ну плохо со стороны выглядит.
        Читал по диагонали, потому что к первой трети уже устал от такой подачи, но не создалось впечатления что они мудаки. Создалось впечатление что они делают продукт так, чтобы на нём заработать и вам это просто не нравится.


        1. maisvendoo Автор
          01.09.2019 14:09

          Да, мне не нравится, что они, зарабатывая, агрессивно дистанцируются от любой критики. Людей не разбирающихся в физике и математике они давят авторитетом «великих разработчиков». Половина форума на премодерации, читаются и удаляются даже личные сообщения. Нормально да? Я, конечно же не имею права спросить с них ничего, заплатив деньги за лицензию, только кланятся богоподобным и слезно просить…

          На мне они сломали зубы, задавить авторитетом не получилось, пришлось забанить.

          Не разводите тут демагогию — со своей точки зрения я не сойду, так что копья ломать не надо. И не в тему. Спасибо за положительный отзыв, будем стараться и постепенно раскручивать эту машину дальше. Всех благ


          1. AllexIn
            01.09.2019 14:13
            +5

            Вы выбрали лучший из возможных вариантов — сделать своё.
            Зачем вам срач что?

            Нормально да?

            А я не их сужу. Я сужу ваш материал с критикой. И он плох.


            1. maisvendoo Автор
              01.09.2019 14:49

              Я сужу ваш материал с критикой. И он плох

              Это Ваше личное мнение, отличное от мнения многих других людей. Не вижу основания соглашаться с Вашими доводами


  1. Javian
    01.09.2019 09:10
    +2

    Ценность того же Trainz в том, что энтузиасты нарисовали настоящие маршруты.
    Например:

    Маршрут, моделирующий железную дорогу Кольского полуострова Мурманской области от Никеля до Мурманска и от Мурманска до Кандалакши.

    Маршрут разработан по существующему направлению с Белорусского вокзала, сообщением Москва — Вязьма.

    Маршрут построен на основе реалистичной линии Сухум-Адлер.

    Первая часть маршрута Севастополь-Симферополь (до Бахчисарая), протяжённостью 77 км.

    Маршрут начинается от Ладожского вокзала, проходит станцию Волховстрой и заканчивается в Тихвине.

    А какой там движок не так интересно, как проехать по реальному маршруту.


    1. maisvendoo Автор
      01.09.2019 13:46
      +2

      Ценность того же Trainz в том, что энтузиасты нарисовали настоящие маршруты.

      Настоящие маршруты? В Трейнзе? Не смешите меня. В ZDSimulator настоящие маршруты, да, но не в трейнзе. Я знаю о чем говорю


      1. Javian
        01.09.2019 14:00

        В любом случае в сравнении с RRS у других симуляторов маршруты есть.


        1. maisvendoo Автор
          01.09.2019 14:14
          +1

          И у нас есть — вся база маршрутов ZDSimulator. Конвертер в руки, инструкция по конвертации есть на сайте, и едьте по любому маршруту, их достаточно сделано


          1. Merkat0r
            01.09.2019 21:57
            +6

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

            поэтому вангую вам эпикфейл со старта и условно полторы калеки

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


            1. AllexIn
              01.09.2019 22:06
              +1

              Ну это же альфа билд для фанатов, обычные пользователи должны ждать релиз, там очевидно всё будет.


            1. SharkTPO
              03.09.2019 13:17

              Я работал в отрасли тренажеростроения для РЖД (Сапсан), а потому мне кажется, что у человека не «Общедоступная игрушка», а некий тулкит для разработки визуализаций тренажерам. Стоимость таких тренажеров может быть под 10-20 лямов, а приобретать под эти дела движок не хочется часто (товар штучный).
              Мы использовали Юнити, но вынуждены были все с нуля разрабатывать.
              Здесь же дают готовый тулкит для разработки дорог и их визуализации.

              Если рассуждать с такой позиции — то это очень полезная работа.


  1. mactep3230
    01.09.2019 11:01
    +3

    Отлично. Долго не мог понять как тронуться, подсмотрел на видео.
    На скорости 280 пропали стрелки на панели ) комп слабоват. А вообще насколько реально проехать на такой скорости 50 км и не сойти с рельсов?


  1. Faint
    01.09.2019 11:16
    +9

    … и никто не делает симулятор маневровой жд работы (диспетчера), а ведь там самый интерес — успеть освободить путь под прибывающий поезд, организовать безостановочную работу маневровых локомотивов, собрать из нескольких прибывших поездов один на отправку, да даже работа сортировочной горки чего стоит!
    А так конечно здорово везти поезд с одного пункта на другой, но драйва не хватает :)


    1. Cobolorum
      01.09.2019 13:01

      ShortLine 2.0 не подойдет?


      1. DreamingKitten
        01.09.2019 15:01

        Фу :)
        Есть же LocoMania, Train Valley да даже в OpenTTD можно навороченную сигнализацию делать.
        Faint на заметку


        1. SH42913
          02.09.2019 10:06

          В OTTD нельзя замутить автоматическую реогранизацию составов, а значит это уже не маневровые работы.
          Или уже есть патчи позволяющие такое?


          1. deseven
            02.09.2019 14:42

            Патчи с реализацией маневровой работы периодически появляются (емнип видел какой-то еще лет 12 назад), но из-за общей сложности и забагованности в основную ветку не уходят, а потом и сами авторы на них забивают. Последняя попытка вроде бы эта — www.tt-forums.net/viewtopic.php?t=83374


        1. MasMaX
          02.09.2019 14:42

          LocoMania не знаю, но TrainValley это вообще песочница для детей, небольшая головоломка. В TransportTycoon даже при тщательном планировании то и дело аварии случаются, симуляция там так себе


    1. eyno
      01.09.2019 15:38
      +2

      По сортировочной горке был симулятор еще во времена моей учебы в РГУПСе. Насколько он открыт и что стало с проектом далее — без понятия. Да, драйва там хоть отбавляй. ) Легендарная игра "Ну, погоди!", где волк яйца ловит — нервно курит в сторонке.


      1. maisvendoo Автор
        02.09.2019 17:40

        Сортировочная горка жива-здорова. Добавились и другие тренажерные комплексы — если интересно какие — Вам сюда


    1. MikiRobot
      01.09.2019 21:34

      Не все из этого есть, но в openTDD имхо можно долго ковыряться с жд сетью.


      1. serge-sb
        02.09.2019 17:39

        После длительного перерыва в OpenTTD можно (с удовольствием!) провести пару вечеров после работы просто ковыряясь в настройках.


  1. DmitrySpb79
    01.09.2019 12:47
    +1

    Спасибо, интересно. Неужели такие большие отличия российской ЖД от иностранной?

    PS: А метро в симуляторе поддерживаться будет? :)


  1. Areso
    01.09.2019 13:20
    +2

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


  1. LPDem
    01.09.2019 13:27
    +2

    Поиграл минут 30. В целом впечатляет для проекта, который делает один человек.

    Немного обратной связи:
    1) На стартовой локации FPS = 45..48, для RTX 2060 это как-то маловато
    image
    Надеюсь, оптимизации будут.

    2) Встречаются странные модели, висящие в воздухе
    image

    3) Было бы удобно кликать по элементам управления прямо в кабине (в дополнение к горячим клавишам), вместо возвращения к исходной позиции по левому клику. При наведении можно показывать подсказку — что это за контрол и какая у него клавиша.

    4) Провода дальше метров 10 отображаются как отдельные пиксели. В жд симуляторе много проводов, это сильно портит картинку.
    image

    5) Зеркала фейковые (((
    image

    6) Некоторые стрелки выглядят странно
    image

    7) Звуки в кабине моно, не привязаны к реальным положениям источников

    Буду следить за развитием!

    P.S. Автозапуск локомотива — отличная идея )


    1. maisvendoo Автор
      01.09.2019 13:48
      +4

      Проект делают три человека. За отзывы — спасибо, недостатки будут устранятся со временем


  1. pupa700hp
    01.09.2019 13:42
    -3

    Среди разработчиков случайно нет тех кто разрабатывал Lada Racing Club?
    Графон настораживает


    1. maisvendoo Автор
      01.09.2019 13:48
      +2

      Нет


    1. AllexIn
      01.09.2019 14:02

      В симуляторах графон вторичен.
      Ну и очевидно, что такой проект не может нигде найти крутых артистов на весь контент — выйдет слишком дорого.


      1. 0xd34df00d
        01.09.2019 16:38
        +5

        В симуляторах графон вторичен.

        (отрываясь от DCS) Ну не сказал бы.


        Это же просто красиво: тыц тыц тыц тыц тыц.


        Ну или в динамике: https://youtu.be/hBYwKYblKgs (надо бы ещё позаписывать, эх).


        Просто приятно так играть.


        1. AllexIn
          01.09.2019 16:40

          Графон это круто. Просто симуляторщикам он не так важен.


          1. 0xd34df00d
            01.09.2019 16:52

            Ну так DCS один из дву топовых авиасимов таки. И эти же симуляторщики почему-то очень радуются эффектам типа капель на стекле или overwing vapour.


            1. AllexIn
              01.09.2019 16:54
              +1

              А почему бы им не радоваться? Повторюсь — графон это круто.


            1. DreamingKitten
              01.09.2019 16:57

              А второй какой?


              1. 0xd34df00d
                01.09.2019 17:12

                Falcon BMS. Но он какой-то дохлый, и лично я его в топы бы не записывал, но знаю людей, которые фанатеют по тамошней динамической кампании.


                1. DreamingKitten
                  01.09.2019 20:03

                  А, вы только военную авиацию считаете авиасимами. Зря. Я грешным делом запереживал, кто это покушается на тройку бесспорных ГА-лидеров XP+P3D+FSX :)


                  1. 0xd34df00d
                    01.09.2019 20:50

                    Ну ГА это да :) DCS там банально нечего делать.


                    Впрочем, я пару лет назад попробовал погонять FSX, и что-то у меня сложилось впечатление, что flight model там так себе. Самолёты как-то как по рельсам летают.


                    1. DreamingKitten
                      01.09.2019 21:23

                      Да, есть такое. Попробуйте X-Plane. В отличие от FSX, это не заброшенный проект (новые версии регулярно выходят), там более продвинутая флайтмодель и он сам по себе графонистее.


                    1. Dimchansky
                      02.09.2019 08:35

                      Скоро выйдет Flight Simulator 2020, может там флайт модели улучшатся (вместе с графикой).
                      https://youtu.be/ReDDgFfWlS4


                    1. SH42913
                      02.09.2019 10:11

                      Да, в FSX ФМ очень рельсовая, то ли дело X-Plane.
                      Еще в Ил-2БЗБ и Ил-2БЗС неплохая ФМ, но оно про поршневую авиацию времен ВМВ и с меньшим уровнем контроля, нежели тру-симы.


                      1. cadmi
                        03.09.2019 19:07

                        На поршневой времен ВМВ привыкшим к скучным современным свисткам просто нечего контролировать :)

                        Всё что положено для тех времен там в общем-то было (не могу в 2019 говорить о них в настоящем времени) и на ФМ влияло еще как. При тяговооруженности меньше единицы граждане, не умеющие с должным контролем в размен кинетической в потенциальную и обратно сливали только так :)


                    1. DrGluck07
                      02.09.2019 16:17

                      В 2017 году уже не стоило пробовать FSX. Тогда как раз появился X-Plane 11, рекомендую попробовать, благо у него есть бесплатная демо версия.


      1. mistergrim
        02.09.2019 00:48

        Распространённая ошибка — путать устаревший графон и плохой графон.


        1. AllexIn
          02.09.2019 05:32

          А с чего вы взяли что здесь имеет место быть такая путаница?


          1. mistergrim
            02.09.2019 05:34

            Потому что я смотрю на скрины в комментах выше и вижу ужасные вещи.


            1. AllexIn
              02.09.2019 05:40

              А можно чуть конкретнее?
              Расскажу что я вижу плохого:
              трава, отсутствие реалтайм теней
              Всё остальное — чисто проработка контента(отсутствие нормалмапов, низкое качество текстурирования)


              1. mistergrim
                02.09.2019 05:41

                Ну на шпалы на стрелке посмотрите habrastorage.org/getpro/habr/comment_images/5da/84e/844/5da84e844f036d674b61581d9dd1cb3e.jpg
                Я не говорю, что графика безнадёжна, но на данный момент она откровенно плоха.


              1. KvanTTT
                03.09.2019 00:49

                Да уж, трава в виде хаотичных "линий" сразу бросилась в глаза.


  1. Jeka178RUS
    01.09.2019 14:02

    Не запускал не смотрел, но графика очень печальна. Почему не взяли на основу Unreal или Unity?


    1. AllexIn
      01.09.2019 14:03

      Сначала тоже хотел этот вопрос задать. Тем более VR в этот симулятор так и просится, а в том же UE он из коробки есть.
      Но не стал его задавать, т.к. ответ очевиден: делали на том, на чём умеют.


      1. maisvendoo Автор
        01.09.2019 14:18

        Тем более VR в этот симулятор так и просится, а в том же UE он из коробки есть.

        И там, не поверите, уже есть VR. И анреал для этого не обязателен


        1. AllexIn
          01.09.2019 14:33

          Я не говорил что он обязателен, я сказал что там он есть из коробки. Это сильно разные вещи.


          1. grewishka
            01.09.2019 19:33

            А что там там сильно разного. Api у того же oculus простая вещь. Фактически, нужно просто отрендить в две rendertarget с различным положением камеры. Вообще не критичный функционал у движка.


            1. AllexIn
              01.09.2019 19:35

              Шлемов несколько разных, у каждого свой API.
              Насколько я помню — единого стандарта нет.
              Соответственно надо для каждого реализовывать поддержку, чтобы она была.


              1. grewishka
                01.09.2019 22:21

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


                1. AllexIn
                  01.09.2019 22:25

                  Мне кажется вы превратно представляете сложность внедрения поддержки шлема в движок.
                  Steam VR HMD плагин в том же UE занимает несколько тысяч строк кода. Еще примерно столько же контроллер.


                  1. grewishka
                    01.09.2019 22:57

                    Это уже все есть. Например Можно брать и пользоваться.


    1. maisvendoo Автор
      01.09.2019 14:16
      -6

      Почему не взяли на основу Unreal или Unity?

      Потому что
      Не запускал не смотрел

      «Не смотрел, но осуждаю»


      1. AllexIn
        01.09.2019 14:26
        +5

        1 и 2 пункт говорят о том, что вы не умете работать суказанными движками, т.к. на них(во всяком случае на UE) обозначенное делается без проблем.
        Ну а 3 — работаем с тем, с чем умеем.

        P.S.
        Давать ответ на огромную статью, вместо того чтобы привести конкретную выдержку — моветон.


        1. AllexIn
          01.09.2019 14:31
          +2

          Что же касается UE, и на этом и на других ресурсах за два года мной было задано достаточно вопросов, о том как отделить процесс сборки проекта от процесса добавления/изменения используемых им ресурсов, и адекватного ответа я не получил ни в документации, ни от «матерых» геймдевелоперов. Буду очень рад (без сарказма) если меня аргументировано натыкают носом во что-то, что было мной упущено.

          Видимо слишком абстрактный вопрос, вот ответа и не получили.
          Вообще, ответ на этот вопрос можно легко найти, если поискать по запросу «Unreal Engine реализация поддержки модификаций».
          UE естественно прекрасно поддерживает модификации, и сама концепция модов требует, чтобы их можно было создавать не имея доступа к самому проекту.

          каким образом подобные локации можно создавать независимо от редактора и без пересборки проекта?

          А зачем их создавать независимо от редактора?
          UE предоствляет мощный и удобный редактор, собирай в нём всё что хочешь.
          Также никто не мешает грузить данные в рантайме удобным вам способом.


          1. maisvendoo Автор
            01.09.2019 14:42

            Также никто не мешает грузить данные в рантайме удобным вам способом.

            Документацию, описание — в студию. Без этого все Ваши аргументы — пустословие.


            1. AllexIn
              01.09.2019 14:50
              +1

              Давайте чуть больше конкретики. Вопрос слишком абстрактный. В зависимости от задачи это решается по разному.
              Например, когда мне надо было загрузить кастомный файл в рантайме с ландшафтом я делал это так:

              bool cTerraformaGrid::loadFromFile(FString FileName) {
              	TArray<uint8> tfaRAW;
              	if (!FFileHelper::LoadFileToArray(tfaRAW, *FileName))
              	{
              		if (GEngine)
              			GEngine->AddOnScreenDebugMessage(-1, 5.5f, FColor::Red, "Cant open terraforma landscape from " + FileName);
              		return false;
              	}
              
              	return loadFromArray(tfaRAW);
              }

              github.com/Allexin/TerraformaGame/blob/master/UEProject/Source/Terraforma/Landscape/cTerraformaGrid.cpp

              Когда мне надо было, что файл импортировался как ассет — я сделал плагин:
              github.com/Allexin/TerraformaGame/tree/master/UEProject/Plugins


              1. maisvendoo Автор
                01.09.2019 14:58
                -1

                Вопрос слишком абстрактный. В зависимости от задачи это решается по разному.

                Золотые слова. Вот именно.
                Поэтому я и говорю о том, что необходимо обсуждать конкретные предложения по реализации участка ж/д средствами UE или Unity. Есть такие предложение? Пример кода не является законченной технологией. Когда будет описание технологии, или хотя бы её аргументированная концепция, тогда и поговорим предметно. А пока всякие аураны и прочие гиганты индустрии почему-то пишут свой игровой движок, основываясь на графических фреймворках. Видимо, по той же причине, по которой это делаем и мы


                1. AllexIn
                  01.09.2019 15:03
                  +4

                  Есть такие предложение?

                  Отдельная карта + Level Streaming(https://docs.unrealengine.com/en-US/Engine/LevelStreaming/index.html). Вообще ничего придумывать не надо.
                  Карта добавляется как DLC(https://www.tomlooman.com/add-mod-support-to-your-unreal-engine-4-game/). Тут даже кода писать не придется.

                  А пока всякие аураны и прочие гиганты индустрии почему-то пишут свой игровой движок, основываясь на графических фреймворках.

                  О, если бы вы были гигантами — вопрос про использование движка бы не возник.
                  А пока у вас плохая графика, которая тормозит. И врядли силами трех человек без бюджета вы сможете что-то изменить. Это я опять же возьмусь утверждать, потому что до UE в течении 10 лет занимался разработкой графических движков.

                  Впрочем, повторюсь — я вам UE не продаю(не смешите высказываниями про бесплатность, это устойчивое выражение и к цене не имеет отношения), а лишь указываю на несостоятельность ваших утверждений в сторону этого движка.


          1. SH42913
            02.09.2019 10:19

            Вообще, ответ на этот вопрос можно легко найти, если поискать по запросу «Unreal Engine реализация поддержки модификаций».

            При быстрой замене UE на Unity, наспех ничего годного найти не удалось.
            Не ту ли у кого-нибудь под рукой годных статеек по созданию поддержки модификаций игр под Unity?


            1. darkdaskin
              03.09.2019 15:23

              В большинстве известных мне Unity-игр с поддержкой модов, игра просто загружает выбранные пользователем DLL (из папки или Steam Workshop), а они уже патчат код через Harmony. API для интеграции модов в игру желателен, но не обязателен, всё равно всего не предусмотреть.


        1. maisvendoo Автор
          01.09.2019 14:38
          -10

          1 и 2 пункт говорят о том, что вы не умете работать суказанными движками, т.к. на них(во всяком случае на UE) обозначенное делается без проблем.
          Ну а 3 — работаем с тем, с чем умеем.


          1. Кто Вам сказал, что я не умею?
          2. Делается легко — СДЕЛАЙТЕ! Кто Вам мешает?


          1. AllexIn
            01.09.2019 14:40
            +2

            Кто Вам сказал, что я не умею?

            Вы мне сказали, когда делали высказывания о движке, которые не соответствуют действительности.

            2. Делается легко — СДЕЛАЙТЕ! Кто Вам мешает?

            Ой, что вы так остро реагируете? Я вам UE не продаю.


            1. maisvendoo Автор
              01.09.2019 14:46
              -14

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

              Я вам UE не продаю

              UE бесплатен с открытыми исходниками. Если потрудитесь полистать мои статьи, вы найдете там и публикации о сборке этого движка из исходников. Роялти взимается при доходе свыше 1000$ за квартал. Вы даже этого не знаете, и пытаетесь мне что-то доказывать? Идите учите матчать


              1. AllexIn
                01.09.2019 14:52
                +7

                Если потрудитесь полистать мои статьи, вы найдете там и публикации о сборке этого движка из исходников.

                Рокетсайнс прям два скрипта запустить, для сборки UE. То что вы владеете инструментами сборки, ничего не говорит о вашем уровне владения движком(в отличии от ваших высказываний, которые показывают уровень очень явно). Похоже на сборке вы знакомство с UE и закончили.
                Не позорьтесь, ведя диалог так агрессивно вы лишь приближаетесь к тому, что так ненавидите в ZDS сообществе.


              1. opckSheff
                02.09.2019 12:04

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


      1. Jeka178RUS
        01.09.2019 15:22
        +4

        «Не смотрел, но осуждаю»


        Это значит: не даю оценку проекту в целом, механике, реализму или какие там еще есть плюшки, которые представляют, скорее всего, основную ценность. А обращаю внимание на откровенно плохую и устаревшую графику. И потому мне интересно почему вы взяли OSG, а не Unreal который позволит создать гораздо более приятную графику. И да я понимаю, что это тренажер и всем насрать на картинку, там главное что бы кнопки работали правильно.

        На OSG можно сделать хорошую графику, например youtu.be/9L0-ZqLNZzk, но это сложнее и дольше.

        По статье на которую вы сослались:
        Из описанных Вами проблем большинство решаемы и не так сложны как вам кажется. Как мне кажется, проще было бы прикрутить Unreal чем достичь аналогично уровня графики на OSG.


        1. maisvendoo Автор
          01.09.2019 15:39

          На OSG можно сделать хорошую графику, например youtu.be/9L0-ZqLNZzk, но это сложнее и дольше.

          Это симулятор FlightGear, и да он основан на OSG. И его разработчики почему-то не выбрали Unreal. Наверное были к тому причины. Ровно как и у нас.


          1. Jeka178RUS
            01.09.2019 15:49
            +6

            Не надо сравнивать себя с FlightGear, этому проекту столько же лет сколько Unreal, у Вас с ними ничего общего.


            1. maisvendoo Автор
              01.09.2019 16:00
              -7

              Не надо сравнивать себя с FlightGear

              Почему? Потому что, Вы не разрешаете?
              А почему бы и не сравнить — этот проект развивается дольше, и разработчиков там больше, но когда-то этот проект так же точно начинался как и наш. Не вижу ничего криминального


              1. Jeka178RUS
                01.09.2019 16:07
                +4

                *саркастическая улыбка*


                1. maisvendoo Автор
                  01.09.2019 16:21
                  -4

                  Сарказм — Ваше право. Не возражаю


          1. AllexIn
            01.09.2019 15:50
            +6

            Простите что никак не оставлю вас в покое, но вы сами меня провоцируете делая вот такие утверждения, так что просто не могу удержаться. :))
            Очевидно что они не выбрали UE, потому что когда они делали проект — единственный способ получить UE было заплатить много сотен тысяч долларов.
            Ровно по той же причине многие компании до сих пор пилят проекты на своих движках — когда начинали не было UE, а сейчас отказ от legacy будет слишком дорогим.
            Выбор инструмента — это всегда сложный процесс, но будем откровенны, в 99% случаев он основывается не на сложном анализе существующих решениях, а на личных предпочтениях технического лидера проекта. И почти всегда это будет не лучший выбор, а выбор в пользу того, что тех лид знает лучше всего.
            Это, кстати, не плохо.Потому что очевидно что техлид сделает лучше именно на том инструменте, который знает хорошо, нежели потратит кучу времени на изучение нового инструмента, который, возможно, вообще не подойдет.


    1. grewishka
      02.09.2019 01:02

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


      1. maisvendoo Автор
        02.09.2019 07:18

        Вот именно, и я о том же твержу уже третий год — зачем брать игровой движок чтобы потом придти к необходимости внутри него писать игровой движок


      1. AllexIn
        02.09.2019 11:02
        +3

        Только одного высококлассного рендера уже достаточно чтобы брать готовое.
        Всё что вы говорите актуально для закрытых движков, когда либо пользуешься тем что есть, либо иди нафиг.
        В OpenSource движке вполне возможно использовать только часть.
        К примеру я работаю в компании, которая делает стратегию на UE. Совсем не типичное применение движка. Я как раз занимаюсь поиском пути и связанными с ним задачами. Несмотря на то, что в UE есть поиск пути и он работает даже в стратегии — мы приняли решение писать свой.
        Ну так мы ровным счетом ничего не потеряли от того, что пишем свой поиск пути. В кастомном движке мы всё равно его также бы писали. Зато нам не надо думать обо всем что уже есть готовое.
        Это вообще традиционная проблема геймдева прошлого десятилетия — люди годами писали движок для игры, вместо того чтобы делать игру. Современные движки позволяют делать игры и лишь изредка дописывать то, чего не достает.


        1. grewishka
          02.09.2019 11:33
          -1

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


          1. AllexIn
            02.09.2019 11:40
            +1

            Ну если вас устраивает графика уровня форвард с треугольником, текстурой и фонгом, то конечно.
            А вот банальныq deffered shading с тенями, SSAO и полупрозрачностью повторить, да так чтобы ничего не заартифачило в процессе — это уже работа на много сотен часов.
            Не говоря о том, что при апдейте движка вы получите новые фичи GAPI из коробки. Не придется даже в код лазить, чтобы получить новые возможности.
            А свой рендер надо актуализировать. Ну и в целом, очень мало кастомных движков с маленькими командами, которые могут похвастаться возможностями графики того же UE или хотя бы Unity. И под возможностями графики я подразумеваю не выкрученный bloom, а все таки немного более сложные штуки типа каскадных теней. И да, я понимаю, что каждая фича по отдельности без проблем реализуется. Благо таже nvidia регулярно публикует пейперы по актуальным технологиям. Но вот заставить всё это работать не в рамках обособленной демки, а в комплексе — отдельная и сложная задача.

            P.S. Кроссплатформенность вообще побоку, порт при нормальной архитектуре делается за пару дней на платформу.


            1. grewishka
              02.09.2019 12:03

              1. AllexIn
                02.09.2019 12:27

                Я не понял чего вы этими видосами сказать хотели.
                Кстати, не стоит в качестве примера хоршей графики приводить ночь и мокрую погоду.
                Скажем так, эти две вещи показывают не хорошую графику, а выпячивают пару технологий, которые в других ситуациях не очень видны. Тот же блум пресловутый и нормалки. Ну и убирают всё остальное. А еще глаза ОЧЕНЬ любят яркие пятна. Поэтому когда разрабы открыли для себя блум — его везде стали пихать и первое время игроки были в восторге. Но это не делает графику лучше. Блум — дешевый обман, о чем пользователи достаточно быстро догадались. именно поэтому я в предыдущем сообщении написал что блум это не пример крутой графики.

                Если вы погуглите GTA 5 PhotoRealistic Graphics, самые популярные комменты будут:

                first time ever when I see a graphic mod without wet ground

                Wait what.....no water on the road… Glad someone really understand what realistic graphics mean!

                its not realistic...we need water on the streets...add some water bro


                Но это лирика, поболтать захотелось. Так что вернусь к первоначальному вопросу: что вы этими видосами сказать хотели?


                1. grewishka
                  02.09.2019 12:43

                  Что как-то не помогли движки с «высококлассным рендером» переплюнуть графику десятилетней давности.
                  У кого руки откуда надо растут, тот и без оберток обойдется, и мне гораздо приятнее на их творчество смотреть.


                  1. AllexIn
                    02.09.2019 14:39

                    Вы просто взяли дерьмовое видео и выдали его за «В 2016 году вот такая графика была в UE.»
                    Ну нет, не была. Все технологии из демки от ATI в 2016 году в UE уже были.
                    Например вот, нормалки + Depth of field:


                    1. grewishka
                      02.09.2019 15:01

                      Большая часть первого видео это дизайн уровня, а совсем не рендера. Его можно создать в разных редакторах или программах, это не критично. А отрендить я могу и сам, написав такой же шейдер. Это я и пытаюсь сказать. Если физическая библиотека или контроллер персонажа мне предоставляют какой-то функционал, который без них у меня вообще отсутствует. То рендер это просто какая-то обертка и без того высокоуровневого апи директх или опенжл или вулкана, которые в общем-то не требуют никаких дополнительных оберток и создавались с тем рассчетом, что люди вполне этим апи могут пользоваться. Они же не предлагают с драйвером работать. Так что, если нужен просто рендер без игровой логики, персонажей и т.д, не вижу необходимости в каком-то громоздком движке.
                      Второе видео тоже не поражает какой-то суперграфикой, что как бы подтверждает мысль, что дело не в движке.


                      1. AllexIn
                        02.09.2019 15:10

                        Графический Движок — это все технологии из актуальных демок собранные в одном месте с удобным набором настроек.
                        В демке от AMD вообще я вижу только Paralax+Normal map которые прям выпячивают на кирпичах и мостовой, отражения(наплоскости) и немного динамических теней. Всё остальное — грамотная камера и контент.
                        И, тут, кстати можно поговорить о разнице между демкой и не демкой. Данная демка работает в очень ограниченном пространстве, что позволяет без проблем использовать обычные shadow maps. Все истончники света очень ограниченного радиуса действия, соответственно потеря разрешения не видна. В демке пофиг. А в реальном продукта вам придется что-то с этим делать. При этом стоит помнить, что техники SM более высокого уровня гораздо сложнее в реализации.
                        Ваши утверждения про, вот GAPI там всё есть выглядят как «вот кирпичи и раствор, считай готовый дом».


                        1. grewishka
                          02.09.2019 15:29

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


                          1. AllexIn
                            02.09.2019 21:44

                            Я не люблю этот вопрос, но просто не могу не задать.
                            Вы писали когда нибудь движок игровой, для 3D игры с актуальным на момент написания стэком технологий(я не имею ввиду с топовым набором технологий, тут ответ очевиден, но хотя бы с минимальным набором: свет, тени, постэффекты)?


                            1. grewishka
                              03.09.2019 09:42

                              А почему тут ответ очевиден? Я могу дать пример своего кода и попробуйте сделать это в анриале.


                              1. AllexIn
                                04.09.2019 17:45

                                Не надо примера кода. Давайте пример графического эффекта. Иными словами «картинку которую надо повторить».

                                А почему тут ответ очевиден?

                                Потому что ваши утверждения не соответствуют тому, что говорят профессионалы делающие топ. Либо вы очень крутой профессионал с альтернативной точки зрения, либо нет. Я за бритву.


                      1. lain8dono
                        02.09.2019 23:26

                        высокоуровневого апи директх или опенжл или вулкана

                        OpenGL и старый DirectX — это высокоуровневые интерфейсы. Vulkan, последний DirextX и Metal — это низкоуровневые интерфейсы. На столько, на сколько это вообще возможно для абстракции над железом.


                        Условная демка на Vulkan, которая "делает ничего", а по факту только инициализацию и отрисовку условного треугольника, будет занимать далеко не одну сотню строк.


                        1. grewishka
                          03.09.2019 10:50

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


                          1. AllexIn
                            04.09.2019 17:47

                            А что для вас «низкий уровень»?
                            ИМХО вы путаете вендор специфик и уровень API.
                            Типа если надо заморачиваться с вызовами под конкретную железку — это низкий уровень, а если об этом удмтаь не надо — высокий. Это не верное видение уровней.
                            Вендорспецифик API может быть высокоуровнем и унивесральнео API может быть низкоуровневым(Как тот же Вулкан).


                          1. lain8dono
                            04.09.2019 18:54
                            +1

                            После отрисовки треугольника проще не становится. Опять же я говорю именно про современные штуки вроде DirectX 12 или Vulkan. Не о старых, вроде OpenGL (которых вообщет много разных вариаций). Там да, всё быстро и просто. Настроил буферы, втыкнул шейдеры и рендерь на здоровье.


                            В чём сложности? Вам самим надо следить за всякими штуками вроде синхронизаций. Прочими управлениями памяти заниматься тоже вам. Самая большая проблема с этим — всё работает, но изредка падает. Добро пожаловать в параллельный мир с параллельным программированием. И да, если вам не особо интересен многопоточный рендеринг, то вам это всё и не нужно, возьмите старые добрые проверенные штуки.


                            Кстати в том же Vulkan состояние конвейера менять особо и нельзя. Но можно создать новый. Вот вам нужно например вызвать шейдер с немного разными параметрами (например хотите конвейер с другим Blending): хоба, у вас уже два конвейера. Или уже три, по той причине, что вам это собрать вместе нужно.


                1. Jeka178RUS
                  02.09.2019 13:01

                  О да, Вы абсолютно правы, накрутить блума, побольше бликов, какой-нибудь chromatic aberration и вуаля у нас супер графика, а по факту навалили постэфектов


                  1. grewishka
                    02.09.2019 13:12

                    Ну взять этот топик. На сайте OpenSceneGraph тоже написано, что высокопроизводительный движок. По факту при весьма посредственной картинке вообще без ничего кроме геометрии с текстурой 40 фпс на GTX 2060 где-то в комментах написали. Это как такое вообще может быть.


                    1. Jeka178RUS
                      02.09.2019 13:37

                      Потому, что нужно уметь его готовить. Методов оптимизации так много, что я даже не возьмусь пытаться предполагать почему тут такая низкая производительность.


                      1. grewishka
                        02.09.2019 13:58

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


                        1. AllexIn
                          02.09.2019 14:40

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


                        1. Jeka178RUS
                          02.09.2019 14:46

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


  1. lain8dono
    01.09.2019 14:57
    +3

    Почему выбор пал на GPLv2? Выглядит достаточно странно на самом деле. Есть же по меньшей мере GPLv3 и всякие вариации LGPL. Но copyleft-лицензии выглядят "полузакрытыми" ибо по факту переиспользование этого кода во многих случаях невозможно.


    Вообще я рекомендую вам сделать ядро физики/механики в виде отдельной подсистемы и выпустить под пермиссивной лицензией. Самое модное сейчас: сдвоенная лицензия MIT/Apache 2.0. Пермиссивная лицензия делает проект гибче в долгосрочной перспективе. И в целом выглядит более привлекательно. При этом "контент" в виде моделек поездов и их настроек можно совершенно отдельно лицензировать.


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


    Суммируя у вас будет три части:
    1) Ядро с физикой и механиками
    2) Графический движок
    3) Набор моделек, текстурок и прочих ресурсов


    1. maisvendoo Автор
      01.09.2019 15:00

      Но copyleft-лицензии выглядят «полузакрытыми» ибо по факту переиспользование этого кода во многих случаях невозможно.

      Переиспользуйте на здоровье. Только не забудьте поделится исходниками с сообществом open source. Лицензия будет именно такой, и никакой иной. Точка


      1. lain8dono
        01.09.2019 16:37
        +4

        Лицензия будет именно такой, и никакой иной. Точка

        Мой вопрос больше о том, почему была выбрана именно копилефт-лицензия и почему именно вторая версия, которая уязвима к тивоизации.


        Переиспользуйте на здоровье.
        Только не забудьте поделится исходниками с сообществом open source.

        Ещё мне придётся заразить свой код лицензией GPLv2. Мне недостаточно будет вскрыть исходники. О каком здоровье идёт речь, если код болен неизлечимой вирусной лицензией?


        (Я не оспариваю ваш выбор, просто забавная игра слов)


        1. AllexIn
          01.09.2019 16:56
          +2

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


          1. maisvendoo Автор
            01.09.2019 21:09
            +1

            Использование GPL v2 связано с желанием обезопасить проект от закрытия кода его форков, с последующей коммерциализацией.


            1. lain8dono
              01.09.2019 21:52
              +3

              Использование GPL v2 связано с желанием обречь проект на медленную смерть без денег, а также обеспечить отсутвие возможности переиспользования любых участков кода в сторонних проектах.

              А почему не GPL v3? Почему именно v2, а не v3? Why?


  1. vlivyur
    01.09.2019 15:10
    +1

    С openstreetmap бы подружить… Там как раз есть маньяки, что выправляют ж/д маршруты.


    1. maisvendoo Автор
      01.09.2019 15:33
      +1

      Думал об использовании этой системы, продолжаю думать, возможно применим


      1. AllexIn
        01.09.2019 15:52

        Возможно вам стоит скоординироваться с Романом:
        gamedev.ru/projects/forum/?id=238486

        Он даже игру выпустил с генерацией карт на базе OSM. Я не помню чтобы он выкладывал своё решение как OS(хотя вроде бы собирался), но может быть не откажется вам помочь.


        1. maisvendoo Автор
          01.09.2019 21:16
          +1

          Судя по роликам — крутая штука. Надо будет прикупить попробовать


        1. SH42913
          02.09.2019 10:55

          Какая годнота!
          Спасибо за ссылку


  1. deseven
    01.09.2019 16:22
    +18

    Зашел почитать про симулятор и отзывы о нем, а тут какой-то адовый срач :)

    Автору стоило бы научиться чуть адекватнее реагировать на критику и острые вопросы. Просто наблюдение.


    1. vvzvlad
      01.09.2019 18:15
      +2

      Уважаемый maisvendoo, к сожалению, из тех людей, которым силы для работы дает срач и желание поплевать на оппонента. Проект в результате получается крутым (для своих условий разработки, без шуток), но вот в процессе этого вокруг несколько… плохо пахнет. Что прискорбно.


      1. Zuy
        01.09.2019 21:07
        +1

        Он же вроде в ВУЗе преподает ещё, не знаете он со студентами так же общается?


        1. maisvendoo Автор
          01.09.2019 21:19
          -2

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


          1. vvzvlad
            01.09.2019 21:25
            +5

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


            1. maisvendoo Автор
              01.09.2019 21:56

              Я кого-то обозвал бездельником? Просто я очень не люблю, когда переливается из пустого в порожнее, особенно касательно вопросов, которые уже освещались ранее. Никакой новой информации эта дискуссия не привнесла, конструктивных предложений технологического характера тоже. Для чего она — чтобы доказать как я неправ, не используя UE4?

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


              1. AllexIn
                01.09.2019 22:01
                +2

                Для чего она — чтобы доказать как я неправ, не используя UE4?

                Публичные дискуссии нужны для того, чтобы те, кто еще не сделал выводов мог их сделать.
                Именно поэтому я и писал что не продаю вам UE. Вполне очевидно что на текущем уровне проекта переход на другой движок — идиотизм. Но обсудить причины почему выбор был сделан другой всё равно не лишнее. Не вы первый и не вы последний кто еще будет симуляторы делать.

                конструктивных предложений технологического характера тоже.

                А вот это обидно. Я вроде прямым текстом рассказал как делать маршруты в UE, с ссылками на документацию. :)


                1. maisvendoo Автор
                  01.09.2019 22:27
                  +4

                  А вот это обидно. Я вроде прямым текстом рассказал как делать маршруты в UE, с ссылками на документацию. :)

                  Согласен, палку я немного перегнул, за что приношу извинения. Изучу


          1. Zuy
            01.09.2019 21:31
            +10

            Да ладно вам, ну интересно же. Не часто такая интересная комбинация поста и комментариев встречается.
            image


      1. lain8dono
        01.09.2019 22:21
        +2

        А ещё срач в комментариях накручивает счётчик комментариев. Пиар такой пиар.


        1. maisvendoo Автор
          03.09.2019 13:16

          Ну так спасибо тем, кто этот срач организовал. Он уже второй день протекает без всякого моего участия


    1. Yeah
      03.09.2019 12:07
      -1

      Автор имеет отношение к РЖД. Какого отношения к оппонентам вы ждали? :)


      1. maisvendoo Автор
        03.09.2019 13:09

        Я не имею никакого отношения к РЖД. Равно как и кольцо из 9-ти транспортных вузов РФ. Потрудитесь сперва узнать, к чьей сфере ответственности они относятся, прежде чем формулировать умозаключения


  1. jevius
    01.09.2019 17:53
    +1

    Почему на сайте только под винду?


    1. maisvendoo Автор
      01.09.2019 23:02
      +1

      Потому как со способом дистрибуции в зоопарк линукс-дистрибутивов я еще не определился. Обязательно будет, так как проект разрабатывается в этой среде, в винде осуществляется только контрольная сборка


      1. vvzvlad
        02.09.2019 01:39

        Какой зоопарк-то? Пакет под дебиан/убунту x64 закроет процентов 70 потребностей.


        1. maisvendoo Автор
          02.09.2019 07:20

          Согласен. Это впереди, сам хочу сделать, но рук не хватает


      1. lain8dono
        02.09.2019 03:35

        А в чём проблема собрать так, чтоб без зависимостей? Тупо один бинарник и всё. Даже libc можно свой таскать. Можно даже автоматически делать эти штуки. Вам об этом уже говорили вот тут https://github.com/maisvendoo/RRS/issues/2. Я бы даже помог бы с этим, но у вас GPLv2, а вы не говорите, почему именно v2, а не v3. Вот например если не хочется быть зависимым от системного libc есть https://www.musl-libc.org/, но она распространяется по лицензии MIT, это значит, что данную библиотеку можно использовать в любых проектах вне зависимости от того, является ли их код открытым или не является. Эта лицензия даже с GPL совместима. И с v2 и с v3. Так что я не вижу причин использовать именно v2, кроме случаев, если вам по непонятной причине нужна возможность тивоизации. https://appimage.org/ — предложенный вам способ дистрибуции вашей игры. Он тоже лицензирован по лицензии MIT и потому подходит для коммерческого применения. Не только подходит, но и используется. Поскольку позволяет сильно упростить работу сразу со многими дистрибутивами. В том числе хорошо подходит для игровых проектов, для которых в силу разных причин требуется привязка к конкретным версиям библиотек. Одна из таких причин — при обновлениях зависимостей вашего проекта может ломаться совместимость. Иногда сильно и беспощадно. Хуже того, в разных дистрибутивах могут быть сильно разные версии библиотек. Например ArchLinux — у него нет версий, кроме самой последней и свежей. В противовес этому у Ubuntu или там у Fedora более стабильные пакеты и вместе с тем менее свежие. В добавок одновременно могут существовать несколько живых версий этих дистрибутивов. Решение? Только что озвучил. Вам в обязательном порядке нужна эта штука под названием AppImage, которая, на минуточку, распространяется по лицензии MIT. Её главная и основная цель — помогать разработчикам в доставке их бинарников с удобной установкой и вот этим всем. Вне зависимости от того, покусал ли их Ричард Мэттью Столлман (являющийся главным пиарщиком GPLv2, GPLv3, LGPL и других) или нет.


        Так почему? Почему именно GPLv2, а не GPLv3? Кстати. Будете смотреть в сторону улучшения графики — гуглите Physical Based Rendering, хотя вы наверняка уже об этом слышали. Скорее всего вы найдёте подходящие шейдеры где-то на просторах гитхаба. Скорее всего вы вытащите кусочки этих шейдеров из какой-то библиотеки или движка. Скорее всего этот движок будет лицензирован по пермиссивной лицензии и вам совершенно не обязательно будет сохранять эту лицензию, будь то MIT или BSD, но будьте осторожны с BSD-лицензиями ибо там есть вариант, в котором вы будете обязаны предоставить список всех разработчиков со всеми их даже самыми дальними родственниками и друзьями, хотя на самом деле эти штуки никого не волнуют и вообще всем пофиг, пока вы не лезете к ним с какой-то фигнёй прямо как я сейчас.


        Так почему? Почему именно GPLv2, а не GPLv3?


        1. Sabubu
          02.09.2019 18:54

          Далась вам эта лицензия? Факт, что она свободная и позволяет использовать код, значит, ваши контрибуции не пропадут.


          Насчет AppImage — там еще есть Snapcraft и еще что-то. Недостаток AppImage имхо в том, что там есть дополнительное время на распаковку, что замедляет запуск. А "распаковать" его один раз при установке вроде нельзя.


          1. lain8dono
            02.09.2019 23:54

            значит, ваши контрибуции не пропадут.

            Для меня код, который я отправил в GPL — потерян. Как бы мне не было интересно (на самом деле никак), но никакой код оттуда я использовать в каких-то своих открытых и бесплатных проектах не могу.


            Недостаток AppImage имхо в том, что там есть дополнительное время на распаковку, что замедляет запуск.

            Это не всегда является недостатком. Зависит от проекта и целей. Лично мне больше нравится создание чистых бинарников без зависимостей, а упаковать их можно самыми разными способами.


  1. tronix286
    01.09.2019 17:57
    +3

    Посмотрел видео-ролик. Ну про графику ничего не скажу, как бы это — сим и фиг с ней. Но поезд едет НЕреально. Долго думал почему, наверное потому что на поворотах вагоны не раскачиваются из стороны в сторону, в кабине нет работы аммортизаторов (рессор), которые бы немного вверх/вниз дрыгались.


    1. GavriKos
      01.09.2019 19:56

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


    1. Dimchansky
      02.09.2019 08:51

      Мне показалось ещё, что всё очень дёргается — то ли фпс маловат, то ли обсчет физики движения происходит реже, чем отрисовка.


    1. podde
      02.09.2019 17:12

      Я вам больше скажу: на 20 секунде ролика поезд едет, а отражение улицы в стёклах вагонов – нет.


  1. kinall
    01.09.2019 20:27

    ни в одном из перечисленных проектов нет и не будет нормальной реализации автоматических тормозов системы Матросова.

    А чем эти тормоза отличаются от остальных? Можно попросить объяснить для человека «не в теме»?


    1. maisvendoo Автор
      01.09.2019 21:00
      +2

      По большому счету все железнодорожные автотормоза имеют один принцип действия — пневмоуправление приборами торможения за счет снижения давления в тормозной магистрали (ТМ). Различия обуславливаются конструкцией тормозных приборов, в частности воздухораспределителей (ВР).

      На отечественном подвижном составе пассажирской службы устанавливался ВР усл. №292, который активно заменяется сейчас на ВР усл. №242. На европейских дорогах распространены ВР типа КЕ. Так вот, ВР 292/242 работает на разнице двух давлений — в запасном резервуаре (ЗР) и ТМ. КЕ работает на трех давлениях — в ТМ, специальной рабочей камере (РК), фиксирующей уровень зарядного давления, и тормозном цилиндре (ТЦ). За счет этого, ВР типа КЕ позволяют ступенчатый отпуск тормоза, наш же пассажирский ВР делает только полный отпуск. У нас считается, что для реализации возможности ступенчатого отпуска достаточно электропневматических тормозов (ЭПТ), которыми так же оснащается весь наш пассажирский подвижной состав.

      Наш ЭПТ не обладает автоматичностью действия, при обрыве провода ЭВР срабатывают на отпуск.

      Как там у американцев, я не в курсе, не изучал их приборы, но догадываюсь что там бал правит фирма Вестингауз.

      Аналогичные различия и по приборам управления тормозами, в частности по кранам машиниста. Наш кран 395 специфический прибор с весьма характерным поведением, которое зарубежными симуляторами никак не отражается


      1. lain8dono
        01.09.2019 21:56

        Чем эта вся фигня отличается с точки зрения симуляции? Какие подводные камни?


        1. maisvendoo Автор
          01.09.2019 21:58
          +1

          Тем, что эти вещи в продуктах типа трейнз, не симулируются, или симулируются неверно


          1. lain8dono
            01.09.2019 22:14

            В чём именно состоит симуляция? Помимо условной формулы трения.


            1. maisvendoo Автор
              01.09.2019 22:32
              +1

              В моделировании поведения давления воздуха в характерных точках тормозной системы. Разве дело только в трении — там до трения масса других процессов происходит: сброс давления через кран машиниста из ТМ в голове поезда, распространение тормозной волны по ТМ, сработка ВР, наполнение тормозных цилиндров. Все эти процессы описываются дифференциальными уравнениями.

              Так что тормоза ПС — дело не простое


              1. lain8dono
                01.09.2019 23:57
                +1

                Разве нельзя получить реалистичное (с игровой точки зрения) поведение тормозной системы без точного моделирования деталей его реализации? Симуляция обязана быть точной как максимум до степени неразличимости результата "на глаз". А ещё она должна быть быстрой.


                1. gosha-z
                  02.09.2019 00:24

                  Как вы думаете, насколько разнится поведение хопров и налива на торможении? И как зависит размер «бабаха» в спину при неаккуратном сжатии состава?


                  1. lain8dono
                    02.09.2019 01:02
                    +1

                    Понятия не имею. Бесконечно далёк от всего этого. Потому и спрашиваю.


                1. norguhtar
                  02.09.2019 08:08

                  Нет конечно. То как тормозит поезд на рельсах зависит от веса вагонов, количества вагонов в поезде. Как вы понимаете без моделирования вы сможете максимум один фиксированный вариант сделать. Проще смоделировать.


      1. kinall
        01.09.2019 22:20
        +1

        Спасибо за подробный ответ!
        То есть у них есть ступеньки, а у нас нет, верно? Тогда почему нельзя в их симуляторе уменьшить число ступеней до одной? Тогда получится, как у нас — либо открыто, либо закрыто. Нет?
        Кстати, а что значит «усл. N»?


        1. maisvendoo Автор
          01.09.2019 22:38
          +1

          Условный номер, по сути номер модели тормозного прибора. Честно говоря, для меня неясен принцип их назначения, это уже специфика нашего МТЗ Трансмаш. Например кран 395 это более ранний их продукт, а вот современный кран с дистанционным управлением имеет усл. №130. До 395 использовался 222 кран, а еще раньше, в эпоху паровозов — 328 кран. Немного напоминает принцип нумерации моделей видеокарт radeon, честно говоря.

          Вообще это похоже на то, что это просто номер за которым данный прибор числится на заводе в производственной документации. И нумеруются все они сквозным образом — нет крана и воздухораспределителя с одинаковым номером.

          По первому вопросу — нет, ступени торможения отпуска, в ВР КЕ нефиксированы, а зависят от глубины разрядки ТМ, то есть от разницы между текущим давлением в ней, и начальным давлением (зарядным давлением). Есть много ещё нюансов, возможно напишу про это статью


      1. BorisStratula
        01.09.2019 22:53
        +1

        Вы можете всё это расписать в отдельной статье? Очень интересно.


  1. gosha-z
    01.09.2019 20:42

    Пока что это всего лишь процедурный (точнее, кабинопроцедурный) симулятор локомотива…


    1. maisvendoo Автор
      01.09.2019 20:45
      +1

      Пока что да


      1. gosha-z
        01.09.2019 20:53

        Озвучили бы тогда дорожную карту, какой функционал планируется и с какими приоритетами?


        1. maisvendoo Автор
          01.09.2019 21:06
          +1

          В планах на ближайший год — переработка графического клиента и аудиоподсистемы. Работы по графике тесно связаны с переработкой формата маршрутов и написание собственного редактора для их строительства. От качества реализации этой задачи будет зависеть то, каким образом будет реализована система ж/д-сигнализации и энергоснабжения.


  1. GavriKos
    01.09.2019 21:56

    Увы, на интеловской видеокарте нормально рендер не работает — все мигает, такое ощущение что часть плоскостей просто то отсекается, то рендерится.
    И в итоге от моих кривых рук заглючил и локомотив — все приборы дергались между минимальным и максимальным значением, рукоять КМ (вроде так) тоже прыгала.


    1. AllexIn
      01.09.2019 22:03

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


      1. GavriKos
        01.09.2019 22:08
        +2

        99% игр у меня работает. И, не продолжения холивара ради — большинство игровых движков — тоже. Ваши сведения устарели лет так на 10 наверное.


        1. AllexIn
          01.09.2019 22:10

          Вполне возможно.


        1. MasMaX
          02.09.2019 15:04

          Тоже самое. У меня два компа, один на 5000, второй по-моему 3 поколения Intel HD. Работает большинство игр, тем более многие ноуты только с Интелом. Странно будет игнорировать этот сегмент.


      1. Jeka178RUS
        02.09.2019 13:14

        Не то что бы гадские, просто сильно слабые. Не помню что бы интеловская карта мне выдавала какое-то не адекватное поведение, а вот наоборот помню случай: интел был единственный кто указал на ошибку в шейдере, остальные молча проглотили с непредсказуемым поведением.


  1. mg12
    01.09.2019 21:58
    +1

    Десять лет назад работал над прогнозной моделью сходов поездов. Сход поезда — редкое событие, поэтому реальных данных недостаточно для обучения модели, пришлось писать симулятор. В результате, симулятор нагенерил около 300 лет данных, на которых мы обучили упрощённую, но вполне рабочую модель на одном высокорисковом участке жд. На основе модели теперь предлагались опережающие ремонты на этом участке.
    Возможно ли ваш симулятор расширить до подобных задач? Думаю, РЖД и КТЖ это было очень интересно.


  1. river-fall
    01.09.2019 23:08

    Странно, что в статье не вспомнили Trans-Siberian Railway Simulator, он правда еще не вышел

    Игра шуточная, конечно :)


    1. maisvendoo Автор
      01.09.2019 23:37
      +1

      Это где машинист пьет пиво и гоняет за волками с бензопилой?


      1. lain8dono
        01.09.2019 23:59
        +1

        Для среднего человека, интересующегося симуляторами поездов, она будет интереснее.


  1. MSC6502
    01.09.2019 23:48

    В ролике, когда показано движение поезда со стороны, абсолютно неестественная картинка — состав на одном месте в середине экрана, а движется окружающий пейзаж. Пусть и состав движется хоть немного. Будет более естественно.


  1. Sabubu
    02.09.2019 02:33

    Может быть мне показалось, но на общих планах (например, с 0:17) движение поезда выглядит как-то неестественно, такое ощущение, что он является каким-то идеально жестким телом. То есть вагоны не покачиваются на рессорах при движении, не движутся относительно друг друга.


  1. Bookvarenko
    02.09.2019 06:20

    Отлично, будем посмотреть! Всегда нравилось жд-хозяйство. Все эти стрелки, семафоры… Ещё бы депо сделали, где можно квесты по ремонту и обслуживанию тепловозов и электровозов проходить, было бы вообще шикарно.


  1. Doomsday_nxt
    02.09.2019 07:46

    А почему не вложили свои силы в OpenBVE? openbve-project.net


    1. maisvendoo Автор
      02.09.2019 11:32

      А вы код динамики поезда там видели? Мне стало страшно, когда я туда глянул. Вообще часть проектов по тренажерам у меня в вузе использовала OpenBVE, я даже написал плагин для Belnder для импорта/экспорта моделей, а то бвешники писали 3Д-модели руками в блокноте до этого. Ели интересно, то он тут github.com/maisvendoo/blenderCSV. Но нет, не подошло нам это


  1. amarao
    02.09.2019 15:19

    А каким образом достоверное воспроизведение ЖД техники соответствует запрету на изображение пророка транспортных объектов? Не является ли это формой особо изощённого шпионажа, чтобы шпион узнал как выглядит Мост?


  1. DrGluck07
    02.09.2019 16:13

    Привет разработчикам железнодорожных симуляторов от разработчиков плагинов для авиационных симуляторов.
    Глядя на тот же X-Plane мне кажется, что главное в симе — вот эти самые сотни и тысячи аддонов/плагинов: самолёты, аэропорты и сценарии, различные дополнения для расширения функционала. Если они есть (высокого качества, оф коз), то сим взлетает, если их нет, то всё плохо. Массовому пользователю пофигу какие там тормоза симулированы, если не на чем ездить и нет станций. В связи с этим вопрос: как вы будете привлекать разработчиков? Энтузиазм это прекрасно, но что-то я не знаю хорошо проработанных бесплатных самолётов. Во-всяком случае чтоб они были на уровне моделей за 60+ долларов.


    1. maisvendoo Автор
      03.09.2019 01:24

      Массовому пользователю пофигу какие там тормоза симулированы, если не на чем ездить и нет станций. В связи с этим вопрос: как вы будете привлекать разработчиков?

      Это смотря какому пользователю. Нишевому не пофигу. И когда шло дорелизное общение с людьми в этом заинтересованными, было понятно — что возможность разработки дополнений с учетом нюансов работы агрегатов ПС колеи 1520 — это главное, что ожидалось


      1. lain8dono
        03.09.2019 06:15

        Нишевому не пофигу.

        А что у вас за пользователи и сколько их?


        1. maisvendoo Автор
          03.09.2019 07:23

          Упорно не могу понять, почему Вы, и кое-кто еще здесь в обсуждении, пытается навязать мне свою систему ценностей, задавая провокационные вопросы, ведущие к флуду… Какая Вам разница, сколько — они есть, и поверьте — мне этого достаточно


  1. DrGluck07
    02.09.2019 16:47

    Установил, запустил, проблема: окно с выбором настроек запустилось на основном мониторе, но симулятор запустился уже на втором мониторе и я не знаю как его переместить на основной.


    1. maisvendoo Автор
      03.09.2019 01:16

      cfg/settings.xml
      меняем параметр ScreenNumber с 1 на 0


      1. DrGluck07
        03.09.2019 11:34

        Спасибо


  1. pashkov
    03.09.2019 12:16

    Зацеперы будут?


    1. vlivyur
      03.09.2019 16:41

      А машинки таранить можно будет?


    1. lain8dono
      04.09.2019 19:37

      ULTIMATE NON-STOP MULTI-TRACK DRIFTING — вот, что нужно настоящему взрослому симулятору.


      В обсуждаемой игре подобного нет. Скучная, не качайте.