Jump to content

Oxygen Not Included DLC Roadmap July 2020


Recommended Posts

15 minutes ago, DigiFort said:

I am just wondering if it is even possible with our current machines which can barely handle a large colony on a single asteroid to have multiple colonies on multiple asteroids. I have an i7 6700K which sort of struggles with really large colonies so how will it support multiple colonies possibly big ones. How much of a beefy processor will the dlc need? Is it even possible with our current tech to play the DLC? Sorry but I just don't see how we will be able to fit so many added calculations with out current processors limit.

Personally i think they're just going to end up shrinking colonies so that you have mutliple medium sized bases each having different biomes rather then one big base with almost all the biomes

Link to comment
Share on other sites

8 minutes ago, crbd115 said:

Personally i think they're just going to end up shrinking colonies so that you have mutliple medium sized bases each having different biomes rather then one big base with almost all the biomes

I see. Well that is sort of disappointing(but understandable) cause it doesn't really add to the game but segregates it. It does at least pose some new interesting challenges though. Anyway I wish one day we can have processors that can handle 100 of these big colonies no sweat. What a glorious day it will be. No lag 1000fps Oxygen not included.

Link to comment
Share on other sites

16 minutes ago, DigiFort said:

I see. Well that is sort of disappointing(but understandable) cause it doesn't really add to the game but segregates it. It does at least pose some new interesting challenges though. Anyway I wish one day we can have processors that can handle 100 of these big colonies no sweat. What a glorious day it will be. No lag 1000fps Oxygen not included.

honestly i dont think this is an issue i think for the most part big colonies just end up being a lot of wasted space which creates lag, thats one thing i like about the islands mod, since there is so much vacuum space it lowers the lag ive had in the late game

Link to comment
Share on other sites

 

2 hours ago, DigiFort said:

I see. Well that is sort of disappointing(but understandable) cause it doesn't really add to the game but segregates it. It does at least pose some new interesting challenges though. Anyway I wish one day we can have processors that can handle 100 of these big colonies no sweat. What a glorious day it will be. No lag 1000fps Oxygen not included.

it is not processor what cause lag.

year 2000 pentium 4 pc, formel 1 3d game 100% cpu usage, now that what i may say that cpu hit his limits. this game not even close to 100% to gpu or cpu

Link to comment
Share on other sites

3 hours ago, gabberworld said:

it is not processor what cause lag.

year 2000 pentium 4 pc, formel 1 3d game 100% cpu usage, now that what i may say that cpu hit his limits. this game not even close to 100% to gpu or cpu

You need to look at the cores. If you have 4 cores and 2 are at 100% and to are at 0%, typical tools will report that as 50% load. Bit if the software can onky use 2 cores, this is really 100%.

Link to comment
Share on other sites

29 minutes ago, Gurgel said:

You need to look at the cores. If you have 4 cores and 2 are at 100% and to are at 0%, typical tools will report that as 50% load. Bit if the software can onky use 2 cores, this is really 100%.

yes and if app made at 1 core then at 4 core pc it can only use 25% max.

maybe they not use this.

https://docs.unity3d.com/Manual/GPUInstancing.html

dunno really if that would help for them

Link to comment
Share on other sites

5 hours ago, gabberworld said:

yes and if app made at 1 core then at 4 core pc it can only use 25% max.

maybe they not use this.

https://docs.unity3d.com/Manual/GPUInstancing.html

dunno really if that would help for them

GPU instancing is irrelevant for this case, that's specifically to instance models/shaders so less information has to be passed to the GPU. The throttle isn't the rendering data, it's the CPU calculations, which are heavy in a game like this and very difficult to optimize. They've done a lot of work on multithreading where they can, which is the best approach they can take.

Link to comment
Share on other sites

1 hour ago, Beowulfe said:

GPU instancing is irrelevant for this case, that's specifically to instance models/shaders so less information has to be passed to the GPU. The throttle isn't the rendering data, it's the CPU calculations, which are heavy in a game like this and very difficult to optimize. They've done a lot of work on multithreading where they can, which is the best approach they can take.

