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

Вопрос или проблема

Симуляторы вождения поездов, такие как Odawara Line Simulator или Densha de Go!, популярны в Японии.

Управление:

  • Ускорение
  • Тормоз

Цель:

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

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

Требования:

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

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

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

Я предлагаю вам начать с простого GUI через CodeBlocks 17.12 как минимум на Microsoft (64 bit) Windows 7. Не используйте CodeBlocks 20+, так как я обнаружил там некоторые лазейки. И уж точно не используйте никакую версию Microsoft Visual (C++ или Studio после 6 sp5), так как там еще больше лазеек. И не используйте компиляторы Microsoft по тем же причинам.

Используйте C++11 для написания программы.

C++11 не так ограничен, как более поздние версии C++ в плане обратной совместимости и не так требователен к операционной системе, как более поздние версии C++. Многие промышленные системы уже закодированы с C++11. Поскольку “если это работает, не трогай”, это распространенный принцип в бизнесе, программы, написанные на более поздних версиях C++, могут быть отвергнуты. Опять же, программа, закодированная на C++11, имеет больший потенциал для коммерческого принятия из-за восприятия как более совместимой в обратном направлении. И это очень важно: коммерческое использование вашей программы будет, вероятно, теми, кто уже вложил миллионы в системы, для которых они могут покупать программное обеспечение.

C++11 легко изучить. Он даже проще, чем Visual Studio, которую я раньше часто использовал для некоторых продвинутых программ, пока не решил, что хочу делать больше. В интернете много помощи, если вы сможете пройти мимо поклонников всего нового и блестящего и дойти до действительно полезного кода.

Я говорю: “Пишите сами”. Поскольку вы начали эту тему, я надеюсь, что вы достаточно умны и мотивированы, чтобы довести дело до конца. Держите меня в курсе о вашем прогрессе.

Ответ или решение

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

Чек-лист ключевых этапов разработки:

1. Идентификация поезда и синхронизация старта:

  • Спутниковая навигация (GPS): Начните с использования GPS для точного определения местоположения пользователя. Используйте данные поездов, чтобы определить, на каком именно поезде находится пользователь. Это может включать в себя сопоставление координат GPS с расписанием движения поездов.
  • Аудио и датчики движения: Используйте распознавание звука для определения начала движения — например, звук колокольчика или изменения вибрации, зафиксированной акселерометром устройства.

2. Сбор и анализ данных:

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

3. Сравнение результатов и улучшение модели:

  • Обработка и сопоставление данных: Разработайте алгоритмы, которые смогут сравнительно анализировать данные реального поезда и симулятора пользователя, исходя из показателей времени и плавности.
  • Учёт погодных условий: Дополнительные баллы можно заработать, предусматривая влияние различных погодных условий на эффективность торможения и управления поездом.

4. Разработка приложения Android:

  • Используйте язык C++11: Вы разработаете свой симулятор, используя C++11, так как он предоставляет гибкость и поддерживает совместимость со старыми системами. Это поможет вам создать производительное и эффективное приложение, совместимое с большей частью существующих систем.
  • Система отзывов и обновлений: Позвольте пользователям вашего приложения отправлять данные о своих игровых сессиях. Это не только улучшит симуляцию, но и создаст сообщество, заинтересованное в развитии проекта.

5. Открытый код и развитие сообщества:

  • Открытый исходный код: Выпуск проекта с открытым исходным кодом может стимулировать дальнейшие улучшения со стороны сообщества разработчиков и повысит доверие пользователей.
  • Сотрудничество с железнодорожными компаниями: В случае успеха, ваш проект сможет заинтересовать компании, стремящиеся оптимизировать свои собственные тренажёры и системы.

Применение метода FOREST в вашем проекте:

  • F(представление фактов): Чётко определите цели проекта и его технические характеристики.
  • O(ориентация на ценности): Подчеркните инновационность вашего подхода и его потенциал улучшить существующие системы.
  • R(результативность): Докажите эффективность вашей разработки конкретными примерами применения.
  • E(вовлечение): Создайте привлекательное пользовательское взаимодействие с помощью интуитивного интерфейса и отзывчивых функций.
  • S(инновационные решения): Настройте динамическое обновление симуляции на основе собранных данных.
  • T(целевой контекст): Адаптируйте свой продукт, исходя из нужд конечных пользователей.

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

Оцените материал
Добавить комментарий

Капча загружается...