A short clip of what is currently my working issue
http://www.youtube.com/watch?v=lLuss-hIVUU
The shadows are off and the physics jitter. Anyway, this is the yesterday-evening status, which is slightly behind what it's currently doing. Most recently the physics objects do match up with the actual sizes (my oops) and they do kind of stop moving.
Music also works but didn't make it to the movie (somehow - think Fraps messed up).
[edit]
There's a second movie up too now which shows the fan & camera working. I expanded the level info by including the hallway & more objects in the first room. After that movie was made I fixed the camera to be silencer-based & made the silencer movable. He doesn't participate in physics though so he walks through everything & ignores gravity. Positional and global sounds already work too, so the cameras make a "bzz" noise when they move & the fan makes the typical chop-chop-chop sound. There's also the (mission 1) music playing in the background. The best thing about the fan working is that it's implemented in a generic way - there's very little fan-specific code and there's no code that checks for a fan in particular. That means, when I want to make the lift, it's again about 10 lines of new c++ code for a lift-like behaviour, a model and that's it. The camera is a bit more complex (because of the tracking behaviour, which takes about 60% of the code) but still only 200 lines. This will also be the system that drives AI - so, you can make smart mechs & enforcers now.
Today I spent a lot of time (like, a few hours) watching Squint's runthrough of mission 1 whilst adding the floor information to the level data. If I did it correctly (I do have a handmade map of the level) I should have enough flooring to start decorating room by room and (after teaching the engine to make the crusader fall down) will also allow some start of playtesting. Currently it's running at about 12fps with 6 lights active (but not visible - two of them don't make light for some reason) on a Radeon Mobility X200M in my laptop, with a several-year old driver. I'm expecting the performance to improve by a factor on a newer machine. The shadows are turned off (but working & blocky) because each light also renders the full level... *oops*. There's lots of ways around that, the most important one hinging on having low-poly movable objects & high-poly static content (IE, pipes & stuff that you can't blow up). That solution requires a bit of video memory (about 100 megs) but should up the performance by boatloads.
The first level being created doesn't mean that I always update everything. The entire world has been split into sectors of 128*128 units, with the game highlighted unit (the F7 colory one) being 16*16 units. The entire first level is about 20 sectors of which max 5 will be present & active at once. That also means - no loading screens, no slowdowns. All content is streamed from disk continually in the background before you can get near it.
Stuff that isn't working that would be required for a public demo / test:
- character control (currently it's a trivial linear move, should be step-based, with the defining rolls)
- much more content (you have about 6 seconds of playtime now - a demo could do well with a few minutes at least.
- Much better culling (currently everything is always sent to the video card - pointless stuff included. Makes more sense with more content, but is required.
- Shadows working properly.
- Minor technical bits in the engine working better that now reduce the quality of the rendering
- Explosions (yes, it's in the planning but not in yet)
- A working alarm (the cameras move but don't see you yet, and definitely can't trigger the alarm).
- Guns (bullets, guns themselves, actually having stuff be destroyed)
- A few dozen more 3d models. There are about 6 short for the first room. If you include the first 10 rooms or so (up to the shotgun) I'd need some 20 more models. I do already have about 10-20 models that aren't in use right now - so this will keep being less of an impediment).
- Lots of time on my hands to do the above.