Game FPS at End game

Post all other topics which do not belong to any other category.
Rseding91
Factorio Staff
Factorio Staff
Posts: 13175
Joined: Wed Jun 11, 2014 5:23 am
Contact:

Re: Game FPS at End game

Post by Rseding91 »

Malryn wrote:
AutoMcD wrote:there will be another breakthrough that increases speed, just makes more sense to go out instead of up at the moment. :)
Heck to the no. There is people out there.

Just started to overclock my PC to see if I can get a boost in performance. Kind of wondering if steam engines / nuclear power mod would have less work on a PC than a bunch of accumulators and solar plants.
The count of accumulators and solar panels has no effect on performance. Having 1 vs having 100,000 is the same.
If you want to get ahold of me I'm almost always on Discord.

Malryn
Inserter
Inserter
Posts: 33
Joined: Fri Apr 22, 2016 7:33 pm
Contact:

Re: Game FPS at End game

Post by Malryn »

Rseding91 wrote:
Malryn wrote:
AutoMcD wrote:there will be another breakthrough that increases speed, just makes more sense to go out instead of up at the moment. :)
Heck to the no. There is people out there.

Just started to overclock my PC to see if I can get a boost in performance. Kind of wondering if steam engines / nuclear power mod would have less work on a PC than a bunch of accumulators and solar plants.
The count of accumulators and solar panels has no effect on performance. Having 1 vs having 100,000 is the same.
Wow that is very impressive programming there O.o

ratchetfreak
Filter Inserter
Filter Inserter
Posts: 950
Joined: Sat May 23, 2015 12:10 pm
Contact:

Re: Game FPS at End game

Post by ratchetfreak »

Malryn wrote:
Rseding91 wrote:
Malryn wrote:
AutoMcD wrote:there will be another breakthrough that increases speed, just makes more sense to go out instead of up at the moment. :)
Heck to the no. There is people out there.

Just started to overclock my PC to see if I can get a boost in performance. Kind of wondering if steam engines / nuclear power mod would have less work on a PC than a bunch of accumulators and solar plants.
The count of accumulators and solar panels has no effect on performance. Having 1 vs having 100,000 is the same.
Wow that is very impressive programming there O.o
not really it's literally just counting the amount connected to the network (cached) and then multiplying the power gain&storage with that

XBBX
Long Handed Inserter
Long Handed Inserter
Posts: 74
Joined: Wed Jan 07, 2015 4:30 pm
Contact:

Re: Game FPS at End game

Post by XBBX »

Malryn wrote:
Rseding91 wrote:
Killavirus wrote:Or goto suggestions ; WE WANT MULTITHREADING

Careful you don't get hit by chairs and bottles thrown by the devs !!!
Got it! We'll spawn threads and have them eat 100% of the cpu so it looks like it's using all of the computer's processor.

Well the direction technology has gone in the last decade is not faster cores but more cores. Its unfortunate but that is the direction intel has gone. I think that is the only way to get more computation work from a computer.
You are wrong about this Intel is making 10-15% faster cpu's every generation without adding more raw power (GHz) amount of cores is same for some time with exception of server and high end consumer cpu's

Malryn
Inserter
Inserter
Posts: 33
Joined: Fri Apr 22, 2016 7:33 pm
Contact:

Re: Game FPS at End game

Post by Malryn »

XBBX wrote:
Malryn wrote:
Rseding91 wrote:
Killavirus wrote:Or goto suggestions ; WE WANT MULTITHREADING

Careful you don't get hit by chairs and bottles thrown by the devs !!!
Got it! We'll spawn threads and have them eat 100% of the cpu so it looks like it's using all of the computer's processor.

Well the direction technology has gone in the last decade is not faster cores but more cores. Its unfortunate but that is the direction intel has gone. I think that is the only way to get more computation work from a computer.
You are wrong about this Intel is making 10-15% faster cpu's every generation without adding more raw power (GHz) amount of cores is same for some time with exception of server and high end consumer cpu's
I am not sure what you are considering a high end consumer CPU. CPUs has been progressing with more cores than relative to their processing speed. The leaps and bounds with the last couple generations of CPUs has been the additional cores and not its ability to process a single task fast but to process multiple tasks at once.

https://en.wikipedia.org/wiki/Multi-cor ... sor#Trends

My 3 year old i7 core is only 500 megahertz slower than the latest and greatest i7. It makes sense not to limit a program's capability by only giving it the ability to work with an 1/8 of a computer's processing speed because the program does not multi thread. Perhaps during the XP days it was sound but not today.

