Speed of professional 3D games

Speed of professional 3D games

Post by Leon Bouquie » Sun, 11 Mar 2001 03:17:03



Hi.

I can't help but wondering how professional 3D games such as Sin
and Hitman 47 achieve such a high framerate in OpenGL.
I'm currently working on a chess board model with only the board
textured - the 32 chesspieces are around 250 faces each
(8000 faces total). However, my chessboard is going way slower
than the aforementioned games with their fully texture-mapped
environments and other technical stuff.

Is there some kind of trickery they're using? I'm already using
display list, but it doesn't seem to help much.

Leon.

 
 
 

Speed of professional 3D games

Post by Paul Mart » Sun, 11 Mar 2001 06:33:11



Quote:> I can't help but wondering how professional 3D games such as Sin
> and Hitman 47 achieve such a high framerate in OpenGL.

High performance is OpenGL (or any programming environment) can be acheived
by good design, good coding practices, knowing how to analyze performance,
and extensive tuning on target platforms.

Quote:> I'm currently working on a chess board model with only the board
> textured - the 32 chesspieces are around 250 faces each
> (8000 faces total). However, my chessboard is going way slower
> than the aforementioned games with their fully texture-mapped
> environments and other technical stuff.

Where is your bottleneck?

Quote:> Is there some kind of trickery they're using? I'm already using
> display list, but it doesn't seem to help much.

If display lists doesn't help much, perhaps it's because your bottleneck is
not function call overhead, bus bandwidth, or cache misses (things display
lists might help with). Perhaps you are bottlenecked somewhere else. Check
the FAQ section on Performance.
--

    Hewlett Packard TCD Personal Workstations Lab
    OpenGL FAQ: http://www.opengl.org/developers/faqs/technical.html
                http://www.frii.com/~martz/oglfaq

 
 
 

Speed of professional 3D games

Post by Pierre Allie » Sun, 11 Mar 2001 08:32:02


Quote:> (8000 faces total). However, my chessboard is going way slower
> than the aforementioned games with their fully texture-mapped
> environments and other technical stuff.

> Is there some kind of trickery they're using? I'm already using
> display list, but it doesn't seem to help much.

I guess you must know but OpenGL is state-based. ie, take care
of minimizing the number of state change. triangle strip are also
a good way to improve.

as an example, I suppose that you have some colored and lighted
check pieces. in your triangle loop, why not

+ generating triangle strip,
+ group vertices with common colors (less changes)
- group vertices with common normals (you can quantize them
   on a quadrant-sliced unit sphere)
- and so on

--
Pierre Alliez

http://www.codeproject.com/useritems/glexport.asp

 
 
 

Speed of professional 3D games

Post by kosh » Sun, 11 Mar 2001 19:07:46


