★ wanayoo — archive 1999 http://gtc.seul.org/Nouvelle recherche | Portail wanayoo
GTC: the Game Tool Chest

What?

GTC is a C library for making networked 3d interactive applications.

So far, the only really good part is this. You give it a scene graph (see below) and it will make sure that all clients connected to the server have a synchronized copy of the scene graph. For instance, you could have a scene being a maze with people shooting and all the projectiles, with the clients being players wanting to see where they are. Networking is handled for you, the encoding is compact.

Also present is a small library to do global collision detection. Given a list of bounding boxes, it checks all pairs of bounding boxes for collision. The algorithm attempts to run faster than O(n2) by using a form of pruning. In the future, scripting language bindings will be added.

What's a scene graph?

In brief, it's a description of a 3d world. In the example game, the scene graph is a list of spaceships with their positions. When a ship fires, a new object is added to the scene graph (the projectile). When a ship or a projectile gets destroyed, it is removed from the scene graph.

For a more verbose explanation, please see the overview. Note that I worded it for suits.

Screenshots
Sorry, I know they're a bit dark. Thumbnail
CVS (Sat Jan 15 2000)
Links
Similar Projects
MPEG-4 I worked on this. I haven't seen an implementation yet.
PLib has a scene graph library, OpenGL widget set and more.
Crystal
Space
a very large effort which appears to be quite succesful.
SDL a very low level library that opens windows, draws pixels, sound, networking and soon OpenGL for you in Win and Linux.
GTS a geometry library for a couple of good things, including collision detection.
Verse extremely super similar project.
Developer Tools
Malloc Malloc debugging tools. Bounds checking gcc, dmalloc, electric fence.
Doxygen is a documentation generation system.
Build Tools Automake, Autoconf and Libtool.
CVS for versioning and code repository.
GNU m4 a macro processor.
System Libraries
OpenGL and Mesa, the low-level graphics library used by the browser.
GTK+ a GUI toolkit/widget set.
XFree86 the most popular X server.
ORBs ORBit and Xerox PARC's ILU. See also CORBA.
Phtreads and pthread-win32.
mingw32 A Unix emulation layer for Windows.
Modellers, Sound & Misc
Modellers Moonlight Atelier (free, no source), Blender (shareware) Extreme Wave (libre but primitive), Primal Form (libre, new).
MikMod a sound library.
Codecs OGG Vorbis and GSM. Both are libre.
Scripting Python, Guile, Perl.
History
0.0 Original annoucement on freshmeat with pre-release code.
0.1 First release with demo shooter. Fri Jul 9 19:43:34 EDT 1999
0.2 Convert to new metagfx code, network the shooter. Mon Jul 19 13:51:48 EDT 1999
0.3 Texturing, better networking, some real meshes. I can load .asc files and .ale files. Added support for "resource repository". Wed Sep 1 16:31:50 EDT 1999
0.4 More structured network protocol. Also reduced bandwidth requirements. Added AI to the sample game. Sun Nov 28 15:41:14 EST 1999
0.5 This time for real, need to add 2d to the scene graph. Thu Dec 23 03:48:03 EST 1999
0.6 Cleaned up stuff. Added a starfield. Added rendering contexts, you can now do things like turn off the Z-buffer or backface culling or lighting... License change to GPL. Tue Jan 4 13:50:52 EST 2000
0.7 Minor bugfix for people without . in their path.
0.8 Initial SDL support, initial multithreading, better make install, configuration file support.
Future

Clean up stuff? Add better .ase loading for Jussi's very cool mesh. Add viewports. Add font rendering (maybe) and text boxes. Add streaming sound. Convert to use SDL. Make a CORBA interface. Add a search path for resource files. Well, this may not all make it into 0.8 but...

I've been playing with SDL. It turns out that SDL's threading support is very lacking. I've been talking to Sam but according to what he's told me so far, he still has problems with servicing an event loop in one thread and doing gfx in another in win32. I discovered a win32 implementation of pthreads. The Windows implementation is here. While this gives some hope for the win32 situation with GTC, the problem isn't solved yet.

I am very busy right now with my thesis. In April, I plan to resume work on GTC and turn it into my income source. Stay tuned.

 
License
GNU GPL
Documentation
Library Reference:
html, ps.gz.
Overview (for suits?):
html, ps.gz
Mailing Lists
gtc-dev and
gtc-cvs
Download
-Source v0.8 Feb 24.
-Browse v0.8.
-Linux binaries
Type make install to install.
-RPMs by David Philippi
-Older Source:
0.7 0.6 0.5 0.4
0.3 0.2 0.1
Author
Sébastien Loisel


This document was generated using GNU m4 on Mon Feb 28 22:50:41 EST 2000 . The CVS header is:
$Header: /home/gtc/public_html/gtc-cvs//public_html/index.html,v 1.78 2000/02/29 04:00:13 loisel Exp $