Archived

This topic is now archived and is closed to further replies.

WhatEver

Don't you ever wonder how some of the pros get the hang of this stuff so quick?

Recommended Posts

WhatEver    125
I''ve been playing with OpenGL for about a year and a half now, and I still don''t know as much as the pros do. There''s a ton of stuff to learn to understand everything to the point where you can optomize it. I was thinking back about Quake 1. That game was software rendered! It had dynamic lighting just like todays Hardware Renderers. It even ran smooth on a pentium 1. How come I can''t get a scene with 1000 polys to run fast with OpenGL damnit =)! Gah, hardware incompatabilities!!!

Share this post


Link to post
Share on other sites
Guest Anonymous Poster   
Guest Anonymous Poster
Doing Quake1 in software is much more impressing than doing Quake3 in OpenGL. I see fantastic OpenGL works all the time done by "normal" programmers.

1000 polys is also not a very small number to display in a scene.

Share this post


Link to post
Share on other sites
CGI Joe    122
quote:
Doing Quake1 in software is much more impressing than doing Quake3 in OpenGL.


Maybe..but what does OpenGL offer? Texture mapping (at least I''m sure that''s all iD would take advantage of). A software texture mapper isn''t hard to write. (Well, it was in pmode assembly. Er... ). Ahh bollox - the guy''s a git.



Share this post


Link to post
Share on other sites
zedzeek    528
>>I''ve been playing with OpenGL for about a year and a half now, and I still don''t know as much as the pros do. There''s a ton of stuff to learn to understand everything to the point where you can optomize it.<<

ive been making games since 1983. but more to the point ive been doing opengl for over 2 years now and directx for a bit longer than that and ive only just started to reach quake3 rendering speeds, well 95% of it . the thing is there are no easy answers for fast rendering ie its a lot of small things to improve the framerate.
literally my engine is now 3x quicker than it was 6 months ago.

rambling a bit but basically all im trying to say there are no easy answers to fast rendering



http://members.xoom.com/myBollux

Share this post


Link to post
Share on other sites
Slinger    122
Try this link, read it all, after i read it and tried a fiew things, i got some extra speed out of my engine.

http://www.mesa3d.org/brianp/sig97/perfopt.htm

Share this post


Link to post
Share on other sites
KalvinB    102
If you think about it, it took from his first line of code to Quake for Carmack to learn how to write Quake.

You can''t expect to have all his years of experience in one year. I''ve been programming going on 12 years or so and I''m only 20. I''ve only been using DirectX for about 3.

Those 9 years prior with mostly BASIC greatly come in handy. It''s all concepts anyway.

Ben

Share this post


Link to post
Share on other sites
Slinger    122
Dont forget,

Quake was not an easy task,
not even for Carmack,

He spent alot of time reprogramming parts that he thought were not perfect to see if he could get more speed.

So if your looking for speed, I would suggest thinking about re-programming what you have (but save your code you have now) and see If you can get any more speed out of it.

Share this post


Link to post
Share on other sites
WhatEver    125
I''ve been programming for 5 years, so the programming part is no problem. Before I start coding any particular game, I want to get the best rendering speeds.

I''ll check out your link Slinger. As for reprogramming what I have, there isn''t much to re-program. It''s just the drawing routine that I''m having trouble with.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster   
Guest Anonymous Poster
Ever seen a recent pic of Carmack, he has gray hair. Tells you somethin..... hehe John the Car Mack Daddy..... seen his collection????

Share this post


Link to post
Share on other sites
Beer Hunter    712
Handcoded pmode assembly texture mapping with linear interpolation, combined with the use of bsp trees, although it''s no easy task to program, it''s understandable that such performance could have been achieved, just not by anyone. It would take persistance, skill, and an ability to go without sleep for days. Quake was very impressive indeed.

Share this post


Link to post
Share on other sites
zedzeek    528
on the subject of assembly IIRC theres only 3 routines that use asm in quake1 + looks like theres bugger all asm in q3 as well.

as dave eberly saiz on the back of his new book
"faster algorithms will ALWAYS win out over faster processors and assembly-language optimization techniques."

http://members.xoom.com/myBollux

Share this post


Link to post
Share on other sites
Possibility    122
One thing to remember about Quake1 is that it only went to a resolution of 320x240x256colors. That makes it alot easier to render then 1024x768x32 that you expect your current games to run.

Possibility

Share this post


Link to post
Share on other sites
Slinger    122
The trick is use as little polys as possible, put all the details in the textures, if you think about it, Quake probably renders very firw polys at one time in moast cases, The harder you try to keep the polys down, the faster it will run. 1000 polys is a big number when it comes to polys, I''m sure if you tried, you could cut that number down to about 500-700 polys if you used a nice BSP tree.

Check out:
http://www.tasteofhoney.freeserve.co.uk/vsd/bsp/bsppart1.html

The best BSP tutorial I have ever seen, it is written for D3D, but read it and get the concepts out of it then code your own BSP compiler/renderer with OpenGL.

NOTE:
That link is down, just keep trying, they should get the tutorial back up. It is worth reading.

Share this post


Link to post
Share on other sites
tcs    122
Quake3 is fucking slow ;-)

WAIT before you flame ;-) It''s way faster than UT and any other engine out there, but it sucks compare to the engine it could be when Carmack had 6 month more to do a GeForce port. When you would take a few month and optimize this thing for a GF, it could be 30-50% faster on this card.

