Jump to content

Make liquids gasses and power behave more realistically.


Recommended Posts

It looks to me like random parts of a normal wire circuit will become damaged if power draw ever exceeds 1000W on a circuit but is not intuitive and doesn't match how electricity works.

-There should only be damage if X amps passes over any given part of the circuit and those parts should be what get damaged. In practice this would allow for multi lines to distribute the load. 

Liquids and gasses have huge issues with feeding inputs and outputs on the pipe.

-More realistically any input could feed into a line, increasing pressure and any output could draw from a line, decreasing pressure.

Another one.

This game is not a simulator and nothing have to be realistic. Learn game mechanic.

5 hours ago, ffiarpg said:

There should only be damage if X amps passes over any given part of the circuit and those parts should be what get damaged. In practice this would allow for multi lines to distribute the load

There is topic on forum where you can learn why this bad idea.

5 hours ago, ffiarpg said:

Liquids and gasses have huge issues with feeding inputs and outputs on the pipe.

You have a issues, not liquids and gasses, because you didn't learn game mechanic. Learn it and there be no issues.

Just now, Neotix said:

Another one.

This game is not a simulator and nothing have to be realistic. Learn game mechanic.

There is topic on forum where you can learn why this bad idea.

You have a issues, not liquids and gasses, because you didn't learn game mechanic. Learn it and there be no issues.

First of all, here is the description of the game from Steam:

Oxygen Not Included is a space-colony simulation game.

Can you link the topic on why it is a bad idea?

I DID learn the game mechanics. It is after learning the mechanics and building a sustainable base that can last indefinitely that I registered to the forums to make these suggestions. 

There are many things in the game that behave in a satisfying way from a science/engineer/physics perspective. I don't think it is unreasonable to address the mechanics that don't match reality whatsoever unless there is a really good design reason they are this way that I am unaware of. 

space-colony simulation != real physics simulation

About electricity:

 

4 minutes ago, ffiarpg said:

I don't think it is unreasonable to address the mechanics that don't match reality whatsoever unless there is a really good design reason they are this way that I am unaware of.

First and the most important reason is performance. Simplification and avoiding unnecessary calculations is only way to allow players make big bases without slideshow.

That thread doesn't have a single developer response, just a bunch of armchair developers saying its too computationally expensive but I know it isn't as a developer myself.

If it is possible to make a game more realistic while keeping it as fun as it currently is, why are you so opposed to that? It seems like you just like denying suggestions and speaking like you are the authority on what the game is and isn't.

 

So what, this is where I tell you how I would do it to give you more material to nitpick. Sure, I'll bite.

These changes don't have to happen in realtime for this to work so it won't have impact on gameplay. For example, if you modify your circuit or turn on a new device and it takes 0.5s of background processing for it to realize you are overloading a section of wire and it begins to damage it, that really isn't a big deal, nor should it take 0.5s to figure out since this math is simple.

-When a device is drawing power, figure out what routes exist to sources of power, batteries, generators, etc.

-Divide the watt requirement evenly between routes

-Apply a watt load of that amount to each tile of wire on the route, similar to many other properties in the game already. 

-Do that for all devices, sum the load on each tile, if the tile load summation exceeds 1kw or whatever limit a wire is to have under this new system, break it, give it a chance to break, etc, whatever is best for balance of difficulty.

This is really simple math compared to some of the other physics calculations this game already does. Nothing special here. I actually wouldn't be surprised if the current power system and pipe systems are placeholders for a future pass to improve them. 

2 minutes ago, ffiarpg said:

So what, this is where I tell you how I would do it to give you more material to nitpick. Sure, I'll bite.

 

I think you're mixing me up with someone else? I haven't nitpick anything you said? I'm just very curious cuz I tried coding it in unity at one time and gave up cuz it was taking too long to dev and I kinda got bored. Was using breadth first search to find paths.

4 minutes ago, ffiarpg said:

-Divide the watt requirement evenly between routes

 

How would you divide it evenly? When there's a fork take the current from the previous section of wire and divide by how many forks? Won't that leave an imbalance of current if the left fork has less branches than the right fork?

Sorry I am on mobile and didn't check username, my bad.

I wouldn't do it by fork but by quantity of paths. For each consumer I would see how many paths to a producer it had, divide by the amount of paths and apply a watt load to the tiles that are used for that path. In your example the left fork would get 33% of the watt load and the right fork would get 33% applied to the right-right and 33% to the right-left giving it 66% thru the right fork up to the 2nd fork, at which point it would be 33% so if its a 1kw wire limit and the device was 2kw hooked to 3 devices it would burn up that right fork since it'd be at 1333kw.

This is still a pretty clear simplification over reality but I think it is more intuitive for people who both do and dont know electrical engineering and more realistic. 

3 minutes ago, ffiarpg said:

Sorry I am on mobile and didn't check username, my bad.

I wouldn't do it by fork but by quantity of paths. For each consumer I would see how many paths to a producer it had, divide by the amount of paths and apply a watt load to the tiles that are used for that path. In your example the left fork would get 33% of the watt load and the right fork would get 33% applied to the right-right and 33% to the right-left giving it 66% thru the right fork up to the 2nd fork, at which point it would be 33% so if its a 1kw wire limit and the device was 2kw hooked to 3 devices it would burn up that right fork since it'd be at 1333kw.

This is still a pretty clear simplification over reality but I think it is more intuitive for people who both do and dont know electrical engineering and more realistic. 

Won't that requires running A* for each and every producer for each consumer (num consumer * num producer)? With the giant electrical systems people could make, that would end up with a huge computation time don't you think?

