Jump to content

Full map (all worlds) zoomed out + map science


Recommended Posts

So, in the process of figuring out a bug with bugs flying between worlds, I figured out how to disable the fog of war completely. Of course, I couldn't help myself, and wanted to see what the full map looks like without the fog of war.

SPOILER WARNING: Fair warning, this is really spoilery, since you can see all the worlds uncovered. Also, it might break your immersion a bit knowing how the maps work. But here it is:

Spoiler

20201129143442_1.thumb.jpg.396e668ac24f0b9e2bd99a77c05d554b.jpg

You might note that most of the map isn't rendering properly, it only renders the world you're on fully.

I haven't fully explored it, but here's a bit of a roadmap: On the left is my starter asteroid, Mudino. The first big one to its right is my "third" world, Vegetola (only reachable by rocket). The next big one is my teleporter-accessible world, Rubera. Above Vegetola on the right is Burnito, my magma world, which I only know the name of because I teleported Devon there during testing. (Sorry Devon.) I haven't explored any other worlds, but way on the right you can see my rocket capsule.

You can see some of the artifacts of my bug-testing between Mudino, Vegetola, and Rubera. :grin:

For anyone who is interested in recreating this:

Spoiler

Enable debug hotkeys, then press Ctrl-F to disable "Cluster FX", then Backspace to disable Fog-of-War. You can enable the free camera with Alt-S.

Edit: This thread kinda turned into a general "how the map works" science thread, so there's a lot of interesting discussion below. I like making walls of text though, so watch out. Also, spoilers, obviously.

Link to comment
Share on other sites

Yeah, there's a few "cracks in the simulation" (stuff you can see from other maps) if you're paying attention. I'm sure it actually makes a lot of stuff way easier to implement, since there's only one world grid. It's pretty clever honestly, and probably the best way to do things considering the maps are all statically sized.

Link to comment
Share on other sites

So that's how they got them all to accurately simulate at the same time.... locking the camera's movement abilities on a modified old-size world. Can dupes travel from the surface of one planet to another using jet suits and/or ladders? If so, by zooming out you could place pipes that went directly from one asteroid to another.

Link to comment
Share on other sites

2 hours ago, 2tallyGr8 said:

So that's how they got them all to accurately simulate at the same time.... locking the camera's movement abilities on a modified old-size world. Can dupes travel from the surface of one planet to another using jet suits and/or ladders? If so, by zooming out you could place pipes that went directly from one asteroid to another.