And the engine is already incredible fast compared to nearly all other commercial engines. There''s always more to archieve, but I guess they just decided that Q3 is fast enough to be playable and now it''s already to fast, just think of how fast it runs on GeForce 2 cards and it will surly pass the 200FPS timedemo mark on the GeForce 3. No need for 250FPS ;-))

Tim

--------------------------
glvelocity.gamedev.net
www.gamedev.net/hosted/glvelocity

Share this post


Link to post
Share on other sites
WhatEver    125
quote:
One thing to remember about Quake1 is that it only went to a resolution of 320x240x256colors. That makes it alot easier to render then 1024x768x32 that you expect your current games to run.


That''s not true. You could change the resolution to any resolution your video card supported back then. Doom was the one stuck in 320x240x256.

I think the command in Quake1 to change the res was "vidres" and the number associated with the resolution.

I just used diplay lists to up my fps by 50 with a model consisting of 11,000 polys. I understimated the power of display lists.

Share this post


Link to post
Share on other sites
zedzeek    528
>>The harder you try to keep the polys down, the faster it will run. 1000 polys is a big number when it comes to polys<<
not nowadays one typical q3 character is about 1000 tri''s not counting multiple passes.

i back up what tcs saiz. quake3 is quite old i was playing the demo in 1999! shit thats last centrys technology. i can hardly wait for doom3 and the huge accompanying boost to opengl eg multiple lights giving shadows etc.
why is a 2 year old engine still the fastest one out . comeon ppl we can do better

there is a windows version of doom that lets u play in 640x480

http://members.xoom.com/myBollux

Share this post


Link to post
Share on other sites
Guest Anonymous Poster   
Guest Anonymous Poster
Just thought I might give some advice to newbies... When doing graphics programming, don''t use C++, stick to C :-)

I (and the Linux kernel team) have found that g++ compiles the exact same code less efficiently than gcc (the best c compiler out there), due to the more complicated language constructs that are in C++.

BTW: does anybody know if this is the same for Objective C? Perhaps if Objective C has the same efficiency of C, fast low-level driven Object-Oriented engines could become a reality. Of course, the GNU compiler collection (gcc) contains an Objective C compiler.

...and here''s some comments to keep you twats who enjoy flaming other people''s opinions happy...

GNU/Linux kicks MS ass
OpenGL kicks DirectX ass
WWF is shite
Up with mini-skirts! Down with hot pants!


Share this post


Link to post
Share on other sites
Don''t forget that the pros work from 9-5 five days a week (and some even choose to do more) rather than a couple of hours snatched on the odd weekend. When you''re working for this amount of time you learn a huge amount very quickly. Believe me, I learnt loads of stuff in just a few weeks after a few years of C programming when I got a programming job. I couldn''t believe how much faster and more efficient at programming I became when you are doing it all day long.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster   
Guest Anonymous Poster
quote:
Original post by Anonymous Poster

Just thought I might give some advice to newbies... When doing graphics programming, don''t use C++, stick to C :-)

...

I (and the Linux kernel team) have found that g++ compiles the exact same code less efficiently than gcc (the best c compiler out there



Just thought I might give some advice to newbies... When doing graphics programming, don''t use C, stick to Assembly.

I''ve found that gcc compiled code is less efficient than straight Assembly.

Share this post


Link to post
Share on other sites
simon_brown75    123
WhatEver/

John Carmack didn''t master 3d programming in a year and half either.

Also getting decent performance from a software 3d engine is always going to be extremely difficult. Quake1 in software mode still isn''t smooth in 640*480, even on my P3-650. Do you mean 1000 polys is too much for your OpenGL code with 3d acceleration?

Share this post


Link to post
Share on other sites
WhatEver    125
hell no. I get 500,000 plus polys a second. trying to get it higher. look down the list to find my spheremap demo if you haven''t already. that thing will tell you how many polys asecond my poor assed engine gets.

I worded the thread title wrong :/. It was suppose to read:

Don''t you ever wonder how some of the pros get the hang of opengl so quick?

I know John had lots of practice way before he did Quake1. I was just amazed at how fast he incorporated a new SDK like opengl in his new code for Quake2.

try this demo if you want to see my opengl framerates. There''s 1700 polys in the scene.

http://www.gamestead.com/downloads/displaylist.zip

Share this post


Link to post
Share on other sites
thed77    133
Well if you look at the Quake 1 source code. You would see that the engine code is actually designed like so many DOS 3D games. Which brings up a little philosophy I have: "If you design for a system that is lower than your target, you will have faster code." I mean write code for as system that is current but has extremely crappy hardware installed. Once you can get that code to a speed that is reasonable, add your hardware-spec code. That is the way SGI does it.(More or less)They design the basic code for the OpenGL lib, get it up to speed, then they give the hardware vendors templates to customize the function that can take advantage of their product. Sure you have a 1GHz processor but if you can get the same code to run on a 450MHz at a reasonable speed just think what it''ll do on your high-end users computer.
This does require good design modelling though.


It''s me, it''s that T-H-E-D.

Share this post


Link to post
Share on other sites
simon_brown75    123
Whatever/
Ok

As for how the pros can learn something as complicated as OpenGL or DirectX so quickly, I would say, like everyone else has already said, that it''s a combination of the number of hours they put in, and the fact that someone like JC had basically already mastered software 3d programming before he started with OpenGL. That''s gotta be a huge help.

Share this post


Link to post
Share on other sites