Members

Matti Bragge

Anssi Salo

Idea

Our goal is to make a 2-dimensional space shooter game. Enemies will swarm from all directions at the players. Some examples are the legendary Finnish cave shooter Wings and a cheap but very entertaining downloadable game from Xbox Live and Steam, Geometry Wars.

The game will be for 1-2 players at first and maybe for up to 4 in the end. Camera will be stable, possibly adding scrolling later on. To avoid split screen, zooming would be needed to make sure all the players stay visible.

Idea presentation slides from Tuesday (PowerPoint 2007 format)

Final presentation

Geometry wars video in youtube

Features

2D graphics.

Menu screen.

Left thumbstick controls the movement and right thumbstick controls the direction of shooting.

Self-made background music and sound effects.

Self-made textures and background.

Collision detection for shooting enemies and 'dying'.

AI follows the closest 'alive' player.

A simple point counter.

Diary

Monday

We started with some basic planning but then were instructed to jump into coding. So that's what we did. We borrowed the first pictures as placeholder graphics that we could find in Google images and got some basic graphics and keyboard controls.

Tuesday

Using the Xbox controller turned out to be a quite a challenge compared to the keyboard. We basicly spent the whole day trying to get the controls working and to align the ship's texture in the right angle.

Wednesday

Finally we got some breakthroughs and got the controls working. At the same time we got rid of all the keyboard controls so testing the game got pretty hard since the Xbox gamepads couldn't be installed on the school's PCs. Only way to test was by running the game on a laptop.

Collision checks with ships, enemies and projectiles all pretty much work now so you can kill enemies and they can 'kill' you (the controls just freeze for now).

Thursday

PLAN:

Better graphics, menu screen, point counter, updating Wiki with screenshots and video. Xbox conversion might bring some surprises so it should be tested well in advance.

REALITY:

We added our own textures to the game. And then spent the whole day trying to make the menu work. Thanks for the original source code goes to Team Null Pointer Exception. We rewrote it from like 300 lines of code to 80 lines though…

Then we had major problems with the resolution on Xbox. We had used three different classes to determine screen width and height in different situations. When we used just one class our menu screen finally flipped from halfway off the screen to where it should be. Still because of the projector little slices from the sides where cut off. On the PC everything looked just fine the whole time. Finally: Release Candidate 1!

Friday

PLAN: No sleeping on the keyboard. Final version and presentation. VERY minor fixes.

REALITY: Pretty much according to plan. There was not much else to be done except the presentation slides.

Source

Final (atleast intended) and compiling version of the source code package, including all textures and sounds. Xbox version can be made by just creating a copy of this.

We noticed some users might have trouble with the background song if Windows Media Player has been uninstalled. This seems to be because we use the MediaPlayer class to play the music. It works just fine on the Xbox 360, though.

sfight_final_xna_codecamp_2010.zip

Conclusion

Matti:

The Codecamp was a fun experience to take part in and I will look forward to attending these events again. The XNA Framework made it very fast to get into the game making instead of focusing on how to handle time in the game, how to create a game window and graphics etc.

Planning proved out to be a very important part even in a two person project. Adding features took a lot of time when we had to rewrite half the code for it. IntelliSense in the Visual Studio smoothened the C# learning curve a lot and made it unnecessary to have a guide book opened all the time.

Without any prior C#, .NET or XNA experience I am pleased with the way that our game turned out. This was also the first time I did a program with any graphics in it other than ASCII characters. ;) I definitely learned a lot and this might inspire me to start on a project of my own.