Wednesday, January 04, 2012

Where to begin?

My one and only resolution for 2012 is to stop talking about writing a game and actually do it, preferably before the Eschaton. This isn't the first time I've made this promise, however; in the past I've always rapidly hit the issue of having too much choice and not being sure how to progress. And this time isn't really any different.

Option 1: Pyglet

Despite the more mature PyGame, I find myself constantly drawn back to Pyglet. OpenGL-based & cross-platform, it's extremely lightweight compared to other frameworks, so there's less cruft to get a handle on. It's biggest downside is its upside: OpenGL. I don't even remotely have an understanding of it, so there's a fairly steep learning curve, but it's not going anywhere, so it's probably worth the investment. Pyglet has some degree of sprite support, so I can easily start there and move onto the more advanced uses later. I'd really like to get a handle on pixel shaders, too.

Option 2: HTML5

With the introduction of the canvas tag, HTML5 has become a viable target for games, with WebGL providing OpenGL compatibility. This is another extremely cross-platform approach; if I don't want to distribute it as a web game, there's nothing stopping me bundling it up as an app with Chromium or Xulrunner. While there are HTML5 frameworks focused on game development, it's still extremely early days, so I'd be more inclined to knock together my own little sprite engine. Here, I'd know the engine because I wrote it, but that means the initial period is spent developing the framework rather than the game, and it's that process that usually saps the enthusiasm from me...


  • Pyglet: Python-based (yay!), existing library, existing users, code examples, cross platform, easier to get started
  • HTML5: JS-based (less fun but the skills are useful to me in my working life), build from scratch, deeper understanding but slower start, still in some standards flux
Decisions, decisions!



    If it's good enough for Angry Birds ;)

  2. Oh, believe me, I think it's more than good enough. The question really comes down to whether I want the pleasure of coding in Python or the experience of the same in JS, I guess.