Again. I am not bashing factorio. I absolutely love this game. When I started this thread, I was asking for advice for ways to make my factory run with near the same output without the massive drop in FPS. If I find anything that someone has not pointed out in the forums before, I hope to make an update to share with the community.

starholme
Fast Inserter
Fast Inserter
Posts: 201
Joined: Tue Oct 21, 2014 7:25 pm
Contact:

Re: Game FPS at End game

Post by starholme »

I just want to point out that the frequency is mostly irrelevant when comparing processors. The amount of work during a cycle varies between processor families. I don't want to see people purchasing something with a very high clock speed, but poor real world performance. Please look up benchmarks when comparing processors. Most sites give a singlethreaded and multithreaded score, the single threaded score generally being a better indicator of gaming performance, while the multithreaded score is helpful for video/photo work, compression, transcoding, etc.

https://www.cpubenchmark.net/ is reasonably easy to use for comparisons.

i7-2600@3.4Ghz Single thread: 1922, released 2011 https://www.cpubenchmark.net/cpu.php?cp ... 40GHz&id=1
i7-4770@3.4Ghz Single thread: 2230, released 2013 https://www.cpubenchmark.net/cpu.php?cp ... Hz&id=1907

That's a ~15% increase in real performance on a single thread in two years. I'm still rocking a Q9550 myself:
Q9550@2.8Ghz(OC to 3.2)Single thread: 1203, released 2008 https://www.cpubenchmark.net/cpu.php?cp ... Hz&id=1049
Guess I should really get a new machine someday!

XBBX
Long Handed Inserter
Long Handed Inserter
Posts: 74
Joined: Wed Jan 07, 2015 4:30 pm
Contact:

Re: Game FPS at End game

Post by XBBX »

http://ark.intel.com 2 mins in google. Hare you can find answer to what i call server, high end and consumer (cheaper, lower end then high end) cpu's (high end is consumer grade cpu but it is more for work than gaming)
and everything else already posted ^
edit: of course if 1k$ is not alot for you ..... http://ark.intel.com/products/82930/Int ... o-3_50-GHz

Q for starholme and how it is can you run mega base?

User avatar
taiiat
Long Handed Inserter
Long Handed Inserter
Posts: 81
Joined: Sat Apr 02, 2016 8:39 pm
Contact:

Re: Game FPS at End game

Post by taiiat »

Malryn wrote:the game engine never maxes out my resources on my PC.
if it's hurting in performance, then that means it actually is.

this is the mistake/trick that Microsoft ends up leading people into - Task Manager shows almost nothing relevant to actual CPU usage. the numbers and charts you see for Processor utilization are basically useless.

CPU loads can only process the way they have to be processed. if it's a task that must be executed Single Thread - then it always will be. having more Processor Cores for that particular task, will not benefit that task at all.

