I have started my adventure with games with pygame and moved on to pyglet then to cocos2d then to Löve. Pygame is OK at best. Its strongest feature is the amount of tutorials and examples on the web. But it’s no longer actively developed and it shows. E.g., it doesn’t support 64bit, it has problems with Retina displays on the Mac, and I couln’t get it to work with Python 3, either. I liked Pyglet and cocos2d (which is built on Pyglet) much better, but they aren’t very actively developed either and especially cocos2d had weird bugs and inconsistencies. It is also difficult to bundle an application to a distributable format (.exe or a Mac app). You have to use external tools (like py2exe) that aren’t guaranteed to work.
To sum up: I like Löve better because:
- it is actively developed
- there is really good documentation
- the physics engine is very good (with pygame you would have to learn and integrate an external library like pymunk or pybox2d)
- it is modern: has support for Retina screens, I don’t have to dabble with its settings, it just works
- it has a great way of bundling applications
I have much more experience with Python than with Lua, so would like to offer some thoughts, as well.
Python isn’t any more “real” than Lua. It is just used in different scenarios. To give you an example, check out the Wikipedia pages for the games scripted in Lua and in Python:
http://en.wikipedia.org/wiki/Category:L ... ideo_games
http://en.wikipedia.org/wiki/Category:P ... ideo_games
As you can see, Lua is much more widely adopted by the game industry for various reasons. Neither language is suitable to write a game engine, but as a scripting language in games, Lua is more of a “real language” than Python is: it is lightweight, it is easy to bundle it with a game, and it originated as a data description language, so it is well-suited for both data description and game logic.
On the other hand, Python is more widely adopted in web development (Django et al.), scientific/mathematical programs (see the scipy library for an example), etc. Python is a great language and worth learning - if you want to go beyond games. If you just want to program your own Tetris/MarioBros/whatever, stick with Löve.