Building A Game In XNA Part 3
16/02/2009 at 07:36
The goals for my third week on the game were to put in the last of my planned obstacles, to start producing levels, and get a graphic style finalised.
A problem I've often heard mentioned in game developer blogs and interviews, particularly developers of projects that experienced delays, is that of feature creep. I found myself experiencing this first hand this week as I began putting in what I thought would be the last obstacle into the game. While I've been building the game and thinking about it away from the PC I've been trying to visualise levels that will be made with the obstacles I'm putting in. Each new obstacle offers a new set of opportunities which often give me ideas for new obstacles to increase the options available when creating levels. I've been struggling with the conflict between the wish to make the game fun and varied whilst at the same time being aware I need to finish it. I could keep adding new objects to the game probably indefinitely, and never finish the game, so around Wednesday decided to draw a line under adding new content with one additional object having turned into five. Even as I write this there's a new object type I'm fighting myself not to include.
My second goal was to get started on creating levels for the game. I've built the level system along the lines of what I used in the n-gage demo that the bear game is based on. It reads in a string of letters with each letter representing a type of tile e.g.
B B B B B B B B E E B X E B B E E U E E B B E E H E E B B E E R E E B B E E B H H B B B B B B B B ,1,1,7,7
Each of the "B"s is a brick wall, "E" being an empty square etc. The numbers separated by commas are the start square and the level dimensions which I intend to change as the game progresses. The above code gives a level that looks like this.
It's a little hard to visualise the level in text form, particularly now my objects have become so numerous that their letters don't really correspond with their names, "M" being a pressure pad switch for example. To make it easier I thought it best to build a level editor that could spit out the level strings from a more WYSIWYG input method. I've found that building a few tools right early on can really speed up content creation when making flash games, so put my time in the second half of the week into getting an editor built in flash (where I'm most comfortable).
Editor built I started making a few levels starting with a few basic tutorial like levels. It didn't take long to knock out 5 very simple tutorial levels showing all the different tile types I'd come up with. Having built them though I started thinking about the best way to introduce the player to the different tiles available in the game. Is it in the best interest of the player to show everything up front before the game proper starts or gradually introduce them as the game progresses letting the player get comfortable with tiles and their rules before introducing the new tiles that freshen things up. I've not made up my mind completely on this, though I'm leaning more towards gradually introducing new toys for the player as they progress acting as rewards for success as well as keeping things interesting. I've also got the demo version in the back of my mind, which will need to explain the rules and give a demonstration of the different stages of the game.
The final goal for the week, deciding on a graphic style, is where the least progress was made. We made a few broad decisions about the style, a more arty impressionistic look than the current sprites I'm using. We've been collecting up examples of styles we found interesting and talking about which bits could succeed in a character design. It's a challenge thinking what kind of look to target, the hope being you can achieve half the success of something like Little Big Planet's graphic style which treads the line between cute and cool fantastically well appealing to a large number of people. One gameplay related design decision we did make is that the character will have something that will show which way the character will turn when he walks into a wall, he always turns right if he can but this isn't always easy to guess when the character is walking in a direction other than directly up.
Next week will hopefully see the graphic style come together, and I'll hopefully get a good chunk of levels built.
XNA web site - http://creators.xna.com/en-US/
XNA getting started - http://creators.xna.com/en-US/create_detail
Microsoft Visual C# - http://www.microsoft.com/express/download/
XNA game studio 3.0 (Installs into MS Visual C #) - Here
XNA Beginners' Guides - http://creators.xna.com/en-US/education/gettingstarted
C# Tutorials I found handy - http://www.csharp-station.com/Tutorials.aspx
Part 1 of the XNA diary - Part 1
Part 2 of the XNA diary - Part 2