Define huge, dozens of consumers and produces isnt huge in my eyes, even a 100 x 100 is nothing to modern computers and it isn't something that has to be recomputed from scratch every second the game is running. You would only have to recalculate what a consumer is connected to when it turns on and off and what a producer is connected to when it turns on and off and the results do not have to be instant for it to be an improvement. I would multithread it and allow the game to proceed uninterrupted while those calculations happened in the background.

1 minute ago, ffiarpg said:

dozens of consumers and produces isnt huge in my eyes, even a 100 x 100 is nothing to modern computers

People are already complaining about dupes doing nothing for a long time due to long A* times. 

2 minutes ago, ffiarpg said:

has to be recomputed from scratch every second the game is running.

What about gas fed generators turning on and off every second due to lack of gas? I know it's a worse case thing but it happens often enough to care.

 

The dupe priority system is almost certainly a much more complex computation than what I am proposing. The last set of patch notes I read said they improved performance, who knows how many more performance improvements will come before the official release? There are always optimizations to be made, it is just a matter of priorities. If my suggestion to improve the power/gas/liquid network systems is not a priority I will totally understand but I still wanted to suggest it.

Regarding gas generators. Cache the state of the system if its on or off if the computational burden is too high. The only super critical thing is whether a wire will be damaged so that is them most important calculation to cache.

Well asking about the implementation was a pure curiosity thing. However my stance on the matter is while I love more realistic everything, I have yet to see someone proposing a good enough reason for the dev time and possible performance hit especially to low end machines.

Sorry to be blunt but gota ask, the "so what?" question. To the average player with or without this, it's a matter of deconstructing the latest consumer you added and putting it on another network. And advanced players will find a way no matter what. So the only people who appreciates this would be electronics educated players.

Same for the pipes stuff.

22 hours ago, AlexRou said:

So the only people who appreciates this would be electronics educated players.

No. We don't care if it's realistic. It's part of being educated really. You learn the limitations of the game (or real life) and work around them.

On 12/24/2017 at 5:06 AM, AlexRou said:

Won't that requires running A* for each and every producer for each consumer (num consumer * num producer)? With the giant electrical systems people could make, that would end up with a huge computation time don't you think?

The game would only need to run A* when electrical objects are built, damaged or destroyed. When the electricity is being divided between wires, buildings, etc, it could just use the paths computed by the previous run of A*.

11 hours ago, AileTheAlien said:

The game would only need to run A* when electrical objects are built, damaged or destroyed. When the electricity is being divided between wires, buildings, etc, it could just use the paths computed by the previous run of A*.

You forgot when every producer/consumer turns on or off. Because that changes the path and you cannot assume they will all turn on or off at the same time.

I'm imagining current on a segment of wire be used for the costs in A* so that the load spreads out as much as possible. 

Producers turning on or off shouldn't change the shortest paths through the network. You also can't be using the current on wires for your costs - that's the thing you're trying to figure out in the first place. Regardless of the path-finding algorithm you're using (A*, Dijkstra, whatever), the paths represent the path that some electricity could take through the network from electricity producer to consumer. (i.e. The shortest path from some producer to some consumer.) After that, you'd divide up the amps/watts, determine wire damage, etc.

Having thought more about this, I think there's a way to have electricity in the game be more intuitive, while also being somewhat close to reality for people who have some electrical background. Use the same system as liquid / gas plumbing.  It handles multiple producers* and multiple consumers, and already exists in the game. The only difference would be that if multiple consumers try to pull more power than can be handled by a segment of wire, it gets damaged. (Plumbing just limits the throughput through a pipe/vent, without damaging it.)

 

* I actually don't know how it handles multiple producers connected to the same pipe. I'm at work, so I can't check, but I'm assuming the pumps just evenly distribute their output to the shared pipe segment (or consumer machine) that they're both feeding into.

44 minutes ago, AileTheAlien said:

You also can't be using the current on wires for your costs - that's the thing you're trying to figure out in the first place

I meant the current from consumers already processed, like if there are 2+ possible paths to a producer and one path is already at heavy load, try the other paths. If it doesn't do this then people would be complaining about why is it only taking the shortest path.

44 minutes ago, AileTheAlien said:

Use the same system as liquid / gas plumbing.

This system doesn't handle forks/branches well and so wouldn't be of much use unless it's improved, but this system is more costly as it's calculated in real time or at least once a second.

On 12/23/2017 at 11:54 PM, ffiarpg said:

That thread doesn't have a single developer response, just a bunch of armchair developers saying its too computationally expensive but I know it isn't as a developer myself.

 

 

It's not relevant whether that thread has a developer response: it's a recent similar thread, posting duplicate threads isn't a useful thing to do; that's just a general rule of life.

The developers typically don't respond to threads here, as they've indicated that they've found that when they respond, it tends to close down discussion.

Consider this: there are a bunch of space colony sim games out there.  If they were all 100% realistic, they'd all be the same thing--and they wouldn't be games at all.  Contained within their deviation from reality are the choices that make them 'sim games' and not just sims, as well as the choices that make them different games from each other.  

 

"I don't think it is unreasonable to address the mechanics that don't match reality whatsoever unless there is a really good design reason they are this way that I am unaware of. "

Well that's the thing, there is a potential really good design reason, and it's not just feasibility.  The designers have a vision of how they want gameplay to be.  fixing every deviation from reality would 100% destroy that gameplay.  So, any suggestion about realism must involve some analysis of gameplay as well to be complete.  Your analysis lacks any consideration of gameplay, so it is a priori incomplete.

cornerstone of oni is cell logic - gas/liquid/solid can occupy one cell, otherwise computations overheat cpu.
Tho liquids flow too slowly, and gases move too slowly - i feel like i need to wait about half of cycle for 1 cell of hydrogen to go by 4 cells up.
Ani need to wait like two cycles for water to flow down some hills...

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