Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(2 edits) (+1)

Thanks! You're exactly right.

The initial map is cellular automata. 

Then the game runs the cellular automata without the death rule , i.e trees can't be destroyed by the generation running only spawned. The spawn rate, number of neighbouring cells with a tree needed for a tree to be spawned, increases based on how well you are doing. It also runs randomly in the x axis like a less random monticarolo style rendering (as opposed regular rendering a line at a time in sequence). This was to make it feel less predictable, without that it just feels like the wall of trees advancing from the x axis as opposed to coming from different directions. It's run in a coroutine on update that yields after a row has been processes so it takes on average 64ish frames for each square to be affected/tested.

The tree destruction is basically a delayed contagion, so each time something catches fire after a short delay all adjacent squares get tested for flammables and then one gets picked in each row (so it doesn't spread too aggressively and making it not 100% reliable). The number of cascades are limited to a certain number of jumps, around 3-5 (so 1+3+9+27 total destroyed trees,  assuming no overlaps), per fire you start. Higher cascades made the game very easy (and the Pico-8 would also run into its artificial instruction/cpu constraint because of too many particle effects and my questionable code). The number of cascade also ramps up with difficulty in an attempt to make things feel more intense/epic.

I'll share the code and do a more detailed breakdown when I upload it to Pico-8's BBS.

Thanks for all the info! I'll keep an eye out for your post on the Pico-8 BBS.