Today, I put out the fourth weekly update for Prismatic Maze.
This week, I focused on areas of map creation that can cause it to fail.
Map creation for mazes doesn't strictly have to be very complicated, but in this game it is quite complex due to the use of organic interactions between various components.
There is a timekeeper element that advances time in intervals. Pigments are live creatures that exist on the map at the location where their seed is placed and they listen for time updates.
Each time the clock is advanced, Pigments wake up and act - growing territory outward from their seed location to their full size based on their current age and genetic characteristics (like proliferation, aggressiveness, prosperity, fertility, etc.), spawn treasure and create interior maze walls in their territory.
At the end of the growth cycle, pigments create doors (and corridors through empty territory if necessary) to connect to adjacent territory, spawn keys outside their door, collect all items in their territory and redistribute those items within their territory.
The entire maze gets rebuilt every every cycle while taking its current state into account as it is rebuilt.
The reason it works this way is to allow each creature to interact with the world and other creatures, both directly and indirectly through the shared world state.
The interconnectedness of all things in a living, breathing game world.
The processes by which doors and corridors are created and items redistributed are the areas that I spent some time this week working on.
The corridor/door logic has been improved - some corner cases that otherwise caused failures have been mitigated & doors are now created further away from the pigment seeds with distance taking interior walls into account.
This logic still has a weakness related to circular references, though - if A opens a door to B, B will not open a door back to A but it could still open a door to C which could open a door to A.
A circle like this would cause A, B & C to be closed off from the rest of the map.
That scenario is rare, but I am working on redesigning this logic (probably using graphs) to prevent such errors.
Another area that caused some rare creation failures was in item placement.
Previously, Pigments would collect all items in their territory, adding them to those they spawned during growth cycles and distributing them to dead-ends within their territory.
If there weren't enough dead-ends to place all of their items, the process would fail out, causing the map creation to fail.
Now, the process no longer fails out and Pigments keep additional items that won't fit in their inventory.
When the player finds the Pigment's seed, a new dialog pops up with some explanation and all items in the Pigment's inventory get transferred to the player's inventory along with their seed.
The same occurs for the Black seed, which also triggers completion of the maze.
This marks the end of the first month after initial release.
I've been doing weekly updates since release and will be shifting to bi-weekly for the second month.
* transfer items from pigment inventory on capturing seed/finish
* changes to logic for placing items
* changes to logic for building corridors/doors