Performance increase from low-poly

I am going to be creating a game that includes features similar to Fallout, Godfather, Skyrim, Borderlands, and other similar titles.

It is going to be a very feature rich game.

How much would I benefit from using low-poly models?

this is what I mean by low-poly:

Very much so. Using lower-poly models is key to optimizing a game – the less triangles that there are, the less the GPU has to process each frame. It will also improve performance due to physics collisions and calculations.

The most significant improvement would be that you might be able to make enough content for such a game in the first place.

You should look into “level of detail” as well if you haven’t already. LOD allows you to have high poly models when they are close to the camera or the player, but as the player gets further in distance from the models they switch to low poly versions of the same model. If it’s done right the player should not notice the switch. This will give you better performance if you really need high poly models.

The level of detail panel is in the objects tab in Blender.

I’m actually wanting the whole game to have that low-poly look, but the same type of gameplay that comes with the games I mentioned

Weeeeelllll

  1. Generally, the BGE’s rasterizer lags not on poly-count, but rather on batch-count. So having less high-poly objects is better than having more low-poly ones, though I’d guess the BGE would draw a single high-poly mesh slower than a single low-poly mesh (though the difference might not matter in practice). Basically, low-poly would draw faster, but I’d worry about actual number of draw calls over the complexity of each individual mesh.

  2. Generally, you wouldn’t use the display mesh of an object for physics anyway - you’d parent the display mesh to a separate physics mesh, which would pretty much always be extremely low-poly, or even just a simple physics shape (like a sphere).

However, I’m sure you’re aware of this, MrPutuLips. It’s for those who don’t know and might be interested.

@Kheetor - That could be true. Lower poly could mean simpler to make, though doing anything well can be difficult and take awhile, regardless of how complex it is.

I agree with SolarLune, if you model in this style you will get much less problems with the number of polygons and there fore render performance and you can model much faster. It will also help you to keep your the look on the models consistent, which is essential for the feel of a game.

Nevertheless you might still stumble over the typical problems of game development (lags because of to much objects, faces, heavy shaders, heavy code …)

tristan401 - You can still use a LOD system to help performance. For example, If you wanted a bunch of trees like in that picture you posted, you would still have a problem with performance(it will add up more than you think). When the player gets far enough away from the tree you could switch it for a model that was a simple pyramid structure( 4 verts, 6 face) and it would help performance greatly and look fine at a distance.

SolarLune is correct, but blender wouldn’t just do better at rendering one lowpoly object vs one high poly object it would also do better at rendering ten 3000 face objects better than one 1,000,000 face object so you have to find a balance.

What I did with a project of mine is I made a lod with large sections of land where the low poly versions of the land were one piece and when the player got to that part of the land it would switch to a piece that had all the cars and props as separate pieces, so there is a balance. You can download it here: http://www.blenderartists.org/forum/showthread.php?301683-City-Blocks

Just imagine those cars are the trees and you should get what I’m saying. It runs extremely well in the BGE

There are other reasons why you might want the trees to be separate when the player is close. For instance, if you wanted to shoot the leaves on the tree and have sprites coming out looking like leaves were exploding, you could only do that if the leaves mesh are separate from the trunk, otherwise when you shot the trunk you would get the same effect of leaves coming out. This is because blender has to know which object is different and the only way you can do that is to separate the mesh. give the tree bark one property and the leaves another and when the player is far enough away join them in one low poly object that doesn’t get effected by the player.

That’s hella good point right there.

@SolarLune: Yeah I should have explained that in the post, thanks for the corrections – was feeling a bit lazy :stuck_out_tongue:

+1 to being able to make assets in low poly style. Really though you should aim to evolve an artistic pipeline, where you feed ideas in one end and a finished art asset comes out the other in the shortest time possible. Some things can improve the speed of such a pipeline such as procedurally generated textures, baked textures, reusing armatures for multiple models, using found images for textures (only viable if it takes less time to find an image than to make one) or using scripts to automate part of the process like rigging or whatever.

Such a pipeline might work faster with low poly assets, or it might not. It depends on your own artistic workflow. I know some people who do medium-high poly stuff baked from high res sculpts in the same amount of time it takes me to model and texture a low poly model, but they have a special talent. :slight_smile: Find what works best for you (it might be a good idea to invest some time in learning about sculpting and baking as this seems to be the future (or even the present state) of game asset production. Even hand painted low poly assets are often painted in 3d using material painting tools rather than directly on to the UV sheet these days.

One thing that will really be helped by having low poly models is if they are rigged. Deforming a low poly mesh is quicker than a high poly one. So your animated characters would be the best recipients of a low poly makeover. Static features such as terrain or background are less important to reduce in complexity (though the speed of your game will still benefit).

I’ve run Blends with more than 12,000 low poly objects in them at 60 frames per second because they were not rigged and were simple no-collision objects. If you have just 10 rigged characters on screen at once you’ll see a big slow down (though this has improved with the threaded animations introduced recently).