Archive for the Uncategorized Category

This Blog Has Moved

Posted in Uncategorized on May 3, 2012 by sfahy

The blog has been moved to:

I’m not paying for a redirect update, so I’ll probably just leave this here for a while and then delete it.

There has been lots of progress on the game, and I’ll be posting updates at the new address soon.


Current Progress

Posted in Uncategorized on January 22, 2012 by sfahy

I’ve implemented the basics of a drag and drop, icon based inventory screen, a robust item and gameplay effect system, floating text notifications, equipped item models that are visible in game, the basics of combat, a basic stat screen, the ability to possess enemies, and a few aditional art assets. I’ve also optimized some of the older code and shouldn’t have to worry about the framerate for a while.

The high level pipelines for getting content into the game are also reaching completion, and once these are suitably defined and polished I can spend some time focusing exclusively on content.

I plan to have an alpha demo by summer, and hopefully be finished by the end of the year, at which point you’ll be seeing a lot of this:


Posted in Uncategorized on September 16, 2011 by sfahy

I’ve decided to go with the XNA Animation Component Library as a means of implementing animation in the game. I’ve integrated it into the game in a very basic sense. I’m still working on the infrastructure for animated characters, and in the above demo, the character is unlit because the shader needs to reworked into the game’s rendering system. Still, it’s cool to see a character running around.

I’m currently working on creating a main character model and animation set, which will probably take some time. I want to focus on a small core of polished assets, rather than diffuse effort across a bigger range. Content can always be added in later, the important thing is to get the game up and running as a prototype.

Here’s a simple piece of concept art I knocked up. I don’t think a standard sword really needs to be this developed as concept art, but it’s really more about finding a tone and consistent visual style at this stage.



Posted in Uncategorized on September 8, 2011 by sfahy

I’ve been back working on the game for a while now, so I thought I’d post an update with some of the stuff I’ve been doing.

I implemented a deferred rendering setup, which gave a nice framerate boost and would have been easy to hang the lighting system on, but I lost multisampling capability and the result was grotesque. I’m sure it’s possible overcome this issue, but for now I want to progress with other things.

There are still issues with the parabolic shadow mapping but I’m putting it on the back burner for now.

I’ve begun to develop the event system which will act as the backbone that joins all the subsystems together. Rather than have different systems communicate via nightmarish spaghetti code, they can send an event to the event manger, which then gets it where it needs to go. Events can be a simple symbol, like “Full screen mode on” or they can carry data, like “Open Door 132”.It provides a nice interface between systems and will be especially useful for implementing gameplay.

Another nice thing about the event system is that it’s easy to attach a simple scripting system to it. Scripts can be compiled into event objects and passed to the event manager, where no new special functionality has to be included in order to handle them.

I’ve started cleaning up the level generation system to make it as discrete and logical as possible. Higher level systems will need to be introduced on top of the existing functionality, to lay down rooms in logical areas and to handle special cases like corridors and non-rectangular rooms. Things will go a lot smoother if the low level algorithms in the generation process are all encapsulated nicely.

I’m reading up on animation a lot at the moment because I know that it’s going to go horribly wrong and knowing as much as possible beforehand will soften the blow a bit. I’m looking at various XNA animation libraries as well. The Microsoft sample doesn’t really cut it in terms of adaptability, so I’m hoping I can find something documented that imports in a sane format and performs well.

I can’t wait to get a few of the basic gameplay systems in place and see it start to come together as a game. Things are still a bit tech demo like at the moment, and the sooner I start implementing gameplay the more time I have to nuance it and make it fun.

I’m not dead

Posted in Uncategorized on July 7, 2011 by sfahy

I haven’t posted anything in a while, but the project is still well on track. I have college stuff to take care of at the moment which is unfortunately taking up a lot of my time, but once that’s out of the way I’ll be back to obsessive updating. The game has moved on a bit from the last time I posted, with a good bit of GUI architecture implemented and such, as well as some basic things like refactoring. In any case, I’ll be back to regularly updating this blog as soon as I can.

Shadows (Mark I)

Posted in Graphics, Uncategorized on June 15, 2011 by sfahy

I’ve spent the past while attempting to add shadows to the game. Unfortunately, what should have been the work of an afternoon became a protracted war of attrition with grave consequences for my sanity.

I began by attempting to add dual paraboloid shadow mapping, which is a cool technique for omnidirectional shadow mapping. After some initial hiccups, I arrived at the point where I was getting relatively correct shadows If I only rendered the player’s depth onto the maps.

I rewrote the shader. I rewrote the shader. many. times.

Eventually I decided to just implement a standard shadow map and be done with it, I needed to move on to other things.

I ran it, and the shadows were still garbage. Directional  shadow mapping is pretty simple, and after the horror of the dual paraboloids, I had made sure I wrote the shader with clinical exactness, so I realized that this was one of those bugs.

After staring vacantly at the code for a while, I realized that after I drew the UI, I was drawing the depth map before I re-enabled the depth buffer, and that the shadow maps being generated were basically in random z order.

So, I literally moved a line of code further down the damn page and it worked.

This happened because I really wanted to see shadows as soon as possible, and I delayed implementing  a decent rendering architecture. If the rendering code had been systematized earlier, this bug still might have happened, but it would have been easier to track down. If I’d been in a position to reason with more clarity about what was happening across each draw call I could eliminated other possible sources of error a lot faster.

Even with simple directional shadows, the jump in quality is huge. There’s a much better sense of space and perspective, everything seems more solid. Omnidirectional shadows with depth of field should look very nice.

I’m going to put dual paraboloid mapping back in, then revamp the rendering architecture before the madness of the past few days repeats itself.

Placeable Nodes

Posted in Uncategorized on June 5, 2011 by sfahy

I’m working on getting the dungeons furnished at the moment, and I’ve added code to identify all the tiles around the outskirts of a room that can have a placeable added to them without obstructing doors or the path through the room, and create a placeable node for each one.

I use the term placeable to refer to a non-architectural element of the dungeon, such as a chest or alter or whatever.

This terminology is a holdover from my misspent youth with the Neverwinter Nights toolset, which is one of the big influences on this project. I had more fun playing with that toolset than the actual game, and I’ll probably write a filler post about its influence when I’m dry on actual content.

The nodes contain information such as rotation and offset, and when a placeable is added to a room it will be “plugged in” to a node.

The placeable nodes are added on a room by room basis, rather than across the tiles. This is because some rooms may not permit the placement of items, or may have special requirements as to where they can be placed. Also, I find working from the graph rather than the grid is much more elegant and flexible.

A reference to the node is added to the tile it’s located in, which means once the actual placeables are added it’ll be possible to use the tile grammar system to do some pretty cool things, like for example, combine several bookcases in one corner of a room into a single one that curves around the corner naturally, or combine a container into the stone wall behind it.

It can also be used to do things like offset the node so it’s flush with the thinner walls. You can see a few examples in the screenshot where there is a gap between the checker marker and the wall behind it, and it looks a bit unnatural.

Since this post was written I have experienced some internet down time and I’ve added the code to adjust the offsets:

I’ve also made the rendering system a bit more efficient, and I plan to do a post specifically covering that.

Also, I’ve added a model to show the position and rotation of the player 🙂