Jump to content

X2 performance


Recommended Posts

I'm highly sensitive to variable framerates and it causes eye strain, nausea and headaches during and after longer gaming sessions.

I have just recently upgraded my computer to i5 7400, GTX1070, 16GB RAM, SSD etc. so it's pretty up to date and powerful. With fantastic graphic settings my FPS alters between 29 and something way over 100. With vsync enabled it's 29-60, so it doesn't help that much and i just can't stomach playing the game. I need to set the graphics setting all the way down to fast to get even close to locked 60 fps performance - and even then the game drops few frames every now and then. This I can tolerate, but the game looks... well not that great anymore.

As we all know, the game is still very much in developement and often the engine and graphics optimisations are done much closer to the release. What I'd like to know, I guess, is that can I hope the performance to improve before launch and if so, any idea how much?

Also, it would be interesting (and maybe helpful to Goldhawk) to see peoples performance metrics with different systems. So please post your specs and FPS with different graphics options. (you can see the FPS using software called FRAPS)

P.S. Is there a way to enable AA with this game?

P.S.S. is it normal that the transparent windows and doors are dithered?

 

 

Link to comment
Share on other sites

The FPS drops I've not seen on similar hardware. Have you been able to tie it to specific cases?
(Units walking, or shooting destructible terrain, etc)

As for the performance:

There are a tonne of optimizations we've simply disabled because they just consume development time while things are up in the air.
There are "minor" ones such as logging and debug code that cause most of the "stutter" currently in game.
There are "major" ones such as mesh merging, lightmapping (for those knowledgeable, a bit more problematic in our setup) and optimizations on the materials, or even rewriting shaders such that they're not just plug-and-play shaders.
The mesh merging alone, although mostly benefiting lower-end hardware, bumped FPS about 3x-5x (from 60ish to 300ish).

And then there are the cases where some code is still doing way more than it should be doing, because we're experimenting with certain mechanics.

You can expect a lot of improvement in speed as we continue development the coming few months because a lot we haven't been able to do as we were still changing, well, almost everything.

I'll bring up performance in the morning meeting tomorrow and see if we might be able to put out a comparison build now that the pressure of the Kickstarter is partially behind us.

  • Like 1
Link to comment
Share on other sites

Thanks for the reply Gijs! Great to hear that the performace upgrades are on the way. :)

On the demo map I can see the largest performace drops when panning the camera around the house west of the starting position. Highest frames are east of the starting position. I'm playing 2560x1440 but the performace seems to be almost identical if I drop the resolution all the way down to 800x600. Full screen or windowed, AO on of off doesn't matter. (+/- few frames) Moving camera to highest levels lower the performance even further, lowest being 24. So I assume it must be either dynamic lights or transparency effects as the unlit shack without windows around the eastern parts of the map doesn't drop frames at all.

Only thing that makes the low framerates go away around the west building is to lower graphics settings to fast or fastest.

Is this transparency effect like it should? (click full size to see the dither effect)

https://imgur.com/aaNzU1I

 

 

Edited by Skitso
Link to comment
Share on other sites

Yeah, this is definitely due to the lighting setup in that case (per pixel lights is too high on the Fantastic setting).
It won't be an issue in the main game.

It should be fixed once we sort out the lightmap issues, or alternatively something more drastic to fix it.
(There are issues with the lightmapping in the rendering path we're using in Unity, which was used because it supports hardware AA)

The transparancy effect is a side effect of how Unity deals with it, and we'll probably need to write a different shader for it.

Link to comment
Share on other sites

12 minutes ago, Chris said:

Seems like Fantastic settings in particular have an issue - I think the next setting down should work a lot better!

Actually no, I need to drop graphic settings all the way down to fast (or whatever the second lowest one is) to make the game run smoothly (~60fps). It's the setting where dynamic lights are completely off I think.

Link to comment
Share on other sites

@Chris

A quick test: Camera on top of the building left from the starting position so that the roof is removed.

Fantastic - 29fps

Beautiful - 34fps

Good - 37fps

Simple - 44fps

Fast - 68fps

Fastest - 68fps

As you can see, even with my relatively powerful gaming rig, the only playable (60 lock with vsync) settings are the 2 lowest.

 

Edited by Skitso
Link to comment
Share on other sites

Would be great if you could separate the graphics settings to be adjusted manually and separately in the final game instead of only presets. Being stuck with the unity presets is extremely restricting in terms of tweaking settings to increase performance for individual cases. Not everyone values settings the same either so just giving people the option to tweak it if they want would be great, or at least have the option to tweak it in an .ini file if making UI assets for it would use too much time.

Link to comment
Share on other sites

1 hour ago, raidsoft said:

Would be great if you could separate the graphics settings to be adjusted manually and separately in the final game instead of only presets. Being stuck with the unity presets is extremely restricting in terms of tweaking settings to increase performance for individual cases. Not everyone values settings the same either so just giving people the option to tweak it if they want would be great, or at least have the option to tweak it in an .ini file if making UI assets for it would use too much time.

It's definitely planned.

 

9 hours ago, Skitso said:

@Chris

A quick test: Camera on top of the building left from the starting position so that the roof is removed.

Fantastic - 29fps

Beautiful - 34fps

Good - 37fps

Simple - 44fps

Fast - 68fps

Fastest - 68fps

As you can see, even with my relatively powerful gaming rig, the only playable (60 lock with vsync) settings are the 2 lowest.

 

Hmm, interesting. I wouldn't expect such a hard drop-off, especially with your hardware (I've got a 1070 here as well).
And you're right in that the Simple to Fast is the point where all dynamic lights get shut off. 
Suspect it's the shadow handling then, which is also tied to the lightmaps.

