GAUGE is an ambitious project with an idealistic set of goals, but
I believe all of these can be met with a little patience and some
- Good Design: The number one priority in the GAUGE project is design.
GAUGE is object oriented to the extreme. When designing an object oriented system,
it is easy to make mistakes that lead to messy, hard-to-understand code. We are
being very careful to avoid such situations, and to keep GAUGE as clean and clear
as possible. Of course, it is hard to judge one's own code in this respect. If
you are experienced in object design, take a look at GAUGE and
tell me what you think needs improvement,
and what is being done right.
- Extensible: GAUGE will be able to support almost any file format,
any API, any protocol, and any algorithm through the use of plugins.
- Flexible: GAUGE will be able to support any sort of 3D game, including
first person shooters, real time strategy, simulations, and more.
- Portable: GAUGE is not dependent on any API other than ANSI-C/C++. An
extensive portability layer has been built into the engine to ease the
process of porting GAUGE to any platform. Note that while GAUGE is not
dependent on OpenGL or POSIX, porting will be much easier if your OS
Porting a game that runs on GAUGE usually takes no more that a re-compile on
the target OS. However, one of GAUGE's long-term goals is to make even that
unnecessary. Eventually, the only thing which will distinguish games will be
the scripts they use for entity interaction. These scripts will be compiled to
some form of bytecode, which will allow the same game to run on every system which
GAUGE runs on without any effort on the developer's part. Performance will not be
an issue because all performance-critical tasks will be handled within the game
engine itself, which will be compiled natively on every platform.
- Scalable: GAUGE uses various methods to control the level of detail of
a scene. By using a combination of progressive meshing and bezier curves, GAUGE
will allow you to create models which can be automatically scaled up or down in
geometry detail. By using multi-pass rendering techniques where some passes can
be skipped (at a cost in image quality), GAUGE can adjust the pixel detail of a
scene. The result of all this is that GAUGE will be able to automatically adjust
the image quality of a scene to match the available hardware.
- Reusable: GAUGE's component architecture has been designed with
reusability in mind. Thus, many of the components would work wonderfully
in other projects, even ones that have nothing to do with gaming. As a matter
of fact, we are considering breaking many of the lower-level components off into
a separate library which would not be game-specific.