Игры Python, Kivy и Android

Я хочу создать игру для Android и попробовать что-то новое.

Мне очень нравится python и я хочу использовать его для разработки Android-игры.

Игра не простая, это будет игра 3D RPG. Я нашел Kivy Crossplatform Framework и PyGame. Мне очень понравились оба, но я не уверен, что Python будет для меня прав.

  • Легко ли развертывать игры python на Android?
  • Может ли Pygame обрабатывать игру 3D-действия на андроиде?

Ответ 1

Я не думаю, что на данный момент есть решение python с сильной поддержкой 3D, и, конечно же, не с сильными готовыми инструментами, чтобы сделать сложную 3D-игру легкой.

В базовом pygame нет поддержки 3D - вы можете увидеть этот предыдущий вопрос для некоторых конкретных ответов, но по существу это в основном оболочка для 2d sdl-графической библиотеки, Конечно, вы можете делать псевдо-3d, управляя всей 2-й проекцией самостоятельно (ожидайте, что это будет медленным, хотя), и я думаю, что в принципе вы можете напрямую вызвать opengl и отобразить результаты (есть несколько примеров), но pygame не предлагает вам большой помощи.

Kivy работает, делая все в opengl и в принципе поддерживает доступ к 3d opengl es api, включая полностью трехмерные манипуляции с вершинами, а также шейдеры и т.д. Например, одним из его примеров является 3d вращающаяся обезьяна. Однако в текущем состоянии структура работает почти полностью в 2D, нет абстракции apis, как камера, освещение. Должно быть возможно добавить их с достаточным усилием, и в последнее время была небольшая работа, но в настоящее время она не существует. Вы можете сделать поиск youtube для kivy 3d для некоторых простых примеров 3D-материала в киви. С другой стороны, kivy достаточно мощный и простой в использовании для развертывания приложений python на Android, поэтому эта часть, по крайней мере, покрыта.

Итак, ни один из них не предоставляет все инструменты, необходимые для сложной 3D-игры, хотя я думаю, что kivy ближе. Во всяком случае, лучшим вариантом может быть интеграция kivy с внешней графической библиотекой, если это возможно. Например, это видео показывает приложение kivy, используя движок игры pandas 3d для полностью 3d интерактивной городской модели в музее. Что-то вроде этого может позволить вам делать то, что вы хотите на андроиде, но я действительно не знаю (это просто гипотеза), и даже если это технически возможно, будет много сложностей на пути, как интеграция библиотеки с kivy и ее компиляция для андроида - если последнее возможно даже.

Я не хочу звучать пессимистично, но я думаю, что это не простой проект. Тем не менее, у меня также нет четкого представления о том, что будет задействовано при использовании java и существующего популярного игрового движка, и я не знаю много о деталях потенциала kivy opengl. Если вам интересно, я предлагаю просить в kivy список рассылки или канал irc - даже если вы получите тот же ответ, вы, вероятно, можете получить кого-то кто может ответить более уверенно, чем я!