Goals

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 hard work.

  • 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 supports them.

    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.