furthermore, loads in things like games, if we try to give an easily understandable result akin to Task Manager - there maybe 1 Nanosecond where suddenly 50x as many calculations are happening as every other Nanosecond. utilization is not a fixed amount.
which is actually a good time to explain why the percentages and charts you see are useless - because Processors work with tasks ~ per Nanosecond (it's close enough for this explanation), so that '50% utilization' you get in Task Manager is an average across the past entire Second, but that one Second covers ~1 Billion CPU Cycles.


don't be tricked by GUI charts - they give you completely incorrect information, that has almost nothing to do with actual Processor capabilities and limitations.
what you see on the Chart, and what's actually happening in terms of CPU tasks - are barely related if at all due to the way the information is represented.
'Load Balancing' is also an interesting (and annoying at the same time) thing, that is involved here too.
Malryn wrote:Well the direction technology has gone in the last decade is not faster cores but more cores.
mostly because we're running out of ideas of how to make Cores that can do more by themselves, because that's harder to do than have more Processor Cores in general.

Processor Core count is still not that important for most games because games all in all, generally have very Single Threaded tasks.
it would be nice if as a species we could figure out a way to resolve this issue, but so far nothing has worked yet. nobody yet has had 'the genius idea' to make Processor Cores able to talk to each other so that Single Thread tasks can simultaneously be calculated across many Threads.
Malryn wrote:My 3 year old i7 core is only 500 megahertz slower than the latest and greatest i7. It makes sense not to limit a program's capability by only giving it the ability to work with an 1/8 of a computer's processing speed because the program does not multi thread. Perhaps during the XP days it was sound but not today.
Frequency is not comparable between Architectures. at all. it just isn't. don't do it. there is no comparison. the Ghz war ended decades ago.
Frequency also gives you basically no idea of how much 'performance' you actually have.

'starholme' beat me to part of the explanation too.


on topic though, Underground Belts, Robots, and in general making things closer together whenever possible helps a lot with performance
.
(and if you must go long distance with stuff, keeping to Trains should also help, as the Rails themselves have little to none for CPU load and are cheaper than Belts too)

- - - - - - - - - -
Rseding91 wrote:Got it! We'll spawn threads and have them eat 100% of the cpu so it looks like it's using all of the computer's processor.
so, like the Frostbite Engine? :p

because i honestly think Frostbite does that, no matter what Processor anyone has, even if they limit Refresh Rate to where they have reasonable headroom on GPU performance (And therefore should be able to expect CPU to have headroom as well), the silly GUI Charts still show 100% Utilization across all Threads.

starholme wrote:Guess I should really get a new machine someday!
i got out of the hole of seriously outdated hardware when i could, and times of year where there's normally big sales can help a lot. if you're in a part of the world where these sorts of sales don't apply though, then i feel you.

was stuck on 775 (also with a Q9550, though for the first few years with an E8400) for many years. every year definitely felt worse than the last! especially with how sloppy a lot of people are with their games (in general, not anyone in particular. except maybe Ubisoft, their monkeys in particular are exceptionally sloppy).

User avatar
MrGrim
Fast Inserter
Fast Inserter
Posts: 231
Joined: Sat Apr 09, 2016 7:58 pm
Contact:

Re: Game FPS at End game

Post by MrGrim »

XBBX wrote:
Malryn wrote:
Rseding91 wrote:
Killavirus wrote:Or goto suggestions ; WE WANT MULTITHREADING

Careful you don't get hit by chairs and bottles thrown by the devs !!!
Got it! We'll spawn threads and have them eat 100% of the cpu so it looks like it's using all of the computer's processor.

Well the direction technology has gone in the last decade is not faster cores but more cores. Its unfortunate but that is the direction intel has gone. I think that is the only way to get more computation work from a computer.
You are wrong about this Intel is making 10-15% faster cpu's every generation without adding more raw power (GHz) amount of cores is same for some time with exception of server and high end consumer cpu's
I don't know where you're getting your data from, but Intel single threaded performance peaked with the i7-4790k (https://www.cpubenchmark.net/singleThread.html). Every chip released since has been _slower_. The i7-6700k is finally starting to beat it on some things, but at the price of abysmal I/O performance. E.g. the anandtech.com Dolphin benchmark sees the i7-4790k at 6.8 seconds vs the i7-6700k 6.47. Hardly a 10-15% improvement per generation. I'd attribute the better score on Skylake to the RAM more than the processor.(http://www.anandtech.com/show/8227/devi ... i5-4690k/3 and http://www.anandtech.com/show/9483/inte ... eration/11)

So single threaded performance has been stuck for several years now. It's a shame, and I'm hoping AMD can ignite another performance race with Zen. We shall see.

I've been hesitant to attempt larger factory goals in Factorio knowing that, at best, I can overclock to maybe extend how much factory I can build. Making Factorio multi-threaded would shatter the current performance limitations in a huge way. I would love to see that!

*EDITING TO SAY* - Factorio is an amazingly well optimized game as it is. I'm actually damned impressed with how well it performs. Multithreaded Factorio would be.. insanely awesome.

bergi9
Long Handed Inserter
Long Handed Inserter
Posts: 51
Joined: Tue Jun 07, 2016 7:54 am
Contact:

Re: Game FPS at End game

Post by bergi9 »

taiiat wrote: Making Factorio multi-threaded would shatter the current performance limitations in a huge way.
Multi-threading isn't an easy task. You can parallelize tasks for an array of objects (i.e.: game update) but you have to lock the objects which should be to changed. Locking objects will cause blocking other threads (those threads which wants working with the same object). By blocking other threads you will often get performance like single-threaded tasks, maybe worser or better. If not well spended attention in multi-threading programming will often cause to deadlocks (yeah, know by trains in factorio).

SpeedDaemon
Fast Inserter
Fast Inserter
Posts: 124
Joined: Fri May 22, 2015 3:31 pm
Contact:

Re: Game FPS at End game

Post by SpeedDaemon »

bergi9 wrote:
taiiat wrote: Making Factorio multi-threaded would shatter the current performance limitations in a huge way.
Multi-threading isn't an easy task. You can parallelize tasks for an array of objects (i.e.: game update) but you have to lock the objects which should be to changed. Locking objects will cause blocking other threads (those threads which wants working with the same object). By blocking other threads you will often get performance like single-threaded tasks, maybe worser or better. If not well spended attention in multi-threading programming will often cause to deadlocks (yeah, know by trains in factorio).
"Isn't easy" is kind of an understatement... :)

Things less likely to go wrong than trying to multithread a complicated program like Factorio that wasn't designed that way from the ground up:
- Pushing a bucket down a well in Moria
- Eating calamari in front of Cthulu
- Your first KSP rocket launch
- Not letting the Wookie win
- "Clatto, verata, nic-*cough*"

starholme
Fast Inserter
Fast Inserter
Posts: 201
Joined: Tue Oct 21, 2014 7:25 pm
Contact:

Re: Game FPS at End game

Post by starholme »

MrGrim wrote:
XBBX wrote:
Malryn wrote:
Rseding91 wrote:
Killavirus wrote:Or goto suggestions ; WE WANT MULTITHREADING

Careful you don't get hit by chairs and bottles thrown by the devs !!!
Got it! We'll spawn threads and have them eat 100% of the cpu so it looks like it's using all of the computer's processor.

Well the direction technology has gone in the last decade is not faster cores but more cores. Its unfortunate but that is the direction intel has gone. I think that is the only way to get more computation work from a computer.
You are wrong about this Intel is making 10-15% faster cpu's every generation without adding more raw power (GHz) amount of cores is same for some time with exception of server and high end consumer cpu's
I don't know where you're getting your data from, but Intel single threaded performance peaked with the i7-4790k (https://www.cpubenchmark.net/singleThread.html). Every chip released since has been _slower_. The i7-6700k is finally starting to beat it on some things, but at the price of abysmal I/O performance. E.g. the anandtech.com Dolphin benchmark sees the i7-4790k at 6.8 seconds vs the i7-6700k 6.47. Hardly a 10-15% improvement per generation. I'd attribute the better score on Skylake to the RAM more than the processor.(http://www.anandtech.com/show/8227/devi ... i5-4690k/3 and http://www.anandtech.com/show/9483/inte ... eration/11)

So single threaded performance has been stuck for several years now. It's a shame, and I'm hoping AMD can ignite another performance race with Zen. We shall see.

I've been hesitant to attempt larger factory goals in Factorio knowing that, at best, I can overclock to maybe extend how much factory I can build. Making Factorio multi-threaded would shatter the current performance limitations in a huge way. I would love to see that!

*EDITING TO SAY* - Factorio is an amazingly well optimized game as it is. I'm actually damned impressed with how well it performs. Multithreaded Factorio would be.. insanely awesome.
One of the important things to note about the 10-15% improvement, is that it is usually a several hundred percent increase for one thing, but the benchmark spreads it out. If you look at things like the built in hardware encode/decode, you get a massive improvement in one generation. But it only helps when you are actually watching/transcoding a x264 video. Doesn't help your videogame one bit.

I'd love to see where the performance in factorio could go with multithreading as well, but I don't blame the dev for pushing that off as long as possible. Tis a very painful process. You need to spend a lot of time to get your multi-threaded software as fast as it was single threaded, let alone faster. Not much software out there that is embarrassingly parallel. Most 'real' software (not the stuff you build in a programming class) has a lot of dependencies on the previous calculation. Even worse when you need to run in lockstep with determinism between computers with one core vs 8 cores or more.

User avatar
GewaltSam
Filter Inserter
Filter Inserter
Posts: 344
Joined: Thu May 08, 2014 5:42 pm
Contact:

Re: Game FPS at End game

Post by GewaltSam »

SpeedDaemon wrote: "Isn't easy" is kind of an understatement... :)

Things less likely to go wrong than trying to multithread a complicated program like Factorio that wasn't designed that way from the ground up:
- Pushing a bucket down a well in Moria
- Eating calamari in front of Cthulu
- Your first KSP rocket launch
- Not letting the Wookie win
- "Clatto, verata, nic-*cough*"

This did not get nearly enough praise :)

