Hey I'm very interested on how you learned to write and implement this algorithm. I downloaded your source code and tried to understand it in the unity editor, but it was a bit too difficult for me. Where did you learn how to write the algorithm and implement it in Unity? Thanks
Wave Function Collapse
A downloadable game for Windows and Linux
An infinite, procedurally generated city, assembled out of blocks using the Wave Function Collapse algorithm.
Currently, there is no gameplay, you can only walk around and look at the scenery.
Controls: WASD for walking, Shift to run, Ctrl to jetpack.
Xbox controller: Left Stick for walking, right stick for looking around, A to jump, LB to run, RB to jetpack
Flight mode: Use M to toggle between flight mode and normal mode. In flight mode, you fly across the world, without any controls.
Source code: https://github.com/marian42/wavefunctioncollapse
- Added simple interiors and performance improvementsJan 15, 2019
- Flightmode, Controller support, world unloading, backtrackingNov 11, 2018
- Added details, new blocks, better movementNov 05, 2018
Log in with itch.io to leave a comment.
could you add more bottom starirs because i was at the bottom level and there were no stairs and i searched for 10 minutes
How can I make it have more levels in depth?
I don't quite understand the question. What do you mean with depth?
this is so cool!
Absolutely amazing, very beautiful city. Only 16 mb too
This seems really cool, but I cant figure out how to download it...
This is really cool.
I take it that alt+F4 is the only real way to exit the demo?
Also, what kind of hardware are you targeting? The demo was pretty laggy on a Celeron N3060 with integrated graphics, but I should probably have expected that.
Anyway, this is fantastic, and I want to play with it more when I get better hardware.
Since this project is more of a tech demo than a game, I didn't put in lots of convenience features, like a menu, exiting or graphics options. I think the limiting factor is the graphics card and not the processor. I might add graphics options and an exit feature later, but it's not my priority unfortunately.
I tried out the executable on a PC and it is really inspiring. Nice work!
On a Mac and new to Unity -- is there something obvious I am doing wrong if I can move the camera about but nothing renders? I installed Blender and can open the Blocks asset. The project builds with 4 warnings but no errors.
With Map selected and in scene mode I can see green wireframes after using Initialize nXn Area, but nothing renders in game mode.
Looks fantastic, love rooms! Was running it for some friends!
But it looks like sometimes the city just "ends" or that theres weird glitches you can fall off of.
Still everyone was impressed ;)
That is the algorithim. You can actually hang the algorithim if you don't let it finish removing and placing blocks, causing it to constantly remove and replace blocks at the 'edge'
Is it possible to replace these blocks with others to make a different world ?
How can i do it ?
Yes, it is possible. Download the source code and open it in Unity. There is a blender file that you need to edit to create new blocks. You might need to do some configuration in the Unity editor. Let me know if you have any questions.
Thanks for ur kindness.
I tried to import a new model, edit its "Module Prototypes" manually. Create module data and save it.
Return to the Game scene and click initialize, but it can't generate, is there something i did wrong?
You need to keep the first two blocks (solid and empty). Also, you can't generate a castle from just one block, you need to split it into many blocks that fit next to each other. Then you need to set connectors for your blocks. You can read how they work here. In your screenshot, the block has a 0 connector on top and a 1 connector on the bottom. It will only place another block above it that has a 0 connector on its bottom face. But there is no such block in your example.
Something to consider is the movement through the world. I want to try this but it's too stilted. Adding something like bunny hopping to gain speed or some other type of rush mechanic would make it much more interesting to navigate. But all-in-all this looks very cool. Following!
Absolutely love this, mate! Even threw together a quick fan-art thing here: https://tinyplanetsandscreenshots.tumblr.com/post/181936073817/applied-quantum-m...
It'd be amazing if there was a hover-in-place option, but you've done a totally stellar job! Cheers!
Thank you, I like the tiny planet image! You can kind of hover in place if you go into flight mode (M) and slow down (hold S).
This is truly wonderful. Is there a way I could generate a city and then take parts of it out as FBX to use in another game?
Yes, you can. Download the source code and open it in Unity. Then you generate a city to your liking. You need to figure out a way to export it. There is a free FBX exporter on the Asset Store, hut I haven't tried it. Let me know if you encounter any problems.
Nice work,I like it.
Loved it :D
Any chance of a Mac version?
I don't have a Mac, but anyone who has a Mac could easily create a Mac build.
Is this using the 3d variant of WFC or are you plopping down blocks on a 2d "plane"?
Because This may be the technology needed to truly recreate Blame! in a game.
Well done! I love how organic it all feels, I'd love to see this
1) Used in a game.
2) Expanded slightly just for a walking experience, maybe with working fountains, etc.
Great job and a great aesthetic.
This is a wonderful software!
Is it permitted to use the scenery generated by this software for illustration using trace or copy?
Thank you! Yes, you can use you it for anything you like. I would appreciate if you credit me and let me know how you use it, but you can do it either way.
This is very cool. I would greatly appreciate an option to invert the mouse.
Heya! Absolutely love this!
I was trying to get the source code for this working in Unity. You've got a demo scene in your repo, but I couldn't find any meshes - I can imagine why you're not hosting those in the github, but is there somewhere I could get them, if you're happy to share?
Seriously though, this is spectacular. Procjam never ceases to amaze 😍
Hi, the meshes are in the repository in the blender file, it should work. I tried to import the project and the meshes where correct, but someone else has the same problem as you have. Unfortunately, I don't know how to fix it. What version of Unity are you using?
It only seems to extract the blocks.blend into the 'blocks' folder of meshes if you have Blender installed. It failed for me too on a machine without Blender. :)
Unity doesn't actually support .blend files, it will only use an "installed" version of Blender to export the models in the background. If you don't have Blender, or if you used the "zipped" version instead of the installer, Unity won't have any idea what to do with it. I suppose they can manually associate the .blend file with their zipped-Blender folder, but I haven't tried that say for certain.
Any plans on a making this into a Minecraft mod? ;)
1) There appears to be a memory leak: RAM usage keeps increasing as one walks.
2) There are no large open spaces, which makes exploring kind of boring.
3) The Field of View is too small / not configurable.
4) The mouse is not correctly grabbed by the window on multi-monitor setups.
Apart from that: Nice!
About RAM usage. I'm aware and I'm trying to make it more RAM efficient. However, it needs to remember the entire world and therefore it will always use more RAM the longer you walk.
The FOV is just Unity's default value, I think for this kind of tech demo that's good enough. I'll look into the mouse grabbing issue.
Save to world (with a simple chunk format) to the harddrive? It shouldn't take that much disk-space, considering it's just a bunch of prefabs/instances with transforms (and probability values or something?).
Is the method deterministic? Unless you can modify the world, there's no reason to save it.
It's not deterministic because the order that things are generated changes based on where the player chooses to walk, and things that have already been generated place constraints on things that have not been generated yet.
That being said, since it's based on tiles, I'd assume there's a lot of room for optimizing RAM usage (and also unloading far-away areas to a file on disk if you want to get fancy).
Add NPCs and it will be a horror game for agoraphobic people.
did you just create an algorithm for inception?
Whenever I play games with 3D environments my mind tries its hardest to store a kind of map. Playing this is very stressful for me.
I agree. I also feel claustrophobic in this environment because it never opens up into a larger open space.
Sounds like a perfect setting for some sophisticated psychological horror based on a general feeling of unease.
I like the idea of this! Aimlessly wandering amidst the endless neoclassical buildings gave me a little flashback to getting lost in cities when I travelled overseas. Everything fits together well too - good work!
This is really neat! Really like that there is so much vertical complexity with staircases and walkways going under other features in interesting ways.
Woah, this looks awesome. Fantastic work!
This is pretty dang cool!