Jump to content

unlimited map size


Recommended Posts

TL;DR

The map size should be unlimited and automatically expand after exploration.

 

What?

In the game Factorio, the map size is unlimited. It automatically expands after the player explores it. I am suggesting the same thing for Oxygen Not Included.

Exploring to the left and right of the map should just cause random new temperate, caustic, swamp and arctic biomes to be generated, which can be mined for additional resources. The further you explore to the bottom of the map (magma biome), the hotter it should get. Exploring the top of the map should just give you more building room, but no resources, since the space biome is filled with void.

 

Why?

In the game Oxygen Not Included, it is possible to run out of certain resources. This is not possible in the game Factorio, since the map size is unlimited and will automatically expand by exploring the edge of the map. That way, if you run out of resources in Factorio, all you have to do is explore and conquer new territory. This essentially gives you unlimited resources in Factorio.

Having an unlimited map in Oxygen Not Included would also solve the problem of being unable to replace extinct animals. Currently, most species can only be replaced by cheating with debug or sandbox mode. If ONI had an unlimited map, you could replace extinct animals by expanding the map in search of more animals.

 

Problems with the suggestion and possible solutions

The main problem I see with an unlimited map size is that, the larger the map, the more calculations will have to be done, which can result in significantly worse FPS (frames per second, i.e. the game will slow down).

For example, the larger the map size, the more tiles will have to be simulated. Even if nothing much is happening on a tile, the heat exchange of every tile will have to be simulated. One possible solution would be to have larger simulation steps for tiles that are in unused areas of the map, so that they are only updated once per minute instead of several times per second. Most players would not notice the difference (as long as it only happens in unused parts of the map).

Another problem is that the larger the map, the higher the number of critters that must be simulated. However, this problem could also be solved by increasing the size of the simulation steps, so that they are updated less often (when in unused parts of the map).

The calculation costs of pathfinding would also be an issue, because, the larger the map, the longer the paths will be. However, transit tubes reduce the computational complexity of pathfinding, due to the reduced number of pathfinding nodes (when using heuristical pathfinding algorithms such as A*). Also, with transit tubes, individual tube segments could be cached, as has been done for railroad track segments in the YAPF pathfinder of the open-source game OpenTTD. Also, for paths that don't use transit tubes, something similar to RimWorld regional pathfinding could be implemented for optimization.

Link to comment
Share on other sites

1 hour ago, Tekky said:

The main problem I see with an unlimited map size is that, the larger the map, the more calculations will have to be done, which can result in significantly worse FPS (frames per second, i.e. the game will slow down).

The main issue is that the game engine simulates every tile from the start of the game. I`m not sure if it could support dynamic map generation. It would be fun to have an unlimited map but i think that a lot of performance optimisation needs to be done first.

1 hour ago, Tekky said:

In the game Oxygen Not Included, it is possible to run out of certain resources

We got rockets to get the missing resources from space. Not very effective but it`s something.

Link to comment
Share on other sites

"unlimited map size" - Once I started to generate a map of 72x the default size, after a day I wasnt sure if the pc is still working on it or if the game locked up. AltF4, I needed the pc again. The game also tends to crash if one has more than 1000 blueprint parts to be built. I try to have everything built by the armada of dupes, before the cycle night comes by. I tried 24 hour dupe work shifts, but it has a few side effects with the dupes.

Link to comment
Share on other sites

I had the alternative idea of "infinite but not infinite map": change rocketry mechanics so when rocket reach asteroid, game will create random small(64x64, or 128x128) map and your rocket land there and you play on that small map until decide to come back on primary map, when you take off the small map it destroys, so you can fly infinite amount of times on such temporary maps. Ofc when you play on small map your primary map on pause so nothing simulating there, no CPU load.

Link to comment
Share on other sites

4 hours ago, Tekky said:

In the game Oxygen Not Included, it is possible to run out of certain resources.

I think this isn't a side effect of performance issues, but a feature: Eventually running out of resources is what drives the player to tap into space or the magma biome, and to deal with the side effects of rather uncomfortable sources (e.g. Dealing with a metal volcano, instead of just digging into another vein of ore).

I might be wrong, but I think it's a core mechanic of the game that you have to become more efficient and rethink established structures over time. Having unlimited resources really sounds fun, but it would kinda destroy that.

Spoiler

Also, I'm afraid having unlimited asteroid space wouldn't make much sense regarding lore...

 

Link to comment
Share on other sites

On 11/6/2018 at 10:48 PM, Lepeightl said:

I think this isn't a side effect of performance issues, but a feature: Eventually running out of resources is what drives the player to tap into space or the magma biome, and to deal with the side effects of rather uncomfortable sources (e.g. Dealing with a metal volcano, instead of just digging into another vein of ore).

Well, the problem is that the space biome only provides certain resources, not all resources.

Also, not all maps have certain types of volcanoes or geysirs. However, if the map were unlimited, you would always be able to find a certain volcano/geysir on the map. It would just be a matter of how long it would take you to find one.

This is also how finding resources works in the game Factorio. If you can't find the resources you need, you must continue expanding the map until you find the desired resource.

Link to comment
Share on other sites

I also think that few computers would survive big maps long...

and for extending the map it might be possible : when you approch the end of the map the game could add more tiles by completely remaking the map and remapping a bigger version while storing all existing objects. Its just a bit tricky... you know the tiles are stored in something thats called grid and numbers all tiles with a number with which they are accessed it need to be completely remapped on extension.

On 11/6/2018 at 10:27 PM, D.L.S. said:

 when you take off the small map it destroys