MobRules
Inserter
Inserter
Posts: 31
Joined: Sun May 01, 2016 1:51 pm
Contact:

Re: Game FPS at End game

Post by MobRules »

GewaltSam wrote:
SpeedDaemon wrote: "Isn't easy" is kind of an understatement... :)

Things less likely to go wrong than trying to multithread a complicated program like Factorio that wasn't designed that way from the ground up:
- Pushing a bucket down a well in Moria
- Eating calamari in front of Cthulu
- Your first KSP rocket launch
- Not letting the Wookie win
- "Clatto, verata, nic-*cough*"

This did not get nearly enough praise :)
Seconded!

TheTom
Fast Inserter
Fast Inserter
Posts: 185
Joined: Tue Feb 09, 2016 8:33 am
Contact:

Re: Game FPS at End game

Post by TheTom »

bergi9 wrote:
taiiat wrote: Making Factorio multi-threaded would shatter the current performance limitations in a huge way.
Multi-threading isn't an easy task. You can parallelize tasks for an array of objects (i.e.: game update) but you have to lock the objects which should be to changed. Locking objects will cause blocking other threads (those threads which wants working with the same object). By blocking other threads you will often get performance like single-threaded tasks, maybe worser or better. If not well spended attention in multi-threading programming will often cause to deadlocks (yeah, know by trains in factorio).
Actually MultiThreading in Factorio would not be that hard - if you accept compromises on BOTH sides (programming and user / factory design).

