Python

Хорошие движки для 3D-игр на Python

Хорошие движки для 3D-игр на Python

Вступление

Поиск фреймворка для 3D-игровых движков, созданных для Python и с его использованием, может оказаться очень трудным. Причина этого в том, что Python быстро сталкивается с проблемами производительности при увеличении сложности. Быстрый рендеринг графики - это не то, что Python делает лучше всего. Однако, поскольку Python очень хорош для создания логики и довольно популярен, у вас есть много вариантов для запуска фреймворков, написанных на C++.

Чтобы это работало для 3D-игровых движков, вы не можете делать все, как обычно, в Python. Большинство фреймворков создают оболочку для своих библиотек C ++. Вам нужно будет выяснить, как скомпилировать, чтобы Python мог вспомнить эту оболочку. В документации рассказывается, как скомпилировать с помощью оболочки Python.

Стиль игры и выбор языка

Перед тем, как начать, подумайте, будет ли ваша игра платформером, шутером от первого лица или основанным на диалогах. Может быть, вы создадите игру, которая бросит вызов интеллектуальным способностям. Для этого не нужна высокопроизводительная графика. Дело в том, что вам нужно знать, чего вы пытаетесь достичь, прежде чем начинать. Возможно, вы привыкли к Python для программирования. Но если вы хотите создавать игры с большим количеством эффектов, вам следует рассмотреть другие языки программирования. Выучить новый язык - это большое усилие, но оно также приносит огромное удовлетворение, когда вы преодолеете начальное препятствие, связанное с основами. Время, когда обычная документация имеет смысл даже с первого взгляда.

Привязки, библиотеки для рассмотрения

Чтобы создавать игры, вам нужно будет создать графику, меню и аудио. Есть несколько библиотек и привязок Python для обработки этих случаев. Одной из наиболее распространенных из этих библиотек является SDL2, которая дает программистам прямой доступ к буферу кадра видео, аудиовыходу, мыши и клавиатуре. Без них ваша игра должна будет использовать обычные процедуры, которые иногда могут быть медленными. Первая версия все еще существует, но в SDL2 есть все необходимые гаджеты.

SFML2 играет ту же роль, что и большинство мультимедийных функций, и объединяет все функции. Напротив, SDL2 содержит множество более мелких частей, которые вам нужно по очереди вставлять в свой код.

Для Python вам потребуются пакеты PySDL2 и PySFML2 соответственно.

PyOgre

Разработчики PyOgre написали фреймворк Ogre на C ++ с оболочкой для Python. Обертка - это встроенная обертка. Старый проект все еще доступен в сети. Следование руководствам может быть полезно, но будьте осторожны, так как не все, что доступно в Интернете, будет правильным. В Ogre есть классы для многих мировых объектов, что дает вам слой поверх OpenGL и Direct3D.

Ogre работает со сценами и может создавать всю графику, которая может вам понадобиться для вашей игры. Модули PyOgre работают для версий до версии Ogre v1.05. После этого доступны другие модули. Программное обеспечение Ogre включает скрипты Python для импорта данных из Blender в Ogre. Это позволяет создавать ресурсы в Blender для вашей игры. Также доступны другие экспортеры.

http: // вики.ogre3d.org /

Аллегро

Allegro берет на себя всю тяжелую работу по созданию окон, принятию пользовательского ввода, рисованию изображений и воспроизведению звуков - всем функциям, которые полезны для видеоигр и мультимедийного программирования. Разработчики Allegro не утверждают, что эта программа является игровым движком, но она полезна для создания игр.

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

https: // github.com / liballeg / allegro5

Armory 3D - Расширение Blender

Этот пакет использует Blender в качестве платформы разработки и HAXE в качестве языка программирования. Да, вам нужно будет переключиться на Haxe, но вы можете преобразовать существующую игровую логику из Python. Armory3D работает внутри Blender как расширение, где вы можете создавать все свои ресурсы для игры.

Несмотря на то, что Armory 3D не работает на Python, тем не менее внимательно рассмотрите эту программу, так как вы можете очень быстро начать работу с этим инструментом. https: // armory3d.org /

Urho3D

Этот пакет использует Blender в качестве платформы разработки и использует HAXE в качестве языка программирования. Опять же, вам нужно будет переключиться на Haxe, но вы можете преобразовать существующую игровую логику из Python. Armory3D работает внутри Blender как расширение, где вы можете создавать все свои ресурсы для игры.

Несмотря на то, что Urho3D не работает на Python, внимательно рассмотрите и эту программу, так как вы можете очень быстро начать работу с этим инструментом. https: // armory3d.org /

Урсина

Ursina написана на Python и построена на Panda3D. Этот инструмент предназначен для создания множества примитивов, таких как куб, сфера и т. Д., чтобы вы могли как можно скорее перейти к самой игре. Panda3D выполняет глубокую работу, а Ursina дает вам готовые программные функции. Класс игрока дает вам возможность регистрировать нажатые клавиши и движения мыши.

Большинство функций интуитивно понятны в использовании с понятными названиями и легко понятными функциями. Вы сможете быстро приступить к работе с игрой, если воспользуетесь этим инструментом для создания игр. У Урсины также есть инструменты для преобразования файлов blend и psd.

https: // github.com / pokepetter / ursina

Игровой движок Blender (?)

До версии 2.79, в Blender встроен игровой движок. Однако в более поздних версиях дизайнеры решили удалить игровой движок из стандартной сборки и сосредоточиться на анимации. Итак, люди в UPBGE решили создать собственное расширение, которое работает внутри Blender. Поэтому вы можете использовать Blender для создания всей игры. Как это связано с разработкой игр на Python?

BPGE имеет API, который позволяет вам получить доступ ко всем данным, которые вы создаете во время работы внутри Blender. Вы можете использовать консоль внутри Blender для доступа и тестирования API. Фактически, вы могли бы написать таким образом всю программу, но это может быть не лучшим выбором для ваших нужд. По крайней мере, у вас будут готовы все ресурсы в том виде, в каком они вам нужны, с того момента, как вы их создадите.

GODOT - GDscript, а НЕ Python

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

Заключение

Существует множество фреймворков для написания игр на Python. Если вы хотите создавать высокопроизводительные 3D-игры, вам следует серьезно подумать об изучении других языков для этих игр. Убедитесь, что выбранная вами программа позволяет реализовать исходную идею игры. При необходимости адаптируйте язык программирования к своему личному видению.

Добавьте жесты мыши в Windows 10 с помощью этих бесплатных инструментов
В последние годы компьютеры и операционные системы сильно эволюционировали. Было время, когда пользователям приходилось использовать команды для навиг...
Контроль и управление перемещением мыши между несколькими мониторами в Windows 10
Диспетчер мыши с двумя дисплеями позволяет контролировать и настраивать движение мыши между несколькими мониторами, замедляя ее движения возле границы...
WinMouse позволяет настраивать и улучшать движение указателя мыши на ПК с Windows
Если вы хотите улучшить функции указателя мыши по умолчанию, используйте бесплатное ПО WinMouse. Он добавляет дополнительные функции, которые помогут ...