Oxygen Not Included

Oxygen Not Included

Multi threaded simulation
40 Comments
staticicarus Sep 25 @ 8:43pm 
Whoa, this is very cool.
MiserableGamer Sep 20 @ 6:11am 
Managed to spend some time on this, and got it working, I can confirm it indeed does utilise more cores, however, at standard speed it's ok, but if run speed is increased there are massive framerate issues, like its only displaying 1 frame out of 3
SkyMyName Sep 18 @ 8:48am 
You can download it here: https://www.allinoneruntimes.org
SkyMyName Sep 18 @ 8:46am 
@NAREBOX I was try it nearly one week ago but it's didn't work like you. But today somehow it work after I installed AIO Runtimes
Samys94 Sep 16 @ 1:08pm 
Can confirm it works on linux using proton(I used protonge).
For those looking to try it on linux you need to also install the vcredist, top comment here explains how. Reddit Link

To continue onto my previous comment, it unfortunately runs identically performance wise, however, its still great to have in case at one point the simulation spikes for some reason.
Although native version runs better for me, would like to use this there too, linux does have "libSimDLL.so", the .so being the linux dll equivalent.
R9MX4  [author] Sep 15 @ 8:34am 
@NAREBOX
It seems that you have encountered the same problem as @MiserableGamer
Sorry that I can't give you any effective advice.
NAREBOX Sep 14 @ 2:56pm 
Hello @R9MX4 First of all, thank you very much for creating this amazing mod. Unfortunately, it didn’t work. I have all versions of the C++ packages updated, my Windows 11 is on the latest 24H2 build, and I’m using a Ryzen 7 5700X3D. When I try to load the save with your mod enabled along with the others, a Unity window opens, then closes along with the game without showing any warning. https://imgur.com/a/DBP0KK1
DarkEviL Sep 13 @ 11:42pm 
When the mod was activated, the game worked fine, but the next day, when loading a save, the game started to crash. At first I thought it was a conflict with Piped Everything, but then I disabled Fast Track and the save loaded normally.
ShadowWeaver Sep 13 @ 7:46pm 
Huge thanks to R9MX4 for the Multi Threaded Simulation mod! 🙏 My ONI performance skyrocketed, finally all 20 cores of my Intel Core Ultra 7 265KF are being put to good use. After the upgrade, the game used to struggle as soon as my colony got a bit complex, but now it runs beautifully. Really appreciate your work!
R9MX4  [author] Sep 13 @ 7:34pm 
@MiserableGamer
My suggestion is manually uninstall Redistributable Package, reboot, then install the new one.
If the strategy not work, maybe you can try to download the visual studio 2022 and install the c/c++ module.

I am sorry I can't give more effective suggestion.
MiserableGamer Sep 13 @ 8:40am 
Win11 10.0.26100 Build 26100

CPU is i9 14900KF
GPU is RTX 5090
R9MX4  [author] Sep 13 @ 6:38am 
@MiserableGamer
Can you provide your OS version and CPU?
Samys94 Sep 13 @ 6:13am 
@dizzy according to the explanation, performance would increase from a little bit to massively if the bottleneck is the thread that is for simulation, while if the bottleneck is the main program thread there would likely be near 0 change
thats what im getting from the description
might try profiling later, even tho in the description it says it only supports windows, it probably runs through proton anyway
MiserableGamer Sep 13 @ 12:17am 
@R9MX4 yes, and reinstalled to be sure, and rebooted
D I Z Z Y Y Sep 13 @ 12:09am 
if fps are not increase whats the purpose of this mod
R9MX4  [author] Sep 12 @ 8:06am 
@MiserableGamer
Did you install the Visual C++ Redistributable Package?
MiserableGamer Sep 12 @ 7:05am 
Crashed when the game tries to invoke the DLL, when the dialog box pops up during base loading
R9MX4  [author] Sep 11 @ 4:48pm 
@darkpyro
So SimDLL is part of the unmodded game and simSimDLL is your version of it that the mod is using instead?
--Yes

