Replies: 5 comments 10 replies
-
Maybe Wave Function Collapse could be a nice technique for generating the maps? The user input can then be a small combination of input tiles. |
Beta Was this translation helpful? Give feedback.
-
I think the best way to do this, would be to somehow resolve segments, based on platforms and rooms, and multiply randomly, maybe along a centered y-axis, that connects it all, or something like that |
Beta Was this translation helpful? Give feedback.
-
Aha, looking at WFC again now with this use case in mind, its applications are much more clear to me. What @olefasting suggests seems like a more simplistic and less math-y (I.e. better for an initial implementation) way to do roughly the same thing, right? Anyhow, might indeed be worth exploring down the line. There are some some good Rust libraries for it as well. Maybe some of the maintainers could chime in here: https://github.com/gridbugs/wfc @gridbugs (bottom two are actual level generators). |
Beta Was this translation helpful? Give feedback.
-
Implementation: I'm going to construct another example in my repository soon to better illustrate exactly what I'm talking about in order to both reduce any confusion and to demonstrate the concept. Architecture: |
Beta Was this translation helpful? Give feedback.
-
I'm working on an example in https://github.com/AustinHellerRepo/WaveFunctionCollapse called "level" that I will use to troubleshoot and figure out how to implement a method for generating 2D platformer levels based on existing level entities (tiles and elements). I have an example level created (image below) and applied the basic implementation of the entropic propagation algorithm on the tiles of the level (therefore excluding the elements) and found that it ends up generating terrible, sometimes unplayable, levels (other image below). My next idea is to create a method for isolating the different entity components of the level (tiles and elements together), treating them as movable groups of level entities, and then applying them to a wave function collapse algorithm based around placement locations and group overlap. Process steps:
|
Beta Was this translation helpful? Give feedback.
-
In short, what we’d like to do is not to generate new maps entirely from scratch, but rather remix maps that players have already made with the in-game level editor.
We want to let users quickly put together a rough version of their initial idea, and then let them hit the “randomize” button to be presented with ~20 variations of the map they made. The generated maps won't even have to be 100% error-free, because they’re generated at the editing stage where broken maps can be manually fixed or rejected before putting them into play.
This is particularly useful for map makers on Console devices without mouse and keyboard: It’s not so important to place every tile pixel-perfect (which is hard to do on a gamepad) because that stuff can be smoothed out in the procgen versions anyhow.
Beta Was this translation helpful? Give feedback.
All reactions