Now that you have your idea, and have chosen your technology, its time to get to work. As I said before, there are many reasons for a prototype. You will want to keep track of these to make sure that your prototype is progressing toward them, otherwise you are probably going to waste time.
My Idea
The game idea that I came up with had to do with blocks. It was going to be a 2d game, and I knew what I wanted it to look like. What you think it should look like in your head, does not always translate well on screen, so a prototype here is a must. My idea is not complicated by any means, so I hoped to get something working fairly quickly. I took a week to run through some xna tutorials to get accustomed to how it works, and then I began messing around.
Visuals
I had a distinct idea for the visual style that I wanted, and searched the internet for inspiration. I found an excellent painting on CGTalk (one of my favorite sites) and saved it for reference. I then spent an hour in photoshop painting my own version. You can see the results in the gallery. I used my new Bamboo for that one, since I find my Intuos too large for my needs. The way I paint (I’m still learning), my technique is not good enough to need the full 9″ x 12″ that my Intuos affords me, and I feel like I’m wasting all that space. I got myself the Bamboo in hopes of increasing my skill, while also having something to travel with.
Coding
I already knew some C# before starting this adventure, so I wasn’t starting from scratch. However, I only know the insides of games by looking at code and tinkering with Mogre in the past. This was my first real attempt at doing game programming myself.
My very first attempt was me using the Platformer starter kit and replacing the player sprite with a block. I then replaced the background graphics, added some parallax scrolling and took a screenshot. Here is what that looked like:
This was fun to do, since I got to see the insides of an XNA example game and see my block on screen with my graphics. It was fulfilling, but really did not do anything for my game. The obvious problem with this one was that the block was totally lifeless. Movement was needed. I had already chosen Farseer Physics for my physics engine, but I had yet to use it. It was time to dig into it and get something working. On Friday night, after I made that screenshot, I decided I wanted to have a moving block done by Monday. I wanted to set a goal to make sure I was progressing.
I started with the Farseer examples as my base. I didn’t care to start coding anything yet if I didn’t have to. The point was that I could see my block moving, so I started there. The documentation for Farseer is average, so I wasn’t able to plan out what I wanted by reading anything there. The only way I was able to get working was to start diving in and playing with their examples. The good news is that their examples are really easy to understand and are well written. The framework they created is a great base to start with. After only a few hours of playing, I was able to get my first movement. It was very exciting to see it moving almost the way I had envisioned. It was a huge hack with ugly code, but it felt fulfilling to reach another mini-milestone in my prototype. Here is the result:
First Prototype from Erik Briggs on Vimeo.
That was a total hack. I was actually limiting the height the block could go there, and trying to force it to look like it was interacting with the ground. My problem was that the force it took the rotate the block also launched it into the air. I fixed it using joints:
First Prototype – Part 2 from Erik Briggs on Vimeo.
Now that the block-to-ground interaction was working, I needed the block-to-block interaction to work properly. I had envisioned them being able to climb on one another. Another hour or so later got me this:
First Prototype – Part 3 from Erik Briggs on Vimeo.
At this point, I had already achieved all my goals for the weekend, and then some, so I started adding so fun to it. I added some jumping and other interaction:
First Prototype – Part 4 from Erik Briggs on Vimeo.
At that point, it wasn’t even Midnight yet on Sunday, and I usually stay up til 2-3am on average. I decided to spend a little time in photoshop painting some blocks to add some variety and get rid of the grey monstrocities that were in those other videos. Here is my final video before going to bed after a fruitful weekend of work:
First Prototype – Part 5 from Erik Briggs on Vimeo.
Summary of 3 days of work
I have to say that that weekend was quite productive. This was all back on Feb. 27 – March 1 when I did it, but I was quite pleased at the time at how much progress I was able to make in just a few days time. Practically starting from scratch, I was amazed at how well XNA and Farseer were able to work together and get me to where I wanted to go. At this point of the prototype, I was quite happy with my choices.
Next post in the How-to-make-a-game (HTMAG) series: Prototyping continued, more progress