i not say at all that they make bad job, game is great, idea is super. but there is always methods where you may find better solution

Link to comment
Share on other sites

1 hour ago, gabberworld said:

i not say at all that they make bad job, game is great, idea is super. but there is always methods where you may find better solution

No. ONI still has room for improvement, but at some point you're at the end of what is feasible. Factorio is about as optimized as it can get. To the point where memory latency is actually the main limiting factor. Not CPU speed. They've also found out that it's incredibly difficult to parallelize things. You can multithread discrete game systems and many games do it, but when you try to multithread things that interact with each other you run into huge issues. Eventually it's not worth the work. This fantasy that people have where you have X threads and they all do an equal amount of work is just that. A fantasy. In practice you have a main thread still doing most of the work and some secondary threads doing isolated things.

Link to comment
Share on other sites

1 hour ago, Steve8 said:

No. ONI still has room for improvement, but at some point you're at the end of what is feasible

yes correct there always also limit, mostly because off hardware self.

Factorio is made at sdl what is designed for 2d games. that is one reason why Factorio can have allot more tiles

Link to comment
Share on other sites

59 minutes ago, Steve8 said:

No. ONI still has room for improvement, but at some point you're at the end of what is feasible. Factorio is about as optimized as it can get. To the point where memory latency is actually the main limiting factor. Not CPU speed. They've also found out that it's incredibly difficult to parallelize things. You can multithread discrete game systems and many games do it, but when you try to multithread things that interact with each other you run into huge issues. Eventually it's not worth the work. This fantasy that people have where you have X threads and they all do an equal amount of work is just that. A fantasy. In practice you have a main thread still doing most of the work and some secondary threads doing isolated things.

As somebody that has implemented some actual performance critical multi-threaded software, I fully agree. You always get some locking and queuing you need to do and if you try to optimize that, you often get very complex solutions that are simply not worth it: Minor speed improvement, major increases in complexity. And often some central, single-thread things are the fastest solution. For example, in a task-scheduler that often happens, because that thing needs to keep everything in view. If you try to multi-thread it, it may well get slower. (Yes, that happens.) Other things can easily be parallelized, for example fluid and gas pipes and electrical wires can each run in their own thread because they do not directly interact, and Klei has done that for ONI a while ago. But other things are tricky or cause a lot of additional problems when they run in multiple threads.  

Coding parallel software and algorithms was a big topic back when I studied CS 30 years ago. There were already systems that could support massive numbers of threads and also CPUs (Transputer) with pretty decent performance for that time. But what did kill them eventually was not that the hardware did not work or was too expensive. What killed them was that many problems do not benefit at all from being and others benefit only to a small degree and, in addition, that writing parallelized software is massively more complicated and hence massively more expensive. Suddenly you may need things like a communication management system in addition to your actual code! Or you find that your system is doing 98% coordination and 2% actually working on your code. Hence the idea of parallel software is quite old and has never completely failed, bit there are pretty hard limits what they can do. Linus (of Linux fame) said a while ago that a typical desktop user will probably never need more than 4 or 8 cores and that is not far from the truth. There are just no workloads that you can meaningfully user more cores for. The only thing that could eventually make a difference is if there is some breakthrough in AI. But that may or may not happen and will not happen anytime soon.

For ONI, all this gets worse, because it is (soft) real-time. It is ok if a dupe stands around "pondering" now and then. But if it happens to often, players get annoyed. Hence there are a lot of heuristics in there when to actually send, for example, dupe X to do something and the more parallelized this happens, the more overhead (i.e. complexity, coding effort and slow-down) this causes for coordination between the different threads. 

Link to comment
Share on other sites

I love it where this thread ended up heading :) 

And don't get me wrong... I work in Mobile App development so I enjoy technical things, but the fact that people ended up talking about multi-threaded processing in a thread called "Oxygen Not Included DLC Roadmap July 2020" is just fascinating.

I think this shows exactly how much "super fans" are waiting for this DLC.

Keep on going!

Link to comment
Share on other sites

This thread direction makes me happy :)

