Skip to content

Steve Streeting on Software Design

Steve Streeting has posted seven tips on software design. None of them are specific to games, but all seven are applicable. I can say I agree with all of them, but #5 is the one I think is one of the most important in the game design process - particularly for an indie:

5. Ruthlessly define scope
Knowing where your boundaries are is one of the most important things in design. If a designer can’t tell you where their system ‘ends’, or imply that it does ‘everything’, then they should be very worried. If you can’t define what’s inside, and just as importantly what’s outside your scope, how on earth are you ever going know when you’re finished, or whether a feature belongs in your system or whether it belongs somewhere else? You can’t.

If you’ve been anywhere near game development for a period of time you will have heard the term “feature creep”. It’s one of an indie’s biggest adversaries (ranking up there with “lack of motivation” and “time management”). When you have the freedom to implement any feature your heart desires without being subjected to approval by a higher authority (like a project manager), the temptation to throw in every cool thing you think of is high. You have to draw the line somewhere. In Raph Koster’s blog entry, 40 ways to be a better (game) designer (which I posted about earlier), he had this entry at #33:

Limitations are good
A lot of creativity comes from working within limits. If you’re stumped, try giving yourself some more limits and see what pops out.

This goes hand-in-hand with Steve’s post - keep your design boundaries limited and know what they are so that you don’t go beyond them. This will not only force you to view the problem in a different light (helping you to be more creative, as per Raph), but will also help you to stay on target.

Feature creep isn’t the only problem this advice helps solve. There’s also the concept of ‘polish’ (like the shoe type, not ‘of Poland’). Ask three different developers what their idea of polish is and you’re likely to get three different answers. I see it as a blending of quality, aesthetics, and robustness. It’s a fusion of graphics cohesion, audio clarity, mood, meeting player expectations, enhancing the user experience, and other things that make the game more appealing as a whole. Much of this will vary from game to game, but some of it is common on every project. With clearly defined boundaries you can more easily see those areas that need to be enhanced. By resisting the tempation to go beyond the boundaries, you have more time to polish the final product because you won’t be distracted by the desire to add more candy.

Technorati Tags: , ,

{ 1 } Trackback

  1. […] I recently read a post by GameDevMike that I think outlines a common problem faced by many indie game developers.  Mike’s post, titled Steve Streeting on Software Design, talks about a state of game development known as “feature creep.” […]

Post a Comment

Your email is never published nor shared. Required fields are marked *