Game Development

Game Development Skill Acquisition

In response to my post on Creative Writing Prompts and my search for a similar tool for programmers, scott posted a link to Code Kata at Dave Thomas’ (The Pragmatic Programmer) blog, PragDave.

There are a few posts describing Code Kata, but one of them mentions the Dreyfus model for skills acquisition.

The Dreyfus model suggests that there are five stages in the acquisition of mastery. We start at novice: unsure and with no experience. We don’t particularly want to know the “why,” we just want to be shown what to do. We need to know the rules, because we just want to achieve some goal.

While Code Kata is for learning how to program in general, I think the skills acquisition description was very insightful and can apply to learning game development. I think I had posted previously about how beginners should start by making simple games because doing so will teach them a lot about what it takes to make more complex games later. Of course, I was mainly talking about myself as the beginner game developer.

I already knew that I needed more game development experience, but I need to realize that it is not just OK to make a clone for my first game or four. It might be necessary. As PragDave mentions, it is like learning karate. If you’re a beginner game developer, you should be able to emulate existing game developers before you start trying to work on your own plans. You can’t start by being the Master. You have to start as a beginner by emulating the Master.

People on periodically find that they need to inform idealistic newbies that they won’t be able to make the best MMO game ever. “Try something simpler, like a Tetris clone” or “You need to learn how to program” or “/me slaps you with a trout” might be common responses. The newbie is a student of game development who thinks he/she can skip the beginner and intermediate phases and start making games like a master. The newbie needs to learn how development works first. He/she needs to learn the rules. It’s learning the “How” before the “Why”.

I have a number of ideas that I think are somewhat unique, and I would love to make games out of those ideas. At the same time, I know that if I try to make those games today they won’t turn out nearly as good as I would want. I can, however, make simple clones, and I’ve already made a Pac-man clone in QBasic years before, complete with bouncing cherries and multiple levels, so I know I can do it. Perhaps a Space Invaders or Asteroids clone wouldn’t be such a bad idea after all. For a long time I thought that making clones of existing classics would be wrong in some way. I could do better and make something unique for my first few projects, right? I mean, does the world need another Pong clone?

Well, perhaps it does.

I’ll still try to finish Oracle’s Eye first since I think that finishing a game project is a good habit to gain. My next projects will likely be some simple clones which will be easier to complete in a month.