Какие технологии мне следует использовать для разработки этой перспективной игры "рыбий глаз"?

Я собираюсь разработать 3D-игру, в которой игрок ходит в лабиринте с 3D-видом от первого лица, собирает вещи и убегает от монстра. Сама игра очень проста, но не для развлечения, а для биологического эксперимента, поэтому имеет свои особенности:

  1. Мы будем проецировать графику на сферический экран с 3 проекторами, поэтому графика должна быть в виде рыбьего глаза и легко трансформироваться (чтобы справиться с объединением проекторов).

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

  3. Игровая программа могла взаимодействовать с внешними устройствами через USB. Например, всякий раз, когда игрок нажимает определенную клавишу, программа скажет доске Arduino что-то сделать.

В качестве моей инвестиции я нашел трех кандидатов в цепочку инструментов для разработки такой игры:

  1. Разработайте мод на движке Quake3 + Fisheye Quake. Я думаю, что проблема заключается в том, что Quake3 работает с виртуальной машиной, поэтому возможно ли реализовать вышеописанные функции 2 и 3?

  2. Panda3D + FisheyeLens API

  3. PyOpenGL. Это наиболее гибкий способ, но я думаю, что он требует наибольшей нагрузки.

Я довольно знаком с C/C++/Python, но я впервые разрабатываю 3D-игру. У меня вопрос, какая цепочка инструментов подходит для этого проекта (или любые другие хорошие варианты)? С какой проблемой я столкнусь?

1 ответ

Решение

Поскольку ответа пока нет, позвольте мне высказать свои собственные соображения здесь. Я не имею опыта разработки 3D и не знаю, сработают ли эти технологии. По некоторым побочным причинам я предпочитаю Panda3D.

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


Почему Panda3D?

  1. Это хорошо задокументировано. Это всегда важный фактор выбора технологии.
  2. Это на Python, что является плюсом для меня.
  3. Это универсальный (чем Quake3). Panda3D также можно использовать на симуляторе робототехники и т. Д., Что было бы полезно для меня.

Почему не Quake3?

  1. Он работает на виртуальной машине (QVM). Я боюсь, что трудно записать данные или получить доступ к внешнему устройству.
  2. Сначала я думал о Quake3, потому что это по крайней мере очень классический код для чтения, но в настоящее время я понял, что Quake3 не может делать ничего, кроме FPS-подобной игры. Если это стоит прочитать, просто прочитайте его, но не нужно работать с ним.
  3. Это не так гибко, чтобы преобразовать рендеринг графики. Это игровой движок по назначению, а не общая библиотека обработки графики.

Почему не OpenGL?

На данный момент я думаю, что Panda3D достаточно низ. Если он окажется не таким гибким, как мне нужно, я бы тогда обратился к OpenGL.

Другие вопросы по тегам