About Store Forum Documentation Contact



Post Reply 
Performance boost
Author Message
menajev Offline
Member

Post: #1
Performance boost
No response in my test thread for a few days so it's time to officially publish conclusion:
This engine is unusable for (semi)professional games.
Engine got multiple features but what's that all for if almost empty scene make fps going down to unplayable values?
Here you got screens from my game on EE: SS1, SS2. Would you play a game that has only a few simple buildings and nothing more on mape and despite that you got less then 30 fps? This screens (and fps) is with AI turned off. When they start shooting it's getting even worse (demo is still available in this thread).
My PC is not weak, I would say it's today average (depending on Steam statistics. And I use 1680x1050, stats says more and more people are getting 1920 x 1080, which cause additional fps drop).
Now look at fps on professional games: SS1, SS2, SS3.
It's just guess but some models in this game has more tri then whole my scene and fps is stable >60 (tried and couldn't go lower even with a lot of people and explosion effects on screen). I know it's professional engine and you can catch it alone but you're not even trying. UDK is now available for all so if you want EE to be treated as serious engine not as a toy for lames it must allow to make serious games. We're doing our best and we're failing just because when we try to make nice map fps is going to much down.
Take a look at this trailer. Honestly - this game has now nothing but huuuge, good looking map. And comments approves. What can we show them? That? If it would be 50 fps it will be fine but now?

I'll say that clear - I really like this engine, mainly due really easy and comfortable syntax (I used Irrlicht at start and Unigine recently and basing on coding comfort EE is best I seen) and I will be sad to change it (not only due syntax - necessary porting game to other engine will be really frustrating) but if I'd have to - I will. I spend a lot of time making MT and I will publish it. Running on EE or something else.

Looking on showcase section and can't find any other game which can make this engine even comparable advertisement. We will both lose if I had to move out. But me only time, I'll publish this game somehow, but you'll waste chance to bring here more talented programmers.

So - do you have plans to make a huge optimization within next 3 months?
03-17-2011 10:59 PM
Find all posts by this user Quote this message in a reply
llynx Offline
Member

Post: #2
RE: Performance boost
It looks like you're not utilizing all performance optimizations possible not only within EE itself but as far as geometry goes.
03-17-2011 11:39 PM
Find all posts by this user Quote this message in a reply
Mardok Offline
Member

Post: #3
RE: Performance boost
(03-17-2011 10:59 PM)menajev Wrote:  So - do you have plans to make a huge optimization within next 3 months?

Can you show us sample of your code?
For example some important functions like : update(), drawPrepare(), drawShadow() and other your custom functions from update()?

I would like to see Your coding style.
03-18-2011 12:03 AM
Find all posts by this user Quote this message in a reply
menajev Offline
Member

Post: #4
RE: Performance boost
(03-17-2011 11:39 PM)llynx Wrote:  It looks like you're not utilizing all performance optimizations possible not only within EE itself but as far as geometry goes.
You're trying to be funny?
Look at first ss - except 2 mechs there are only static objects - all menaged by engine- what optimizations can I use? Delete them?
And caps from E games - RPG 2 (not full details) and BM (almost full but what is visible on this scene?).
Code:
Ball b(1.3,pos);
if(Frustum(b))
{
    corpus.drawShadow(skel);
}
That are you looking for? Nothing more in draw functions. It's all not about update function - I left how much time Draw, Update and Sim performing consumes and Update function has stable (low) value.
(This post was last modified: 03-18-2011 12:26 AM by menajev.)
03-18-2011 12:04 AM
Find all posts by this user Quote this message in a reply
llynx Offline
Member

Post: #5
RE: Performance boost
Okay, going to be quick here on where you can improve based on what I analyzed from your Data folder on your demo.

-Palm Trees in background need to turn into well designed billboards depending on the distance.
-You need to talk to you modeler so that he would remove 3D windows/details so that they become 2D (This is a major player when using any Supersampling at all) [For LODS]
-When you finalize a city for export, if possible you want to export the city in as few meshes as possible with as few parts per mesh as possible, eg the city block right in view in http://up.k10x.net/xtefvyznyecjm/MT1.png can be reduced from say 10 parts per building X 12 Buildings to say a combined city block with say no more than 30-40 parts (With 3D Window/Details) and less when the 3D elements are converted to 2D.
-When a city block like that is up against a wall, remove every vtx that is not visible on the back of the building.

-For ambient occlusion make sure to try and stay in the Low/Med range with refined/tweaked settings to get good amb occlusion effects without straying into High/Ultra which is a drainer for high-res's


And the screenshots you've posted of Call of Juarez, you'd be surprised at how few vtx's are actually there.

