Вывод (дублирование) данных из компьютерной игры-симулятора

Nick2017_HM

✩✩✩✩✩✩✩
16 Фев 2024
0
0
Здраствуйте, подскажите как можно вывести данные из игры trainz simulator (показание различных приборов) на индикацию (светодиоды и сервопривода) с помощью ардуино?
 

Zuker

★✩✩✩✩✩✩
10 Янв 2024
55
12
Чтобы вытащить из памяти игры данные и отправить на ардуинку - тут без навыков программирования никак.
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,233
1,295
Москва
Чисто теоретически, сам не делал и не буду. Есть такие программы, которые в играх могут запускать макросы в зависимости от картинки на экране. Даже не так, в зависимости от цвета определенного участка экрана. Значит это возможно. Одна из программ называется Clickermann .
1. Пишете программу для пк, которая получает доступ к экрану,
2. Для нее описываете участки экрана которые надо мониторить.
3. Анализируете цвет экрана, если в этом месте светодиод, то надо по цвету пикселей понимать включен он или нет.
4. Данные о состоянии светодиода передаете в ардуино по USB/UART
5. Программа на ардуино получает данные и включает или выключает что надо.
Как быть с сервоприводами не знаю что там делать.

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

Эдуард Анисимов

★★★★★★✩
23 Сен 2019
2,369
965
58
Марий-Эл
Написав фоновый процесс, который определит, где в памяти находится игра.
Определит ячейки памяти, в которых находятся показания приборов.
Выведет их в какой нибудь порт (USB, LPT, COM) где ардуинка их прочитает и выведет на индикацию.

Если вспомнить детство, я такое мог бы написать за полгода. Только кто мне за это время будет зарплату платить?

@Старик Похабыч, Ты не совсем прав. Нужно получать доступ не к экрану, а к области памяти самой игры. У неё в строго определённых ячейках хранятся данные, которые выводятся на экран Их и нужно искать и мониторить.
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,233
1,295
Москва
@Эдуард Анисимов,
Это разные памяти. Та программа читает именно область экрана. Раньше получить доступ к памяти программы в винде было не сложно, по идее в целях безопасности процессы должны быть изолированы, как с этим сейчас - не знаю.
 

poty

★★★★★★✩
19 Фев 2020
3,205
931
@Геннадий П, трудно сказать по поводу "прекрасно", так как он требует DBVM для своей работы. Т.е., в нормальном режиме он вообще никак не может помочь, только если перезагрузить всю ОС вместе с игрой в своего рода виртуальную машину с отключенной безопасностью.
 

Nick2017_HM

✩✩✩✩✩✩✩
16 Фев 2024
0
0
@Эдуард Анисимов, а как правильно это сделать? Все приборы игры они как меши (подвижные текстуры), то есть в ардуине надо прописать путь к расположению ячеек приборов? Сразу скажу приборы кабины это дополнение для игры, кабина установлена в конект менеджере, это отдельная программа в которой содержатся все дополнения симулятора. Но вроде бы нашёл папку игры local, в которой находится кабина с приборами.
 
Изменено:

vortigont

★★★★★★✩
24 Апр 2020
1,022
540
Saint-Petersburg, Russia
Если у игры есть дополнения, то, возможно, у нее есть доступный апи или сдк что бы эти дополнения писать. Можно попробовать пойти этим путем и написать дополнение которое вместо прибора на экране будет выводить данные куда там надо.