Задать вопрос
xottsy
@xottsy

Имеет ли жизнеспособность идея нового игрового движка на Python?

Всем привет! Хотел бы узнать мнение о жизнеспособности моей идеи. Ниже немного описания общей картины.

Уже 3 года программирую на Python, мне 16 лет (скоро 17), и в силу возраста я могу пробовать что-то новое. За 3 года разработки на Python я успел попробовать многое, и в один момент задался вопросом о разработке игр на Python. Быстренько узнал информацию о существующих движках, как-то связанных с Python. Колхозить через моды на Unity и Unreal как будто выглядит не очень умно, а движков именно на Python с графическим редактором я не нашел. Поэтому у меня мельком пролетела мысль о создании такого движка.

Я не гений, поэтому создать велосипед не смогу, но у меня есть следующие мысли. В экосистеме Python есть Pygame. Кто-то скажет, что лучше Pyglet или Arcade, и вы будете частично правы. у Pygame есть экспериментальный модуль, который использует современные API для рендеринга (OpenGL, Vulkan и другие доступные). За счет такого модуля производительность по отношению с другими библиотеками достаточно внушительная, при этом использование очень простое, и придает кроссплатформенность за счет поддержки разных API. У меня получилось отрисовывать 80 000 спрайтов на экране с частотой в 60 кадров в секунду. Также можно будет создавать шейдеры, если сильно постараться.

Если:
  • оформить структуру под Unity,
  • сделать плюс-минус адекватный графический редактор,
  • для узких мест использовать Cython,
  • движок только для 2D-игр,
  • на нем можно будет создавать любые игры любых жанров, например, такие как Among Us, Terraria,

может ли такой игровой движок получиться и иметь популярность у инди-разработчиков?
  • Вопрос задан
  • 4265 просмотров
Подписаться 2 Простой 1 комментарий
Решения вопроса 3
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
В образовательных и развлекательных целях - да, вполне можете взять и создать. Вам никто и не запрещает. Даже полезно будет для вас. А вот как коммерческий проект рассматривать смысла нет никакого - не хватит опыта, знаний и остальных ресурсов типа финансов и времени, да и не нужен никому будет такой движок.
Ответ написан
@SearchDefault
Слушай, как pet-проект самое оно. Как раз будет отличное подспорьем чтобы разобраться с языком и его возможностями. Вообще сейчас Python подрос и обзавелся компиляторами, например CPython.
Из игровых движков поддерживающих Python, вспоминается Ogri, в свое время разработчик завез возможность писать на нем часть игровой логики. Ну и Godot с ответвлением на Python в качестве написания скриптов, как в Unity на C#. Я думаю, стоит использовать их наработки в качестве учебного пособия.
Надеюсь мой коммент был полезен :)
Ответ написан
@ChevroleteLacetti
Почему не существует?. Godot с недавнего обновления нативно поддерживает python. Движок относительно молодой, но достаточно мощный чтобы превзойти любой иной вариант. Полностью бесплатный. Умеет 2d и 3d.
Ответ написан
Пригласить эксперта
Ответы на вопрос 8
GavriKos
@GavriKos Куратор тега Разработка игр
Может ли такой игровой движок иметь место быть и иметь популярность у инди разработчиков?

На первый вопрос - имеет ли место быть. Ну в целом почему нет. Правда "только для 2д" - вот это сразу плохо, но в целом - почему нет. Работать это будет

А теперь отвечая на второй вопрос. Нет, не будет. Вы в одну каску не сможете его адаптировать постоянно и быстро под современные реалии, которые меняются. Вот и все.

Приведу очень простой пример. Вы слышали про движок flame? Много на нем игр видели? А там как бы поддержка неслабая.
А Cocos Creator? И как, насколько он популярен? А там армада китайцев за ним.

