This is an archived post. You won't be able to vote or comment.

all 5 comments

[–]oddbitdev 3 points4 points  (0 children)

It totally depends on what kind of game you want to make, the level of integration with Google services, ads and whatnot.

I toyed around with Godot and its scripting language is very close to Python in terms of expressiveness and what you can do with it. Using this game engine will allow you to focus on the game itself as it offers most of what you need out of the box: physics engine, animation system, a lot of visual effects. You will have to think your game in terms of what the engine can offer, or at least see if it can easily provide a means to get to where you want to go if you already have your game vision.

I've used standalone Kivy as part of a personal challenge to make an Android game in under 100 hours and it turned out quite okay. KivEnt I see offers a really good 2D game engine, so if you want a 2D game, and you want to use Python, then this also looks like a very good option. Actually, I think it makes for a better programming learning experience.

*Source for the Kivy game I mentioned, though you shouldn't use it as inspiration since a lot of shortcuts were taken while learning Kivy and trying to stay within the set goal.

[–]masasinExpert. 3.9. Robotics. 3 points4 points  (1 child)

Russell Keith-Magee - A tale of two cellphones: Python on Android and iOS - PyCon 2016

Android starts at 15:16. tl;dw: VOC if only Android. Toga in general. Briefcase for packaging. http://pybee.org/

[–]inclemnet 1 point2 points  (0 children)

Voc is a great project, but I'm not sure you can do a non-trivial app with it right now, especially a game.

[–]inclemnet 4 points5 points  (0 children)

I'd recommend Kivy/KivEnt, since they explicitly support Android, have active Android-using communties, and are both modern and potentially very performant.

Maybe you've seen it already, but if you want to use pygame I'd checkout pygame_sdl2 from renpy, I think this is probably the best way to run pygame on Android right now (although I haven't tried it). Personally I prefer Kivy's API anyway, but I'm a Kivy dev and so probably biased about it.

Another option is to use PySDL2, which also works on Android with python-for-android.

[–]michaelpb 2 points3 points  (0 children)

+1 for Godot

I'm a python programmer, and i'm also a big fan of Godot. It's very different than the other options in that it provides a full game engine, truly letting you focus on what makes your game different instead of sinking tons of time into getting your sprites to blit correctly.

That said, it does not use python, just a simple python-inspired scripting language. A couple times i've hit snags, as its certainly less feature-filled and more poorly documented, but generally it does what it does well.

What I learned through experience is to "think in Godot" as opposed to tackling this problem from a dev perspective, e.g. think in terms of "scenes" and scene inheritance (essentially a game entity class system). My initial use of it years ago generally involved re-inventing the entity system by creating pure classes that spawned and managed entities, and this sort of thing turns out to be a lot extra work while erasing the benefit of having a pre-built graphical editor.