As near as I can tell, the outermost "border" of tiles on each world is unbuildable. As in, the game just won't let you interact with those tiles, even in sandbox mode. It's also filled with neutronium, so good luck. :grin: You can't even build pipe bridges over it, and they're not long enough anyway. Also, any gases/liquids that make it to the border appear to be annihilated. (But I'm not sure on that.)

The bug I linked shows that the neutronium wall between world is missing on the top edge, including the corners, so it *is* possible to sneak between worlds depending on the gap size. (Easier if you're a shine bug.)

 

2 hours ago, Gurgel said:

Not really surprising, though it would have been nice if they were separate for performance reasons.

Theoretically, they could still freeze simulation for worlds you haven't visited/aren't interacting with. I don't think that's something they're doing now, but it should be possible. I don't think having them be separate grids would help with performance, except that you could possibly save memory by not loading unvisited worlds.

But from a development standpoint, separating the single grid into virtual worlds is way, way easier than making a multi-grid system. Because basically every part of the codebase assumes that there's only one grid right now. Changing all that code to be multi-grid aware would be a huge refactor, so I can see why they didn't do it. (I'm sure implementing the current system was already a lot of work.) It would also probably inflate memory usage a bit, since every object would need to know its position and world. Right now, objects only need to store their position, and they can lookup the world from that, if they actually care. A lot of objects don't care at all, so they don't have to be modified.

The "single grid" solution also has some other benefits. Like the fact that duplicants can easily path in and out of rocket interiors was probably really easy to code, since all you need is a door that teleports you from one grid point to another. (That's really really easy to put in a pathfinder.) You're also basically just simulating a bigger map, which people have been modding in for a while.

Link to comment
Share on other sites

for each internal module, one you can build in, is it spawning a new mini-map? Similar to the one in the low right? more modules, equals more tiny worlds? Do they just pile in on the right? What happens if you have like 6 modules?

Do they stay right-aligned? Do they fill-in above the world beside it? I thought of some mechanism they may bring them together where you could ladder to them or tile, maybe in a pinwheel? With the tops open to one another? Giant struts, or engines to maneuver them, and whatnot. But, it really would be kinda cool to assemble them, in a tetris manner. Finding which ones are the most synergistic. Is that the full height of the map? Kind of looks like the old map on it's side?

Thanks for the reveal.

Link to comment
Share on other sites

What I see here is a map bigger than map from Vanilla.

What I know, is the Vanilla map was already too big. Well, it's definitely not the same purpose here, as you need some space to transfert materials, as rockets will occupy different space, as you'll need redundant infrastructure (beds, toilets, etc... will be needed on each), and additional setups for nuclear, etc... Fair. I don't mind, as new mechanisms will bring fun, for sure.

But what I know also, is size was an issue for performance. Playing on smaller map helps the computing (I ended up playing only half sized map).

I'll not count my chickens before they're hatched, but at this point I'm just worrying and just hopping computing will follow, for it to do not be more laggy than Vanilla (if less laggy is an option, please just don't hesitate :applouse:)

 

Link to comment
Share on other sites

9 minutes ago, OxCD said:

But what I know also, is size was an issue for performance. Playing on smaller map helps the computing (I ended up playing only half sized map).

As far as i understand it the computing problem with the big maps was that too many paths were possible for each task (imagine a jetpack dupe in an empty room). The smaller the map, the lesser options a dupe was having to path to a task destination (imagine multiple jet-dupes in several smaller rooms).

The DLC seems to address exactly this issue by creating multiple smaller maps. If you combine them, they might still add up to the same or even more space than the original asteroid from vanilla. But if you look at each asteroid the dupes should have far less options to choose their way from. Resulting in less computations to perform.

Having said that, the asteroids feel a bit small at the moment.

Link to comment
Share on other sites

18 minutes ago, Slvrsrfr said:

for each internal module, <questions...>

There's some free space to the right of the rightmost world, and it seems to allocate new rocket interiors in this area. They just fill in left-to-right, top to bottom.

20201129175127_1.thumb.jpg.4a134dd3373bce9007f1ac0806942def.jpg

Also, in the bug report I linked, I noted that rocket interiors get their own neutronium box to keep the world isolated, however, this doesn't seem to be happening to interiors past the first in my testing. So theoretically, if you can escape from a rocket interior, you could fly to another one, or fly from one of the open-topped worlds to a rocket. But building between them would be difficult, because the border of each rocket's "world" is still unbuildable.

From some poking around, I don't think the world can get any wider (at least, after world gen), but I think it can get taller if you build enough rocket modules. (It's a bit too much work to test though, since you have to build a platform for every interior.

I imagine the solution to piping stuff between rocket modules will just be mods. I can imagine a "pipe link" building you build on the side of a module, that spawns appropriate pipe inputs/outputs on the outside, or between modules. (Though you can only have one interior per rocket in vanilla.) It could work basically the same as the warp pipes, just with some restrictions on placement. Since that building already exists, as well as the rocket door, it should be really easy to add more piping/transport functionality to rockets with modding.

Link to comment
Share on other sites

1 minute ago, AntiBlueQuirk said:

There's some free space to the right of the rightmost world, and it seems to allocate new rocket interiors in this area. They just fill in left-to-right, top to bottom.

So is there a hard-limit to how many rockets we can have at the same time?

Link to comment
Share on other sites

9 minutes ago, blash365 said:

So is there a hard-limit to how many rockets we can have at the same time?

I don't think so. There's some code in the game that theoretically allows the world to be resized to be taller. Even then you should be able to build 25-30 rocket interiors before that would even be necessary. Probably more, actually, if it reuses space above the shorter worlds. (Which I think it can.)

Edit: Oh, actually it looks like there's a hard limit of 16. That can definitely be raised with modding pretty easily, it's just a single constant in the code, and I don't think anything else limits it. It basically just looks like a "keep the player from shooting themselves in the foot" check.

Honestly, I think the modding community is going to go nuts with these new features.

957096929_2020-11-2918_11_11-OxygenNotIncluded.png.75735aedf511d80c3ff893a54b024dac.png

Link to comment
Share on other sites

2 minutes ago, AntiBlueQuirk said:

Yep! That bug I linked in the OP is your bug! I was investigating. You can see the gaps between the world walls that let them through.

Haha. I didn't click on the  link.  Thanks for giving me credit.   

Yea I was on stream  noticing my puffs disappearing and eggs appearing randomly on another world that wouldn't normally have puffs.

 

Link to comment
Share on other sites

If you're worried about performance right now, I wouldn't let flying critters into space. There's a *lot* of tiles they can reach. They can't path above the highest point on the tallest map, but there's a ton of void space for them to get lost in.

See that little yellow dot? That's a shine bug. He can basically path wherever he wants in that empty space, which I'm sure is terrible for performance.

bug10.thumb.jpg.aa84e100f942e029ea0e1b60ca31f204.jpg

Edit: here's a navigation grid for a puft in space. Yeah, definitely don't let these guys loose on the surface. Not to mention, if they wander into the void, there's no way to get them back unless they come back on their own. I think the starter asteroid is safe, since I think the walls go up high enough, but I'm not sure why, so be careful.

20201129183559_1.thumb.jpg.df70dea20a99da13c01bc6ef449c88a8.jpg

Link to comment
Share on other sites

1 hour ago, AntiBlueQuirk said:

Since that building already exists, as well as the rocket door, it should be really easy to add more piping/transport functionality to rockets with modding.

So... @AntiBlueQuirk could doors connecting from one asteroid to another be created with mods..?! :shock: (say yes.. say yes... say that creating Howl's moving castle is possible! :D )

Link to comment
Share on other sites

Good news! I just figured out that the game does not simulate worlds you haven't discovered yet. There was some anecdotal evidence of this floating around already, but I just figured out a way to confirm it. I teleported Burt to a world I haven't discovered yet (sorry Burt), and the grid is frozen! Critters and stuff can still move around, but otherwise physics is stuck.

1102143303_2020-11-2919_09_06-OxygenNotIncluded.thumb.png.d05a6ce996281b3659a65105def1b2ae.png

Burt is safer than he looks. The magma doesn't even exchange heat with him! Though he very quickly depletes the oxygen in those tiles above his head, since new oxygen can't move in.

How this seems to work is that the game can limit what parts of the grid it simulates, and normally, it only simulates the regions for worlds you have discovered. (This means that you have found them on the starmap, and they show up in your world list.) So until you reveal a given world, its physics is frozen. (Though again, critters can still move around and stuff.) It seems to be a bit unreliable though. Two of the "undiscovered" worlds I teleported to were frozen, but a third was not. More science required.

Edit: learned something. If you have the fog of war cheated clear with the debug Backspace key, all worlds are treated as discovered. The debug screen blocks the world switcher, but you can switch to any world with Backquote+<number> (Tilde+<number>). This also unfreezes all worlds as long as you have the Backspace menu. That one world is still unfrozen even though I haven't discovered it though. (In an amusing coincidence, the unfrozen world is my cold/frozen asteroid.)

Link to comment
Share on other sites

Just now, sakura_sk said:

So... @AntiBlueQuirk could doors connecting from one asteroid to another be created with mods..?! :shock: (say yes.. say yes... say that creating Howl's moving castle is possible! :D )

If you mean doors like the existing exterior rocket doors... I don't see any reason why you couldn't make a mod that reused that functionality. As far as I can tell, they're just pathfinding portals, so you could create a new building that made a pathfinding portal. I imagine someone will create a "stargate" mod at somepoint that lets duplicants just walk from one asteroid to another.

What I'd like to see on rockets is the ability to add more than one interior module. You could automatically add a door and pipe hookups (like warp pipes) between modules that are stacked on top of each other. They would still be separate maps, but it would still work. I think adding something like that would be pretty easy, since you'd just be repurposing code that's already in the game.

You could even theoretically add some sort of buildable space station system this way, but that would be a lot more work.

Link to comment
Share on other sites

so, i meant right aligned, always follow my hands when I give directions.... lol :) but thank you for the study! kudos! really wish I could 'tinker' with it.

2 hours ago, AntiBlueQuirk said:

How this seems to work is that the game can limit what parts of the grid it simulates, and normally, it only simulates the regions for worlds you have discovered. (This means that you have found them on the starmap, and they show up in your world list.) So until you reveal a given world, its physics is frozen. (Though again, critters can still move around and stuff.) It seems to be a bit unreliable though. Two of the "undiscovered" worlds I teleported to were frozen, but a third was not. More science required.

I think that is a function of the fog? Like how when I uncover the shinebug, how it hasn't died from it's hostile environment, yet continues to reproduce. Time is in something of a stasis under fog, yeah? Is that it?

what is this? any clue? And I had a feeling allowing critters to path out the top is a bad idea. They should be hard-vacuum adverse? Maybe..

image.png.c9fec42af4a537ec67078395432b401f.png

And for the shinebug, does it achieve a transcendental state of oneness with the ONI universe, and teleport out of the matrix, Tron-style? Where is that one diagonal line falling-off to the left going? Why only from that one tile is it able to move off the frame of the map? Outside the functional array, what underlying bug does that speak to?

 

Spoiler

image.thumb.png.a6a213951d024b353b210a6687cd460b.png

 

Link to comment
Share on other sites

58 minutes ago, Slvrsrfr said:

i think that is a function of the fog? Like how when i uncover the shinebug, Time is in something of a stasis under fog, yeah? Is that it?

No, as far I can tell, stuff under fog isn't frozen. Maybe that's how it used to work? But I don't think so. I've been watching critters wander in and out of fog for a long time. It's definitely not how it works in the alpha version.

I did figure out that the entities on a world also aren't generated until you discover it. If you teleport a dupe to a undiscovered world, you'll notice it is suspiciously barren. Even POIs aren't generated. But as soon as you "discover" it, everything pops in. (The debug Backspace key triggers this, since it makes all worlds temporarily discovered.) Also note that revealing terrain on a world with a teleported dupe does *not* "discover" it.

58 minutes ago, Slvrsrfr said:

what is this? any clue?

That's an artifact of the biome rendering with my modified version of the game. I had to modify the game to get the full navigation grid to show, but before I figured out the "Cluster FX" (which is what hides other worlds) hotkey, I disabled it in a different way. That way allows you to see past the bottom of the map. I think it's just the game trying to render the closest biome. It doesn't mean anything. (Just to be clear, there are no tiles down there, not even vacuum.)

58 minutes ago, Slvrsrfr said:

And for the shinebug, does it achieve a transcendental state of oneness with the ONI universe, and teleport out of the matrix, Tron-style? Where is that one diagonal line falling-off to the left going? Why only from that one tile is it able to move of the frame of the map? Outside the functional array, what underlying bug does that speak to?

No, it just flies into "void" space. What I call the void is just a tile that hasn't been assigned to a world. It acts a little weird, because objects figure out what world they're in by their position. If they're in a void, (i.e., not in any defined world), then they're not in any world at all. Some things, like shine bugs, don't care about what world they're in, so they just go on their merry way. (Which is good, because otherwise the game would crash every time a bug wandered into the void.)

Dupes on the other hand really don't like being the void. They disappear, and causes extreme lag due to trying to check if their current world is in a red alert state. This check assumes that they're in a world, but since they're not, it throws an exception every frame. Also, any dupe list screen that is sorted by world, like the Vitals screen, gets really glitched out, because it can't figure out what world they're in.

Even though the tile grid is split up into worlds, the grid is only so big. That's why the navigation still ends at the top of the map. There's literally no tiles up there for them to move to, not even vacuum. That's why this wasn't an issue in earlier versions. Flying creatures couldn't go off the top of the map, because there were no tiles above the map for them to go to. (Despite what it might look like.) Now, on the other hand, there can be empty tiles above a world that are not part of any world, but still reachable because they exist.

As for why they can fly between worlds, it's because there's not actually any rule that says a flying creature can't fly to a tile in a different world. There's a box/border of neutronium around each world, but the top edge is completely clear, including the corners. This makes a small gap creatures can fly through. Dupes can fly between worlds too, but they can't fit through the one tile high gap.

What's the diagonal line? No idea. I assume it's some artifact of the flying creature pathfinder. The bottom left of the map is (0,0), so I think some part of the pathfinder is saying "you can fly straight from your current position to (0,0)". Or maybe it's a bug in rendering. Maybe I caused it with my modifications. I'm not sure, but I don't think it's significant.

Link to comment
Share on other sites

If you use sandbox / debug mode to change the neutronium borders, do you see heat transfer between the "bounds" of the maps?

One advantage of multiple smaller maps would be the parallelization potential (since large rectangles of the overall map don't depend on the rest of the map), but I would have expected that to apply to pathfinding as well, and if you have critters pathing between them, perhaps it is still a single simulation.

Link to comment
Share on other sites

8 minutes ago, Red Shark said:

If you use sandbox / debug mode to change the neutronium borders, do you see heat transfer between the "bounds" of the maps?

One advantage of multiple smaller maps would be the parallelization potential (since large rectangles of the overall map don't depend on the rest of the map), but I would have expected that to apply to pathfinding as well, and if you have critters pathing between them, perhaps it is still a single simulation.

You can't edit the borders of the map, even in sandbox mode. Most tools just don't extend outside the build area. The fill tool does, but it's much hard to control since there's so much neutronium, and it's probably a bug. So if you remove the neutronium between adjacent worlds, you can get gasses and liquids to flow between them. But the border tiles count as space tiles, so any gasses or liquids are going to quickly evaporate. And you can't build on the borders in any case, so there's no good way to control it. If you make the border tiles solid non-neutronium, they can transfer heat.

As far I can tell, the map is still one big simulation. One optimization is that the game only simulates tile physics inside the bounds of discovered worlds, but that only helps up until you've discovered everything. The world borders don't seem to affect the simulation at all, except that they're made of neutronium. The pathfinder definitely doesn't seem to care about world boundaries, but this is only relevant for flying things. Nothing else could ever path over a world border anyway. (I expect flying creatures will probably get a world border check in an upcoming patch, since it also affects jet-suits.)

The parallel simulation thing is interesting. Right now worlds can interact with each other through tile physics, but there's no reason they need to. So simulating each world in parallel could work in theory. But since tile simulation happens in native code, only Klei could tell how practical it is to do that, or even if it's worth it. As others have noted, a lot of late game slowdown comes from all the stuff in the world, not the number of tiles. Pathfinding could be parallelized, even with a single world, since critters can't affect each other's paths. But dupes decide what to do based on pathfinding, and that can affect other dupes, so that could be a problem. Even then, sometimes multithreading just doesn't actually help that much. See Factorio Friday Facts #215. It's one of those things only Klei can really do, and it might not be worth the development cost.

Deciding which parts of the map get simulated happens in managed code however, so people could write mods to change when and where "off-world" simulation happens. Right now, once you've "discovered" a world, it starts getting simulated, and there's no way to "undiscover" a world. A mod however, could let you freeze worlds without any dupes in them. That's pretty exploitable, but might be necessary when people decide "I want to play with 20 asteroids!" Which is definitely going to happen, I'm sure. :grin:

Link to comment
Share on other sites

2 hours ago, AntiBlueQuirk said:

That's pretty exploitable, but might be necessary when people decide "I want to play with 20 asteroids!" Which is definitely going to happen, I'm sure. :grin:

Wait... Sorry to ask but I haven't opened the Alpha yet, and you seem to have tinkered a lot with it : isn't the number of asteroids very limited ? The game isn't creating asteroids (and adding those) on the whole game map as long as it's discovered, it is ?

Link to comment
Share on other sites

2 minutes ago, OxCD said:

Wait... Sorry to ask but I haven't opened the Alpha yet, and you seem to have tinkered a lot with it : isn't the number of asteroids very limited ? The game isn't creating asteroids (and adding those) on the whole game map as long as it's discovered, it is ?

Yeah, normally there's only 6 asteroids, but I'm sure that will be easy to mod, and some people will want a lot of them. The number and set of asteroids you get is determined at world gen. I'm just speculating about modding possibilities with that line.

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