Sorry for not posting for such a long while. I’ve been extremely busy recently. As of now i’ll be blogging at least once a week.
So here’s an update on what i’ve been up to (while trying not to expose too much):
1) The game engine is almost complete. I should have been done a long time ago, but i got sidetracked a lot(school and all). The lighting technique i’m using is called Light Pre-Pass. I used jcoluna’s example and a few others to help me get it up and running. Light pre-pass beats forward rendering because it can handle many lights without slowing down dramatically. It beats plain deferred rendering because it allows for a wide variety of materials. The material system is extensible and very flexible so its easy to add new materials without changing the architecture of the engine.
Latest screenshot of the play room i created:
current features: texture and normal mapping, particle systems, skeletal animation, cubemap reflections
future features will be: bloom, depth-of-field, god rays, radial blur, atmospheric scattering, fog, spot lighting and and reflections.
3) I started a level editor, but i had to discontinue it. It would have taken too much time and effort to make. A level design tool is supposed to make the process of creating levels easy and less time consuming. I would have defeated the purpose if i wasted most of my time making it, then be left with little or none to actually design the level. So i decided to use an existing tool, Blender3D. I have to write python scripts to export a few things from the blender (like cameras and animations). I’ll show you how i went about doing it in another tutorial.
3D audio in xna requires the use of XACT, as stated here, here and here . I cant bother using it to modify every single sound effect (its too troublesome), so i had to attenuate the volume of each sound based on its position myself. It wasnt difficult either:
dist = get_distance_to_sound()
volume = 1-(dist/sound_radius)
volume = clamp(volume,0,1)
sound.volume = volume;//linear attenuation
sound.volume = volume*volume;// or quadratic attenuation
Even thought i wont get real 3D audio, its a suitable substitute until i can bother to do the real thing.
Here are a few screenshots of the development of the game engine since i last posted:
i wish i could say and show more, but i wont risking exposing too much of the actual game. I’ve learnt a lot while working on the game. I’ll post tips and techniques that would be of great help to you if you use XNA or are a game developer.