Most of the IOTD postings are high-tech graphics engines using the
latest graphic hardware, OpenGL/Direct3D APIs etc. We already made a
posting like that about our PC game called FreeGen. Now this is
something special :) Maybe some of FlipCode's readers don't know (or
remember) the time when floating point calculations were a restricted
area for realtime graphics. That was the time when 286/386 ruled the
world - the time of fixed-point calcs, raycasters and direct video-RAM
This is the latest project of Garga Games (division of FreeGen developer
Dimension Design): 3-D game for low-power PDAs. It's a "3-D", not "3D"
because it's a special case of 3D environment. The screenshots are from
the version for CASIO PocketViewer.
Here are some details of this computer:
V30 processor (i80186 compatible) running at 20MHz (which means good
old 64KB segmentation);
160x160 pixels with 1-bit "color" depth ;) touch-screen;
4MB or 6MB flash memory (used as RAM sometimes) and 128KB RAM for
dinamic application loading (where actually the application runs);
Casio OS developed by Casio specially for Pocket Viewer family of PDAs;
The game is coded 100% in C (without any ASM to be more portable), and
has really optimized code to run in realtime on computer like this one.
The code dosn't contain a single float or double calculation. The engine
uses raycasting for walls (like Wolfenstein 3-D) and projection/scaling
for sprites. The game has some interesting features like pseudo-lighting
effects (in 2 colors ?!?!) using two models of every texture (dark and
light). The game also contains the Garga Ball virtual analogue
controller, designed especially for pen-based computers.
You can download and try the demo version at the Garga Games website,
http://www.gargagames.com - if you have a PocketViewer, of course! :)
Programmer of Garga Games