To torch a village
I picked up Torchlight in Steam's holiday sale, and it's interesting, especially since I haven't played Diablo II or a modern MMORPG. (Apparently Torchlight is going to become one.) It's especially interesting in that it's written with Ogre, which is one of the game engine libraries I was considering for Village.
For a long while I've wanted to make kind of a visual chat thing, almost like Comic Chat but more like an online Animal Crossing. (Since it's kind of an MMO without the game, you could also say it's a chibi Second Life.) So that's Village, and I had started trying to write it. However I'd started with probably the part I'm least familiar with, the client, and since it's a side project I wanted it to be fun, so I was trying to build a 3D rendering app in Python.
I tried using Python-Ogre but it was hard to build on the Mac (and even when someone fixed it so it did, I still don't understand how you're supposed to build it into a redistributable application). Over the course of evaluating libraries I also looked at PySoy, which is under the GPL, and Pygame, which is a wrapper for SDL and so it doesn't have any 3D support of its own. My current version (such as it is) uses straight-up PyOpenGL, which is easy to build and use as a Python library, but of course doesn't provide any support for game programming (models, audio, a scene graph abstraction). I was able to wrap some nice Python 2.6-era utility around it, but other than drawing snowmen from a tutorial it would take me forever to get anything done.
Meanwhile the other day some folks were lolzing about Lunix crazies in this thread where Jonathan Blow asks about using Linux as a primary platform for game development. I only skimmed it for Blow's messages, which was funny enough, but then this message struck me as important advice about development tools:
However, the development tools [on Linux] are just not very good, and it turns out to be too big a sacrifice. As I was telling someone in a conversation the other week, it was hard enough (and very expensive) to make Braid on Windows, where the tools were a lot better. Braid could easily have failed and never been completed. If I had had to develop Braid on Linux, where it is so much harder to build software, it probably would have failed. You wouldn't have gotten to play the game, ever.
So, that is too big a price to pay. I was willing to suffer some friction, to have to patch the source of whatever tools I was using in order to get them to do what I wanted. But the friction is just too great; the development tools are just too poor. I can't take that much of a hit, because I would never get anything done.
It's not like I hadn't noticed I hadn't gotten anything done because I had to screw around with libraries and engines, but this snapped that into focus. Of course even Jonathan Blow has to deal with this trade off, but to be a professional game developer he has to be ruthless, where as an amateur I've been at liberty to shuffle the deck chairs at the cost of getting anything done. (For that matter, it analogizes perfectly with a lot of stuff Merlin Mann says that I expect/hope will be the real point of Inbox Zero about what a complete waste of time you can make tooling into.)
And since Torchlight is built with Ogre, I can see right in front of me what this flagellation has cost me. Instead of dicking around with half-assed game libraries that fit my bad initial parameters, I could have actually gotten into the slog of hard work that for the Torchlight folks I've helped remunerate.
Comments
The next version of PySoy is being released before PyCon (mid-February), it may make your game a lot easier to write.
To add a comment, sign in.



Nick wrote at 22:09 on 06 Jan 2010:
I guess you'll just have to build it for iSlate.