It is quite trivial to isolate every factory in separate threads (plus maybe the handling of robots in general), as long as the elements in the factory are not connected by belts. Robots do not count - updating the count in something like a (special) chest thread safe is quite trivial (atomic thread safe additions/substractions are a processor level feature).

And because LARGE factories generally can either be broken up.... and we naturally go train + outposts at some time - it is not that hard. If a single factory gets too large it is not THAT hard to split it - especially if you would add some special elements (like a decoupling underground belt). There is no need for an outpost to run multi threaded. If you keep trains on a separate thread - then you end up with quite a standard decoupled subsystem architecture.

So, it is not trivial - but with some small thinking it is also not extremely hard. It depends on drawing thread boundaries in a smart way.

SpeedDaemon
Fast Inserter
Fast Inserter
Posts: 124
Joined: Fri May 22, 2015 3:31 pm
Contact:

Re: Game FPS at End game

Post by SpeedDaemon »

Biter path-finding seems like it would be another area of low-hanging fruit for multi-threading:
- I would be mostly "read-only" as far as everything else is concerned
- It can be a processor hog
- The race conditions and other weirdness you can run into with multiple threads aren't all that different from the fact that by the time a biter has moved along it's path, something may have changed that makes it no longer valid, so you'd have to deal with that anyway.

User avatar
taiiat
Long Handed Inserter
Long Handed Inserter
Posts: 81
Joined: Sat Apr 02, 2016 8:39 pm
Contact:

Re: Game FPS at End game

Post by taiiat »

MrGrim wrote:So single threaded performance has been stuck for several years now. It's a shame, and I'm hoping AMD can ignite another performance race with Zen. We shall see.
i hope so too. it's actually mission critical to Computing that Zen is a success. if Zen fails, Consumer Computing is going to blow up pretty hard.
regardless of what companies one may have emotional attachments to, or whatever else - everyone that appreciates or relies on Computing, should be in support of Zen being a success.

without that competition, the Industry will fall apart.



and Threading is difficult because only so much in Video Games can be threaded. many of the bigger, heavier tasks simply cannot be, not without some not currently existing genius ways of rethinking programming.

User avatar
bigyihsuan
Filter Inserter
Filter Inserter
Posts: 299
Joined: Thu Jan 01, 2015 12:57 pm
Contact:

Re: Game FPS at End game

Post by bigyihsuan »

I've found that endgame FPS loss seems to be from revealing the map too much. As the amount of scanned area goes up, UPS goes down...

Rseding91
Factorio Staff
Factorio Staff
Posts: 13175
Joined: Wed Jun 11, 2014 5:23 am
Contact:

Re: Game FPS at End game

Post by Rseding91 »

bigyihsuan wrote:I've found that endgame FPS loss seems to be from revealing the map too much. As the amount of scanned area goes up, UPS goes down...
The amount of scanned area has no impact on game performance as virtually all of the scanned area is not active because you're not near it or pollution is not near it.
If you want to get ahold of me I'm almost always on Discord.

Neotix
Filter Inserter
Filter Inserter
Posts: 599
Joined: Sat Nov 23, 2013 9:56 pm
Contact:

Re: Game FPS at End game

Post by Neotix »

I think wee need some techs and entities that allow us reduce huge amount of belts/bots/inserters etc.
Like longer underground belts, higher stack bonus for bots and inserters, loader/unloader/hopper. All thinks that allow us reduce performance impact in big factories.
Rapid inserter in v0.13 is like that and will allow us to reduce amount of inserters used especially for buffed assemblers. Now I have to use 12 inserters to catch up assembler speed and if I could reduce it to 2-3 inserters for 1000 asseblers it would be huge performance benefit. Same with Bots because for buffed assembles we need thousands of them. I have bob logistic mod that add faster bots and still for 200 smelters with 10 speed I need 500 bots. I would need 2000 or more vanilla bots and it's only for smeltrs.

Post Reply

Return to “General discussion”