>>241547
Some advice - one, ignore this guy >>241543 He thinks noise and procedural generation is the be-all end-all of game dev, and trolls every thread across every board with his generated shit that kinda, sorta, if you squint a little, looks roughly like what he says its supposed to be. Take his "voronoi+perlin" shit down below. It looks like nothing, it is nothing. It's not caves, it's not a dungeon, it's not interesting in the least, both from a gameplay and from a realism/simulationist perspective. Also wang tiles have nothing to do with anything you're trying to do here. Just ignore him; you have a decent grasp of the problems at hand and are already on the right track to solving them.
Let's address your issues one by one, shall we?
>>241528
>I hit a little snag and all my progress and forward momentum and motivation went poof
First off, understand that any programming/game dev project is really 95% planning and 5% doing. A lot of beginning devs focus on that 5% as their measure of "progress", when really, deciding what to make, defining and properly scoping the project, listing up all of the problems to be solved, breaking those down into actionable steps, making sure you have all of the tools and know-how to solve each, ordering and scheduling tasks, thinking about/mentally simulating both the parts and the whole, etc. etc. is really 95% of the job. Not to mention engine/library research, defining your audience, researching similar titles/competitors/the market space, etc. Hitting a snag in the actual implementation of your project just means you either skipped a step in the 95% planning/thinking part, or that it's simply time to switch between the two for a bit. It is not failure; don't let it affect your motivation or flow or whatever.
>>your other posts
>I want planets? worlds? to generate instantly
>hop between worlds/dimensions/planets/etc without loading screens
You can probably safely say that generating any play space of appreciable size that contains compelling, organic structures of any kind - for instance cave systems and man-made structures that "make sense" and are fun to play in, will take time. Whether that's 30 seconds or three minutes will depend on your algorithms, level of detail, programming language, processor speed, etc. but I assure you it won't be instant. Now, that isn't the end of the world, and you will run into these sorts of hard, real-world time/memory limits with anything you try to make. The trick is simply to hide this load time from the player, and I can think of plenty of ways to do that, but your game will need to be properly scoped for any of them to work. Some ideas:
1. If the player cannot change world parameters like size, available biomes, difficulty, etc., you could begin generating the world from the second the game starts. That's right, while you're showing the splash screen, the menu, while the player is deciding whether to click "new game" or continue from his existing one, you could be generating a new world in the background, discarding it if not needed (he clicked "continue"), or possibly even saving it to disk for whenever you do need a new world. Hell, you could even generate a new world during game installation and nobody would notice, then it really would be instant when the player starts a new game.
2. If you can't pre-generate worlds for whatever reason (world options, etc.), you can generate the bare minimum needed to drop the player into the world and let him play. Take your terraria screenshot with the dungeon you posted ITT. I can think of plenty of elements that can have their generation/simulation deferred until after the game starts. One being the dungeon, if you ensure that it is spawned a certain distance from the start location. Another could be lava chambers/lava flow simulation - the player can not possibly reach that depth within 1 minute of starting if he spawns up on the surface. Water flow/settling simulation could again, be done from top to bottom, so that visible bodies of water are "settled" by the time the player pops in, while water underground may still be moving around. Ores as well, these are usually organized by depth, with rarer, higher-level ores being typically found deeper in the earth. Do your ore spawning from top to bottom, making sure that ores potentially exposed to the surface or otherwise visible to the player from the start point are done before loading finishes. In terraria, the oceans are located at the far edges of the map, floating islands in the sky... you get my point. If NPCs/creatures do not affect their environment (building/breaking stuff, eating plants/each other, leaving guano, who knows?), then they could be spawned as you get nearer to them. Even if they do affect the environment around them, that could possibly be simulated in an instant, how much time to simulate being a function of the play time elapsed since world creation to time of discovery.
3. If you've got galaxies with multiple planets to travel to or whatever, generate them up-front as well. And, like I mentioned above, generate them all a little at a time, from most important (player start/landing location) to least important (deep/far areas), vs generating a planet to completion before starting the next. That is, if the player can choose to go to any planet right from the start. If he needs to spend time on the "starting planet" or whatever to build his rocket ship to go to the other planets then fuck it, you got all the time in the world to generate them.
I could go on and on but for now, I would give up any notion of dynamic generation as the player approaches and simply focus on generating fun, compelling worlds first. There is always room for optimization later. Don't leave players stuck with random, boring nonsense because you had to have <10s load times at this point in development. Horse before cart.
Will address actual generation in a follow-up post.