Archive for September, 2011

Animation, Character Rendering and Overall Progress

Posted in Dungeon Generation, Graphics, Screenshots on September 30, 2011 by sfahy

The animation system is now largely in place and a basic character model has been created. It’s pretty clean and well separated from actor data and game logic, and common functions like attaching additional meshes to bones can be done with a minimum of hassle.

Characters (and their equipment ) use a different shading model than the environment. The models are not normal mapped, and the diffuse texture is painted rather than composited  from photographs. A second diffuse texture is created from the first, with the colors shifted to cold colors, and these two textures are interpolated between by the diffuse lighting result, which is exaggerated.

The idea is basically similar to gooch shading, but with diffuse textures instead of solid colors.

There are a number of reasons why I decided to take this approach. Like in gooch shading, the models will not become more difficult to see when they are in shadow. Visibility will be further enhanced by the contrast in styles between the characters and architecture.

I want the game to have an otherworldly, dream like ambiance, and a rendering approach that verges away from realism, but stops short of being cartoonlike, is helpful towards achieving this.

The main impediment to realistic, normal mapped characters is the sheer time overhead. While it’s doable to an extent, it would greatly lessen the amount of overall content that could realistically be produced for the game (already a very small amount).

This expressive approach to character visuals will also help prevent the onset of grimdark.

My next target for development is to build a resource manager, and to extend the simple markup language used to define static game objects to cover the definition of characters and other asset types.

After that, I plan on implementing simple enemy behavior – A* to the player and attack. This should be enough to start testing and adding nuance to how the underlying game data interacts and to begin the process of slowly refining a tight combat system.

I’ve already created the process for adding new kinds of room to the dungeon, and specific types that are necessary or highly relevant to the core gameplay dynamic will need to be implemented.

The high level system which controls the density of specific room types will have to be created, as well as systems for populating rooms with enemies in an enjoyable manner.

While there will be some decorative cruft, such as statues or whatever, I don’t want to have meaningless detritus or crates full of nothing all over the place. Every object should have an obvious gameplay function, or obviously lack one.

Once the player can explore, fight and die, the game will have reached it’s first big milestone and will finally be at the prototype stage. After that, aggressive user testing and constant tweaking of gameplay dynamics, with the aim of reaching a simple, solid, fun gameplay dynamic, will bring the game to it’s second prototype. From there, the addition and balance of final enemy types, items, room types and gameplay dynamics, and copious amounts of polish, will get it to alpha. After that it’s just bug fixing and polish, as well as a period of larger scale testing in beta.

I hate to hang a time frame on development, because I’ve never developed anything of this magnitude before and any time estimate would be a complete guess. Things have been progressing very quickly, though. The codebase is showing no signs of blechery as of this point, the most difficult technical challenges have been solved to a decent standard and the whole things seems to comming together nicely. I would like to have the initial prototype stage reached before Christmas. At the current rate of progress it seems likely that I will.

Also, by a process so complex it verges on black magic, I’ve managed to create an ambient sound-scape  that fits the mood pretty well. I’ll write a post attempting to explain how it was made.





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.