Xanadu: Matchyverse’s™ Destination

Xanadu: Matchyverse’s™ Destination

We talk about reaching Xanadu as the goal of the games in the Matchyverse, but it is actually a concept for a world sim game I hatched many years ago. Here is more about how the concept developed:

When I was still living with my folks I started working on this massive idea for a whole world simulator. I was working in my own custom 3d engine from basically scratch and I had no deadline or even a well defined goal for the project. It was based on one of my favorite games, Dwarf Fortress, and I would work on it every day, adding features and messing with the terrain algorithms. I was still quite green, so I could have budgeted my time better. I spent months implementing a multi-threaded path-finding algorithm that could work on a giant grid of terrain so you could assign tasks to the citizens and they could find their way. I wasn’t clever enough to realize that spending a few days making the citizens have expressive faces would have made the game more fun than complex path-finding.

Generally the hiccup with the path-finding was that if there was no path between a citizen and a goal point the path search would flood the entire game grid searching for an path that didn’t exist. I now know that most games just end the search in that situation but that meant there could be a path that wasn’t found and I didn’t like that. So I made a highly optimized A* heuristic implementation but that only helped speed up cases where there was an actual path to be found. Eventually I moved the pathing onto another thread so if a citizen couldn’t find a path it wouldn’t hang the game searching, thus each citizen thinks for a few seconds if they can’t find their way but the game keeps going in the meantime which is an ideal solution. I realized that the citizens were finding crazy complicated paths as a result of this approach which lead to the following video’s example of a complex pathing example:

Back then I was calling the game “Mayor Max.” It was my dad who pushed to rename the game XANADU based on the old poem Kubla Kahn: “In Xanadu did Kubla Khan A stately pleasure dome decree.” The idea being that it was an eternal work in progress designed to be a hedonistic fun experience. I figured the development of it had gone on long enough to go for the XANADU moniker.

The terrain system used to be based in a simple voxel type system but I always found the strict grid a bit restrictive and its already been done very well by “Minecraft.” A friend of mine was always showing me talks which I promptly critique because talks are usually either condescending, boring, or both. Its very hard to make a good tech talk that is actually entertaining and informative, sometimes at best they are just dry but useful. One of the talks my friend sent was about “Marching Cubes” a concept for visualizing the 3D surface of a 4D space. Here is the talk itself if you are into the math:

The idea got stuck in my head like the time Homer Simpson saw the billboard for Clown College and eventually had to heed the call to buffoonery. In my case it was a call to math, so I made a version of the marching cubes in unity with some tools to edit them and I knew I had the terrain system for XANADU figured out.

I also had a good multiplayer racing physics engine from a racing game I had made, Speedway Heroes, and it started to seem like all the pieces were falling into place. I had a great knowledge of how to do path finding for the citizens, a way of making smooth terrain in an interesting and novel way, and multiplayer car movement to jump and slide around hills. All the planets had aligned to crystallize the concept for XANADU.

Michael Silverman Cheese
Follow Silverware Games On Twitter!