And what is then SIMDLL_PLUS?
--It 's not a part of this mod. It is a predefine compile option of my C++ code.

point 7.
--2. push in both vacuum and gas
--3. not work anymore
--5. Just a question. Do you know that, in normal game, the heat transfer is not only determined by temperature but also total heat energy difference?
--6. Yes
--9. Yes
--12. downwards in vacuum
--14. Maximun sublimation mass is still limited to 1kg. But insufficient mass will be deducted from bottom layer PW.
--15. If you can understand C# code, please read this post
https://forums.kleientertainment.com/klei-bug-tracker/oni/liquid-duplication-r48476/
darkpyro Sep 11 @ 12:51pm 
Part 3/3
12. Up layer liquid will flow diagonally downwards, if the horizontal-adjacent grid is solid, and diagonal-downwards grid is gas, not vacuum.
-> now it will not flow downward if there is gas? or it will flow downwards if there is vacuum?

image.png.7d7c1a3c2d027eee304b215b0ce9f44d.png

14. The sublimation mass of multi-layered polluted water (PW) is 1kg, but the loss mass of PW won't exceed the mass of top layer PW
-> now the sublimation mass can be more then 1kg? or the loss of mass of PW can excee the mass of the top layer?

15. is this a duplication bug that you eliminated? my confusion about this point could have the reason that I don't understand this feature of basis simdll

also my electrolizer is working, because I used a different design to be sure that point 9 won't break it.
darkpyro Sep 11 @ 12:50pm 
Part 2/3
5. It is well-known that heat transfer doesn't happen between to tiles with exactly the same number of heat.
-> so now they transfer heat depending on the temperature instead of the energy in the mass tile?
isn't this the normal way how the game is working normally?

6. if there is a mesh tile, now the gas looses heat when the drop is generated?

9. The gas can't diffuse diagonal if one of the top/horizontal-adjacent grid is solid, or one is gas and another is liquid.
-> so now the gas can diffuse diagonally in sayd condicions?

10. Is clear I guess
11. not important for me
darkpyro Sep 11 @ 12:50pm 
Part 1/3
So far the mod is still running withouth problems for me, even thogh I have many other mods installed.

But I have some more questions:

So SimDLL is part of the unmodded game and simSimDLL is your version of it that the mod is using instead? And what is then SIMDLL_PLUS?

but back to your point 7.
I am still confused about the other features:
2. Large mass liquid can pushes one tile small mass liquid to move, but not in vacuum
-> not it also pushes the mass in vacuum? or does it not push when there is gas?

3+4. as 3 is not working also 4 is not working? or does disabling 4 make gas enter the vacuum?
R9MX4  [author] Sep 10 @ 3:18am 
@hoangu133
You can have a try if your cpu support smt.
hoangu133 Sep 10 @ 2:09am 
So my CPU have 4 cores, should i try this mod
R9MX4  [author] Sep 9 @ 5:16pm 
@Trecaa
Thanks for your response, but usually people shouldn't expect such a big increasement.
Maybe your 60 fps is caused by your graphic setting, or you enabled frame generation just now.
R9MX4  [author] Sep 9 @ 5:11pm 
@darkpyro
point 7(some fatures that are removed) will affect the game.
--- Let me use the first features as an example.
Ambient radiation limitation doesn't always work -> Now works, the max radiation is limited to 9M

gas-liquification
-- Sorry for the misleading, those are the parts of simdllplus, not this mod. I edited the description.