Disagree on that you should be able to come back and resettle it. instead of destroy you should be able to discover infinite rocks.

Link to comment
Share on other sites

Hey Rainbowdesign, don't know if it exists already as mod - I fill my maps with 95-100% Neutronium at game start, to have the fastest game speed. Maybe its a mod idea for you? The mod name could be "FastGameSpeed", so that downloaders understand. I play on map size x10.66 Neutronium. Best regards, Babba :p

Link to comment
Share on other sites

41 minutes ago, Rainbowdesign said:

I also think that few computers would survive big maps long...

and for extending the map it might be possible : when you approch the end of the map the game could add more tiles by completely remaking the map and remapping a bigger version while storing all existing objects. Its just a bit tricky... you know the tiles are stored in something thats called grid and numbers all tiles with a number with which they are accessed it need to be completely remapped on extension.

Well, it works in the game Factorio, so it must also be possible with ONI. The only question is whether the developers are prepared to invest the effort (especially since it might require redesigning and rewriting major parts of the program) and what compromises would have to be made (such as unused parts of the map being updated less often).

I have discussed possible multithreading and SIMD optimizations a bit in this thread.

Link to comment
Share on other sites

I played Factorio right from the beginning, often followed the blog posts and spent +1000 hours with Factorio. The game was started by one coding guy and that person has a lot attention to detail + he ensured hiring of some extremely good programmers which worked purely on optimization and nothing else. Factorio is much more optimized than Prison Architect ( which I also played +1000 hours ). On PA they got one guy in at some point, which is an expert on code game speed optimization.

Its all tricky and costs a lot of money. Hiring such guys works if a game is still selling an ever increasing exponential amount of copies. If the peak has been reached or passed...

Link to comment
Share on other sites

3 hours ago, Rainbowdesign said:

Disagree on that you should be able to come back and resettle it. instead of destroy you should be able to discover infinite rocks.

Well, the idea was that small map will be completely or partially depleted after you leave it, so it would be not much profit to get back there again. Also you need to keep all data, so each such map will leave footprint on save file. Or by resettle it you mean regenerate it?

But it's just minor detail.

Link to comment
Share on other sites

On 11/7/2018 at 2:57 AM, D.L.S. said:

I had the alternative idea of "infinite but not infinite map": change rocketry mechanics so when rocket reach asteroid, game will create random small(64x64, or 128x128) map and your rocket land there and you play on that small map until decide to come back on primary map, when you take off the small map it destroys, so you can fly infinite amount of times on such temporary maps. Ofc when you play on small map your primary map on pause so nothing simulating there, no CPU load.

@Cheerio, @Ipsquiggle: You guys should have a look at this! having a small diggable map area that is simulatablewhen we go there is an excellent idea to mine for resources. Should be a new landing area in the planet every time allowing good amount of resources to be brought back. It'll be thoroughly limited by the storage capacity of the rocket and the food+oxygen carried by the dupe there. The sightseeing dupes can help in the digging.

Also, since we have a digger building now, we can have a method to easily dig resources now too in the new planet. It'll give incentive to bring dupanauts who are both astronauts and ranchers so that they can wrangle animals. We can have a retractable ladder sort of stuff in the rocket to ensure we needn't be bothered with the hassle of building galleries and ladders in a new planet that's going to be regenerated every once in a while.

Link to comment
Share on other sites

5 hours ago, D.L.S. said:

Well, the idea was that small map will be completely or partially depleted after you leave it, so it would be not much profit to get back there again. Also you need to keep all data, so each such map will leave footprint on save file. Or by resettle it you mean regenerate it?

But it's just minor detail.

I mean that the maps might be bigger and worthwhile a longer game on it not just stripping it. So you will also have to build some stuff maybe making it a factory maybe even decide to move to it. But for that you have to go back between that map and the original. I think maybe it should have an abandon this map button.

Link to comment
Share on other sites

6 hours ago, Rainbowdesign said:

I mean that the maps might be bigger and worthwhile a longer game on it not just stripping it. So you will also have to build some stuff maybe making it a factory maybe even decide to move to it. But for that you have to go back between that map and the original. I think maybe it should have an abandon this map button.

Ah i get. Yes, since you have dupes on a new map and some resources(oxygen, food, maybe some construction materials, anything you can load into the cargo bay before sending your rocket from primary map), you could build small settlement on new map and live there for some time. I think all depends on the size of a map, the bigger map the more time you can spend there.

Link to comment
Share on other sites

On 06/11/2018 at 10:27 PM, D.L.S. said:

I had the alternative idea of "infinite but not infinite map": change rocketry mechanics so when rocket reach asteroid, game will create random small(64x64, or 128x128) map and your rocket land there and you play on that small map until decide to come back on primary map, when you take off the small map it destroys, so you can fly infinite amount of times on such temporary maps. Ofc when you play on small map your primary map on pause so nothing simulating there, no CPU load.

As an extension of this idea: 

The possibility to attach something like a towing machine to your rocket, pull those asteroids back to your planet and attach them to your planet like some kind of balloon(or bring them into the orbit) - this way, you could keep some of those asteroids around for mining, base extensions, etc.

Link to comment
Share on other sites

3 hours ago, sido378 said:

As an extension of this idea: 

The possibility to attach something like a towing machine to your rocket, pull those asteroids back to your planet and attach them to your planet like some kind of balloon(or bring them into the orbit) - this way, you could keep some of those asteroids around for mining, base extensions, etc.

Superb idea, good as a Pizza Speziale from Uncle Mario !

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