MAL4X Научно-технический форум разработчиков симуляторов и автоматики


Симуляторы перегрузок. DIY электроника. ЭВМ. Компьютерные сети.
Up

Реализация поддержки моушен платформ в нашей игре

Строим реалистичный симулятор перегрузок своими руками. Рекомендации. Советы.

Модераторы: Death_Morozz, null, Ale

Re: Реализация поддержки моушен платформ в нашей игре

Сообщение SimAl » 07 мар 2018, 18:27

Вот, например дока по протоколу телеметрии для LFS. Я не разбирался, но по-логике, обычно вы в своей игре создаете серверный сокет и всем, кто к нему подключится вываливаете какую-то структуру заранее оговоренного вида с полезной информацией - либо по запросу, либо, скорее всего, с некоторым небольшим периодом, скажем 1-10мс. Можно реализовать какой-то готовый протокол - к некоторым играм на сайте SimTools есть (по крайней мере для версии 1.3 были) примеры плагинов с исходниками для некоторых игр - можно посмотреть как там реализовано, реализовать в своей игре, подправить при необходимости исходники плагина и собрать сам плагин для своей игры. Какие данные вы будете отправлять это уже вам решать. Для симулятора нужны вектор положения машины и вектор ускорений. Можно еще добавить скорость, обороты, передачу, время на круге, место, включение фар... что угодно в общем. Кроме сокета это же можно реализовать через расшаренную память - такой пример для SimTools тоже есть (был).
Некоторые игры кроме вывода телеметрии также позволяют управлять ими через сокет. Скажем в nolimits2 можно запускать определенный уровень, игра умеет сихронизироваться на нескольких компьютерах, чтобы несколько человек в ВР-очках могли "ехать" в одной кабине.
Аватара пользователя
SimAl
SIMER
 
Сообщения: 362
Зарегистрирован: 22 ноя 2013, 20:03
Откуда: Кропивницкий
Благодарил (а): 56 раз.
Поблагодарили: 237 раз.
Баллы репутации: 108
ТехнарьТехнарь

Re: Реализация поддержки моушен платформ в нашей игре

Сообщение SimAl » 09 мар 2018, 17:19

DriftPhysicsCrew писал(а):Хочется сделать именно универсальное решение. А не под конкретный симулятор или драйвер.

Чтобы Симтулз (или другая аналогичная утилита) принимал данные, нужно написать плагин для вашей игры для симтулз. В этом и есть идея универсальности - у каждой игры телеметрия выводится своим уникальным способом, плагин же обеспечивает преобразование этой информации к единому виду и передачу ее в симтулз. В сою очередь симтулз уже управляет платформой. У некоторых игр телеметрия вообще не выводится и тогда плагин в наглую лезет в память и находит там нужные данные.
Т.е. вам нужно написать плагин для симтулз, который преобразует и передаст данные, отправляемые вашей игрой в симтулз. Для этого идете на эту страницу, поскольку вы собираетесь использовать UDP, скачиваете плагин для DIRT2, разбираетесь как он работает и видоизменяете под свою игру. Это для версии симтулз 2.х, но я бы рекомендовал еще сделать плагин под симтулз 1.3, поскольку он бесплатный, я думаю им много людей пользуется.
В простейшем случае вам в исходниках плагина придется поменять только номер порта, структуру принимаемых данных и метод патчинга игры. Если лень это все делать, просто напишите автору симтулз и опишите ему протокол. Я думаю сделать такие модификации у него займет час времени, и он с удовольствием соберет плагин под вашу игру и пополнит список поддерживаемых игр своей утилиты.
Аватара пользователя
SimAl
SIMER
 
Сообщения: 362
Зарегистрирован: 22 ноя 2013, 20:03
Откуда: Кропивницкий
Благодарил (а): 56 раз.
Поблагодарили: 237 раз.
Баллы репутации: 108
ТехнарьТехнарь

Re: Реализация поддержки моушен платформ в нашей игре

Сообщение SimAl » 09 мар 2018, 19:19

DriftPhysicsCrew писал(а):С официального сайта сейчас можно скачать только свежую версию 2.x?
В чем именно отличие этой и более ранних версий?

Я сварщик не настоящий, но АФАИР:
С точки зрения лицензирования версия 1.3 была бесплатная, хотя иногда за скачивание плагинов требовалось платить. 2.х, насколько я понимаю, всегда платная.
Технически добавились новые варианты плагинов - для соединения с платформой, работы с осями и т.п.
Возможно новые интерфейсы для соединения с приборкой и т.п.

Для донатеров там раньше еще висел архив со старой версией и полным наборов плагинов, не знаю как сейчас.
Аватара пользователя
SimAl
SIMER
 
Сообщения: 362
Зарегистрирован: 22 ноя 2013, 20:03
Откуда: Кропивницкий
Благодарил (а): 56 раз.
Поблагодарили: 237 раз.
Баллы репутации: 108
ТехнарьТехнарь

Re: Реализация поддержки моушен платформ в нашей игре

Сообщение SimAl » 14 мар 2018, 23:36

Ну, во-первых нужно установить именно ту версию симтулз, под которую написан плагин. Вероятно, это 2.х. По этой же причине я не могу его проверить - у меня 1.3, на нее не устанавливается, это я проверил.
Во-вторых, да, завершить gamemanager и gameengine и бросить плагин на окно updater'а прямо в zip'е, не распаковывая. После этого игра должна появиться в этом списке:
Безымянный.png
Безымянный.png (44.94 КБ) Просмотров: 1505
Аватара пользователя
SimAl
SIMER
 
Сообщения: 362
Зарегистрирован: 22 ноя 2013, 20:03
Откуда: Кропивницкий
Благодарил (а): 56 раз.
Поблагодарили: 237 раз.
Баллы репутации: 108
ТехнарьТехнарь

Re: Реализация поддержки моушен платформ в нашей игре

Сообщение Spirit » 26 мар 2018, 00:09

Так что в итоге? Игра в simtools завелась? Поддержка первого симтулз есть или только второй?
Аватара пользователя
Spirit
SIMER
 
Сообщения: 293
Зарегистрирован: 18 ноя 2014, 14:40
Откуда: Киев
Благодарил (а): 80 раз.
Поблагодарили: 94 раз.
Баллы репутации: 53
Технарь


Вернуться в X-SIMULATOR и RU-SIMULATOR & SimTools

Кто сейчас на конференции

Сейчас этот форум просматривают: Alexa [Bot], Google [Bot] и гости: 26

cron
x

#{title}

#{text}