Shuriken v0.3.2 alpha release
(C) 2003-2004 Sos Charnooh
charnooh@tenbit.pl
-27.08.2004-

.introduction
The game is the remake of Nintendo game "The Legend of Kage". It's unofficial for now, but wip name is "Shuriken: The Legend of Kage 2". I have to contact Taito and ask about it, before i get into some trouble. For now Kage can only run, jump, and climb trees. The alpha release was to see if someone is interested in this project, because I wouldn't mind if somebody'll help me. What you can see in the release took me about 3 months of work (actually ten months with looong breaks). It took me tree days and two nights without sleep just to make this doc (in the meantime, i used my free 15 minutes to add 3dfx support). 

.requiments
There are tree versions of app included, because my laziness didn't aloow me to make setup program, or create an INI file.

Low GFX version:
-PII 350MHz
-64MB RAM
-OpenGL 1.1 compatible 3d accelerator or 3dfx
-DirectX 7.0

High GFX version:
-PIII 800MHz
-256MB RAM
-OpenGL 1.1 3d card, preffered G-Force2MX and higher
-DirectX 9.0

3dfx version:
-P266 MMX
-16MB RAM
-3dfx card w/glide3 drivers
-DirectX 7.0

My hardware:
- C400MHz
- 256MB RAM
- OpenGL 1.1
- 3dfx Voodoo2 (finally it works!)
- DirectX 9.0c
- Intel 810e integrated graphics adapter

.keys
W,S,A,D - Move,turn (you can run only forward for now)
Space - Jump
F - Display FPS (hold)
Mouse - Move camera around character

.description
Most of the stuff in game is real-time calculated. Only thing that uses external file is character animation. The character is build of 10 points: corpse top, corpse bottom, left and right elbows, knees hands and foots. Character is build out of angles, not point, so it looks better when animating. Animation is based on simple interpolation. Six keyframes are interpolated by 10 mid-frames. Trees are pre-computed. They are just tubes with 32 rows. Trees are randomly distorted at bottom two slices. Shadows are just alpha-blended triangles and are a little above ground surface. Treetops are made of six quads (i don't like using polygons and quads...). Ground is gridded. In 256x256 forest there is 16x16 grid. Oly trees are clipped, excluding shadows. There is no front-end for now. Jumps are parabolic. Better CPU makes higher jumps, due to no frame rate limit. On my C400 w/integrated graphics and 256MB RAM, lo-res version is running about 20fps, and hi-res about 3fps ;) NO MANUAL OPTIMISATIONS HAD BEEN MADE, too much things that could be pre-computed are real-time calculated. Lo-res version runs in 640x480x16bpp with 16 bit Z-buffer, 100 units clipping distance, and 0.06 fog density. Hi-res is 1024x768x16bpp (my GFX can't run in 32bpp mode, sorry), 32bit Z-buf, fog density is set to 0.01, and 300 units clipping distance. 3dfx version uses MesaFX library/wrapper (call it as you wish). MesaFX is included in the release, but i didn't included Glide3, that is provided with 3dfx drivers. Everything is set like lo-res version, axcept for fog. Fog color is set to black, because the fo, and screen clearing colors, differs, they're given exact same values though. It runs preety faster on 3dfx version. (on my hardware lo:20fps hi:3fps fx:30fps). Btw, fog is set to exponential (GL_EXP). The 256x256 units foresr field is wrapped, so everything has to be drawn 9 times. But thet excludes borders in the end of the forest. There are 80 trees in forest grid unit. I didn't included posefile editor in the release. Every part of character (two arms and legs) are described by two angles and range (distance between shoulder and hand) elbows and knees are real-time calculated. If the there is tree covering character, it is alpha-blended in rate of 0.2 alpha. It is computed, like if the range of tree origin to character-camera line is smaller than tree radius then it is blended. Fog and depth-tests are disabled for debug info. Only fps is implemented in debug-info. In debug version infoo covers most of the screen. Lightning is random in rate 1/8. Lenght of lightning is random. No soud has been implemented, due to aLlegroGL bug, that mutes sound. I used v0.1.5 of AlGL, there is v0.2.2 released though. Newer version do not mute sound, but it don't support texture filtering (i'll work that out later). I'll try to make final release more scene-wise, like linking everything statically, and stuff the executable with all textures and posefile. Posefile includes 4x6 keyframes. Six for stand, run, jump, and climb. I noticed a major bug while alpha-blending. It's that a texture is covered by another, alpha blended texture, the first one is not visible, even though the second one is fully transparent. By the way, if there is another, third texture behind the second one, it is visible. It only appears for the texel alpha channel, not for vertex alpha shading. I think that this happens rarelier in 3dfx version. That concludes technical information. I wrote this, because, i didn't want to release source code, and GPL version, until i make some code-cleaning, and add comments.

.tools
List of the software i used to make this release:
 - MinGW32
 - Dev-C++
 - Graphics Gale
 - XnView
 - MS Paint
 - Notepad ;)
 - Allegro 4.0.3
 - AllegroGL 0.1.5
 - Inno Setup Compiler
 - handmade pose editor

.changes
- added 3dfx support
- made tree independent releases, and installs
- removed sound garbage

.thanks
Noone helped me, but thanks to Allegro and AllegroGL developers

.contact
If you want to join the project, or to report bugs write:
charnooh@tenbit.pl

PS: don't write stuff like, the game is too slow, or about Z-fights. Sorry for not writing proper english, but it's second night, I don't sleep, and next tree days a Beer Festival will be hold in my town.