Dynamix Programmer Dave Moore made a large update to
his .plan "intended to be something of an open letter to Tribes
players that are asking about the ongoing OpenGL work, and anyone else who might be
interested." The extremely lengthy update details some of the difficulties they've
had with TRIBES OpenGL support based on the dominance of Quake-engine games that he says
influences OpenGL card and driver development away from the type of support required by
games like TRIBES. Here's an excerpt to try and capture the flavor of his post:
Now, we come to Tribes. Tribes is, by design, less geometrically complex than
Unreal or Quake2, and more complex than Quake. Tribes uses procedural animation for some
interior lightmaps, dynamically generates lightmaps for projectiles and explosions, and,
what "hurts" most, generates a large number of textures in our terrain engine
for detailing purposes. The terrain in Tribes was designed to trade geometric detail for
texture detail in order to achieve a good trade off for software rendering and Glide for
Voodoo1/2. Every problem we have run into in implementing OpenGL for Tribes has boiled
down to: no OpenGL card/driver combo currently available is prepared to handle the amount
of dynamic texture shuffling that Tribes requires.
Let me state it baldly. There is no excuse for this that I can see in a current AGP card.
Take the Voodoo1 as counterpoint. A card several years old, with a fill rate less than
half of a good second generation card like the TNT, the Voodoo1 can download upwards of
300-400 kb of textures per frame, at 30 fps, all the while running an app at 640x480 with
a depth complexity of ~3. The cards I have been testing on are sometimes hit with huge
frame rate penalties (30-50%) when downloading less than 8 kb of textures (10-30 small
lightmaps) per frame with a DC slightly above 2. Swinging your head around on the Tribes
terrain can cause pauses of a large fraction of a second. (The "hitches" I've
mentioned before.) I'll freely admit I'm not a hardware engineer, but let's look at the
math. The Voodoo1 downloads across the PCI bus at 33 or 66 Mhz. AGP 2x has an access rate
several times that, and the cards have the capability to leave the textures in system
memory, and access them directly as needed. (I should say, theoretically have the
capability, it's not utilized in some drivers, notably the TNT Detonator driver set) Why
is the AGP card slower?