P.S. - Particles were well done in your demo

(03-17-2011 11:55 PM)thecoder Wrote:  sorry, but even games like Crysis (and pretty much every modern game made in last few years) run much better with far more advanced graphics, physics, richer environments with more details, AI etc. Sad truth.

It's not the engine it's the game developers.

Take Crysis 2 for instance
-very few Realtime-Reflection surfaces.
-Many buildings are quite literally tall cubes with very well designed textures/normal/bump/reflection maps.
-Very well desgined LOD/object fade system which is something you can implement yourself.

Same goes for any other game, the devs need to go left and right making every lossless optimization possible in order to get a product to efficiently run on a consumer system. The knowledge of optimizations that pro game devs have is very very high.
(This post was last modified: 03-18-2011 01:11 AM by llynx.)
03-18-2011 12:40 AM
Find all posts by this user Quote this message in a reply
Mardok Offline
Member

Post: #6
RE: Performance boost
Btw, I think your bumpmapping and some other effects on ALL objects is too agressive ;P this looks bad :/

[Image: bump.jpg]
03-18-2011 01:24 AM
Find all posts by this user Quote this message in a reply
Zervox Offline
Member

Post: #7
RE: Performance boost
(03-18-2011 12:40 AM)llynx Wrote:  
(03-17-2011 11:55 PM)thecoder Wrote:  sorry, but even games like Crysis (and pretty much every modern game made in last few years) run much better with far more advanced graphics, physics, richer environments with more details, AI etc. Sad truth.

It's not the engine it's the game developers.

Same goes for any other game, the devs need to go left and right making every lossless optimization possible in order to get a product to efficiently run on a consumer system. The knowledge of optimizations that pro game devs have is very very high.

Not to mention deep pockets with money.
-second these are TEAMS of developers specializing in seperate parts to construct their engines.
Hell even EPIC paid lots of money to get special licenses to have middlewares in UDK and UE to limit their final per/hour pay ratio to their own developers. and UE to get the source codes are like almost a million and up.
Cry Engine license is pretty much the same.

Your object may be static but they are all in default access mode, you gain performance by using embed into terrain in your scenario.

-Palm trees need lods, else normal maps etc will be on all objects.
-Buildings got uneeded tris inside.
-Buildings need lod.
-Walls need lod, tons of walls are built inside buildings/eg not needed at all
-Make walls that can cover larger area, no need to place 1000x small walls when 100 walls can do the same.
-remove that ground mesh that is scaled 1000 billion in size and use terrain areas instead/ I got over 120 fps at some areas at 1920x1200 when I've removed that terrain"mesh" and inserted proper terrain.
-the phys models are all mesh based, sorry but even if they are not the ones causing problems atm I'd rather see all the buildings use simple boxes, you could have 4x boxes on your buildings for the window sun blockers and they would cover the whole building perfectly compared to 2k phys meshes everywhere.
-You can implement custom rules for drawing still not only frustum checking.

Also some of the textures havent checked all of them, if you have 1024x1028 texture, it will be seen as a 2048x2048 texture in the video card. a 512x700 = 1024x1024, a 512x200 = 512x512, so it's a good standard to properly use the texture space.
(This post was last modified: 03-18-2011 02:06 AM by Zervox.)
03-18-2011 01:59 AM
Find all posts by this user Quote this message in a reply
Hemi Offline
Member

Post: #8
RE: Performance boost
Well, look at theese:

http://screenup.pl/?l=6X4MX1S
http://screenup.pl/?l=ZVJX76B

No AA, no AI. With them it would have no more than 15 fps.