Earlier you mentioned that there wasn't any AA btw; the whole reason we're still using forward rendering at the moment is for AA, and it should be enabled upper tiers.

Link to comment
Share on other sites

@Gijs-Jan

Does the game run a lot better with your 1070? If so, it must be something at my end. Drivers or something...

I do get a decent performance in other games though. For example Far Cry 5 with 2560x1440 and ultra settings runs locked 60 pretty much all the time. Same with Doom and say... Mad Max for example. And everything maxed.

I need to check the AA situation again then...

Edited by Skitso
Link to comment
Share on other sites

@Skitso

To be honest, I'd refrain from blaming anything on your end before I really start on the optimizations!
And when I do and you still have issue, and you have the time, we can probably take a look at what specifically it is on your machine that might be bottlenecking it. :-)

  • Thanks 1
Link to comment
Share on other sites

Glad to hear that separate graphics settings are planned, that will help people for sure. Something else that would be useful is if there's some way to display if the CPU or the GPU is the performance bottleneck, planetside 2 had a good example of that where it displayed either GPU or CPU depending on what was limiting performance. That helped a lot to for example optimize the settings to work at max CPU usage without making the GPU the limiting factor. Not sure how hard something like that would be to implement but it would be nice to have.

Link to comment
Share on other sites

Sure that helps but not having to ask people to install third party software and instead saying press a key and see what it say is considerably more straight forward. But often trying to figure out if CPU is the limit can be problematic and people misunderstand it all the time because if a game is heavily single threaded it will look like CPU is not a problem because the way windows works. It will jump that load between cores so it looks like you're getting a little load on all the cores when in fact it's one thread that gets moved around and is actually the limiting factor. But yes generally if you aren't seeing 95%+ load on your GPU then it's likely the CPU is the limiting factor.

 

Honestly adding something like that to the game would be nice but not important enough that it should take priority over something else.

Link to comment
Share on other sites

If you're doing hardcore optimization, tracking GPU and CPU core usage is insufficent. Properly profiling how much of each frame is spent waiting on memory, waiting on PCI bus, or waiting on things higher in the abstraction is complex. 

For example, if memory access latency is limiting, having a smaller memory space can help (since memory access time scales at least with the log of the size of the memory accessed.) 

Link to comment
Share on other sites

  • 1 month later...

I hate to necro this thread, but I have seen this problem multiple times with unity and tiled maps/environments (like war for the overworld) in combination with certain Processors/ Graphics Cards. The only thing, that has reliably worked, was to change the hardware setup. There must be something wrong at a low level of unity, that causes the problem. Wtfo had these problems for years and they could do nothing about it, because unity wasn't fixing this.

This is most common, at least in my experience, with AMD FX/ Kaveri Processors in combination with AMD 200 and 300 series Graphics cards. But I have seen a few Intel/Nvidia systems affected by this as well.

Link to comment
Share on other sites

There are a lot of different things contributing to this issue, and it also depends on what type of rendering setup you are using (forward/deferred, lightmapped / realtime etc).

One of the big underlying causes is that Unity doesn't really deal well with dynamic environments where there are a lot of non-static GO's.
This in particular starts to break down when certain rendering paths don't properly support batching. The end result is that the CPU spends a lot of time creating dynamic batches that are straight up ignored and cause individual render calls in parts of the render pipeline (stalling the GPU).

The solution we've tried inhouse is to manually combine meshes and objects for those parts of the level that are indestructible after the scene loads, which already gives a mighty speed boost and solves both above issues.

The other issue is that Unity simply doesn't like runtime combining of scenes with lightmaps, which is making completely randomized maps quite a pain to implement.

I want to assure everyone that we know the issue, and we've been testing solutions to this throughout development and I'm confident that we can get orders of magnitudes of improvement in FPS.
We simply haven't implemented those solutions as they would slow down the work being done on nailing down the level design workflow.

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

Some very quick stats on my side. Playing at 1080p

I took the FPS after revealing the aliens inside the house, and the lighting post on the north:

  • Fast / fastest: 32
  • Simple: 18
  • Good: 16
  • Beautiful: 9

AMD 8-core FX8350
AMD Radeon 5770, 1GB
16 GB RAM

I did not run any more tests. One of these days I will install my RX 570 8GB and I will let you know for more stats, if not, for checking the Unity hypothesis on my AMD hardware.

I am happy to use my machine to give you some stats if you need.

Link to comment
Share on other sites

It looks like it may be CPU related, I have just been running it on a GTX970 and 6 core Xeon processor with very similar frame rates but what does stand out is that I have 11 CPU threads around 30% (have a load of other things open at the same time) and one thread at 70-90%.

Initially I thought it was not multithreading properly but forcing it to use, 2, 4, 6 and then all threads did move the processor load about but all threads still results in one at 70+% and the others pretty low load. Increasing the thread count is only giving small frame rate increases and only a peak GPU utilization of 58%.

For reference this system will hold a steady 60fps on GTAV or FO4 or over 110fps on Saints row 4.

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...