<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Blog</title><link>http://badmonkeylove.com:80/blog</link><description></description><item><title>Prismatic Maze - Update 1.16.2</title><link>http://badmonkeylove.com:80/prismatic-maze-update-20220610</link><description>&lt;p&gt;&lt;a href="https://store.steampowered.com/news/app/1045300/view/3361388019330276297" target="_blank" title="Prismatic Maze Steam Update Announcement"&gt;Prismatic Maze - Update 1.16.2&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hey Everybody!&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;span&gt;Today's change contains an update to the game's engine &amp;amp; some bug fixes.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Thanks,&lt;/span&gt;&lt;br /&gt;&lt;span&gt;Chani.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre&gt;========
1.16.2
* add console command "list" to List items
* add console command "gimme" to Add item(s) to inventory (during PLAY only)
* add console command "use" to Use an item (during PLAY only)

1.16.1
* fix bug where buying back treasure items sold costs half of what they were sold for
* fix bug where save game process wasn't finished before growing a new maze

1.16.0
* update Unity 2020.3.25f1-&amp;gt;2021.3.2f1
* update materials &amp;amp; lighting (we get real-time shadows for point lights again!)
* fix bug where sometimes items didn't get destroyed after being picked up
* fix bug where sometimes player avatar was spawned multiple times&lt;/pre&gt;</description><pubDate>Fri, 10 Jun 2022 20:33:19 GMT</pubDate><guid isPermaLink="true">http://badmonkeylove.com:80/prismatic-maze-update-20220610</guid></item><item><title>Prismatic Maze - Paternity Update</title><link>http://badmonkeylove.com:80/prismatic-maze-update-20220324</link><description>&lt;p&gt;&lt;a href="https://store.steampowered.com/news/app/1045300/view/5314812405847425943" target="_blank" title="Prismatic Maze Steam Update Announcement"&gt;Prismatic Maze - Paternity Update!&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hey Everybody!&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;span&gt;After over a year since our last update, we're publishing a new update for Prismatic Maze today!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;The change includes a complete overhaul of our underlying state engine, a complete redesign of the mini-map system, the addition of a playback system with pace controls for maze growth and bug fixes.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;You probably won't notice a lot of difference after this change, even though a ton of the back end systems were completely torn apart and rebuilt. The game should play a little smoother and faster, especially during maze creation.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Thanks,&lt;/span&gt;&lt;br /&gt;&lt;span&gt;Chani.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;-------&lt;/span&gt;&lt;/p&gt;
&lt;pre&gt;1.15.8&lt;br /&gt;* add console command: pop&lt;br /&gt;* fix bug where Player was sometimes unable to pickup Pigment heart after saving during PLAY&lt;br /&gt;* fix bug in console commands that take screenshots which sometimes took screenshots with console open&lt;br /&gt;* fix bug where unhandled exception was thrown by Ghosts when saving while PowerPellet was active&lt;br /&gt;&lt;br /&gt;1.15.7&lt;br /&gt;* improve debugging for save errors&lt;br /&gt;&lt;br /&gt;1.15.6&lt;br /&gt;* fix an issue that prevented finishing maps due to not spawning dead Pigment creatures&lt;br /&gt;&lt;br /&gt;1.15.5&lt;br /&gt;* add console commands: sql, backup&lt;br /&gt;* fix bug in upgrade database script that was preventing execution on mac&lt;br /&gt;&lt;br /&gt;1.15.4&lt;br /&gt;* add in-game debug console&lt;br /&gt;* add console commands: collect, save, quit, screenshot, fps&lt;br /&gt;* add Mac debug build&lt;br /&gt;&lt;br /&gt;1.15.3&lt;br /&gt;* fix bug that caused some tile subtype data to not get updated when position was not changed&lt;br /&gt;* prevent spawning multiple explorers at once&lt;br /&gt;* detect db version downgrades &amp;amp; gracefully fail loading newer-than-supported versions&lt;br /&gt;&lt;br /&gt;1.15.2&lt;br /&gt;* fix bug caused by asynchronously saving state while simultaneously starting new map creation (MGL-&amp;gt;CreateNewMaze)&lt;br /&gt;* minor update to last entry in update log&lt;br /&gt;&lt;br /&gt;1.15.1&lt;br /&gt;* hide map creation playback controls when map isn't visible&lt;br /&gt;* redesign map creation playback controls w/ fast-backward icon &amp;amp; gradient slider&lt;br /&gt;* store/load map creation playback controls in game config&lt;br /&gt;* fix bug in create new map menu that was leaving step name empty when it should be "Ready" &lt;br /&gt;* sort ingredients in blueprint info menu&lt;br /&gt;&lt;br /&gt;1.15.0&lt;br /&gt;* enable debugging of library code&lt;br /&gt;* fix error in ghost chase logic&lt;br /&gt;* prevent multiple loading scenarios caused by spamming menu buttons&lt;br /&gt;&lt;br /&gt;1.14.6 - Paternity Update I&lt;br /&gt;* rollup of updates since 7/9/2020&lt;br /&gt;* full redesign of data access layer&lt;br /&gt;* update minimap to dynamic texture&lt;br /&gt;* add maze generation playback controls&lt;br /&gt;* bug fixes&lt;/pre&gt;</description><pubDate>Sun, 30 Jan 2022 03:49:00 GMT</pubDate><guid isPermaLink="true">http://badmonkeylove.com:80/prismatic-maze-update-20220324</guid></item><item><title>Prismatic Maze - Smooth Operator Update!</title><link>http://badmonkeylove.com:80/prismatic-maze-update-20200226</link><description>&lt;p&gt;&lt;a href="https://steamcommunity.com/games/1045300/announcements/detail/1701736091522213989" target="_blank" title="Prismatic Maze Steam Update Announcement"&gt;Prismatic Maze - Smooth Operator Update!&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hey Everybody!&lt;/p&gt;
&lt;p&gt;A new update for Prismatic Maze is available!&lt;/p&gt;
&lt;p&gt;This is a polish update, in which we make improvements to menu and scene transitions. &lt;br /&gt;Not to be outdone, Pigments started showing their heartbeat through their lights...&lt;/p&gt;
&lt;h4&gt;Smoothing Things Out&lt;/h4&gt;
&lt;p&gt;Menus now transition smoothely after&amp;nbsp;redesigning&amp;nbsp;our menu system.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Menu&amp;nbsp;transition logic has been&amp;nbsp;redesigned to avoid frame stuttering and transition animations make interacting with the menus more fluid.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.badmonkeylove.com/Media/Default/Maze/20200226/PrismaticMaze_MenuTransitions.gif" alt="Prismatic Maze - Menu Transitions" width="522" height="351" /&gt;&lt;/p&gt;
&lt;h4&gt;Scene Transitions&lt;/h4&gt;
&lt;p&gt;This is a thing we've wanted to do for a long time.&lt;/p&gt;
&lt;p&gt;When transitioning to or from Playing mode,&amp;nbsp;we've added scene transitions.&lt;/p&gt;
&lt;p&gt;For our first big transition, we're building a completely new maze to fill the screen in a classic top-down 2d view. &lt;br /&gt;When a transition is triggered, we're walking the new maze from start to finish, following each branch and revealing tiles along the path.&lt;br /&gt;Once the transition is completed, the same path dissapears on a similar traversal.&lt;/p&gt;
&lt;p&gt;The scene transition maze uses the same logic that Pigments use to grow mazes inside themselves. &lt;br /&gt;It's completely new each time and for most transitions it'll only be visible for a second or two.&lt;/p&gt;
&lt;p&gt;So... good luck solving that ;)&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.badmonkeylove.com/Media/Default/Maze/20200226/PrismaticMaze_RecursiveBacktracker_04.gif" alt="Prismatic Maze - Scene Transition" width="602" height="339" /&gt;&lt;/p&gt;
&lt;h4&gt;Pigment Heartbeat Revealed&lt;/h4&gt;
&lt;p&gt;Pigments seem to have gotten used to the Explorers, as their lights have started lighting up smoothly instead of abruptly like before.&lt;/p&gt;
&lt;p&gt;The lights also seem to be pulsing in a pattern that we think is the Pigment's heartbeat.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.badmonkeylove.com/Media/Default/Maze/20200226/PrismaticMaze_PigmentHeartbeat.gif" alt="Prismatic Maze - Pigment Heartbeat" width="602" height="339" /&gt;&lt;/p&gt;
&lt;h4&gt;Baby on the Way!&lt;/h4&gt;
&lt;p&gt;Coming up next month, our first child will be born! We're so excited!&lt;/p&gt;
&lt;p&gt;Thanks,&lt;br /&gt;Chani.&lt;/p&gt;
&lt;pre&gt;-------
1.12.3 - Smooth Operator Update
* show Pigment heartbeat with light intensity
* add Scene Transitions with fade-to-black &amp;amp; recursive backtracker
* update save indicator animations, adding fade-in and fade-out
* update wall light animations, adding fade-in
* streamline ui during scene transitions
* add menu transition animations
* unblock ui thread during new map creation
* remodel menu lifecycle&lt;/pre&gt;</description><pubDate>Wed, 26 Feb 2020 22:32:00 GMT</pubDate><guid isPermaLink="true">http://badmonkeylove.com:80/prismatic-maze-update-20200226</guid></item><item><title>Prismatic Maze - Foliage Update!</title><link>http://badmonkeylove.com:80/prismatic-maze-update-20200129</link><description>&lt;p&gt;&lt;a href="https://steamcommunity.com/games/1045300/announcements/detail/1700607668766867107" target="_blank" title="Prismatic Maze Steam Update Announcement"&gt;Prismatic Maze - Foliage Update!&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hey Everybody!&lt;/p&gt;
&lt;p&gt;A new update for Prismatic Maze is available.&lt;/p&gt;
&lt;p&gt;This update adds trees to empty spaces, converts Christmas effects into an Easter egg &amp;amp; completely revamps the rendering pipeline affecting colors, lighting, shadows.&lt;/p&gt;
&lt;p&gt;Meanwhile, we're working towards an iOS release for the game.&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;New Content&lt;/h3&gt;
&lt;p&gt;Some time ago, we added empty spaces to maps - something like dropping some sand into your petri dish.&lt;/p&gt;
&lt;p&gt;Pigments decided to celebrate this with decorations for Christmas, and after the holidays some seeds were left over.&lt;br /&gt;This caused trees to spring up in their places.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.badmonkeylove.com/Media/Default/Maze/20200129/PrismaticMaze_1.11.4_Background.png" target="_blank" title="Prismatic Maze - v1.11.4"&gt;&lt;img src="http://www.badmonkeylove.com/Media/Default/Maze/20200129/PrismaticMaze_1.11.4_Background_sm.png" alt="Prismatic Maze - v1.11.4" width="480" height="270" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It seems that the Pigments affect what types of trees grow in these areas now.&lt;br /&gt;Primary colors seem to be pretty normal&amp;nbsp;deciduous &amp;amp; conifer trees but Orange and Purple are a little bit stranger and Black seems to kill its trees outright.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.badmonkeylove.com/Media/Default/Maze/20200129/LoraxTrees_sm.gif" alt="Prismatic Maze - Lorax Trees" width="512" height="367" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.badmonkeylove.com/Media/Default/Maze/20200129/KooshTrees_sm.gif" alt="Prismatic Maze - Koosh Trees" width="512" height="297" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.badmonkeylove.com/Media/Default/Maze/20200129/DeadTrees_sm.gif" alt="Prismatic Maze - Dead Trees" width="512" height="356" /&gt;&lt;/p&gt;
&lt;h3&gt;Updated Content&lt;/h3&gt;
&lt;p&gt;The trees came with a full rework of the rendering pipeline... &lt;br /&gt;This change affects colors, lighting and shadow effects throughout.&amp;nbsp;&lt;br /&gt;Most of these changes should be pretty small, but it touches almost everything.&lt;/p&gt;
&lt;p&gt;We switched our updating scheme from date-based to &lt;a href="https://semver.org/" target="_blank" title="Semantic Versioning"&gt;Semantic Versioning&lt;/a&gt;&amp;nbsp;&amp;amp; exposed the version number on the main menu.&lt;br /&gt;The new versioning scheme conveys a bit more information than the date did since the it is easily comparable and contains info for major, minor and path versions.&lt;/p&gt;
&lt;p&gt;We also fixed some bugs ;)&lt;/p&gt;
&lt;h3&gt;In Progresss&lt;/h3&gt;
&lt;p&gt;Working towards an iOS release up to this point mostly involves&amp;nbsp;infrastructure work.&lt;br /&gt;Going forward, it'll also involve redesigning the inputs, options, menus, cameras, transitions and meta-game-loop.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;We're also working on a Campaign Mode that&amp;nbsp;should improve game progression.&lt;br /&gt;Look forward to&amp;nbsp;seeing more of that in the near future :D&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Chani.&lt;/p&gt;
&lt;pre&gt;-------
1.11.4 - Foliage Update
* add Trees to Empty Tiles
* update project for Universal Rendering Pipeline
* add background image to bootstrap menu
* update door logic to prevent re-spawning Explorer when interacting with doors
* switch to semantic versioning&lt;/pre&gt;</description><pubDate>Wed, 29 Jan 2020 20:12:00 GMT</pubDate><guid isPermaLink="true">http://badmonkeylove.com:80/prismatic-maze-update-20200129</guid></item><item><title>Retrospective 2019</title><link>http://badmonkeylove.com:80/retrospective-2019</link><description>&lt;p&gt;Hey Everybody,&lt;/p&gt;
&lt;p&gt;So now we're closing in on the end of 2019 and it's been a very pretty busy year. &lt;br /&gt;Here are some of the highlights:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Publishing
&lt;ul&gt;
&lt;li&gt;Published Prismatic Maze on PC and Mac&lt;/li&gt;
&lt;li&gt;Published 13 regular/major updates&lt;/li&gt;
&lt;li&gt;Sold (almost) enough on Steam to get a minimum-payout check&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Content Updates
&lt;ul&gt;
&lt;li&gt;Added&amp;nbsp;tile color variations with cloud fractals&lt;/li&gt;
&lt;li&gt;Added score-keeping with completed maps, steps taken and time spent&lt;/li&gt;
&lt;li&gt;Advance time during PLAY&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Added monsters, player death and recovery&lt;/li&gt;
&lt;li&gt;Added darkness and&amp;nbsp;lights&lt;/li&gt;
&lt;li&gt;Added consumable items and active effects&lt;/li&gt;
&lt;li&gt;Added coins and item&amp;nbsp;merchant&lt;/li&gt;
&lt;li&gt;Added butterfly easter egg for Stella :D&lt;/li&gt;
&lt;li&gt;Added in-game update notes&lt;/li&gt;
&lt;li&gt;Added Christmas easter egg &amp;amp; landmarks&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Back-End Improvements
&lt;ul&gt;
&lt;li&gt;Stability and performance bug fixes&lt;/li&gt;
&lt;li&gt;Redesigned menus to support a range of resolutions&lt;/li&gt;
&lt;li&gt;Added Telemetry&lt;/li&gt;
&lt;li&gt;Redesigned for Localization and added support for Bulgarian, Latvian &amp;amp; German localization&lt;/li&gt;
&lt;li&gt;Build Cloud Build Pipeline&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Web Presence Improvements
&lt;ul&gt;
&lt;li&gt;Started &lt;a href="http://www.badmonkeylove.com/" target="_blank" title="BadMonkeyLove.com"&gt;company &lt;/a&gt;and&amp;nbsp;&lt;a href="http://www.prismaticmaze.com/" target="_blank" title="PrismaticMaze.com"&gt;game&lt;/a&gt; sites&lt;/li&gt;
&lt;li&gt;Started a&amp;nbsp;&lt;a href="https://www.patreon.com/BadMonkeyLove" target="_blank" title="Patreon - BadMonkeyLove"&gt;Patreon&lt;/a&gt;, still accounts for the only real income we've made so far ;)&lt;/li&gt;
&lt;li&gt;Started a&amp;nbsp;&lt;a href="https://www.youtube.com/channel/UClZ1sz4Qf_UnDl5SGSqoh5w" target="_blank" title="Youtube - Bad Monkey Love"&gt;youtube channel&lt;/a&gt;, posting 6 trailers&lt;/li&gt;
&lt;li&gt;Started a&amp;nbsp;&lt;a href="https://twitter.com/BadMonkeyLove" title="twitter - BadMonkeyLove"&gt;twitter account&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Started a&amp;nbsp;&lt;a href="https://www.reddit.com/user/BadMonkeyLove" title="Reddit - BadMonkeyLove" target="_blank"&gt;Reddit account&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We learned a lot, we made a lot of progress, we put out a product and made a bunch of updates and improvements, we sold our art &amp;amp; we had a lot of fun!&lt;/p&gt;
&lt;p&gt;We also have a lot of room for improvement in a ton of areas - something to work on in 2020 :)&lt;/p&gt;
&lt;p&gt;Thank you all for your&amp;nbsp;kindness and support.&amp;nbsp;&lt;br /&gt;Wishing you all the best.&lt;/p&gt;
&lt;p&gt;Thanks,&lt;br /&gt;Chani.&lt;/p&gt;</description><pubDate>Tue, 31 Dec 2019 04:20:19 GMT</pubDate><guid isPermaLink="true">http://badmonkeylove.com:80/retrospective-2019</guid></item><item><title>Business Heartbeat - December 27, 2019</title><link>http://badmonkeylove.com:80/business-heartbeat-20191227</link><description>&lt;h1&gt;Business Heartbeat - December 27, 2019&lt;/h1&gt;
&lt;p&gt;&lt;img src="http://badmonkeylove.com/Media/Default/Heartbeat/Heartbeat_20191227_sm.png" alt="Business Heartbeat 20191227" width="697" height="226" /&gt;&lt;/p&gt;
&lt;p&gt;Hey Everybody!&lt;/p&gt;
&lt;p&gt;This week was a short, but exciting week.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;We published &lt;em&gt;Prismatic Maze's White Christmas Update along with Mac support&lt;/em&gt;!&lt;br /&gt;See &lt;a href="http://www.badmonkeylove.com/prismatic-maze-update-20191224" target="_blank" title="Prismatic Maze - White Christmas Update!"&gt;details in the update post here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Better yet, BUY IT, PLAY IT, REVIEW IT! hahaha&lt;/p&gt;
&lt;p&gt;Thanks, &lt;br /&gt;Chani.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;This post, along with additional work item details is &lt;a href="https://www.patreon.com/posts/..." target="_blank" title="Sponsor Me!"&gt;available on Patreon&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Also, we're going to move these Business Update posts to Patreon only in 2020.&amp;nbsp;&lt;/p&gt;</description><pubDate>Fri, 27 Dec 2019 16:20:00 GMT</pubDate><guid isPermaLink="true">http://badmonkeylove.com:80/business-heartbeat-20191227</guid></item><item><title>Prismatic Maze - White Christmas Update!</title><link>http://badmonkeylove.com:80/prismatic-maze-update-20191224</link><description>&lt;h2&gt;&lt;a href="https://steamcommunity.com/games/1045300/announcements/detail/1694974348116619486" target="_blank" title="Prismatic Maze Steam Update Announcement"&gt;Prismatic Maze - White Christmas Update!&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Merry Christmas!&lt;/p&gt;
&lt;p&gt;Since the last update, we've been working on&amp;nbsp;adding support for MacOS. &lt;br /&gt;We are releasing our first Mac build on Christmas Eve :D&lt;/p&gt;
&lt;p&gt;If you already have the game on Steam, you will be able to install it on your Mac using Steam.&lt;br /&gt;If you have been unable to play the game because you only have a Mac, now is a great time to buy it as it is on sale during Steam's Winter sale.&lt;/p&gt;
&lt;p&gt;To celebrate the holidays, we also added Snow and Christmas decorations!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.badmonkeylove.com/Media/Default/Maze/20191224/PrismaticMaze_ChristmasUpdate.png" target="_blank" title="Prismatic Maze - Christmas Decorations"&gt;&lt;img src="http://www.badmonkeylove.com/Media/Default/Maze/20191224/PrismaticMaze_ChristmasUpdate_sm.png" alt="Prismatic Maze - Christmas Decorations" width="480" height="270" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We've also updated the game logo ;)&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.badmonkeylove.com/Media/Default/Maze/20191224/PrismaticMaze_Logo_128.png" alt="Prismatic Maze Logo" width="128" height="128" /&gt;&lt;/p&gt;
&lt;p&gt;Next stop, iOS!&lt;/p&gt;
&lt;p&gt;Thanks,&lt;br /&gt;Chani.&lt;/p&gt;
&lt;p&gt;----------&lt;/p&gt;
&lt;pre&gt;20191224 - Christmas Update
* add support for MacOS!
* add Snow
* fill empty tiles with Christmas Flair&lt;/pre&gt;</description><pubDate>Wed, 25 Dec 2019 06:33:00 GMT</pubDate><guid isPermaLink="true">http://badmonkeylove.com:80/prismatic-maze-update-20191224</guid></item><item><title>Business Heartbeat - December 20, 2019</title><link>http://badmonkeylove.com:80/business-heartbeat-20191220</link><description>&lt;h1&gt;Business Heartbeat - December 20, 2019&lt;/h1&gt;
&lt;p&gt;&lt;img src="http://badmonkeylove.com/Media/Default/Heartbeat/Heartbeat_20191220_sm.png" alt="Business Heartbeat 20191220" width="697" height="226" /&gt;&lt;/p&gt;
&lt;p&gt;Hey Everybody!&lt;/p&gt;
&lt;p&gt;Last week, we finished up the initial work to get Prismatic Maze working on Mac &amp;amp; testable via the beta branch on Steam.&lt;/p&gt;
&lt;p&gt;This week, we worked on Trees!&lt;/p&gt;
&lt;p&gt;Initially, Pigments could grow into any cell on the map, provided it wasn't already owned by another Pigment.&amp;nbsp;&lt;br /&gt;To that, we added Empty cells, basically just poking some holes in the map and preventing Pigments from growing into them.&lt;br /&gt;This resulted in maps that had a little bit more of an organic feel to them.&lt;/p&gt;
&lt;p&gt;The idea was always to put stuff into those cells - landmarks and decorations and such.&lt;br /&gt;Also, for the next game, we're going to be simulating earth-like planets, so foliage is a big part of that.&lt;br /&gt;So, we started by working with some tree asset creators and experimented with adding trees in the empty spaces.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.badmonkeylove.com/Media/Default/Heartbeat/20191220/PrismaticMaze_2019-12-17-15-42-48_1920x1080.png" target="_blank" title="Prismatic Maze - Deciduous Trees"&gt;&lt;img src="http://www.badmonkeylove.com/Media/Default/Heartbeat/20191220/PrismaticMaze_2019-12-17-15-42-48_1920x1080_sm.png" alt="Prismatic Maze - Deciduous Trees" width="298" height="168" /&gt;&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.badmonkeylove.com/Media/Default/Heartbeat/20191220/PrismaticMaze_2019-12-17-16-11-17_1920x1080.png" target="_blank" title="Prismatic Maze - Conifer Trees"&gt;&lt;img src="http://www.badmonkeylove.com/Media/Default/Heartbeat/20191220/PrismaticMaze_2019-12-17-16-11-17_1920x1080_sm.png" alt="Prismatic Maze - Conifer Trees" width="298" height="168" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;But, of course Christmas is coming up, so we hid all of the tree stuff and replaced it with Christmas Decorations!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://badmonkeylove.com/Media/Default/Heartbeat/20191220/PrismaticMaze_ChristmasUpdate.png" target="_blank" title="Prismatic Maze - Christmas Decorations"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://badmonkeylove.com/Media/Default/Heartbeat/20191220/PrismaticMaze_ChristmasUpdate.png" target="_blank" title="Prismatic Maze - Christmas Decorations"&gt;&lt;img src="http://www.badmonkeylove.com/Media/Default/Heartbeat/20191220/PrismaticMaze_ChristmasUpdate_sm.png" alt="Prismatic Maze - Christmas Decorations" width="480" height="270" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks,&lt;br /&gt;Chani.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;This post, along with additional work item details is &lt;a href="https://www.patreon.com/posts/32726443" target="_blank" title="Sponsor Me!"&gt;available on Patreon&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Fri, 20 Dec 2019 16:20:00 GMT</pubDate><guid isPermaLink="true">http://badmonkeylove.com:80/business-heartbeat-20191220</guid></item><item><title>Business Heartbeat - December 13, 2019</title><link>http://badmonkeylove.com:80/business-heartbeat-20191213</link><description>&lt;h1&gt;Business Heartbeat - December 13, 2019&lt;/h1&gt;
&lt;p&gt;&lt;img src="http://badmonkeylove.com/Media/Default/Heartbeat/Heartbeat_20191213_sm.png" alt="Business Heartbeat 20191213" width="697" height="226" /&gt;&lt;/p&gt;
&lt;p&gt;We're back from Vacation!&lt;/p&gt;
&lt;p&gt;This week, we got Prismatic Maze building and working on Mac!&lt;br /&gt;Prior to leaving, we got a Mac Mini.&lt;br /&gt;While we were in Bulgaria, we set that up and got Prismatic Maze building and running on it.&lt;/p&gt;
&lt;p&gt;After returning, we worked through some platform-specific bugs and tested it.&lt;br /&gt;We set up the Mac as a build agent and got it building through our cloud build pipeline.&lt;br /&gt;We configured Steam for Mac, published a build with both PC and Mac bits from the an automated build and tested that on the Mac.&lt;/p&gt;
&lt;p&gt;It looks like we will be able to release Prismatic Maze on Mac along with our Christmas update!&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In preparation for that, we made a new logo! &lt;br /&gt;Here is will look like:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://badmonkeylove.com/Media/Default/Heartbeat/20191213/PrismaticMaze_Logo_128.png" alt="Prismatic Maze's New Logo" width="128" height="128" /&gt;&lt;/p&gt;
&lt;p&gt;Rather than continue using the Trifoil (which is more like my personal seal), we tried redesigning it specific to Prismatic Maze.&lt;br /&gt;As such, the logo is made up of two sets of spirals, each with three colored sections in Red, Blue &amp;amp; Yellow.&lt;br /&gt;The top layer is flipped horizontally and both where two primary colors overlap they present as a secondary color.&lt;br /&gt;Add a white background and black lines and&amp;nbsp;we have the whole set of Pigment colors in Prismatic Maze.&lt;br /&gt;Eventually, we'll have an animated version in-game that rotates each set in opposite directions so the colors shift like a&amp;nbsp;kaleidoscope ;)&lt;/p&gt;
&lt;p&gt;Next week, we'll start working on flashy features for our Christmas update.&amp;nbsp;&lt;br /&gt;Stay tuned :)&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;This post, along with additional work item details is &lt;a href="https://www.patreon.com/posts/32332744" target="_blank" title="Sponsor Me!"&gt;available on Patreon&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Fri, 13 Dec 2019 22:37:00 GMT</pubDate><guid isPermaLink="true">http://badmonkeylove.com:80/business-heartbeat-20191213</guid></item><item><title>Business Heartbeat - November 15, 2019</title><link>http://badmonkeylove.com:80/business-heartbeat-20191115</link><description>&lt;h1&gt;Business Heartbeat - November 15, 2019&lt;/h1&gt;
&lt;p&gt;&lt;img src="http://badmonkeylove.com/Media/Default/Heartbeat/Heartbeat_20191115_sm.png" alt="Business Heartbeat 20191108" width="697" height="226" /&gt;&lt;/p&gt;
&lt;p&gt;For the last working week of November, we worked on our Cloud Build pipeline.&lt;/p&gt;
&lt;p&gt;Up to this point, all the builds we published to Steam were build manually on our primary dev PC. &lt;br /&gt;On November 14th, we published a build to our beta branch that was built entirely through cloud automation.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Back in the day, we stored our code in a Subversion repository using a private server.&lt;br /&gt;We didn't have a good solution for task or bug tracking until adopting Visual Studio Team Foundation Server (TFS) locally.&lt;br /&gt;After getting used to Visual Studio Online (VSO) at work, and well before starting Bad Monkey Love, we switched our code storage over to&amp;nbsp;VSO using Git.&lt;br /&gt;VSO was later rebranded as Azure DevOps and it was basically a cloud version of TFS.&lt;br /&gt;It handled project planning, bugs and code versioning pretty well along with being free.&lt;/p&gt;
&lt;p&gt;Azure DevOps pipelines are pretty powerful.&lt;br /&gt;One of the other features it has is running workflows in&amp;nbsp;the same environment that your code and tasks are.&lt;br /&gt;You can build what amounts to a recipe of steps that the build agent will take when it runs that workflow - steps like checking out your code and building it :)&lt;br /&gt;It can also run automated tests and copy files various places and interact with other servies... you can automate a lot of really cool stuff with these things.&lt;/p&gt;
&lt;p&gt;You can also add your physical machine as a build agent, which is great for debugging, allows you to install stuff on it like Unity once instead of on every build, avoids incurring costs for using cloud build agents, avoids needing to upgrade our Unity dev account (which incurs a monthly cost)&lt;br /&gt;We added our primary dev machine as a build agent and wired it in to be controlled by Azure DevOps.&lt;br /&gt;We tried&amp;nbsp;working with cloud build agents, but ran into trouble getting Unity installed and registered correctly.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;So, that's what we set up.&lt;br /&gt;As our build system gets more complicated, automating these things saves a lot of time and prevents unnecessary errors.&lt;br /&gt;Code can be changed wherever, pushed to the repository and built automatically to output both Retail and Debug builds for PCs. &lt;br /&gt;The whole build process takes about 3 minutes and the results are consistent with hardly any room for human error.&lt;br /&gt;It's kind of amazing.&lt;/p&gt;
&lt;p&gt;Next week, we're starting a three-week vacation! &lt;br /&gt;Two weeks in Bulgaria visiting family, one week in London celebrating my birthday. &lt;br /&gt;When we return, I will be over the hill ;)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;NOTE - this post was written after returning from vacation - sorry for the delay.&lt;/p&gt;
&lt;p&gt;This post, along with additional work item details is &lt;a href="https://www.patreon.com/posts/..." target="_blank" title="Sponsor Me!"&gt;available on Patreon&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Fri, 15 Nov 2019 16:20:00 GMT</pubDate><guid isPermaLink="true">http://badmonkeylove.com:80/business-heartbeat-20191115</guid></item><item><title>Business Heartbeat - November 8, 2019</title><link>http://badmonkeylove.com:80/business-heartbeat-20191108</link><description>&lt;h1&gt;Business Heartbeat - November 8, 2019&lt;/h1&gt;
&lt;p&gt;&lt;img src="http://badmonkeylove.com/Media/Default/Heartbeat/Heartbeat_20191108_sm.png" alt="Business Heartbeat 20191108" width="697" height="226" /&gt;&lt;/p&gt;
&lt;p&gt;This week has been a little more randomized than usual.&lt;/p&gt;
&lt;p&gt;The next milestone for Prismatic Maze is putting it out on Mobile for iOS. Ostensibly, that requires building on a Mac.&lt;/p&gt;
&lt;p&gt;A friend kindly donated a Mac Mini back in the early days of hobby development, but it is just a little bit too old to be used now. Initially, we had to spend some time getting it connected up, so we also tried hosting a VM of a Mac on Windows. That didn't work either, and it is likely not a legal option anyway so that's out.&lt;/p&gt;
&lt;p&gt;We are looking at getting a new Mac Mini, but before taking that jump we're looking into setting up builds on Microsoft's Azure DevOps pipeline. The codebase we've been working with has not been configured for cloud builds, so we're also working on cleaning it up for that.&lt;/p&gt;
&lt;p&gt;If we can get cloud builds to work, it'll check off a nice work item that's been on the list for a long time and set us up for future growth and cleaner code.&lt;/p&gt;
&lt;p&gt;Next week, we'll continue working on getting the Windows build working in the cloud and evaluating the Mac build option.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;This post, along with additional work item details is &lt;a href="https://www.patreon.com/posts/31420144" target="_blank" title="Sponsor Me!"&gt;available on Patreon&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Fri, 08 Nov 2019 16:20:00 GMT</pubDate><guid isPermaLink="true">http://badmonkeylove.com:80/business-heartbeat-20191108</guid></item><item><title>Business Heartbeat - November 1, 2019</title><link>http://badmonkeylove.com:80/business-heartbeat-20191101</link><description>&lt;h1&gt;Business Heartbeat - November 1, 2019&lt;/h1&gt;
&lt;p&gt;&lt;img src="http://badmonkeylove.com/Media/Default/Heartbeat/Heartbeat_20191101_sm.png" alt="Business Heartbeat 20191101" width="697" height="226" /&gt;&lt;/p&gt;
&lt;p&gt;This week we completed and published our Halloween Update for Prismatic Maze!&lt;/p&gt;
&lt;p&gt;This update is a big milestone for the game. &amp;nbsp;This month, we added Ghosts and In-Game Updates. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;The original ideas behind the game had a lot of stuff that didn't make it into the initial release. &amp;nbsp;Prismatic Maze was released at the end of March 2018, at the 1 year mark in the project. It had all the major pieces like sound and music and worked basically the same way it does today in terms of moving around in the maze that was organized into colored areas with locked doors and keys and collecting a few items.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In April &amp;amp; May we mostly worked on making it do what it already did well enough - stability fixes, a full overhaul of the UI to work correctly at different resolutions, some color variation to each Pigment's territory and some polish features throughout.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;We started adding localization in June, starting with Bulgarian and adding Latvian and German over the next few months with the help of volunteer translators. We also added Butterflies for Stella :)&lt;/p&gt;
&lt;p&gt;From July onward, we've been working towards realizing more of the original ideas for the game design. We wanted to make the game significantly better before the next phase of its life, which was putting it out on Mobile. Along with working on polish features, infrastructure features like telemetry and performance improvements, we added coins in July, consumable items &amp;amp; active effects in August, and Darkness &amp;amp; an item merchant in September. Now ghosts and in-game updates.&lt;/p&gt;
&lt;p&gt;We've been revving on Items since launch. &amp;nbsp;Initially they were just the primary map ingredients and the items to let you see the maze as it is being created. Coins and Butterflies added things to collect in multiples &amp;amp; the item merchant provides a mechanism to customize which items you have access to by swapping out some for others. Consumable items and active effects add to player agency by changing some of the relationships between Explorers and their environment as well as providing a mechanism for user-triggered transient effects.&lt;/p&gt;
&lt;p&gt;The maze environments themselves were mostly organized same way since launch until adding darkness. Darkness and light adds some variety and complexity to the mazes, then adding monsters to dark mazes suddenly makes a pretty chill game of exploration with no consequences into a game of cat and mouse.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;We had originally estimated adding ghosts in one week, but one thing led to another pretty logically and there were so many little things that shook out of it that we spend almost the whole month working on them and still sent it out with many ideas yet unrealized. It was really a lot of fun to work with and it really leads us towards the much more complex life simulations in our next project.&lt;/p&gt;
&lt;p&gt;Read about the changes that went into this month's update here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;&lt;a href="http://www.badmonkeylove.com/prismatic-maze-update-20191031" rel="nofollow noopener" target="_blank"&gt;http://www.badmonkeylove.com/prismatic-maze-update-20191031&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;At this point, we feel that the game is in a good enough place to warrant doing the mobile version. That'll require a full redesign of the interface and UI, features specific to mobile for monetization and enough of the foundation components are in place to build the Campaign mode to replace the Stage Select loop :D&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The next chapter in this game's evolution is super exciting! Stay tuned.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;span&gt;This post, along with additional work item details is&amp;nbsp;&lt;/span&gt;&lt;a href="https://www.patreon.com/posts/31231238" target="_blank" title="Sponsor Me!"&gt;available on Patreon&lt;/a&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;</description><pubDate>Sat, 02 Nov 2019 04:05:00 GMT</pubDate><guid isPermaLink="true">http://badmonkeylove.com:80/business-heartbeat-20191101</guid></item><item><title>Prismatic maze - Halloween Update!</title><link>http://badmonkeylove.com:80/prismatic-maze-update-20191031</link><description>&lt;h2&gt;&lt;a href="https://steamcommunity.com/games/1045300/announcements/detail/1600394316287912653" target="_blank" title="Prismatic Maze Steam Update Announcement"&gt;Prismatic Maze -&amp;nbsp;Halloween Update!&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Hey Everybody!&lt;/p&gt;
&lt;p&gt;Happy Halloween!&amp;nbsp; Happy Steam Sale! Enjoy some Happy Ghost Hunting!&lt;/p&gt;
&lt;p&gt;A lot has happened in the last month :)&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;In-Game Updates&lt;/h3&gt;
&lt;p&gt;We set up a feature to show in-game patch updates early on in the month, but it kept spitting out what looked like some kind of feedback information. We tuned that until it resolved into words.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;It looks like there is some kind of conversation going on. We filtered it down to show in the game - looks like some kind of task summary?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Here is what it said a few days ago:&lt;/p&gt;
&lt;pre&gt;Experiment continues. &lt;br /&gt;Our task is introduction of caution. &lt;br /&gt;We teach Pigment play time. &lt;br /&gt;Pigment learns grow monster, birth monster, decay. &lt;br /&gt;Enter Ghost. &lt;br /&gt;Ghost learns loyalty, modality, vulnerability, off, patrol, chase, eat Explorer. &lt;br /&gt;Explorer learns death. &lt;br /&gt;Explorer finds power, inverts relationship. &lt;br /&gt;Explorer learns eat Ghost. &lt;br /&gt;Ghost learns death, fear, retreat, caution. &lt;br /&gt;Explorer learns liberate.&lt;/pre&gt;
&lt;p&gt;It seems to be a description of the work we did this month, only some things are out of order and it sounds like juffo-wup. &lt;br /&gt;Still, it means we don't need to write our own updates, right?&lt;/p&gt;
&lt;p&gt;Besides, we&amp;nbsp;can't seem to&amp;nbsp;get them to stop.&lt;br /&gt;When we remove them they sort of echo back into place.&lt;/p&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="http://www.badmonkeylove.com/Media/Default/Maze/20191031/PrismaticMaze_2019-10-31-10-54-50_1920x1080.png" target="_blank" title="Prismatic Maze - Update Log"&gt;&lt;img src="http://www.badmonkeylove.com/Media/Default/Maze/20191031/PrismaticMaze_2019-10-31-10-54-50_1920x1080_sm.png" alt="Prismatic Maze - Update Log" width="480" height="270" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.badmonkeylove.com/Media/Default/Maze/20191031/PrismaticMaze_2019-10-31-11-00-25_1920x1080.png" target="_blank" title="Prismatic Maze - Main Menu"&gt;&lt;img src="http://www.badmonkeylove.com/Media/Default/Maze/20191031/PrismaticMaze_2019-10-31-11-00-25_1920x1080_sm.png" alt="Prismatic Maze - Main Menu" width="480" height="270" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;Ghosts&lt;/h3&gt;
&lt;p&gt;Ghosts are our first moving autonomous creatures!&amp;nbsp;We are so proud!&lt;br /&gt;They are born from Pigments, more&amp;nbsp;when maps are baked longer.&lt;/p&gt;
&lt;p&gt;Ghosts roam their mazes in the darkness,&amp;nbsp;disliking any light.&lt;br /&gt;They chase and eat Explorers, who drop what what it was carrying for another to pick up later.&lt;br /&gt;&lt;br /&gt;Luckily, another Explorer enters the maze when one dies.&lt;br /&gt;Explorers can use an item to become empowered for a short time, causing Ghosts to flee or be consumed if caught.&lt;/p&gt;
&lt;p&gt;Explorers are no longer alone.&lt;br /&gt;The darkness has become dangerous.&lt;br /&gt;Proceed with caution.&lt;/p&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="http://badmonkeylove.com/Media/Default/Maze/20191031/PrismaticMaze_2019-10-18-12-40-38_1920x1080.png" target="_blank" title="Prismatic Maze - Ghosts in Yellow"&gt;&lt;img src="http://badmonkeylove.com/Media/Default/Maze/20191031/PrismaticMaze_2019-10-18-12-40-38_1920x1080_sm.png" alt="Prismatic Maze - Ghosts in Yellow" width="480" height="270" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.badmonkeylove.com/Media/Default/Maze/20191031/PrismaticMaze_2019-10-31-11-02-52_1920x1080.png" target="_blank" title="Prismatic Maze - Recovering Tombstone"&gt;&lt;img src="http://www.badmonkeylove.com/Media/Default/Maze/20191031/PrismaticMaze_2019-10-31-11-02-52_1920x1080_sm.png" alt="Prismatic Maze - Recovering Tombstone" width="480" height="270" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;SUMMARY&lt;/h3&gt;
&lt;p&gt;This month was a lot of fun. &lt;br /&gt;Much more subtlety and complicated behaviors needed to be modeled for the Ghosts in their present form. &lt;br /&gt;It felt like one behavior led into another until it seemed like it was shaped right.&lt;br /&gt;Makes us curious as to the source of this pull.&lt;/p&gt;
&lt;p&gt;Thanks,&lt;br /&gt;Chani.&lt;/p&gt;
&lt;p&gt;----------&lt;/p&gt;
&lt;pre&gt;20191031 - Halloween Update
* add in-game update log
* life updates
   * advance time in Ecology Engine simulation state during PLAY
   * Pigments
      * teach them to act during PLAY
      * teach them to Liberate area when seed is taken
      * teach White Pigment to Liberate area when all tiles are seen by Explorer
      * teach them to Decay when they die
      * teach them to grow monsters during Growth, birthing them during PLAY
   * Ghosts
      * add Ghosts
      * teaching them to Patrol
      * teach them to Chase &amp;amp; Kill the Explorer
      * teach them to Retreat when Explorer has Empowered effect &amp;amp; Die when caught
      * teach them to turn-off-lights
