You Think This is a PyGame?
December 18, 2013
For the past 9 or so weeks, a team of RIT students, myself included, have been creating a math game in Python. The game is designed to run on the XO-PC from the One Laptop Per Child project. The XO has meager specs, including a minute amount of RAM and slow CPU. Therefore, software development should keep performance in-mind.
PyGame is seemingly oblivious to this. Python isn’t the world’s fastest language, but even our basic game has problems on the XO. One major flaw with PyGame is that it is ridiculously “low-level” considering that we’re using Python. We had to implement the state machine, game loop, and even buttons ourselves. In fact, text rendering is so crude that the text object provided only supports one line of text–newlines are ignored, so we had to bake-in multiline support.
It’s 2013. Other game libraries can do so much more, so why is PyGame so crippled? Well, maybe it’s because Python isn’t apt for game development. With PyGame and its dependencies, we found it impossible to run or build the game on OSX or Windows. Linux is an extreme minority on the desktop market. Gamers do not use Linux on the desktop (yet). Our game, as a result of using PyGame, is limited to Linux. Other languages, even Java (LOL) are faster and other libraries are better.
Of course, the merit of PyGame is that it is open-source. Unity, while faster and more powerful, costs quite a bit of currency. So we could make PyGame better. But when something as simple as a clickable button requires a complete implementation, and the only target platform comprises less than 2% of desktop computers, why bother?