hydra
-- I can't give the answer before I see your structure. Especially that bug is implemented through more than one exploits.
Just clarify, I am not the one who defined hydra as a bug
https://forums.kleientertainment.com/klei-bug-tracker/oni/electrolyzer-ignores-air-pressure-when-almost-flooded-r16496/?tab=comments#comment-25524
darkpyro Sep 9 @ 11:01am 
it seems to work together with fast track.
But I am not sure if I understand, how your point 7(some fatures that are removed) will affect the game.
It would be nice if you would explaine the changes (bonuspoints if you add examples) here in steam or in one of your posts in the klei-forum.
I am not sure if a hydra will still work and how to understand the gas-liquification and how it affects infinite storages
Trecaa Sep 8 @ 7:06pm 
I just tried this mod, for my case, it increased fps from 60 to 140. I'm in love right now, it makes my pc use all it has. Great mod.
R9MX4  [author] Sep 8 @ 4:50pm 
@-AIAe-
I cannot guarantee that, but usually there won't be any problems.
-AIAe- Sep 8 @ 7:01am 
Is it compatible with Fast Track and the recent popular mod Ronivan's Legency?
Kongjooy01 Sep 8 @ 1:04am 
1000รอบขึ้นไป ใช้ไม่ได้ เด้งออกจากเกมทันทีที่โหลดทั้งหมด
R9MX4  [author] Sep 7 @ 4:46pm 
@DarkRoku12
Please check the link in the bottom
The compile option is
__DEBUGED__ + __THREAD_DECOUPLE__ + __PARALLEL__
DarkRoku12 Sep 7 @ 12:43pm 
Hi, I'm curious about the source code, especially the SimDLL one. May you release it?
nipodemos Sep 7 @ 6:30am 
I get it now. The mod has the potential to increase fps, but is not guaranteed. i'll try this mod
R9MX4  [author] Sep 6 @ 5:21pm 
@nipodemos
With higher fps, duplicants/critters will think more frequently. But time consumption of thinking won't change.
Because thinking is done by main program thread, not simulation thread.
遗憾都是你啊 Sep 6 @ 2:27pm 
注意事项
1. 总之,ONI使用两个线程。一个是主程序线程,用于处理复制人、生物、植物、建筑等;另一个是模拟线程,用于处理热传递、流体流动等。本模组为模拟过程启用了多线程。

2. 本模组由C#和C++编写。如果您的游戏在加载时崩溃,请安装最新的Visual C++可再发行组件包[ learn.microsoft.com ]。您也可以在模组文件夹中找到一个副本。

3. 为了支持多线程并避免线程冲突,有必要重构原始游戏的算法。因此,模拟结果可能与原始游戏有所不同。

4. 安装本模组后,您的游戏帧率可能不会提高。在大多数情况下,性能瓶颈在于主程序。

5. 如果您的CPU核心数少于4个,尝试使用本模组不是一个好主意。

6. 本模组仅支持Windows系统。
cedaroo Sep 6 @ 10:05am 
Great image choice to support the metaphor! Nicely done.
南山令吾 Sep 6 @ 9:01am 
cpu AMD9700x 12复制人星球全部开发,主星用模组拉到全视野,帧数从31提升到45。正常游戏帧数从50提升到60+
n3mes1s Sep 6 @ 8:33am 
nipodemos no, it doesnt mean that. It only means that if you are playing with a potato computer from 2005, you are supossed to have less performance problems... but again, the mod will never work. So, just move on.
n3mes1s Sep 6 @ 8:32am 
Yeah dude this isnt going to work. But i get that people have a lot of time to waste.. lol. In any case this is going to throw so many problems that, i dont have a clue why anyone would do something like this. If you are playing with a computer from 2005, its time to upgrade it... if not, there is nothing you can do about UNITY lack of memory management. Plain and simple. And it has nothing to do with playing with one or two threads (that is way more enough for a game like this one).
nipodemos Sep 6 @ 7:18am 
hello! that sounds like a nice addition! Does that mean that duplicants will spend less timing thinking what the next task to do? critters will respond faster to what is around them? We all see cases in large bases that the pokeshell when attacked should attack back, but its thinking is so slow that they often die before fighting back, will your mod help with these things?