Development Diaries, Volume 1

Posted by Alex Jordan on

I'm currently working on my first game for Xbox Live Indy Games, a tiny little edutainment game called Around the World that will be a geography quiz game. It will be in 3D, of course, so that I can make a simple geography game pop with some semblance of a graphical sparkle. Day and night cycles, an ocean with undulating waves, floating clouds, you name it.


Since I'm working in XNA, Microsoft's addon for Visual C# that works on both Windows and Xbox Live, I don't have the benefit of working with a finished engine.

(For the lay-person out there, an engine is a rough shell of an application that handles a game's bare necessities for you, such as networking, device input, and, yup, graphics. It's like a grand template, and good engines will allow you to do all sorts of neat stuff like adding water and hills and vegetation and what have you.)

I get to write my own engine. And I get to write it pretty much from scratch. So if I want any of the things I listed above, like glistening water, I have to figure out how to do it myself. And that is very, very hard.

Right now, I'm working on some very basic features for my graphics engine: textured polygons, normal mapping (generating fine shadows on the fly to make a low-polygon model look much more detailed), and lighting. Here's what I've managed so far (not a game, just a short demo, as I haven't even added the game's actual graphics yet):

As you can see, texturing, normal mapping, and lighting are all up and running. It's just not running properly. Notice how, halfway through in the video, when I rotate the sphere, it carries the light with it, despite the light source not actually having moved!

Welcome to my hell. I gotta sit up before I can walk. Et cetera, et cetera... and running is a long, long way away. Wish me luck.

Tags: development, games