* add Items
   * Tombstone, dropped by dieing Explorer, consuming its body on pickup
   * Power Pellet, conveying Empowered effect
   * Ghost Essence, dropped by dieing Ghost
* minor updates
   * enable selling Treasure items
   * update Explorer to look brighter in dark areas
   * update Maze Tools on Creating Maze menu to scale items to fit
* bug fixes
   * update Merchant Buy tab to re-evaluate ability to purchase again after a purchase
   * update light placement logic to avoid placing light on same tile as Door
   * prevent re-triggering XRayVision from WhiteOut when white area is Liberated&lt;/pre&gt;</description><pubDate>Thu, 31 Oct 2019 18:50:00 GMT</pubDate><guid isPermaLink="true">http://badmonkeylove.com:80/prismatic-maze-update-20191031</guid></item><item><title>Business Heartbeat - October 25, 2019</title><link>http://badmonkeylove.com:80/business-heartbeat-20191025</link><description>&lt;h1&gt;Business Heartbeat - October 25, 2019&lt;/h1&gt;
&lt;p&gt;&lt;img src="http://badmonkeylove.com/Media/Default/Heartbeat/Heartbeat_20191025_sm.png" alt="Business Heartbeat 20191025" width="697" height="226" /&gt;&lt;/p&gt;
&lt;p&gt;The experiment continues!&lt;/p&gt;
&lt;p&gt;Last week we noticed that the Ghosts and Explorers had started eating each other, so this week we tried trying to teach them to play nice...&lt;/p&gt;
&lt;p&gt;It didn't take long for the Ghosts to learn to avoid the Explorer when it was Empowered and the Pigments learned not to spawn more Ghosts when they were vulnerable too.&lt;/p&gt;
&lt;p&gt;Once the Ghosts learned to fear getting eaten they seem to have gotten more light-&lt;span&gt;sensitive&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;They are just as fast in the dark, but&amp;nbsp;when the Explorer has a light (especially if it's bright), the Ghosts chase much more cautiously.&lt;/p&gt;
&lt;p&gt;Explorers have learned to liberate White areas better and so those areas now get their light back once all of their tiles are exposed.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ghosts also started dropping a treasure item when they are consumed and everything started making noise.&lt;/p&gt;
&lt;p&gt;Perhaps it&amp;nbsp;was some new father impulse, but we&amp;nbsp;also felt it was important to teach the Explorers to stop turning on lights when there was daylight. &lt;br /&gt;That took a lot of repetition... leave a room, turn off the lights, is that&amp;nbsp;too much to ask for? seriously...&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.badmonkeylove.com/Media/Default/Maze/20191028/PrismaticMaze_2019-10-28-10-24-09_1920x1080_sm.png" alt="Prismatic Maze - 20191028" width="480" height="270" /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;This post, along with additional work item details is &lt;a href="https://www.patreon.com/posts/31111346" target="_blank" title="Sponsor Me!"&gt;available on Patreon&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Mon, 28 Oct 2019 18:01:00 GMT</pubDate><guid isPermaLink="true">http://badmonkeylove.com:80/business-heartbeat-20191025</guid></item><item><title>How to Get Access to Beta Builds</title><link>http://badmonkeylove.com:80/access-beta-builds</link><description>&lt;h1&gt;How to Get Access to Beta Builds&lt;/h1&gt;
&lt;p&gt;To configure Steam to use beta branches in general:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.badmonkeylove.com/Media/Default/Maze/20191024/Steam_BetaBuilds_01.png" target="_blank" title="Configure Steam to use Beta Branches"&gt;&lt;img src="http://www.badmonkeylove.com/Media/Default/Maze/20191024/Steam_BetaBuilds_01_sm.png" alt="Configure Steam to use Beta Branches" width="292" height="168" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;launch Steam&lt;/li&gt;
&lt;li&gt;go to Steam -&amp;gt; Settings&lt;/li&gt;
&lt;li&gt;on Account tab under Beta Participation, click 'Change'&lt;/li&gt;
&lt;li&gt;under 'Beta Participation', select 'Steam Beta Update'&lt;/li&gt;
&lt;li&gt;Click 'Ok' to close settings pages&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;To opt-in to beta branch for Prismatic Maze:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.badmonkeylove.com/Media/Default/Maze/20191024/Steam_BetaBuilds_02b.png" target="_blank" title="Opt-in to beta branch for Prismatic Maze"&gt;&lt;img src="http://www.badmonkeylove.com/Media/Default/Maze/20191024/Steam_BetaBuilds_02b_sm.png" alt="Opt-in to beta branch for Prismatic Maze" width="192" height="73" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;right-click on game in steam library, select properties&lt;/li&gt;
&lt;li&gt;select 'Betas' tab (requires opt-in to beta branches in steam profile)&lt;/li&gt;
&lt;li&gt;type password &amp;amp; click 'Check Code' to gain access&lt;/li&gt;
&lt;li&gt;select beta branch&lt;/li&gt;
&lt;li&gt;click 'Close'&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Join our #breakers channel on Discord for announcements &amp;amp; information about beta builds:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://discord.gg/qMCqKaM" target="_blank"&gt;https://discord.gg/qMCqKaM&lt;/a&gt; (requires 'tester' role)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;NOTE - Steam checks for updates when it first launches &amp;amp; again every 24 hours. In order to get an update that is less than 24 hours old, you may need to close Steam &amp;amp; re-launch it to force it to check for updates.&lt;/p&gt;</description><pubDate>Thu, 24 Oct 2019 21:14:44 GMT</pubDate><guid isPermaLink="true">http://badmonkeylove.com:80/access-beta-builds</guid></item><item><title>Business Heartbeat - October 18, 2019</title><link>http://badmonkeylove.com:80/business-heartbeat-20191018</link><description>&lt;h1&gt;Business Heartbeat - October 18, 2019&lt;/h1&gt;
&lt;p&gt;&lt;a href="http://badmonkeylove.com/Media/Default/Maze/20191018/PrismaticMaze_2019-10-18-12-40-38_1920x1080.png" target="_blank" title="Prismatic Maze: Ghosts!"&gt;&lt;img src="http://badmonkeylove.com/Media/Default/Maze/20191018/PrismaticMaze_2019-10-18-12-40-38_1920x1080_sm.png" alt="Prismatic Maze - Ghosts!" width="480" height="270" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This week we worked with Ghosts!&lt;/p&gt;
&lt;p&gt;When we taught them how to move around last week they were slow and ignored almost everything. Since then, they started turning the lights off and once they noticed the Explorer they have been chasing it down and eating it.&lt;/p&gt;
&lt;p&gt;We added some items to help the Explorer not get killed by the Ghosts. The effect these items provide is short-lived, but it allows the Explorer to consume Ghosts if it catches them instead of the other way around. Once that started happening, the Ghosts immediately learned to run away while they are vulnerable.&lt;/p&gt;
&lt;p&gt;Progress made &amp;amp; crisis averted, but all this spontaneous killing is a little unsettling...&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;This post, along with additional work item details is &lt;a href="https://www.patreon.com/posts/30863216" target="_blank" title="Sponsor Me!"&gt;available on Patreon&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Fri, 18 Oct 2019 23:37:00 GMT</pubDate><guid isPermaLink="true">http://badmonkeylove.com:80/business-heartbeat-20191018</guid></item><item><title>On Update Cadence</title><link>http://badmonkeylove.com:80/on-update-cadence</link><description>&lt;p&gt;Hey Everybody,&lt;/p&gt;
&lt;p&gt;Update Cadence is something that has gone through a number of revisions since the game's initial launch.&lt;/p&gt;
&lt;p&gt;In the first month, we put out updates each week at the end of the week. Actually, in the first week we put out a few updates - hotfixes for specific bugs found at launch. We continued to put out updates each week but it was exhausting &amp;amp; those updates really didn't have much in them other then bug fixes &amp;amp; minor polish.&lt;/p&gt;
&lt;p&gt;For a few months after that, we switched to bi-weekly updates and also moved to targeting the update for Wednesday. This allowed us to get a little bit more into each update and prevented slipping the update to the following week as it turned out whatever we were trying to accomplish always came in hot.&lt;/p&gt;
&lt;p&gt;Then we went on a short vacation and had to skip an update - landing the next update at about a month since the previous. At that point, we switched to a Monthly update cadence with the update scheduled on the last Wednesday of the month.&lt;/p&gt;
&lt;p&gt;The monthly update cadence has worked very well, allowing us to plan bigger changes and get a lot into each update. With enough room in a monthly iteration, we are able to burn down polish and deferred maintenance tasks as well as investing in less flashy things like telemetry.&lt;/p&gt;
&lt;p&gt;Over time, Ship Day has become Ship Week. Major changes stop at the end of the previous week ideally, allowing us to spin off a build and test it thoroughly as well as sharing that build with beta testers and localizers. The first few days of Ship Week are dedicated to testing and working on messaging for the update - something that we previously tried to shove into the schedule without budgeting much of the time it took, which was one of the reasons update slipped. What time remains in that week gets allocated to project planning and web presence updates.&lt;/p&gt;
&lt;p&gt;You can see game update posts here: &lt;br /&gt;&lt;a href="https://store.steampowered.com/app/1045300/Prismatic_Maze/" target="_blank"&gt;https://store.steampowered.com/app/1045300/Prismatic_Maze/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Along the way, we've paid attention to how the rest of the industry deals with updates. Of course it depends quite a bit on the scope of the project, the size of the team and the state of the game once it's live.&lt;/p&gt;
&lt;p&gt;Common consensus seems to be that an update cadence much more frequent than a month doesn't give the players enough time to anticipate or digest an update. Small, frequent changes tend to blend together or get ignored and are better suited to tuning and polish than introducing new features or drawing old players back to a game.&lt;/p&gt;
&lt;p&gt;Introduction of bigger features works better on less-frequent updates where there's enough in the update to warrant the attention and enough time has passed for the players to have digested the previous changes. Big changes can also be an opportunity to do timed-events, combined with a marketing push to bring in new players and renew interest in players who have put the game on the shelf.&lt;/p&gt;
&lt;p&gt;It's probably no coincidence that Steam won't let you schedule a sale any sooner than 6 weeks after a previous sale - one of the things they recommend is you pair sales with major updates. Steam is a company that has a ton of data about what works and what doesn't work in such cases, their recommendations usually correlate strongly to the more successful patterns.&lt;/p&gt;
&lt;p&gt;Honestly, something like quarterly updates may work better for those big feature updates. For now, we're sticking to a (mostly) monthly cadence for updates of Prismatic Maze, but we'll continue to tweak this going forward.&lt;/p&gt;</description><pubDate>Mon, 07 Oct 2019 17:24:00 GMT</pubDate><guid isPermaLink="true">http://badmonkeylove.com:80/on-update-cadence</guid></item><item><title>Prismatic Maze - Enter Darkness!</title><link>http://badmonkeylove.com:80/prismatic-maze-update-20190925</link><description>&lt;h2&gt;&lt;a href="https://steamcommunity.com/games/1045300/partnerevents/view/1592507941117130334" target="_blank" title="Steam Update Announcement"&gt;Prismatic Maze -&amp;nbsp;Enter Darkness!&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Hey Everybody!&lt;/p&gt;
&lt;p&gt;We've been watching the ongoing evolving maze experiment for a while now...&lt;/p&gt;
&lt;p&gt;A months after &lt;a href="http://www.badmonkeylove.com/prismatic-maze-update-20190619"&gt;the Butterflies&amp;nbsp;showed up&lt;/a&gt;, Pigments started&amp;nbsp;&lt;a href="http://www.badmonkeylove.com/prismatic-maze-update-20190725"&gt;growing coins&lt;/a&gt;.&amp;nbsp;Soon after that, they started &lt;a href="http://www.badmonkeylove.com/prismatic-maze-update-20190828"&gt;growing consumable items&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In the last month, we've been seeing&amp;nbsp;Pigments begin contracting Darkness.&lt;br /&gt;This affliction somehow blots out the sun within their territory and causes them to grow lamps and consumable light items.&lt;/p&gt;
&lt;p&gt;Meanwhile, an Item Merchant has been attracted to the coins and set up shop in between mazes.&lt;/p&gt;
&lt;h3&gt;Teaser&lt;/h3&gt;
&lt;p&gt;&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/IRImClotOvo" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;h3&gt;Darkness &amp;amp; Light&lt;/h3&gt;
&lt;p&gt;Over the last few months, we've watched the mazes created by Pigment creatures get richer.&amp;nbsp;&lt;br /&gt;Until recently, there hasn't been any down-side to letting maps bake longer because the longer they grow, the more coins and items they seem to acquire.&lt;/p&gt;
&lt;p&gt;Meanwhile, the little boxy creatures we've been using to explore the mazes started tracking its time and steps.&lt;br /&gt;It also acquired the ability to invoke temporary status effects.&lt;/p&gt;
&lt;p&gt;Apparently, the Pigment creatures have acquired a similar ability, but in contrast to the&amp;nbsp;Explorer's Speed effect it looks like they're getting sick...&lt;br /&gt;During the growth period, if a Pigment fails to grow for a while or are stopped from growing fast enough due to space constraints, they come down with an affliction called Darkness.&lt;br /&gt;This seems to be a reaction to our experiments with longer bake times, since allowing Pigments to grow long enough in a limited area ends up limiting their growth eventually.&lt;/p&gt;
&lt;p&gt;Darkness somehow prevents sunlight from reaching into the Pigment's territory, causes them to grow lanterns and light-emitting consumable items like Candles and Torches.&lt;br /&gt;Luckily, the Explorer is able to use these items to emit its own light!&lt;br /&gt;As soon as this started happening, the Black Tower area went completely dark and refuses to grow lanterns, so those items are especially useful.&lt;/p&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="http://www.badmonkeylove.com/Media/Default/Maze/20190925/PrismaticMaze_20190925_WhiteDarkness.png" target="_blank" title="Prismatic Maze - Dark White"&gt;&lt;img src="http://www.badmonkeylove.com/Media/Default/Maze/20190925/PrismaticMaze_20190925_WhiteDarkness_sm.png" alt="Prismatic Maze - Dark White" width="480" height="270" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.badmonkeylove.com/Media/Default/Maze/20190925/PrismaticMaze_20190925_BlueDarkness.png" target="_blank" title="Prismatic Maze - Dark Blue"&gt;&lt;img src="http://www.badmonkeylove.com/Media/Default/Maze/20190925/PrismaticMaze_20190925_BlueDarkness_sm.png" alt="Prismatic Maze - Dark Blue" width="480" height="270" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="http://www.badmonkeylove.com/Media/Default/Maze/20190925/PrismaticMaze_20190925_YellowDarkness.png" target="_blank" title="Prismatic Maze - Dark Yellow"&gt;&lt;img src="http://www.badmonkeylove.com/Media/Default/Maze/20190925/PrismaticMaze_20190925_YellowDarkness_sm.png" alt="Prismatic Maze - Dark Yellow" width="480" height="270" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.badmonkeylove.com/Media/Default/Maze/20190925/PrismaticMaze_20190925_RedDarkness.png" target="_blank" title="Prismatic Maze - Dark Red"&gt;&lt;img src="http://www.badmonkeylove.com/Media/Default/Maze/20190925/PrismaticMaze_20190925_RedDarkness_sm.png" alt="Prismatic Maze - Dark Red" width="480" height="270" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="http://www.badmonkeylove.com/Media/Default/Maze/20190925/PrismaticMaze_20190925_PurpleDarkness.png" target="_blank" title="Prismatic Maze - Dark Purple"&gt;&lt;img src="http://www.badmonkeylove.com/Media/Default/Maze/20190925/PrismaticMaze_20190925_PurpleDarkness_sm.png" alt="Prismatic Maze - Dark Purple" width="480" height="270" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.badmonkeylove.com/Media/Default/Maze/20190925/PrismaticMaze_20190925_BlackTower.png" target="_blank" title="Prismatic Maze - Dark Tower"&gt;&lt;img src="http://www.badmonkeylove.com/Media/Default/Maze/20190925/PrismaticMaze_20190925_BlackTower_sm.png" alt="Prismatic Maze - Dark Tower" width="480" height="270" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;Item Merchant&lt;/h3&gt;
&lt;p&gt;It seems that illnesses like Darkness are not the only result of the&amp;nbsp;increasing yield from our Pigment growth experiments...&lt;br /&gt;All the coins and new items have attracted an Item Merchant, who set up shop in between mazes.&lt;/p&gt;
&lt;p&gt;The Item Merchant has placed a value on each item relative to gold coins and is selling a most of the items we've discovered so far.&lt;br /&gt;It&amp;nbsp;will purchase items at half the price it sells them for and allow buying back any items sold at cost.&lt;/p&gt;
&lt;p&gt;We don't know where it came from, where it gets its inventory or what it does with the coins, but we're very happy it came along.&lt;br /&gt;Along with providing a convenient means to get useful items like Blue Pill, Speed or the new Candles or Torches, converting unused items to coins has been very helpful in keeping our toolkit stocked.&lt;/p&gt;
&lt;p&gt;We recommend picking up a Map from the Merchant.&lt;br /&gt;Up to this point, we've found Maps reliably in the White areas of mazes. &lt;br /&gt;By purchasing and equipping it as a Tool we've been able to start maps with it, greatly improving our experiments.&lt;/p&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="http://www.badmonkeylove.com/Media/Default/Maze/20190925/PrismaticMaze_20190925_MerchantBuyTab.png" target="_blank" title="Prismatic Maze - Merchant Buy Tab"&gt;&lt;img src="http://www.badmonkeylove.com/Media/Default/Maze/20190925/PrismaticMaze_20190925_MerchantBuyTab_sm.png" alt="Prismatic Maze - Merchant Buy Tab" width="480" height="270" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.badmonkeylove.com/Media/Default/Maze/20190925/PrismaticMaze_20190925_MerchantSellTab.png" target="_blank" title="Prismatic Maze - Merchant Sell Tab"&gt;&lt;img src="http://www.badmonkeylove.com/Media/Default/Maze/20190925/PrismaticMaze_20190925_MerchantSellTab_sm.png" alt="Prismatic Maze - Merchant Sell Tab" width="480" height="270" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;SUMMARY&lt;/h3&gt;
&lt;p&gt;This has been a very&amp;nbsp;interesting month in our experiment!&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Although we're concerned that both the Explorer and Pigment creatures have developed something akin to the ability to contract illnesses, we're excited to see how their evolution continues...&lt;/p&gt;
&lt;p&gt;Thanks,&lt;br /&gt;Chani.&lt;/p&gt;
&lt;p&gt;----------&lt;/p&gt;
&lt;p&gt;20190923 - Darkness Update&lt;br /&gt;* add Item Merchant to Stage Select&lt;br /&gt;* add Darkness &amp;amp; Light&lt;br /&gt;&amp;nbsp; &amp;nbsp;* make Pigment creatures vulnerable to Darkness effect if they fail to grow for too long during map creation&lt;br /&gt;&amp;nbsp; &amp;nbsp;* standing on dark tiles blots out the sun&lt;br /&gt;&amp;nbsp; &amp;nbsp;* place lights in dark mazes along walls &amp;amp; on doors&lt;br /&gt;&amp;nbsp; &amp;nbsp;* project light from Avatar via new Candle &amp;amp; Torch items&lt;br /&gt;* update items&lt;br /&gt;&amp;nbsp; &amp;nbsp;* make Blue Pill acquirable on finishing a maze&lt;br /&gt;&amp;nbsp; &amp;nbsp;* make Map work as an Equippable tool&lt;br /&gt;* add active effects that are invoked/removed manually rather than via burndown&lt;br /&gt;* update telemetry&lt;/p&gt;</description><pubDate>Thu, 26 Sep 2019 17:49:00 GMT</pubDate><guid isPermaLink="true">http://badmonkeylove.com:80/prismatic-maze-update-20190925</guid></item><item><title>Business Heartbeat - September 20, 2019</title><link>http://badmonkeylove.com:80/blog/business-heartbeat-20190920</link><description>&lt;h3&gt;Business Heartbeat - September 20&amp;nbsp;2019&lt;/h3&gt;
&lt;p&gt;This week is the last dev week before pencil's down for the September update coming out next week.&lt;/p&gt;
&lt;p&gt;It's been a mad rush to get as many pieces of the Halloween updates in as possible.&amp;nbsp;&lt;br /&gt;Our original plan was to add Darkness &amp;amp; Lights &amp;amp; Ghosts &amp;amp; Player Death.&amp;nbsp;&lt;br /&gt;We managed to get Darkness &amp;amp; Lights, leaving Ghosts &amp;amp; Player Death to slip to a mid-month update for Halloween.&lt;/p&gt;
&lt;p&gt;Lights have been on the roadmap for most of the project, so this work has been super exciting.&lt;br /&gt;There have been a ton of little decisions to make - how darkness gets added to things, where to place lights, how common should&amp;nbsp;light-creating items be, etc.&lt;br /&gt;It's also interesting in terms of learning Unity due to a lot of little details with lighting that need to be worked through.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Completed&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Prismatic Maze
&lt;ul&gt;
&lt;li&gt;Added Effects to Pigment Creatures&lt;/li&gt;
&lt;li&gt;Added Dark as an Effect that Pigment Creatures contract during&amp;nbsp;&lt;span&gt;their growth cycle when they haven't increased in size recently enough&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Added Dark Decoration to tiles in areas where Pigment Creature has Darkness effect&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Added light to player avatar&lt;/li&gt;
&lt;li&gt;Added transition to/from dark area based on Dark decoration on tiles, turning down ambient light &amp;amp; turning on player light in dark areas&lt;/li&gt;
&lt;li&gt;Added Items: Candle &amp;amp; Torch as consumable items that increase player light projection range&lt;/li&gt;
&lt;li&gt;Added Item: Darkness as treasure acquired by capturing&amp;nbsp;the seed of a Pigment Creature with Darkness effect&lt;/li&gt;
&lt;li&gt;Added Lights to tiles in areas of Pigment Creature with Darkness effect&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Added Telemetry for Merchant transactions&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Patreon
&lt;ul&gt;
&lt;li&gt;Got our First Patron! Thanks Tyler!&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In Progress&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Prismatic Maze
&lt;ul&gt;
&lt;li&gt;Customize Lights in maze area&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Next Milestone&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;September Update ~20190925&lt;/li&gt;
&lt;/ul&gt;</description><pubDate>Sat, 21 Sep 2019 17:17:59 GMT</pubDate><guid isPermaLink="true">http://badmonkeylove.com:80/blog/business-heartbeat-20190920</guid></item><item><title>Versioning in Prismatic Maze</title><link>http://badmonkeylove.com:80/blog/versioning-in-prismatic-maze</link><description>&lt;h3&gt;Versioning in Prismatic Maze&lt;/h3&gt;
&lt;h4&gt;9/16/19 - This was posted early&amp;nbsp;&lt;a href="https://www.patreon.com/posts/30011088" target="_blank" title="Bad Monkey Love on Patreon"&gt;on our Patreon&lt;/a&gt;.&lt;/h4&gt;
&lt;p&gt;&lt;a href="http://www.prismaticmaze.com/" target="_blank" title="Prismatic Maze Game Website"&gt;Prismatic Maze&lt;/a&gt;&amp;nbsp;is a game that manages a lot of information that needs to be persisted to be retrieved later. &lt;br /&gt;This post is a quick dive&amp;nbsp;into how this state is managed, versioned and updated in the game.&lt;/p&gt;
&lt;p&gt;Each save game is persisted as a database file that has some game data along side a hierarchy of structures that represent maps and tiles and creatures and items.&lt;br /&gt;When the game is playing, some of this data is loaded and updated and more data is added dynamically.&lt;/p&gt;
&lt;p&gt;This works based on a game engine we built called Ecology Engine, which consists of a collection of libraries that are&amp;nbsp;referenced from the game project.&lt;br /&gt;The Ecology Engine is designed to&amp;nbsp;&lt;span&gt;facilitate&lt;/span&gt; building games based on a grid-based representation of the game world where everything is mutable and many things are alive.&lt;br /&gt;One of the main components of the engine is state management,&amp;nbsp;designed to be improved and extended during development of multiple games.&lt;br /&gt;Long term game state is managed using relational data and stored in a file-based database.&lt;/p&gt;
&lt;p&gt;As&amp;nbsp;development on the game continues, new features are introduced that depend on or work with new data in long term state.&lt;br /&gt;We're adding features incrementally and consistently and the game is out there with saved games from versions ranging from initial release to current.&lt;br /&gt;Managing the data in a file on the player's machine introduces a problem with how to update things over time.&lt;/p&gt;
&lt;p&gt;Updates to the game bits&amp;nbsp;are&amp;nbsp;handled by the platform. &lt;br /&gt;In this case Steam will update the game files automatically so when we publish an update players will download it when the game is launched next.&lt;/p&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="http://www.badmonkeylove.com/Media/Default/Maze/20190912/Steam_AutoUpdate.PNG" target="_blank" title="Steam Auto-Update"&gt;&lt;img src="http://www.badmonkeylove.com/Media/Default/Maze/20190912/Steam_AutoUpdate_sm.PNG" alt="Steam Auto-Update" width="606" height="86" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center;"&gt;Steam Auto-Update&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Updating the data in the save game can be more tricky.&lt;br /&gt;If we don't update the save game format, we risk making it impossible to load an old save game after an update.&lt;br /&gt;To solve this problem, we use a number of different versioning and update systems that have been built into the engine over time.&lt;/p&gt;
&lt;p&gt;The basic pattern we use is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Add Version information to data you want to be updatable&lt;/li&gt;
&lt;li&gt;When you load that data, check its version and systematically update it until it's up to date&lt;/li&gt;
&lt;li&gt;Save the updates automatically with the rest of&amp;nbsp;data&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The database itself has a Metadata table that stores data related to its schema - the structure of tables and the shape of the data is stored in them.&lt;br /&gt;When the engine loads the database, it checks the schema version and runs it through a sequence of updates to bring it up to the current version that the code requires.&lt;br /&gt;The database updates are made by running update scripts that can effect both the structure of tables as well as the data in them.&lt;br /&gt;Whenever a save game is loaded, it is automatically updated to the current format.&lt;/p&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="http://www.badmonkeylove.com/Media/Default/Maze/20190912/PrismaticMaze_MetadataTable.PNG" alt="Metadata Table" width="428" height="83" /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center;"&gt;Database Metadata Table Contents&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;A lot of data stored in the database&amp;nbsp;is also versioned.&lt;br /&gt;For instance,&amp;nbsp;both Players and Pigment Creatures are stored as Creatures.&lt;br /&gt;All Creatures share some properties like their position on the map and whether they're alive as well as DNA.&lt;br /&gt;DNA is stored as a string, but really it's a serialized version of an instance of a creature of a specific type - all the properties that make up that creature as well as all the properties of those properties, all the way down until the entire thing can be re-loaded in the same state from that description.&lt;/p&gt;
&lt;p&gt;When the engine loads a map, it unthaws the creatures associated with that map from their DNA, which can then be updated and saved along with the map data when the game is saved.&lt;br /&gt;When the creature is unthawed, it's version is compared and systematically updated using logic similar to the way the database is updated, bringing it up to the current format.&lt;br /&gt;When that creature gets saved next, its updated version persists along with its current state.&lt;/p&gt;
&lt;p&gt;Versioned data currently in use:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PigmentCreatureDNA - 0.0.0.2&lt;/li&gt;
&lt;li&gt;PlayerCreatureDNA - 0.0.0.4&lt;/li&gt;
&lt;li&gt;MazeGameDataModel - 0.0.0.5&lt;/li&gt;
&lt;li&gt;MazeMapBlueprint - 0.0.0.16&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The&amp;nbsp;game&amp;nbsp;state and configuration options&amp;nbsp;work in a similar way to Creature DNA.&amp;nbsp;&lt;br /&gt;This game state describes things like what maps have been completed and what items are in storage.&lt;br /&gt;&lt;span&gt;The configuration options like current save game and language and volume settings are stored&lt;span&gt;&amp;nbsp;in&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;a reg&lt;/span&gt;&lt;span&gt;i&lt;/span&gt;&lt;span&gt;stry key.&lt;/span&gt;&lt;br /&gt;These too are versioned and updated dynamically when loaded.&amp;nbsp;&lt;/p&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="http://www.badmonkeylove.com/Media/Default/Maze/20190912/Toolbox_VersionsingData_20190912.PNG" target="_blank" title="Toolbox showing versioned game data and creature dna"&gt;&lt;img src="http://www.badmonkeylove.com/Media/Default/Maze/20190912/Toolbox_VersionsingData_20190912_sm.PNG" alt="Toolbox showing versioned game data and creature dna" width="480" height="250" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center;"&gt;The image above is from one of the tools we use, &lt;br /&gt;showing how game and creature data is stored as raw strings.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;With patterns like these -&amp;nbsp;&lt;a href="https://en.wikipedia.org/wiki/Software_versioning" target="_blank" title="Wikipedia: Software versioning"&gt;semantic versioning&lt;/a&gt;, auto-updating, polymorphism, &lt;a href="https://en.wikipedia.org/wiki/Open%E2%80%93closed_principle" target="_blank" title="Wikipedia: Open&amp;ndash;closed principle"&gt;open-closed principle&lt;/a&gt;,&amp;nbsp;etc. - we are able to add to and extend the game in significant ways that wouldn't be possible otherwise.&lt;/p&gt;</description><pubDate>Fri, 20 Sep 2019 17:47:00 GMT</pubDate><guid isPermaLink="true">http://badmonkeylove.com:80/blog/versioning-in-prismatic-maze</guid></item></channel></rss>