Cool to see people nerding out. For us laypeople, the rule of thumb I use is 20% of the time to get 80% of the way, and 80% for the rest. Definitely tradeoffs out there.

As an aside, I've come to love Factorio recently, but I wouldn't trade what ONI is for anything, optimized or no. Historically there have been issues, but the game in it's current state is playable right until the 'I'm bored' point thousands of cycles in.

Link to comment
Share on other sites

1 hour ago, TonTro said:

I love it where this thread ended up heading :) 

And don't get me wrong... I work in Mobile App development so I enjoy technical things, but the fact that people ended up talking about multi-threaded processing in a thread called "Oxygen Not Included DLC Roadmap July 2020" is just fascinating.

I think this shows exactly how much "super fans" are waiting for this DLC.

Keep on going!

Its seems that this game is played by many programmers, is like ONI its a game made for programmers.

Link to comment
Share on other sites

19 hours ago, Gurgel said:

As somebody that has implemented some actual performance critical multi-threaded software, I fully agree. You always get some locking and queuing you need to do and if you try to optimize that, you often get very complex solutions that are simply not worth it: Minor speed improvement, major increases in complexity. And often some central, single-thread things are the fastest solution. For example, in a task-scheduler that often happens, because that thing needs to keep everything in view. If you try to multi-thread it, it may well get slower. (Yes, that happens.) Other things can easily be parallelized, for example fluid and gas pipes and electrical wires can each run in their own thread because they do not directly interact, and Klei has done that for ONI a while ago. But other things are tricky or cause a lot of additional problems when they run in multiple threads.  

[...]

The gas/heat calculations are embarrassingly parallel due to how ONI implements them. You can divide into nxm regions and there is not even a need for locking. At boundaries you can use the existing tiebreak for gas movement and it will just work. With how oni calculates you'd be adding 2-4 extra rows+columns of tile to each region's calculation depending on what you chose for n/m and that'd be the entirety of the overhead. (min 2 because they use a periodic boundary condition in the simulation, 1 if they didn't, kind of an irrelevant sidenote given you only hit the minimum if you divide into 2 regions)

Dupe scheduling is an interesting subject and would be fun to create optimized parallel & single threaded algorithms for. On the naive end, just sending batches of dupes to each thread to create individual priorities and then doing elimination on a single thread afterward should be a performance boost over what's there now. I'm not convinced that's the "correct" approach, but it seems like you'd be doing close to what's done now and just brute forcing it. 

I don't think ONI is going to parallelize anything given it wasn't written with it in mind. There are far less time consuming optimizations they could do first (like in pathfinding another area I love), and given there are limited resources dedicated to the game there are far more important features/fixes to tackle. 

My assumption for the DLC is they will run each asteroid in a separate thread. The easiest way to parallelize any simulation is to run multiple independent instances of your existing simulation. This assumption is because the simulations are entirely independent and the only communication between threads would be when you launch a rocket to send things between worlds. I'll be fairly surprised if they don't take this approach, because this doesn't require changes to any game systems except those that must change with the DLC to begin with.

Link to comment
Share on other sites

2 hours ago, watummok said:

My assumption for the DLC is they will run each asteroid in a separate thread. The easiest way to parallelize any simulation is to run multiple independent instances of your existing simulation. This assumption is because the simulations are entirely independent and the only communication between threads would be when you launch a rocket to send things between worlds. I'll be fairly surprised if they don't take this approach, because this doesn't require changes to any game systems except those that must change with the DLC to begin with.

Same here. That would very likely be easy to do and it would prevent slowdowns as long as there are enough cores. As most people have 4 cores or more these days and ONI currently uses only 2, this is the obvious and least problematic way to go.

Link to comment
Share on other sites

1 minute ago, aresd said:

I think they are preparing a patch note and a solemn post :tranquillity:

If I were them, I would go with "It is done. Well, maybe. As we had Meep and Stinky do the final coding, expect some problems. Please go get it and write tons of bug reports for the beta!"

Link to comment
Share on other sites

Nobody sleeps today! Looks like the developers decided to make our weekend happy! * went to look for all my money *

2020-10-23_21-00-56.png

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.

×
  • Create New...