Procedural Landscapes / Large maps.

Started by TimMartland, February 20, 2014, 11:13:55 AM

Previous topic - Next topic

TimMartland

How big could the RimWorld world possibly be? I would like to see much larger worlds implemented in the future allowing for a focus on exploration and prospecting, with vehicles and expedition parties being central to such a design and a variety of biomes to discover. However, I am well aware of the limitations of the game, and I wonder will the maps ever become much bigger than the current 'Large' setting map? Would it at all be possible to implement a 'chunk' system where only the areas of the map being viewed are rendered and the movements and interactions of colonists not in view or immediately close by are only calculated and predicted in a basic sense? In this way, the colony would continue as normal but would not cause lag while the player is focused elsewhere.

Of course, this would only be necessary if the aforementioned 'World-size' maps are created.
'Two possibilities exist: Either we are alone in the Universe, or we are not. Both are equally terrifying'
-Arthur C. Clarke'
'Needs moar boosters!'
-Jebadiah Kerman

Luckless

As big as the developer wants to put the time into making it.

By using multi level chunks/cells that allow split path finding it also becomes fairly easy to split the map into chunks that can be loaded in and out as needed. Plus it would be possible to 'estimate' bits that are away from the main areas.

Bandit camps don't get calculated as precisely as the player's colony. Rather than carefully tracking every last position of everything, the camp merely gets stored as a location, with a population list, item list, and 'production level'. Nothing actually gets calculated beyond that till it is needed, and then things get generated on the fly. First time you go there the map gets generated, people's positions get updated, etc.

While you are right there things get fully calculated as in your main colony. If you step away from the camp then their last positions get saved. If you step right back then the game looks back at the last save data point for the camp and updates the raider's positions based on how far they could have moved and things go back as they were. If you go well away from the camp then the map is saved for later (or regenerated from seed), and it goes back to vague estimations.

Vague estimations get updated at a high level 'tick' rate. New people come and go, total food/resource/item levels are used or generated at a preset rate, etc. These 'groups' can shift from one high level zone to a nearby one, become flagged as moving or 'setting up camp', or even raid each other to 'exchange' goods and resources based on very simple estimations rather than processing out detailed tile based interactions.

The goal is to keep only the most basic information possible and do as little math on stuff the player isn't directly working with as you can, and only do hard number crunching at the last minute when it becomes directly relevant.


A really interesting option that a classmate was working with for a similar game (closer to dwarf fortress than rim world) was making the game itself a 'multiplayer' client that then connected to a server that handled the actual 'world'. That server could be configured to be fairly small and hosted locally alongside the player's client, or they could configure it for a far larger and more complex world, and dedicate a server box to it. (Which could either pause the simulation or keep things going when the user exited their single player game. He had the option of either allowing the world to continue while the user wasn't there, or taking a snap-shot of it and the server then sat there pre-calculating different stuff to add flavour to the game.)

Nukeman0

I believe that a self- generating, chunk- based map is an overall goal when it comes to this topic. I have at least heard that there will be larger maps when the game is optimized for it.
Nukeman0

TimMartland

@Luckless Good ideas. Bandit camps would be an especially welcome feature - you could destroy them to lower the amount of raiders and the frequency of their attacks.
'Two possibilities exist: Either we are alone in the Universe, or we are not. Both are equally terrifying'
-Arthur C. Clarke'
'Needs moar boosters!'
-Jebadiah Kerman

StorymasterQ

Quote from: TimMartland on February 20, 2014, 03:04:41 PM
@Luckless Good ideas. Bandit camps would be an especially welcome feature - you could destroy them to lower the amount of raiders and the frequency of their attacks.
Couldn't it also in fact increase the frequency? Because from their point of view, we'll be the raiders...
I like how this game can result in quotes that would be quite unnerving when said in public, out of context. - Myself

The dubious quotes list is now public. See it here

Luckless

Quote from: StorymasterQ on February 20, 2014, 07:05:21 PM
Quote from: TimMartland on February 20, 2014, 03:04:41 PM
@Luckless Good ideas. Bandit camps would be an especially welcome feature - you could destroy them to lower the amount of raiders and the frequency of their attacks.
Couldn't it also in fact increase the frequency? Because from their point of view, we'll be the raiders...

