I've been learning python for about 2 months now. I think I'm getting used to the language. My question is, when should I start learning Pygame? Or how do I know if I'm ready for it? I'm learning programming mainly to make games, so what should I at least know before I start making games? Thanks!
migrated from stackoverflow.com Jun 12 '11 at 13:30
This question came from our site for professional and enthusiast programmers.
Fear, uncertaincy and doubt are a crippling combination.
Just do it.
What's the worst that can happen?
The python fairy appears in a flash of magic and turns you into a mushroom?
Now that I think of it, I remember a scifi tv show where "lower" creatures tried to develop too much too fast (it was an immortality treatment that required killing others to produce), and superior aliens killed them because "You are not yet ready". Now you just have to assess the potential reward in learning pygame against the possbility of this event occuring. You should be able to model this with a simple pygame simulation ...
You should be good enough to start. Game programming uses a lot of esoteric libraries and skills which you won't learn from other sources.
So start learning the moment you understand dict vs list performance, exceptions, classes vs objects vs types, and maybe a bit of numpy (array programming).
You will have to learn event driven programming (you might not explicitly control the main loop; some other loop does, and it will call your code depending on "events"), and the architecture of the project you are working on (MVC?), and lots of fiddly things with geometry and colors ... but that's best learnt on the job.
If you aren't sure, have a look at the code here: http://www.pygame.org/wiki/CookBook
If it makes any sense (the code, not the algorithms) then you are ready to go.
About a decade ago, when SDL and Pygame were both still actively developed, the Python community was not fractured between 2.x and 3.x, and CPU-side blit-based rendering was a reasonable approach to graphics rendering for low-end systems.
Now, you'd be better off learning just about anything else.