Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(+1)

Hey, thanks! You should be able to test it on Mac (as long as you are willing to install Python and some libraries) if you grab the code and follow the setup instructions in the README: https://gitlab.com/NPC-Dev/groundcollapse - unfortunately, I don't currently have a Mac to use to package a binary version. Feel free to contact me if you have any trouble.

It's not really related to Cellular Automata (although that paper looks super cool, and I should read it!). Instead, it's using Answer Set Programming, a form of constraint solving, to ensure that tiles always get placed in a valid arrangement. This means that, rather than writing rules for how each cell should change based on its neighbors, you simply write a list of tile types that can go next to each other and let the constraint solver build something valid.

You can then also add any extra constraints you want, including optimization constraints (such as "maximize the number of different tiles in the area," or "minimize using the same tile next to itself"). I believe this can extend easily to things like requiring pathability by marking certain tiles as having a path through them in certain directions, and adding constraints like "this path must connect all the way through the level chunk from at least one of these points to at least one of these other points," or many other possibilities! But I haven't yet had time to test that out.

(+1)

Oooh that is pretty amazing :) it reminds me with that paper a little bit (https://dl.acm.org/citation.cfm?id=3337722.3337752) which is using WFC with design constraints on the top.

(+1)

Yes, it's absolutely related to that! Arunpreet is doing very cool stuff, though I didn't know about it when I first started trying out the concepts for this project. The difference is that GroundCollapse re-implements something similar to WFC in a standard constraint solver (clingo, with ASP), rather than trying to extend the original WFC algorithm. That paper notes a significant increase in conflicts due to the extra constraints, which standard WFC doesn't have very good ways to recover from (though I believe some folks are working on that problem). With a standard constraint solver, however, we get backtracking and conflict resolution, which can be slower, but guarantees a solution if one exists (and if you wait long enough).

More directly, GroundCollapse is very much inspired by two works, and I got the authors' permissions to adapt some snippets of constraint code from these. (I credit them in the code for the project):

Karth, Isaac, and Adam M. Smith. 2017. “WaveFunctionCollapse Is Constraint Solving in the Wild.” In Proceedings of the 12th International Conference on the Foundations of Digital Games, 68. ACM.

Nelson, Mark J., and Adam M. Smith. 2016. “ASP with Applications to Mazes and Levels.” In Procedural Content Generation in Games, 143–157. Springer.

Also, I'm very excited about this follow-up by Isaac and Adam from FDG this year. It has many cool insights about parallels between WFC and PCGML, and on how mixed initiative tools can communicate better with designers:

Karth, Isaac, and Adam M. Smith. 2019. “Addressing the Fundamental Tension of PCGML with Discriminative Learning.” In Proceedings of the 14th International Conference on the Foundations of Digital Games, 89. ACM.

(1 edit) (+1)

Yeah, I was running the PCG workshop this FDG :) it is pretty awesome work :)

Right, yes, of course you were! Thank you for all your work to make it such a great workshop.