Jump to content

Oxygen Not Included DLC Roadmap July 2020


Recommended Posts

On 7/16/2020 at 12:44 PM, Gurgel said:

Not necessarily. Loading/saving is also something that can be parallelized a lot more easily with multiple colonies.  Sure, you still have some shared bottlenecks, like memory I/O, but with a bit of careful coding, these should be mostly neutralized by buffers and caches. 

o.0? So buffers and caches are not memory? In any case, ultimately I do agree with your position. It's perfectly do-able. What we would be looking at would be a "meta" simulation. It wouldn't be simulating 6 colonies at a time, that'd be ridiculous... however, ONI already keeps track of your statistics for your colony on a cycle-by-cycle basis. It wouldn't be too hard to put something together that allows you to "simulate" a colony's inputs and outputs based on the averages calculated the last time that colony was actually opened. The only additional workload (besides whatever is loaded to actually enable this extra-colony functionality) would be simply maintaining a table of values telling the game what's being consumed and what's being produced. There are a couple of issues that arise though:

1) There's no perfect way to average outputs... no matter how you slice it, the system is "game-able". What I mean is that if you play a colony, you could store up a particular resource over an extended period of time, then initiate a "production" phase to fool the game into thinking that your colony produces more outputs for less inputs than what it actually does. The only alternative is to calculate the productivity on every geyser, every ranch/farm, etc and just assume it has enough dupe labor to function at 100%. (which leads to other issues, as well as cpu overhead)

2) This type of play doesn't make sense for colonies that have pretty much everything they need. This means you either need to completely redesign some asteroids to *not* have everything needed there, or limit the resources affected to the more rare space-age materials. You could have a thermium refining colony for instance. The second case requires specialized worlds to be created that are only available to colonies founded from within an existing colony. (which isn't a terrible idea) Another possibility is to have various geyser types that only appear on certain worlds... for example, an algae "colony" which produces algae, or a slime geyser, etc.

Link to comment
Share on other sites

2 hours ago, impyre said:

o.0? So buffers and caches are not memory?

Yes, they are type of memory, but they are dedicated to very specific tasks and usually built into or next to the parts that use them. 

When Gurgel was talking about the I/O memory bottleneck, he was speaking of the general purpose RAM (Random Access Memory) and it's associated virtual memory via paging and/or segmentation which, compared to the specialized caches/buffers, are significantly slower. 

Link to comment
Share on other sites

4 hours ago, impyre said:

o.0? So buffers and caches are not memory? 

"Memory" without further specification in a general computing context is customarily understood to refer to this thing called "main memory", often also called "RAM". Without further qualifications or a specific non-standard context, it does not refer to: Caches and buffers in the CPU, CPU registers, CPU flags, JTAG memory, or any other in-CPU memory. It generally also does not refer to (unless qualified): disk/ssd storage, nearline-storage, tape storage, printouts, scribbles on the wall, removable media, things you remember from sitting at the PC, data in flight in a network cable or a wireless link, data blinked out optically to the universe from router LEDs, etc. Yet all these are in a general sense "memory".  Hence "memory I/O" without further qualification is generally understood to mean I/O to main memory (RAM).

I do understand that some people feel these "shorthand" terms are confusing, but they are in general use and hence some familiarity with the concept and ideas behind it are beneficial when communicating with other people. 

That said, buffers/caches (in the CPU) should be particularly helpful in the case at hand as a lot of code is small and shared (thermal calculation, for example) and a lot of processing is sequential. The latter is very beneficial with buffers as data calculated will not be used again for a while so the buffers have time propagating their content to main memory. This is a situation where you can gain almost linear speed-up from having more cores (real or fake).

Sorry for the long explanation, but I feel your comment was made in good faith and so I tried a full answer to it. If you are just being obstinate, please interpret the above accordingly.

