Лучшие игровые движки на Python

Best Python Game Engines



Чтобы писать компьютерные игры (мы, старики, называем их видеоиграми!), Вы можете спросить: с чего мне начать? Чтобы создать игру в приемлемые сроки, а также изучить, как работает программа, вам понадобится игровой фреймворк. Фреймворк создает множество конструкций, которые понадобятся вам для работы ваших игр. Вы же не хотите сами их изобретать. К ним относятся, как рисовать что-либо на экране, как обнаруживать столкновение и как вести счет.

Даже заставить вещи двигаться на экране сложно без какой-либо базовой библиотеки. Из этой статьи вы узнаете, какие пакеты что и делают, и насколько легко начать работу с игрой.







Почему игровые движки?

Когда вы начнете программировать свою игру, вы оцените всю мощь готовых основ, таких как классы и функции. Таким образом, вы можете приступить к работе и сосредоточиться на деталях вашего проекта. Вы можете задаться вопросом, в чем разница между фреймворком и игровым движком. На высоком уровне игровой движок реализует все быстрые операции, в основном графику. Фреймворк реализует логику, то, что вы хотите добавить в свою игру - историю, если хотите.



PyGame

Это набор модулей Python. Этот набор модулей намеренно мал, чтобы облегчить начало работы. Дизайнеры также решили создать в библиотеке множество небольших предметов. Благодаря такому дизайну вы можете менять части библиотеки, когда вам нужно. Например, микшер - это отдельная программа; поэтому, если вы продвинетесь в программировании, вы можете переключиться на другую программу. Машина графического рендеринга тоже отдельная и так далее. Фактически, вы можете использовать PyGame для создания прототипа игры и постепенного перехода к более продвинутому программному обеспечению. С учетом сказанного, PyGame уже имеет большое количество игр под своим именем.



Начать работу с PyGame легко, но вы можете сделать это еще проще. Пакет pgzero предназначен для преподавателей, демонстрирующих программирование. С помощью этого пакета вы можете легко написать многие части своей игры без стандартного кода.





Расстроенный

Вы также можете установить Kivy как модули Python. Это лучший способ использовать Python для любого фреймворка. Kivy имеет больше возможностей, чем PyGame, и дает более безупречные результаты. Для начала у Kivy есть отличные руководства прямо на их домашней странице. Одной из сильных сторон Kyvi является их язык дизайна Kv. Этот язык дизайна упрощает создание меню, плана игры и всей графики. Благодаря этой системе вам не нужно создавать изображения для самой простой графики.

На своей странице они также подробно описывают, как начать использовать Kivy с PyCharm. Также есть расширения для развертывания на Android и iOS. Это немного проще, чем использовать PyGame.



pyglet-3D

На первый взгляд пиглет кажется маленьким и ограниченным, но за простотой скрывается глубина. Эта программа поддерживает OpenGL, но при этом не имеет зависимостей, хотя вы можете расширить возможности мультимедиа, вызвав ffmpeg. Pyglet также поддерживает настройки с двумя мониторами. Доступны сторонние библиотеки, расширяющие систему. Вы должны знать об этих библиотеках из-за всех функций, которые они добавляют. Вы также можете использовать glooey для создания согласованного графического интерфейса для вашего приложения. Используйте PyShaders для рендеринга и Ratcave для обработки 3D-сцен. Если вы начнете с pyglet3d, полезно знать, что cocos2d использует pyglet. Эта программа создает комплексную основу для игровых приложений и других приложений на основе графического интерфейса.

Panda3D

Это не тот пакет, который вы можете использовать для изучения программирования или для простого создания игры. Здесь вы получаете профессиональный инструмент для создания анимации и игр. Panda3D написан на C ++ для обеспечения производительности. Однако большая часть руководства указывает на пользователей Python. Хотя идея Panda3D заключается в том, чтобы разработчики игр создавали свои игры на Python, вы также можете использовать C ++.

Panda3d - очень мощная система, у нее даже есть собственный SDK. Если вы готовы приложить усилия и уже немного разбираетесь в программировании на Python, эта система уже далеко превосходит все, что вы хотите создать. В конце концов, Дисней использует его для своих коммерческих продуктов!

Ren’Py

Вы, вероятно, читаете этот пост, потому что хотите создавать игры. Этот пакет предназначен для создания визуальных новелл. Если вы еще не продумали идею своего проекта, сейчас самое время. Возможно, вы захотите создать сюжетную игру, требующую повествовательного формата. Для этого и нужен Ren’Py.

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

Урсина для улучшения панды

Если вы обнаружите, что Панда чего-то не хватает, попробуйте использовать Урсину. Это проект для одного разработчика, поэтому не полагайтесь на этот пакет для более крупных проектов, если только вы не готовы внести свой вклад. При этом Ursina является улучшением Panda3D. Проект также очень активен, и есть несколько человек, которые внесли в него свой вклад.

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

Заключение

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