Not if every single one of them is already dead...

But personally I would prefer combat to be secondary to base building and survival. It should be possible for the game to be hard and still fun without the storyteller throwing a single raider your way. Combat should be one of many interesting challenges to face. Maybe you'll go 'off exploring' to find a large chunk of space ship that fell to the planet, or have the option to build small exploration satellites that will flag something away from the base as having some resources. Maybe you will travel to get to markets to trade stuff, or perhaps your colony will just be doing really really well, and you want to take a group of people off on a random adventure just to see what is over the next mountain.

TimMartland

Spreading out into outposts and infrastructure would provide interesting challenges and bring an extra dimension to events (If an outpost is crippled, do you divert critical resources from the main base to help or try and get the scouts to evacuate?).

Then again, the game is all about micromanagement, so true automation would be difficult to achieve in the current game. Things like guard patrols, quarry zones and bars would help to allow colonies to run without constant supervision (Guards would automatically defend, Miners would go dig automatically within certain areas and any off-duty colonists would simply be allocated to a waiting room without you having to deal with them).
'Two possibilities exist: Either we are alone in the Universe, or we are not. Both are equally terrifying'
-Arthur C. Clarke'
'Needs moar boosters!'
-Jebadiah Kerman

Pirx Danford

Quote from: TimMartland on February 21, 2014, 07:57:07 AM
Spreading out into outposts and infrastructure would provide interesting challenges and bring an extra dimension to events (If an outpost is crippled, do you divert critical resources from the main base to help or try and get the scouts to evacuate?).

Then again, the game is all about micromanagement, so true automation would be difficult to achieve in the current game. Things like guard patrols, quarry zones and bars would help to allow colonies to run without constant supervision (Guards would automatically defend, Miners would go dig automatically within certain areas and any off-duty colonists would simply be allocated to a waiting room without you having to deal with them).

Maybe something like a "Base Control Unit"(BCU) as researchable structure could facilitate having outposts and micro management at the same time.
It could be freely named and would cover a maximum area, thus limiting base sizes, which could be interesting.
A transparent mini status bar at the right side of the screen could display BCU beacons for all bases that have been built and colonists and resources within them.
Also of course if you click on a beacon the screen will center on the BCU defining that base.
Any BCU beacon having dangerous events like raiders, fire or other stuff going on could show appropriate alert symbols.

TimMartland

Such a BCU could control everything within the home zone it is inside maybe?
'Two possibilities exist: Either we are alone in the Universe, or we are not. Both are equally terrifying'
-Arthur C. Clarke'
'Needs moar boosters!'
-Jebadiah Kerman

Luckless

Some options for how to handle things when 'going off map':

1. Split time: When you form up a group to go off map, a secondary save if created. You play one or the other for a given amount of time and then have to switch back to the other save. This 'jumps you back' in time, and you play forward from there. Things that you trigger from one save may show up again in the other. Such as if you play forward with an adventuring party you might find a traveling merchant and send him toward your camp, or come across another group of survivors and invite them to join you. When you go back and play forward from the base perspective these events will then happen.

If you bring the adventuring party home, then you automatically jump back and play the base forward, eventually having the party arriving home at the correct time.

This works the same as TV shows or movies that focus on different characters doing different things that fall along the same timeline. And the story teller can even weave them together: You don't know it as you don't get to see anything with you come 'home', but your party arrives back just in time to see a group of bandits attacking or something.

2. Single time line with 'estimated simulation' for one or the other. (Not my favourite for most base building) This assumes that bases become 'stable' at some point. They develop enough that they don't really need any more attention, and the colonists just go about their daily lives of growing food and making items. The mining is done, all the buildings are where you would want them, and it is just upkeep from then on. Once you are at that point you are free to 'wander' away. When you come back the story teller will come up with a summary: Raiders hit, X and Y died, Z was captured, someone joined, merchant showed up and we carried out the usual transactions.

3. AI only missions: The 'extra world' is more a high level map view, and you send groups out on this that will then procedurally give you results: found X, Y died in a fire fight, brought back items A, B, and C, etc.

Other options/variants are possible, but I think these are a good starting point for discussion.