As to your implementation idea, I don't think so. It would certainly be a valid approach for an analog simulation (e.g. weather), but ONI is quantized and digital, mostly due to Dupe decisions. Hence you need to run all simulations in full. That said, any non-focus simulation does not need to be in close time-sync (until you open it), and does not need to do all the user-interface stuff, with maybe the exception of "red alert" (which can be done coarse-grain). Hence, I would expect that a colony running in the background will be much more lean on the computing side (20x debug speed comes to mind). In particular, it can be run fully in its own thread-set with very little sync-points (sync at most every 200ms, i.e. "tick", but once per second or even once per 5 seconds or so may be perfectly fine). 

Link to comment
Share on other sites

Guest aresd
33 minutes ago, Ellilea said:

Omg now that I saw my FPS is actually playable I keep checking the forum 25/7 all the time for the DLC release date. Send help.

Send doctors to me after you

Link to comment
Share on other sites

20 hours ago, Gurgel said:

Sorry for the long explanation, but I feel your comment was made in good faith and so I tried a full answer to it. If you are just being obstinate,

I doubt the sincerity of your apology. It was neither me being "obstinate", nor was it made in "good faith", nor did it require such a lengthy response. Also... it wasn't a question. I just thought it was funny, that's all. Why must you get all offended over it? Also, trying to sound like you know more than you actually do isn't really flattering... just saying.

Link to comment
Share on other sites

1 hour ago, impyre said:

I doubt the sincerity of your apology. It was neither me being "obstinate", nor was it made in "good faith", nor did it require such a lengthy response. Also... it wasn't a question. I just thought it was funny, that's all. Why must you get all offended over it? Also, trying to sound like you know more than you actually do isn't really flattering... just saying.

I am a PhD level computer scientist, engineer and researcher with 35 years of on-target experience. I did not try to sound like I know more than I do, because I actually know vastly more than I stated. And no, you were not being funny. That apology was only in case you were being sincere. Now that I now you were not, please disregard it.

Link to comment
Share on other sites

@Gurgel Okay, guy. I didn't say *I* was trying to be funny, I said I thought *it* was funny... your comment about memory I/O... your post as a whole really. Anyway, let's just agree to play nice and leave each other alone, cool?

Link to comment
Share on other sites

2 hours ago, Gurgel said:

I am a PhD level computer scientist, engineer and researcher with 35 years of on-target experience. I did not try to sound like I know more than I do, because I actually know vastly more than I stated. And no, you were not being funny. That apology was only in case you were being sincere. Now that I now you were not, please disregard it.

I thought it was funny.  And on point since I also took your use of the term buffer to refer to a chunk of ram.  Yes, the CPU has a cache, but as the programmer, it isn't something you use; you only use ram, and the cache just happens to be there at run time to speed up access to that ram.  Are you really saying that you originally meant that the programmer can optimize the code to avoid cache misses in order to reduce memory pressure?

Link to comment
Share on other sites

9 minutes ago, psusi said:

I thought it was funny.  And on point since I also took your use of the term buffer to refer to a chunk of ram.  Yes, the CPU has a cache, but as the programmer, it isn't something you use; you only use ram, and the cache just happens to be there at run time to speed up access to that ram.  Are you really saying that you originally meant that the programmer can optimize the code to avoid cache misses in order to reduce memory pressure?

Yes. And increase effectiveness of the in-CPU buffers for memory write-back. Don't tell me this is not generally known, my opinion of the average coder is already not very good.

Link to comment
Share on other sites

13 hours ago, speckle21 said:

If we're getting radiation, then one of the achievements for it should be titled: "Not Great, Not Terrible"

I don’t follow the word play on that title.

Depending on how they implement reactors, another title could be “Being Overly Critical”. In nuclear power, the increase in the fission rate and the subsequent increase in temperature, is a state called supercritical. (The stable point where nothing increases or decreases is the critical state.)

People can be overly critical about many things, judging something severely and finding fault; but in this context the phrase means to be above critical or supercritical.

