Разработчик игр создает собственный движок для VR-игр с помощью Python
Разработчик DaFluffyPotato - не новичок в мире разработки VR-игр. К сожалению, движки с открытым исходным кодом, такие как Godot, имеют свои ограничения и больше не являются предпочтительным вариантом для разработчиков. Поскольку готовящейся 3D-игре требовался новый стек разработки, DaFluffyPotato нашел уникальное сочетание Python, GLFW, ModernGL и OpenAL, чтобы создать удивительно оптимизированный VR-шутер.
Часть волшебства, которое делает это возможным, заключается в проекте, известном как PyopenXR. PyopenXR предоставляет привязки на Python для OpenXR, открытого набора API, призванного помочь разработчикам создавать XR-приложения для нескольких различных гарнитур VR и AR. Этот открытый стандарт создает основу для остальной части технологического стека. Поскольку openXR не занимается рендерингом графики, а только серверами для связи с XR-устройствами, разработчик использует ModernGL, высокопроизводительную модель рендеринга для Python. Кроме того, для создания окон и обработки ввода в стеке используется GLFW, поскольку PyopenXR уже поддерживает его. К сожалению, во время тестирования этой установки DaFluffyPotato обнаруживает утечку памяти, исходящую от PyopenXR, но решает проблему после того, как находит ошибку и исправляет ее.
На этом этапе стек готов к использованию для разработки 3D-игры. DaFluffyPotato создает функциональный прототип с полным набором активов, состоящим из пары видов оружия, персонажа, игровой физики, окружения из блоков , вдохновленного Minecraft, и вражеских NPC, которые появляются на карте. Единственное, чего не хватает, - это пространственного звука; к счастью, OpenAL может легко обеспечить 3D-аудио и имеет процесс реализации, похожий на ModernGL. После того, как мы потратили некоторое время на полировку игры, результаты оказались на удивление хорошими. Игра быстро загружается, время загрузки составляет около пары секунд, что намного быстрее, чем в большинстве VR-игр. Кроме того, игра не нагружает процессор, на котором она работает. В целом, это захватывающий проект, и у DaFluffyPotato уже есть планы на будущие обновления, включая улучшение вражеских NPC и мультиплеера.