Game Perfomance

Started by
5 comments, last by CGXel 9 years, 1 month ago

(excuse my grammar and my weird way to connect phrases, I speak spanish)

I was wondering what decreases a Game's perfomance? (like FPS), for example, I know (or I've been told) that having models with too many triangles will decrease a game perfomance, so... yea... what are all those "things" that slow the perfomance?, it'd be useful too knowing how much does it affects it, like, "too many textures would slow the perfomance, but not as much as too many triangles in the scene" (something like that)

Any kind of information its useful!

Don't tell me I can't do it.

Advertisement

Moving this over to Game Programming.

SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.
Everything decreases performance. A profiler is the only thing that will tell you the truth in more detail.

Some links for you:

To gain a decent understanding of what might impact graphics performance, read and understand this thoroughly:


"too many textures would slow the perfomance, but not as much as too many triangles in the scene" (something like that)
No one will be able to make any general claims like that. It will depend on your situation. Sometimes vertex processing will be your bottleneck, sometimes (more commonly? though I hesitate to say anything like that) texture bandwidth will be your bottleneck. Sometimes something else will be.
And of course, your bottleneck might be on the CPU, not be the GPU.
So yeah, you can't really answer this question generally:


what are all those "things" that slow the perfomance?
Like Nypyren, said, "everything". You can only answer "what are all those things that are taking the longest in this particular game in this particular frame" (using a profiler).
All things take time. Some things take more time than others.

Among the most time consuming things in the computer is I/O. Stuff going to or from a disk or a network can take anywhere from milliseconds to seconds and sometimes longer.

Among the next most time consuming things is anything that travels between chips. Moving from a memory chip to a CPU, moving from a CPU to a GPU, moving to an audio chip, all of these are slow.

Among the fastest things you can do is stuff that uses already transferred data, in the right order, on the same chip. Processing that type of data on a GPU or a CPU is amazingly fast, so fast most people struggle to wrap their brains around just how fast that is. By the time a photon has traveled from your monitor to your eye, your CPU has had enough time to consume nearly 500 instructions. [rollup="the math"]Light travels about 30 cm per nanosecond, so about 3-4 nanoseconds. Assuming an i7 4790 like is on my desk, that's 8-12 cycles; the latest rounds of computer processors can decode up to 40 instructions per cycle in a perfect environment, times 12 cycles. Multiply it all together, that's a max of around 500 CPU instructions in the time it takes light to travel from your monitor to your eyes.[/rollup] As video cards that have even more processing units than a CPU, it can do much, much more in that time.

The biggest reason CPUs and GPUs cannot run that fast all the time is that running full speed they consume a lot of data. They very quickly run out of stuff to process. Fresh data needs to travel from one chip to another, which is slow.

Since games are constantly pulling things out of memory, transferring data between chips out to the graphics card and such, the only way to know what is making your specific game slow is to use a tool, a profiler, to measure the performance and identify where performance is slower than you would like.
Everything you do takes time. By eliminating instructions you can increase the execution rate, as well applying many optimizations out there correctly.

E.g: rendering triangles that can't be viewed, performing collision detection on objects that can't collide given some condition, drawing things that didn't change from frame to frame (frame coherence), wrong use of memory cache (cache coherence), etc. these are just 10% of the problems that should be tracked.

Thank you all for your answers and for being so nice biggrin.png

I'll keep an eye to read the blog phil_t suggested, because I don't have any programing knowledge so far and I've just started using Unity (there seem to be good tutorials on Digital Tutors)

Could anyone suggest me a good online curse or any useful tips for basic programming? (for Unity), I don't know anything about this topic but my first long term goal its to finish a simple indie game

Edit:
Here's an useful link I've found smile.png

http://answers.unity3d.com/questions/374930/what-should-i-learn-first.html
(I really don't remember how did I get to that webpage, becasue I don't see the same link posted on this topic, lol...)

I've found hundreds of tutorials so far, I'm really excited!, time to learn and take notes :)

Don't tell me I can't do it.

This topic is closed to new replies.

Advertisement