I was reading a web page written by john carmack that says he dont use
display lists, he uses vertex arrays (compiled if you're card supports it)
then uses glDrawElements to pass the geometry to the card, apparently it's
more flexible and the speed you get is comparable, well, you know how fast
quake3 is.....

try using vertex arrays, they are fast, I use em, display lists are good,
but static, I dont think you can do dynamic LOD on a display list (say a
human) but then again, I suppose you could chunk the body up into pieces and
replace them with higher/lower detail models, but thats irrelevant...

yeah, so look into that, I get moderate performance oh yeah, pierre is
right, definietly minimise the number of state changes, group you're
polygons by texture or colour...stuff like that...

kosh


> > (8000 faces total). However, my chessboard is going way slower
> > than the aforementioned games with their fully texture-mapped
> > environments and other technical stuff.

> > Is there some kind of trickery they're using? I'm already using
> > display list, but it doesn't seem to help much.

> I guess you must know but OpenGL is state-based. ie, take care
> of minimizing the number of state change. triangle strip are also
> a good way to improve.

> as an example, I suppose that you have some colored and lighted
> check pieces. in your triangle loop, why not

> + generating triangle strip,
> + group vertices with common colors (less changes)
> - group vertices with common normals (you can quantize them
>    on a quadrant-sliced unit sphere)
> - and so on

> --
> Pierre Alliez

> http://www.codeproject.com/useritems/glexport.asp

 
 
 

Speed of professional 3D games

Post by Ruud van Ga » Mon, 12 Mar 2001 22:10:27




Quote:>I was reading a web page written by john carmack that says he dont use
>display lists, he uses vertex arrays (compiled if you're card supports it)
>then uses glDrawElements to pass the geometry to the card, apparently it's
>more flexible and the speed you get is comparable, well, you know how fast
>quake3 is.....

I noticed in my car sim as well that doing either display lists or
vertex arrays made little to no difference. It's basically I think
because the vertex array itself is ready-to-use (on most cards
hopefully), and it's about the only command done, so there's no gain.
Besides, display lists cost a lot of memory, I've noticed. Couldn't
race the F12K Monza track with a 256Mb machine without swapping. :)
Now off to nvidia.com to see what compiled arrays could do.
With the vertex arrays I get about 50 to 80fps currently (that
includes drawing a car, the physics are really next to nothing even
now I'm using Pacejka big fat formulas). I don't know about the
#triangles too much though, so it's hard to speculate.

Ruud van Gaal, GPL Rank +53.25
Pencil art    : http://www.marketgraph.nl/gallery/
Car simulation: http://www.marketgraph.nl/gallery/racer/

 
 
 

Speed of professional 3D games

Post by Paul Mart » Wed, 14 Mar 2001 23:56:35



Quote:> I was reading a web page written by john carmack that says he dont use
> display lists, he uses vertex arrays (compiled if you're card supports it)
> then uses glDrawElements to pass the geometry to the card, apparently it's
> more flexible and the speed you get is comparable, well, you know how fast
> quake3 is.....

John Carmack's blanket preference of vertex arrays over display lists does
not mean that Quake3 is running at optimum performance on all platforms.
There are many platforms and rendering cases for which display lists provide
superior performance to vertex arrays.

Display lists and vertex arrays are two different tools. Use either one when
appropriate.
--

    Hewlett Packard TCD Personal Workstations Lab
    OpenGL FAQ: http://www.opengl.org/developers/faqs/technical.html
                http://www.frii.com/~martz/oglfaq

 
 
 

Speed of professional 3D games

Post by ZZ » Thu, 15 Mar 2001 06:35:17


my engine runs about 25% faster than q3a on my computer. i attribute this to
using GL_TRIANGLE_STRIP instead of what q3a uses GL_TRIANGLES.

--
lets hear it 4 billy bollux and his AMAZING bouuuncing balls
zed zeek - big bollucked king of the world , messiah , and all round nice guy.
GET IT HERE http://members.xoom.com/myBollux  FREE BOLLUX




> > I was reading a web page written by john carmack that says he dont use
> > display lists, he uses vertex arrays (compiled if you're card supports it)
> > then uses glDrawElements to pass the geometry to the card, apparently it's
> > more flexible and the speed you get is comparable, well, you know how fast
> > quake3 is.....

> John Carmack's blanket preference of vertex arrays over display lists does
> not mean that Quake3 is running at optimum performance on all platforms.
> There are many platforms and rendering cases for which display lists provide
> superior performance to vertex arrays.

> Display lists and vertex arrays are two different tools. Use either one when
> appropriate.
> --

>     Hewlett Packard TCD Personal Workstations Lab
>     OpenGL FAQ: http://www.opengl.org/developers/faqs/technical.html
>                 http://www.frii.com/~martz/oglfaq

 
 
 

Speed of professional 3D games

Post by Stan Le » Thu, 15 Mar 2001 11:17:57


Quote:> my engine runs about 25% faster than q3a on my computer. i attribute this to
> using GL_TRIANGLE_STRIP instead of what q3a uses GL_TRIANGLES.

I find it very hard to believe that Carmack is not using strips and
fans.
 
 
 

Speed of professional 3D games

Post by Ruud van Ga » Thu, 15 Mar 2001 18:25:06



>> my engine runs about 25% faster than q3a on my computer. i attribute this to
>> using GL_TRIANGLE_STRIP instead of what q3a uses GL_TRIANGLES.

>I find it very hard to believe that Carmack is not using strips and
>fans.

Perhaps the inclusion of multiplayer/physics/player handling code is
omitted from his numbers. But in any case, getting near the Q3A is a
good achievement in itself ofcourse! :)

Ruud van Gaal, GPL Rank +53.25
Pencil art    : http://www.marketgraph.nl/gallery/
Car simulation: http://www.marketgraph.nl/gallery/racer/

 
 
 

Speed of professional 3D games

Post by ZZ » Fri, 16 Mar 2001 05:50:13


well he mentions in some paper on the net drawing 99% of the stuff with
glDrawelEMENTS (GL_TRIANGLES..

i believe the reason why is cause carmack likes to do everything himself ie he
doesnt rely to much on the cards capabilities eg using GL_TRIANGLES u can do
backface culling yourself before u send the tris to the card, with strips u
cant. he generates his own environment mapping coordinates. all the matrice math
he does himself etc

--
lets hear it 4 billy bollux and his AMAZING bouuuncing balls
zed zeek - big bollucked king of the world , messiah , and all round nice guy.
GET IT HERE http://members.xoom.com/myBollux  FREE BOLLUX


Quote:> > my engine runs about 25% faster than q3a on my computer. i attribute this to
> > using GL_TRIANGLE_STRIP instead of what q3a uses GL_TRIANGLES.

> I find it very hard to believe that Carmack is not using strips and
> fans.

 
 
 

Speed of professional 3D games

Post by ZZ » Fri, 16 Mar 2001 06:06:21


physics, collision detection is all switched on, sound off, no ai.

my engines history all with the same machine approx figures this is what i could
do then + what i can do now at the same speed

a year ago 5000 single textured non lit tris (not many different textures)

now 15000 80-90% multitextured lit tris using a heap of various textures with
'effects' (blending, alpha test,environment mapping)

--
lets hear it 4 billy bollux and his AMAZING bouuuncing balls
zed zeek - big bollucked king of the world , messiah , and all round nice guy.
GET IT HERE http://members.xoom.com/myBollux  FREE BOLLUX

Quote:> Perhaps the inclusion of multiplayer/physics/player handling code is
> omitted from his numbers. But in any case, getting near the Q3A is a
> good achievement in itself ofcourse! :)

> Ruud van Gaal, GPL Rank +53.25
> Pencil art    : http://www.marketgraph.nl/gallery/
> Car simulation: http://www.marketgraph.nl/gallery/racer/

 
 
 

Speed of professional 3D games

Post by Howard Yo » Sat, 31 Mar 2001 14:38:53


If Mr. Carmack says that he likes vertex arrays, then manufacturers will
most likely focus their optimizations on them.  Nothing sells 3D cards
better than high Q3 benchmarks.  Of course this probably has less of an
impact on the pro 3D market.

Howie




> > I was reading a web page written by john carmack that says he dont use
> > display lists, he uses vertex arrays (compiled if you're card supports
it)
> > then uses glDrawElements to pass the geometry to the card, apparently
it's
> > more flexible and the speed you get is comparable, well, you know how
fast
> > quake3 is.....

> John Carmack's blanket preference of vertex arrays over display lists does
> not mean that Quake3 is running at optimum performance on all platforms.
> There are many platforms and rendering cases for which display lists
provide
> superior performance to vertex arrays.

> Display lists and vertex arrays are two different tools. Use either one
when
> appropriate.
> --

>     Hewlett Packard TCD Personal Workstations Lab
>     OpenGL FAQ: http://www.opengl.org/developers/faqs/technical.html
>                 http://www.frii.com/~martz/oglfaq

 
 
 

Speed of professional 3D games

Post by Ruslan Abdikee » Sat, 31 Mar 2001 14:59:04



Quote:> If Mr. Carmack says that he likes vertex arrays, then manufacturers will
> most likely focus their optimizations on them.  Nothing sells 3D cards
> better than high Q3 benchmarks.  Of course this probably has less of an
> impact on the pro 3D market.

And manufacturers do, they even provide various vertex arrays optimizations
(e.g.
compiled vertex arrays or nVidia's vertex array ranges and fences).

But, as it was stated by Paul Martz,

Quote:>> John Carmack's blanket preference of vertex arrays over display lists
does
> > not mean that Quake3 is running at optimum performance on all platforms.

And this is true.
Profiles that I've done a little ago on GeForce and GeForce2 cards have
clearly shown that
display lists provide superior perfomance compared to vertex array, and even
nVidia's VAR extension (being really cool thing for dynamic meshes) is
slower that display lists.

Paul Martz is absolutely right.
"Display lists and vertex arrays are two different tools. Use either one
when appropriate."

Sincerely,

Ruslan Abdikeev
Brainbench MVP for Visual C++
http://www.brainbench.com

 
 
 

1. Game sprites required for professional computer game

Hi,
We are interesting in purchasing some 2d sprites for our new runescape RPG
game.
(see http://www.jagex.com/runescape.html)

The sort of thing we need is animations of various monsters to use in our
game. For instance a dragon, a giant-rat, a giant-spider, a skeleton, a
ghost, etc... To give you a sense of scale we imagine the skeleton would be
aprox 48x88 pixels (doesn't have to be exactly that size). The rat perhaps
97x53 pixels (side view size). The dragon would perhaps 140x100 (side view
size).

Each monster needs to be drawn facing 5 different directions with 3 frames
of walking animation per direction (we are actually using 8 directions, but
for 3 of them we are just flipping other views to save memory, the monsters
need to be designed so they flip without any obvious innacuracies, (e.g
objects switching hand) but we're not worrying about the shading being the
wrong way around on a few frames as this really doesn't show up).

We also require a 3 frame combat animation per monster, this only needs to
be drawn from one viewing angle (sideways on - facing right).

If anyone thinks they can supply these graphics or knows a good place where
I can look please contact me via email. We would need to own any graphics we
commission, such that they are exclusive to our game. We are also interested
in top-quality graphics only, as we aiming for a professional quality game.

Graphics should be supplied in 256 colour gif format. No jpegs please, and
no anti-aliasing or dithering! (It takes too much memory, this is going to
be an online game so has to download quickly). We do of course still want
them to look good, so good shading and fine detail is important.

If you can supply these graphics please tell me:
a) how much will it cost per monster (Each monster requires a total of 18
frames of animation)
b) do you have any relevant samples of work I can see? For example any
animating sprite of a monster or person. The more examples the better, as we
have no shortage of internet bandwidth here. We won't use any samples you
send us in our game without paying you.
c) Any other relevant information you can give me

Thanks

Andrew Gower
Jagex Software (http://www.jagex.com)
Unit 213, 48 Regent Street, Cambridge, CB2 1FD, England
Tel: +44 (0)870 3215241

2. BSP Trees Compiling

3. GAMES GAMES GAMES GAMES GAMES GAMES GAMES GAMES GAMES

4. edit message

5. New Dedicated Forum for Games Professionals -Artist

6. Timbuktu Pro 32 / IBM PC Camera

7. how do professionals do games

8. Professional games?

9. games and professional openGL card

10. Professional games

11. Speed Speed Speed!!

12. Games with OpenGL - need for speed!