A few years ago I started a project called "Konoko Payne". The idea was to combine the gameplay of Oni (blend of fighter + shooter) and the bullet-time of Max Payne. The project has evolved quite a bit since then. A small demo can be found here:
The archive contains more historical & technical details :)
I'm using a few external libs:
- FMOD for the sound
- NovodeX for physics
- PathEngine for pathfinding
I'm working at NovodeX so the choice was obvious. I'm not using a lot of physics at the moment. Ragdolls have been disabled for various technical reasons (I didn't find the time to work on the ragdoll=>canned anim transition problem).
PathEngine is from my friend Thomas Young in Lyon. If sometimes you still see NPCs running against walls/objects, that's because the ground mesh is not always in sync with the geometry (I didn't cut a hole in the mesh so the pathfinder doesn't know about the
obstacle). Don't blame it on PathEngine (which otherwise works fine).
For everything else I'm relying on ICE/Flexine. As you probably know that's the engine I started at home in ~2000. I'm quite happy with how it swallowed the whole thing without complaining too much. This baby is surprisingly stable and flexible.
The renderer is slightly obsolete, using the FFP (no vertex/pixel shaders) and custom Quake3-style "shaders". ICE supports vertex/pixel shaders but they're quite useless for this project. The bloom / blur filters should work on DX7 hardware.
For visibility I use a portal engine, combined with fast VFC code (in each room). Portals are manually located in 3DS MAX.
For character animation I use the same old character library as before. I started it around ~1999 but it's still pretty decent & complete. I spent a lot of time recreating the state machine from ONI by hand, and now controlling Konoko feels very much like the
original. I made the combos easier though, they were too difficult to pull off in ONI...
The character controller is an old one from ICE, that should eventually be replaced with the new version I made for NovodeX. At the moment I'm still using a box, but I'll soon switch to a capsule.
Collision detection is done partly in ICE, partly in NovodeX. I'm of course using Opcode.
For AI I'm using state machines for hand-to-hand combat, and micro-threads to simplify the main AI loops. It's really basic at the moment, I want to improve this a lot (it's probably the most interesting part of the project).
I made the level myself in 3DS MAX, which explains why it sucks. I re-used various parts from the original ONI levels, here and there. It's not really finished so don't expect much. Creating the level was actually quite fun. I wish I could spend more time learning
MAX and modeling better-looking things. The vertex lighting is precomputed by Flexporter, and of course I also exported the level with this plug-in. I know the level is currently quite empty and boring, sorry.
The glowing elements are supposed to look like Ghost In The Shell - Standalone Complex (PS2). The flying kicks on "sentinels" are inspired by Nightshade (PS2). The sentinels are those flying pyramids in one of the rooms. They're supposed to be flying robots but
I don't have a 3D model for them yet :)
Most sounds are from ONI, though a bunch of them come from other places. The fight music is from the "Iria Zeiram" soundtrack, but I'll probably change it. Most musics have been removed to keep the size reasonable. I found that ambient sounds are actually a lot more important than music anyway.
I don't know if I'll keep working on this one, but at least I wanted to release this small demo.