Strokes on Canvas

"To walk and let the mind wander is a dangerous thing. A thought pulls harder than the rest, one's gait softens into the grace of a Saint, tears turn to bright smiles, and before one knows it, one is no more."

  • Flavour text of Steps Shift The Mind, contingency component

The Games Foxes Play

(complete source code on github | view all previous posts | play 0.4.3 online in browser on itch.io!)

After completing a few quests for the Plane Where Grass Is Touched last week, I was able to free up a lot of time this week to return to my cyber-grimoire. Here are the incantations I have concocted this time:

Strokes on the Canvas of Dreams

A major flaw in the spell crafting system was just how tedious it was to extract exactly the Soul type you wanted for a given recipe. If you needed just one more Unhinged Soul for your spell but it was hidden underneath a pile of 50 Ordered Souls, it meant you had to mash your Q key 51 times. Not exactly engaging gameplay.

I have introduced a new thematic "brush" system - it causes your Soul wheel on the sidebar to become a palette with every Caste represented on it. This is only available in Soul Cage rooms, but it lets the player pick out a "color", and, well, draw. The mouse control is easier (just drag and drop, like Minecraft's crafting), but keyboard is also an option, requiring the player to walk over the cage to place their payload drive-by style.

This UI update comes with many quality-of-life additions related to the spell crafting system - including a complete catalogue at the bottom with every unlocked pattern (and its recipe), and a display predicting the outcome of the crafting recipe (with dynamic highlighting of where each component is found inside your Soul Cage).

Here is a complete clip of me assembling "BEAM-JOLTZAZON-RASEL-GYVJI", an interesting spell combination which fires a laser beam towards one target, spreads to all creatures adjacent to the target, then causes all the affected to:

  1. Get a status effect that will revive them on death as a friendly undead.
  2. Get brutally punched backwards, probably killing them.

Using this combination, clearing this room proves easy!

Thought-Pattern Interference

Another flaw in the spell-crafting algorithm was the possibility of smaller patterns inserting themselves unexpectedly in bigger patterns. This meant that the structure:

  • O O O

Contained simultaneously the patterns:

  • O
  • O O
  • O O O

with each one of these three being an unique spell component. Most of the time, this flaw caused random status effects to appear unprompted in the player's crafted spells, resulting in "interesting" gameplay such as laser beams that make your enemies invincible or placing traps on top of yourself that instantly explode you to bits. In the worst cases, massive patterns could contain 12+ copies of many components, resulting in ridiculous oneshots, nukes and even an infinite loop softlock somewhere in there.

Chaos is fun, but there are limits. I have completely overhauled the pattern locator algorithm - now, if you want a specific pattern, it must be built without any adjacent Souls of the same type interfering. O O O creates only O O O, and nothing else. O O F creates both O O and F. An inattentive player can still craft hilarious suicide spells, but at the very least, it should now never happen to someone who carefully constructs their build.

This does make it more difficult to cram a lot of components in your limited 3x3 Soul Cage, but I have nerfed a couple of patterns to require less Souls to compensate. It will also be a bonus reason to upgrade yourself and get a bigger Cage later when I get around to making that!

Sentries and Husks Surge Back

Finally, some old spells from version 0.2 have found their way back in, adapted and revised to fit the new spell-component system. "Joltzazon", for example, is now a very powerful Mutator that lets spells "spread" across adjacent targets, resulting in amusing effects. Abazon and Rasel have also returned.

I predict that next week will haul me back screaming into the abyss of responsibilities and will devour a significant chunk of my free time. I will still see if I can cook up something for next Saturday, my motivation levels are through the roof! I have some fine ideas cooked up...

The Shapeless Path

"Where the Ordered forces do not have soldiers, they have traps. A careless step, and would-be looters become the looted, their every memory sold to the highest bidder on the hivemind's network."

  • Flavour text of A Click, Then a Flash, mutator component

The Games Foxes Play

(complete source code on github | view all previous posts | play 0.4 online in browser on itch.io!)

So many changes. It is utterly insane how I either can't think about anything else but my game or can't bring myself to write a single line of code on any given day, no in between. I'm glad I can keep up the pace now, because The Plane Where Grass Is Touched has some exciting but time-consuming advancements in store for me in the coming weeks.

My itch.io page has been updated with a new demo that includes all of the changes in the last 3 months! Still a bit rough here and there, and potentially confusing, but I certainly had fun playing it from beginning to end.

Steps Shift The Mind

There are two new types of spell-crafting blocks: Mutators and Contingencies. This means that the structure of a spell is now as follows:

  • Contingency: When [SOMETHING] happens...
  • Form: ...target all [THESE] tiles...
  • Mutator: ...make some [CHANGES] to the spell...
  • Function: ...and unleash all kinds of [EFFECTS].

As an example, the following spell:

  • Contingency: On taking a step...
  • Form: ...target tiles in front of you in a beam...
  • Mutator: ...set down a trap on the targets with the following effect...
  • Function: ...launch the target forwards and damage it when it hits a wall.

does exactly what it says on the tin.

Mutators and Contingencies are optional. Contingencies in particular tend to induce sacrifices and costs, as you are basically turning an active ability into a passive one - a very powerful thing.

Additionally, all spells now have a Potency rating dependent on which components constitute it. Power up GYVJI (a Function) with 4 Potency, and unleash shockwaves on impact! Increase the duration of applied status effects from SENET or KASHIA! There is also a potential Cost, currently only found on Contingency blocks. Each time the Contingency triggers, you will lose an X amount of Shattered Souls until you can no longer power the Contingency. How to get these Shattered Souls? By failing challenges and losing encounters, of course. In my game, failure is simply a different kind of step forward.

Maybe this is a bit complicated, but only a fool would settle out into a traditional roguelike journey with the goal of mass market appeal.

Laws of Soul and Spirit

As the old burns to feed the new, many UI elements have been added and removed:

  • There is a new minimap viewable in the lower right corner, which dynamically updates every turn. The way it is rendered in the backend is... a bit gory (it is actually rendering outside of its frame, so I draw black rectangles to cover the overextending bits), but it works and I have noticed no performance issues.

  • In the Legendary Soul menu, the minimap is replaced by a new display which contains all relevant information about your crafted spells: its Potency (blue number), its Cost (purple number), its Caste (colored symbol), its Contingencies (yellow row), its Forms (green row), its Mutators (pink row) and its Functions (orange row).

  • There is now support for paragraphs and colored text in all text functions. This sounds so simple, but it was easily the most nightmarish thing on this list. Yet the result is so glorious! Yes, Ulfsire, I have stolen the way you describe your powers in your game (Path of Achra) because I find the systematic layout to be very apt for a synergy-based game.

  • The "Resolve", "Ipseity" and "Harmonic Relays" mechanics (and associated UI elements) have been all shown the door. A tragic thing, considering how I was really imagining the final product to include all of these as major mechanics, but as Souls shift and change, so does my game.

Unlocking Memories of the Old World

There is now a "drawback" to crafting spells - each pattern used will now permanently add a new feature used in the map generation of future Visions (dungeons). Most of the time, this is a creature. Can that charming spell component deal with the swathes of Felidols it just added to the monster pool? I say "drawback" in quotation marks, because it is basically the whole point of the game - you are adding more diversified creatures in your ultimate quest to recreate the Old World as it once was, with all its weird denizens.

The Faith's End facility (where the player begins the game) has also received a slight touch-up for thematic purposes. Your existence is confined to only 5 vertical rooms, with the Saints' Voice hologram as your sole company. Reinforced windows scattered across the corridor allowed the (now-long vanished) wardens to document your every motion. At the end of your containment chamber, an access gate with a few drawbridges allow access in and out of your cell - a privilege which is naturally not yours to choose.

Spoiler alert: those drawbridges won't stay locked for long. The cataclysm still rages outside the facility, and its perpetrators know you're trapped in there - your mind teeming with memories and an identity ripe for claiming. That will be something for a future week.

Bonus: Tighten Your Seat-Belts

Oh, as I was tinkering around with some potentially fun spell combinations, here is a particularly hilarious one I stumbled upon:

  • The EGO Form targets yourself (+4 Potency).
  • The GYVJI Function causes all targets to be brutally punched backwards, until they collide with an object, at which point they take massive damage and emit a damaging shockwave (at 4 Potency or more).
  • The PARACEON Function causes all targets to gain temporary invincibility for Potency x 1 turns.

This means:

  • EGO-PARACEON: You become temporarily invincible. Neat but boring.
  • EGO-GYVJI: You launch yourself into a wall and perish pathetically.
  • EGO-PARACEON-GYVJI: You BLAST OUT like a ROCKET LAUNCHER and EXTERMINATE every bystander with the shockwave, and leave COMPLETELY UNHARMED.

For bonus fun, add a good Contingency, like the "on Step" one I mentioned above.

Demonstration.