Dev Dairy #2

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.

2) Gameplay has started as well. I created the weapon system and started working on the ai. I had to mockup the ai with javascript and the html5 canvas before started actual coding. It’s easier to prototype with javascript since it doesnt require compilation, and with the ever increasing size and compilation time of the game i’m reluctant to build after each change. So to test things out i turn to html5 or create another xna project. Try it yourself here. I works perfectly in google chrome (not so well in firefox)


ai tutorials:

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.


4) I finally got sound in the game. I’ve never used sound before, mainly because i dont know how to compose music or make sound effects. I hate using assets from other persons, but its something i have to get over. I have a musician on my team now and i’ve found a few sites where i can get free music and sound effects. One such site is soundjay . Ensure you read the terms of use before using any of them.

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:

561544_4668939717374_685913733_n 547022_4668940077383_1339163518_n 230008_4668941717424_1151357931_n rusty castle lights on the ground many lights many more lights many trees muliple lights light pre pass shadows grass lights elevator distort2 distort deferred many lights deferred first bump monkey 563739_4833877120706_1390864223_n 149773_4823863430370_1229514079_n

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.


One response to “Dev Dairy #2

  1. Pingback: My Microsoft Imagine Cup Attempts | Nick the Coder·

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s