5-14-04There's one more big thing to do in game engines - that's to go fully floating point for lighting, do all physically-based lighting, get atmospheric scattering in, radiosity, etc. have realistic intensities for your lights, etc. Note that to really have this you need an Exposure function. Even the current crop of games are nowhere near physically-accurate lighting values, because they don't do exposure. That means the balance between their bright outdoors and dark indoors is faked. It makes them have a lot less contrast than they should, it's why Half-Life 2 looks very washed out. Once you start going fully physically-based, you have to drop all the old hacks, like ambient.
The big problems remain - alpha is a pain in the ass, and there's no real good solution for dynamic lighting and shadows. Probably the best bet is something along the lines of Halo 2 or Half-Life 2, where you have basically static background and lights, but you allow dynamic objects and lights and you just sort of let things be slightly wrong for your dynamic objects (eg. you get the one-bounce lighting right still, but let the radiosity be wrong). On next-gen hardware you can at least do soft-stencil shadows, so that'll be a nice hack solution.