Yep, thats right, I started implementing shader support and programming a
normal mapping shader for the ground textures. You might ask, why the
hell do you do this for a 14-day project? Well, I'm crazy, that's why :-)
I finished up testing some shader effects and writing a fx file with
normal maps and multiple lights,
but I didn't manage to get that into the engine today. Tomorrow I will try
to import some objects, test out all that normal mapping and will play
around with lights and light effects (dunno if a night mission with a lot
of lights isn't total overkill and if I should stick with a simple
directional light and maybe 1-2 point lights for the tanks).
A boring ground texture. You might guess there is still a lot missing and yeah,
you are right! At least a lot of things are happening in the background:
6 different high-detail ground textures with normal map support are
implemented into the engine right now, all the map, menu and game base classes
are working now. Let's see what will be finished tomorrow. The shaders
and the light effects are not implemented yet, so everything is at 100%
brightness and normal mapping isn't working yet (but it will soon ^^).
There was also a noticeable
delay when loading all ground textures (6 512x512 textures with 6 512x512
normal map textures and some other smaller textures), and thats not
nice when debugging and testing out everything every few seconds.
So I converted all textures from .jpg, .png, etc. to .dds format and
used compressed formats like dxt1 and dxt5. Now the loading is lighting fast
and I guess when not using the retail DX9 runtime the delay will not even
be noticeable (remember, over 10mb of pixel data are loaded here).
For models I will see how long I can stick with .X files. Usually a
format like this will make me angry after using it a couple of days
because it does not support some little things and is most likely not
extensible and I end up writing my own format (which can't obviously
not happen in the short timeframe of this project).
It is also important to use the proper tools for DDS files, normal map
generation and writing fx shaders (or other formats, but I like fx), which are:
- FxComposer by NVIDIA too for testing out .fx effect files and writing your own
- RenderMonkey by ATI is a really cool tool to try out shaders and
test stuff, making shaders is not a piece of cake, even with all this
tools around there is a lot of testing and modifying going on even
if you got some nice shaders working.
- NVIDIA_Photoshop_Plugins for saving DDS files and making normal maps from heightmaps or textures
- DDSViewer by NVIDIA for viewing DDS as thumbnails, but thats not really
helping that much (because windows thumbnails just suck). The DXViewer
or so by the DXSDK is also really useless because its so user unfriendly.
Also ACDSEE, IrfanView and Google Image viewer (Picasa Photo Organizer)
and any other Pic-View program I tried do not support DDS files and don't
even have plugins for that. But I found another viewer, which pretty much can't
do anything but converting and displaying every format ever invented
called: Konvertor. This thing is really crazy, don't ever try to read
the full list of supported file formats (its 840 or so). Well, navigating
suxx with this tool, but at least you can quickly display DDS files and
zoom around. Konvertor has also another really nice feature: When you
right-click on a file you will see a small preview, thats really one of the
coolest thing I ever saw in a popup-menu :-) Sad thing is: For DDS files
this does not work, only .bmp, .jpg, etc. files previews are generated, grr!
- There are also a lot of other tools involved when saving stuff in
3D Studio Max, Maya, etc., but I won't get into that.
Has nothing to do with programming ^^
I also underestimated all the classes I had to create for just rendering
the landscape, there are of course still a lot of things missing as you
can see on the screenshot. The basic layout for all the menu and game
classes is now more or less complete and I'm pretty happy with it.
Everything is still very easy to maintain and I got a good overview of
the classes. The game has to be filled up with a lot of
objects, roads, enemies, etc. in the next days. Hopefully all of this and
the basic game engine and gameplay will be finished by the end of this week,
so we have next week to test and balance the game, make some cool missions
and bugfix the hell out of it (well, the engine is only a couple of days
old now and only tested by me and my unit testing stuff).
Btw: VS2005 will get REALLY slow when you have a lot of files opened and
try to compile or work on some older file. I think some part of the
auto-recovery of files when crashing is not really optimzied. Anyways,
when you close all documents and open only a couple (lets say no more
than 10-20), VS will responde quickly again. Little annoying, but I'm now
much better of knowing that ^^
I also registered the domain www.LostSquadronGame.com, which will be
the official site for Lost Squadron. But when its up and running it will
just link to this site until we got some finished page (which is
not planed before chrismas, but as I know our graphic guy Leif, he
can't help himself and will make a page design when I'm not looking).