Aug 082012

I’ve been dabbling in game development for at least 7 years. A lot of knowledge and experience have been absorbed, but there’s not a lot to show for it. My primary project was originally a barely-playable prototype, but has been a technology demo ever since.

A year and a half ago, I wrote that you have to complete simple game projects before building larger games successfully. I’m sure it’s not a universal rule, but I have no doubt a more experienced developer designs better games. I failed to follow my own advice and continued dabbling with my existing project. There’s not a lot of free time in my schedule, but I’m now certain I have enough to get things done.

Screenshot of N-Snakes game

At the end of July I attended a Boston Python Meetup focusing on simple projects. Based on a Pygame template they built, I was able to quickly build a playable game. I’m not about to win any speed-coding competitions, but I have an interesting game after one month of dabbling.

Continue reading »

Feb 032012

Procedurally generated content is a fairly large movement at this point. The most prominent, recent example is probably Minecraft, which relies heavily upon computer algorithms to generate the world and events in the game. There’s no cubicle farm of artists churning out Minecraft landscapes.

To a large extent, we have Ken Perlin to thank for this. Ken was awarded an Academy Award for the invention of Perlin Noise during the production of the film Tron. His name is now ubiquitous, but unfortunately the algorithm which bears his name is dated. Ken published a paper in 2002 describing the drawbacks of Perlin Noise and introducing a new algorithm. Many references to this algorithm confusingly call it Improved Perlin Noise, but it is actually named Simplex Noise.

It seems many developers start searching for noise functions and don’t know which to use. Thankfully, Simplex Noise is a suitable replacement to Perlin Noise in almost every way: the noise is cleaner, less computationally expensive and easier to implement in hardware (if desired). Unfortunately, with all the confusion on the web it’s hard to find a good implementation and impossible to find documentation.

Continue reading »

Oct 182011

I’m giving a lightning talk at the Boston Python User Group this week. The presentation is very short, but provides a 5-minute overview of why an object-oriented design may not be ideal for game development. None of these are my own ideas – I’m simply passing along the wisdom of much wiser (and larger-scale) game developers. Object Oriented designs have caused them much pain in the past, so they’ve come up with a better scheme: Entity Systems.

Entity Systems provide more flexibility (for the developers and the game designers) and higher performance. The end goal is a design that is easier to create and much easier to modify.

Continue reading »

Oct 152011

Game designers have to spend a lot of time balancing games. Building an entertaining mechanism is a good start but a game without balance quickly turns away the players – too dull, frustratingly impossible, unfair, etc. Nerfing, and other after-the-fact balancing, is often dismissed by gamers but I think among game developers nerfing is assumed to be a fact of life. You cannot predict all the ways in which players will interact with your game, so the game must be adjusted.

Continue reading »

Jan 302011

Six weeks ago, in an attempt to improve my productivity, I pledged to build a simple game. Regrettably, the deadline has passed and I have nothing to show for it. The reason is not technical but simply a failure of time management. I have two perfectly acceptable designs and I did pick up a bit of Python, but I never sat down to start development.

There are a few reasons for the failure – some avoidable and some unexpected. For several days after I resolved to build a new game, I read through the Python manual and picked over the available tool sets. Then I was distracted by some other projects and the holidays. Two weeks ago, I came down with a particularly nasty illness and was out of commission.

Continue reading »

Dec 162010

I’ve spent a good deal of time working on my game project, but it hasn’t progressed quickly. I had a semi-playable prototype and decided it wasn’t right. I changed the fundamentals of the player’s character and realized the graphics engine was rudimentary. I replaced my home-grown graphics engine and collision detection with solid 3rd-party libraries: Ogre 3D and Bullet. Now I have a very simple prototype and haven’t decided where to go next.

A year ago I described my ideal game engine and explored the conflict between building a game or building a game engine. I still believe that good games are timeless, but after ~5 years I have to bow to the wisdom and experience of the experts. A game developer should not start by attempting to make their dream game.

Continue reading »

Nov 062009

I have always been a big fan of the guys running Vendetta Online. They are one of the only indie teams I’m aware of that have successfully built an MMO game and turned a profit. What’s more, they seem to use the right tools for the job, know what they are doing, built a solid game and interact very well with the user community. I guess those are the keys to success for an indie MMO.

I’m at the stage where really I just need to use the right tools for the job. In most respects, I believe that good games are timeless (1 2) – I’m not concerned about a decade of development time. So I can take all the time I want and I’ve spent the last few years researching the right tools for scalable game development. Like the developers of Vendetta discovered, all roads lead to Erlang. It seems to have become the de-facto standard for highly-available, scalable, reliable applications. Engineers building an MMO would be foolish to not strongly consider Erlang for their backend. And all of Erlang’s strengths are based on a single premise: components should be simple, well separated and communicate through messages.

Continue reading »

Nov 032009

I’ve been dabbling with computer game design for half a decade (I had crazy dreams about making games way before that, but didn’t write code back then). It’s been strictly a part-time hobby, but for the amount of time I’ve spent I don’t have much visual evidence of my work.

Compared to coders who churn out games in a couple weeks, it’s fairly embarrassing. This seems to be a common joke among game creators, as everyone on the net claims to have the “best” idea for their game and none are ever produced. I’d bet most game ideas don’t even turn into a single line of code, and those that do are soon abandoned. I’m trying to rationalize how this doesn’t apply to me…

Continue reading »