
"Konoko Payne" - Work In Progress - April 2010

                                  -----------------

Do I really need to update this file? One more release for this everlasting project.
The 10-years project will probably take 20. Oh well. Changelist file has been
replaced by my un-edited history file, for you all to witness my insanity.

                                  -----------------

To run the game, double-click on "Flexine.exe".
If this does not work, double-click on "KonokoPayne.bat".

                                  -----------------

This is yet another test release for "KonokoPayne". This project is far from finished
but as you can see it is also far from dead - although not progressing very quickly.

About the loading time: on the first run the game should create the collision data,
then save it to disk. So, subsequent runs should load faster.

This is work in progress. It probably consumes a lot of CPU time and a lot of memory.
Don't try to run it on a "slow" PC. It should be ok with a relatively old machine anyway.

See the change-list for more details about what's new in this release.

                                  -----------------

There are two main levels:

- the "prototype" level was the first one I did. It is just a set of randomly connected
  rooms, to test various game features.

- the "game" level is hopefully better. This is the one I started for the "real" game.

Otherwise, some extra test levels are available in the "Developer" section.


----------------------------------[Game notes]---------------------------------

  - there is an experimental "Puppet Master" mode, à la GITS. You can activate it this way:
      - target lock an enemy
      - press the C key
      - when controlling the enemy, press C again to exit the Puppet Master mode

  - The "block" and "attack" (C) functions are currently experimental & not working.

  - Support for the PS2 controller will be added later. This is already working (plug a PS2
    controller, open the console, type "ps2") but the controls need to be polished a bit more
    for the game to be playable. Note that this was written a long time ago, now I might add
    an Xbox360 controller instead. Oh well.

----------------------------------[Tech notes]---------------------------------

I'm using a few external libs:

 - FMOD for the sound
 - NovodeX for physics
 - Recast for pathfinding

I was 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).

I switched from PathEngine to Recast in the August 2009 release. Support for Recast is
very new and experimental so you might experience some pathfinding issues.

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 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 the one I wrote for NovodeX/PhysX. At the moment it is using
a swept 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. This is probably the most interesting part of the project!

I made the prototype level myself in 3DS MAX, which explains why it sucks. I re-used
various parts from the original ONI levels, here and there. I'm a programmer 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. But it's just the prototype level so no harm done.

I also made the game level. It should look better than the prototype, hopefully!

The "Level 10 Redux" is an attempt at reusing one of ONI's levels. I had to portalize it
myself in 3DSMAX, add glowing elements, etc. It was just a try, I have no idea if I'm
ever going to use this.

The glowing elements are supposed to look like Ghost In The Shell - Standalone Complex
(PS2). The flying kicks on "sentinels", and the sentinels themselves, are inspired by
Nightshade (PS2).

Most sounds are from ONI, though a bunch of them come from other places. In particular
the musics come from:
	- the "Ghost In The Shell - Standalone Complex" soundtrack
	- the "Appleseed" soundtrack
	- the "Death by Degrees" soundtrack
	- the "Bubblegum Crisis" soundtrack

----------------------------------[Protoype level]---------------------------------

WARNING - SPOILERS - WARNING - SPOILERS - WARNING - SPOILERS - WARNING - SPOILERS

You should only read this part if you're stuck in the demo, it's better if you figure that
stuff out yourself ! Note that this is only valid for the "prototype".

 - There are 6 datapads to collect in the level. You need them to open the last door.

 - To jump from one enemy to the next:
    - Target lock the closest one, and hold the lock button down
    - Press the kick button while locked to jump & kick the enemy
    - On touching the enemy:
      - Press the kick button again before touching the ground to jump-kick a new enemy
      - Press the jump button to flip back

 - There are 2 ways to pass laser walls:
    - Using the shield you find in one of the rooms
    - By pushing & placing two boxes in such a way they open a hole in the laser wall. The
      boxes don't last forever under the laser, beware!

 - There are a bunch of combos available. The simplest ones are the same as in Oni (PPP,
   PPK, etc) but a few of them are more complex (KKK-Backward-Forward, for example). It's
   not really final so I won't bother describing them.

                                  -----------------

That's about it for now.

(to be continued)



 - Pierre Terdiman

 www.codercorner.com
 pierre.terdiman@gmail.com
 pierre@codercorner.com