LOD's for every model. Second screen has got no grass at all. FPS is still the same.
What more, it depends on what is shown on screen, which is of course understandable but mostly there is shown almost the same and fps is dropping. I'm asuming that from working with that engine for about 1.5 year, creating lot's of maps and testing it for a long, long time. I've also seen some demo's from the Showcase section - results are the same. Works too slow :(
I've checked how amount of objects affect the fps and... It seems to be stable, no matter how many there are, and that's good. But... it's always too low. Even turning renderer to "simple' adds only 20 - 30 fps. And it's also dropping :(

I understand that there are hundreds of people making Crysis 2, and this engine is created by one person. Still, Crysis 2 has got 40 fps ( with 1 200 000 tri's ) and almost empty scene <20 in MT. I'm running XP, core quad 2.4, 4 gb RAM (3 visible) and GTX 260. So not a weak machine.

Engine looks awesome, I'm really satisfied with that. But, in my opinion, it lacks a bit of features. Eg. good particle editor - this one is little simple and it's hard to create let's say explosion, that looks simillar to modern games. And of course it's hard to use it, because performance looks bad - partiles near the camera cause horrible fps drop.

I doubt that it's our fault, because map only works awfully slow in Editor.

I think that everybody would be the winner if the engine performs better - we will be able to create beautifully looking and working games, E will get more sold licenses wink
(This post was last modified: 03-18-2011 08:02 AM by Hemi.)
03-18-2011 07:55 AM
Visit this user's website Find all posts by this user Quote this message in a reply
llynx Offline
Member

Post: #9
RE: Performance boost
I don't mean any harm when I say that then there must be something being done wrong in the code.

I say this because I've done many ridiculously complex scenes and pushing the bounds of 3 million tri's on a Quadro 3700fx @ 1650x1050 with most deffered effects enabled and never observed the fps drop below 20fps.

What you describe shouldn't be happening if everything is coded properly.
(This post was last modified: 03-18-2011 08:55 AM by llynx.)
03-18-2011 08:53 AM
Find all posts by this user Quote this message in a reply
Salival Offline
Member

Post: #10
RE: Performance boost
We will not see any performance changes before esenthel has finished "Code Editor" which I think is quite unnecessary development of this engine when Visual Studio works fine.

I still think that this engine has pretty good proformance for the price and one man job. I have not noticed any huge fps drops in our development of our game that interfere gameplay, It works just fine for us.

Ps, I agree with llynx. Code or models.
(This post was last modified: 03-18-2011 09:03 AM by Salival.)
03-18-2011 08:54 AM
Find all posts by this user Quote this message in a reply
Hemi Offline
Member

Post: #11
RE: Performance boost
I don't know about the code, because I'm graphic artist smile

But, if it's like @llynx say, models couldn't slow the engine.

We're creating action game, with lost of shooting, explosions and etc. Maybe engine works fine with some RPG or sth like that, but it doesn't seem to do good in our case.
03-18-2011 09:12 AM
Visit this user's website Find all posts by this user Quote this message in a reply
Dampire Offline
Member

Post: #12
RE: Performance boost
(03-18-2011 07:55 AM)Hemi Wrote:  LOD's for every model. Second screen has got no grass at all. FPS is still the same.
Why if no grass it's casts shadows? This is your bad code.
Why you don't use billboard LOD for pillar?
I see your models. All "LOD"s is autogenerated and have giant (55+ units for 75 percent simplifying) distances of activation.

Don't use SSAO-max and antialiasing and all be fine.

P.S.
Sorry for my english.
(This post was last modified: 03-18-2011 10:09 AM by Dampire.)
03-18-2011 10:07 AM
Find all posts by this user Quote this message in a reply
Hemi Offline
Member

Post: #13
RE: Performance boost
Theese shadows don't make any difference, I've checked. And this isn't our bad code, I did it in Editor.

Theese LOD's got small distances of activating, and there are bilboards used for the furthest. And EVERY object has it. Still fps is low.

Without SSAO and AA engine stops looking very good wink
03-18-2011 10:16 AM
Visit this user's website Find all posts by this user Quote this message in a reply
menajev Offline
Member

Post: #14
RE: Performance boost
Your talking about my optimizations but it seems like dumb theoretics speeches for me. Can you show me screens of what you done with your fps so I believe it's possible? I checked all good looking games from showcase and see none with reasonable fps (see E RPG 2 and BM).

Quote:I say this because I've done many ridiculously complex scenes and pushing the bounds of 3 million tri's on a Quadro 3700fx @ 1650x1050 with most deffered effects enabled and never observed the fps drop below 20fps.
Screen or it didn't happen.
(This post was last modified: 03-18-2011 12:08 PM by menajev.)
03-18-2011 11:36 AM
Find all posts by this user Quote this message in a reply
Zervox Offline
Member

Post: #15
RE: Performance boost
Well, here is another thing I get, you have like 4 different .mesh files the exact same geometry but only the material file is different, why not overide this in the editor on each object or create a .obj for the different instances instead? saves space and sure can't be slower.

another thing as I mentioned before fix your textures and see if that helps, because 1060x1100 texture = a 2048x2048 texture to the video card. so there is a huge optimization tips. if you expect your game to run awesome fps, even Crysis doesn't use 2048x2048 on that many objects, and yes I am talking about every building texture you got with the meshes even your I bet its atleast 100+ walls that got messed up textures so they automatically scale up to 2048x2048 and you are still only utilizing 60% of the texture then.

and the above is not dumb theoretics it is facts in how video cards handle the texture they are given.
(This post was last modified: 03-18-2011 02:39 PM by Zervox.)
03-18-2011 02:36 PM
Find all posts by this user Quote this message in a reply
Post Reply