Поэтому нет, самопальные движки никогда не будут популярны. Поэтому и смысла пилить прям универсальность - нет.
Ответ написан
@Samidara
Даже unity, который скриптуется на относительно быстром c# имеет ядро написанное на c/c++, потому что хороший игровой движок - это в первую очередь хорошо оптимизированный игровой движок.

А хорошо оптимизированный игровой движок - это data-oriented подход с грамотным использованием памяти, simd, обязательная компиляция кода и ещё уйма микрооптимизаций для получения максимальной производительности.

Без обид, но python - это один из худших языков программирования, не смотря на весь хайп вокруг него.

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

Это хороший вариант для НЕпрограммистов, девопсов, тестировщиков, аналитиков, но он точно не подойдёт для разработки игрового движка.

Если интересно, скриптинг на питоне есть в godot, но сам движок опять же написан на c++
Ответ написан
Mike_Ro
@Mike_Ro Куратор тега Python
Python, JS, WordPress, SEO, Bots, Adversting
Может ли такой игровой движок иметь место быть и иметь популярность у инди разработчиков?

По умолчанию, инди и другие небольшие проекты используют unity, для проектов покрупнее используют unreal engine. Да и как pet проект - сомнительная затея, все таки python - это не про написание игр.
Ответ написан
maaGames
@maaGames
Погроммирую программы
> а движков именно на Python с графическим редактором я не нашел

Это и есть ответ на твой вопрос. Почему нет? Потому что есть способы сделать быстрее и лучше.
Можно плакать, колоться, но делать игру на Питоне, а можно изучить C# и использовать Unity. На изучение нового языка и инструментария Unity/UE и создание игры уйдёт меньше времени и сил, чем на написание своего "универсального" движка. И это не считая последующей поддержки.

For fun можно сделать что угодно, но тут, кроме интереса, реальной пользы от подобной практики может и не быть.
Ответ написан
Комментировать
@uborg
Просто бери и делай, движок такой как ти ёво видишь. Запиши себе как он должен выглядеть, что он должен делать, какие модули будут использоваться. После поспрашивай ИИ, пускай структурирует, дополнит, научись видеть в ИИ иструмент а не святой грааль. От него будет больше пользы чем от некоторых (большинства) людей. Ну а вопросы лучше всего задавать не здесь, а на профильных форумах. Заведи Git, при помощи git к тебе могут подключиться те кому будет интересен твой проект. Как минимум будет опыт разработки, или получиш хобипроект где можно отдохнуть от всего.
Ответ написан
@artyom7777
Если интересно, то вот на python был написан движок https://artyom7777.pythonanywhere.com
Ответ написан
@MrRanion
В целом можно, если мы говорим о создании движка при помощи python. Все движки используют либо opengl либо vulkan. И под них есть питоновские обёртки. Python хоть и медленный язык, но дает буст к скорости разработки. Так что дерзай.
Ответ написан
@PassiveImpact
Это очень тяжёлый труд. Особенно, если речь идёт о написании движка с нуля. И вообще, зачем это делать? Много крутых игр выходит на Pygame, а вместе с подключением PyModernGL - можно и хорошое 3D сделать (смотрите CoderSpace на Ютубе). Самый лучший вариант будет использовать Raylib. На питоне можно сделать полноценный игровой движок, однако, он просто для этого...не подходит. Вернее, смысла в этом нету. Зачем жертвовать скоростью и мощностью, используя питон, вместо С или С++? В любом случае, куча библиотек готовых уже есть (Pygame, Raylib, PyModernGL, Numpy, PyGLM, Numba...) Тут тебе и инпут, окно, аудио, рендеринг и JIT-компиляция для ускорения вычислительных функций - окунуться можно с лихвой. Однако, есть Godot, с его gdscript, который по тому же синтаксису почти 1в1 как питон (но gdscript - не питон, это важно). Все уже готово для тебя, вместо траты времени на свой велосипед, быстрее сделаешь хорошую игру на годо и выпульнешь на площадки. Выбор остаётся за тобой.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы