INI Based Settings in C#/XNA

One of my first issues to handle in this, the second phase of development for hades, has been how to store settings. Of course I could have gone an XML approach, but it is not at all what people are accustomed to – we like ini files. Section, Key = Value… NEXT! Well, while the horn may have sounded in terms of figuring this out, putting things into action is a bit more involved, but not too much so.

For those of you who have worked with Unreal or looked at the configuration files for most any linux application you likely found something similar to the following:

[Engine.GameInfo]
DefaultGame=Fulcrum.FulcrumGame
DefaultServerGame=Fulcrum.FulcrumGame
bAdminCanPause=false
MaxPlayers=32
GameDifficulty=+1.0
bChangeLevels=True

This example shows off all of the typical features of an INI file based approach for storing settings, and I am fully intending to use it in Hades, but how do we start? We have to establish a couple of requirements to paint the picture fully…

Continue reading “INI Based Settings in C#/XNA”

Hades Progress #4 – Threaded Terrain

Last week I posted a presentation overview of the performance gains that I found in switching over to a GPU masking implementation of rendering the terrain for Hades and I cannot say I was more satisfied with how things went.

Since then I have spent a lot of time optimizing, learning why you cannot overlap reference and value types in structs and trying to get the final pieces of the first phase of the game to come together. I have come to the conclusion that until I wean myself off of distractions I will likely be destined to spin my wheels. But there is always performance to be had.

That said, lets look slightly deeper into the terrain implementation.

Continue reading “Hades Progress #4 – Threaded Terrain”

Leverage the Power of the GPU

In developing the procedural the terrain for Hades procedurally I ran into an issue – I couldn’t create the terrain at a reasonable scale so as to make it look naturally flowing without significant slowing of the rendering of the scene. Over the last three weeks I have spent a good portion of the time working on my game developing algorithms, ultimately landing on a GPU alpha masked texture solution which is at least in the ball park of reasonable performance. The slides reference the actual data for it, but I will reference the performance between the two implementations here.

Continue reading “Leverage the Power of the GPU”

Hades Progress Report #2 – TDD

XNA is a monster platform. It may not be as feature rich and quick to develop first person shooters in as Crytek, Source or UDK, but it is an awesome sight in and of itself. I have to admit I’ve learned a lot because I chose to start from scratch (on top of XNA of course). One of the subjects I wanted to really dive into this time is Test Driven Development (TDD) for a game, and let me tell you, there is a lot of misinformation out there, and I have had to do a lot of Self Driven Development to learn enough about it to be able to pull things together.

The ultimate objective is always to have 100% test coverage on your code. While I would love to say that I have found a silver bullet and to point to a simple framework to use to pull it off, I cannot. TDD is a dream that I wish could be realized with less ground work. To be perfectly blunt, you have to do a lot of mocking to pull things together and I don’t have the time or drive to do as such.

Continue reading “Hades Progress Report #2 – TDD”

Hades Progress Report #1

This semester I am taking a game programming and design class. While there have already been a few hiccups and overturned smiles in class there is something to be said for putting the material to use. I am in the process of building a game called Hades, a 2D game about digging that is of similar thread to Minecraft or Terraria, but with a bit more guidance, and of course built by me. 

Continue reading “Hades Progress Report #1”