I know there are some issues with translating word play and puns to different languages, but I definitely love the ones Klei has come up with so far.

Link to comment
Share on other sites

On 7/27/2020 at 11:00 AM, shadowoflight_ said:

iOS? Android? Plans?

Uh...considering how ONI is just beginning to become optimized for middle-high end PCs, I'm just going to go out on a limb and say we're probably never getting a mobile port.

Unless you want your phone/tablet to explode that is. :wilson_ecstatic:

Spoiler

And besides...the game's like 8 GBs...you really think you want a massive chonker like that on your phone? :wilson_curious:

 

Link to comment
Share on other sites

As it's clear Nuclear power will be part of this mod I would strongly recommend that Klei rework much of the power systems under a HEAT-ENGINE and ENERGY CONVERSION model.

All fossil-fuel and Nuclear reactors just produce hot fluids or gasses and then other steps turn these heat sources into power with a required cold-sink to function.

Steam or 'Rankin' engines take hot gasses and drop them to the point of condensing to liquids, Turbines take hot gasses and convert them to cooler gasses at higher efficiency.  Both produce a 'shaft power' output.  Shafts are like a new type of wire in function as they have instantaneous energy flow, they are bulky like heavy duty cables but have lower capacity and bleed energy to heat so are not practical over distance.

Generators take shaft power input and produce Electricity, again with a certain throughput capacity.

Together these changes allow a more interesting interviewing of power production and the creation of a more realistic nuclear power plant which involves more player design then a monolithic building that just eats uranium and produces electricity.

Link to comment
Share on other sites

I don't know if world traits will be compatible with the new asteroids system, but if so, I hope we get one that makes the starting asteroid radioactive at levels that are low enough to serve as a doom clock with a countdown of several hundred cycles.

Link to comment
Share on other sites

6 hours ago, goboking said:

I don't know if world traits will be compatible with the new asteroids system, but if so, I hope we get one that makes the starting asteroid radioactive at levels that are low enough to serve as a doom clock with a countdown of several hundred cycles.

How would radioactivity be a problem like that? Even massive radiation levels in the magma biome would just mean, assuming lead is somewhat realistically good as shielding, you could slap a layer of lead tiles at the bottom of the map and continue on as if everything's normal. Do you mean the asteroid violently explodes?

Link to comment
Share on other sites

2 minutes ago, Nebbie said:

How would radioactivity be a problem like that? Even massive radiation levels in the magma biome would just mean, assuming lead is somewhat realistically good as shielding, you could slap a layer of lead tiles at the bottom of the map and continue on as if everything's normal. Do you mean the asteroid violently explodes?

I mean all the minerals, metals, and liquids in the asteroid are radioactive at low levels that over a prolonged period of time will kill dupes, thus necessitating either rushed research and infrastructure to counteract the radiation or an escape to another, safer asteroid.  This, of course, assumes that radiation sickness is going to be a part of the new radiation system.

Link to comment
Share on other sites

12 minutes ago, goboking said:

I mean all the minerals, metals, and liquids in the asteroid are radioactive at low levels that over a prolonged period of time will kill dupes, thus necessitating either rushed research and infrastructure to counteract the radiation or an escape to another, safer asteroid.  This, of course, assumes that radiation sickness is going to be a part of the new radiation system.

Wouldn't work. Just use the ore from space plus generated materials (you can, in the end, make dirt from dead shove voles...) to replace everything in your base and dump your starting biome's materials somewhere.

Link to comment
Share on other sites

1 minute ago, Nebbie said:

Wouldn't work. Just use the ore from space plus generated materials (you can, in the end, make dirt from dead shove voles...) to replace everything in your base and dump your starting biome's materials somewhere.

I wouldn't mind it working like how germs used to work way back in the day, where it'd spread out onto nearby surfaces until it completely cakes everything in germs.

You'd have to act very quickly otherwise everything on the asteroid would be irradiated and you'd basically be screwed. 

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...