---

SEUL: Game ToolChest (GTC) project announcement

Roger Dingledine writes:

The GTC (Game ToolChest) project is developing an LGPL’d library
for doing many things that are useful to 3d games. The web site is
http://gtc.seul.org/. You can
download the 0.2 release from http://gtc.seul.org/gtc-0.2.tar.gz.
You will need a recent release of Mesa (or some other OpenGL 1.1
implementation) — look for rpms at ftp://contrib.redhat.com/ or
http://www.mesa3d.org/download.html
for source packages. After compiling, you can cd into the demos
directory and run “flyingducks”, which will let you fly in space
through an armada of space ducks, which you can also shoot. You can
also try the multi-player version by starting a server with
“duckserver” and connecting to the server with “gfxclient”.

GTC is part of the SEUL
project
.

Please download the code and try it out. If you have any
comments, suggestions or if you want to participate, e-mail me at
[email protected] Your input is very valuable to us.

Currently, a 3d library is in progress which sits on top of
OpenGL (a “visual simulation” library). Although at present GTC
doesn’t have very many features, some fancy collision detection has
been implemented. There’s also a networking library, which
simplifies the packing of data and communication. The socket API of
Unix is good and simple so there isn’t all that much more to do,
but it still provides some useful features.

One of the goals of GTC is to provide new functionality — not
just another API to do something which other APIs already offer.
There are a large number of game programming libraries out there,
though there are only a few libre ones for 3d gfx. To my knowledge,
PLib is the other
good 3d library. Its unique feature from my standpoint is the
widget set it provides on top of OpenGL.

What’s done:

  • Basic networking code.
  • Basic meshes and setup code.
  • Scene graph & basic collision detection.
  • Generic client which ought to work for any game
    implementation.
  • A demo mini-game (shoot space ducks).

TODO:

  • Gfx stuff: loading meshes, textures, skeleton, LOD meshes,
    projected shadows, streaming video…
  • Collision detection. This is half done.
  • Reducing the bandwidth required by the generic client.
  • API documentation. It is not stable enough yet to be worth
    documenting but eventually this will need to be done. Current
    documentation is outdated.
  • We should be educated about CORBA. It may be that CORBA is
    useless to us now but it wouldn’t hurt to check and make sure.
  • Content. We need to have some objects to work with.
  • Language bindings. We really really want to be able to use GTC
    from many many languages: C++, Perl, Python, Guile, etc…