DIY Divinity

"Disassemble a legend, and realize what it is made of - bits and pieces of thoughts from those who shared it. Sew the storytellers back together, and gain power only spoken of in myths."

  • flavour text of the "Reforging Legends Past" tutorial node

The Games Foxes Play

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

First, I had a problem with the map generation system generally making unfun structures. Therefore, I made it so the player can build their own dungeon networks, since they probably know better than I do what is fun for them. When in doubt, outsource the labour.

Now, I am doing the same for spells.

DIY Divinity

I am retiring the concept of multiple pre-defined spells from my game - the à la DCSS kind with a massive list to choose from. I have all this lore about souls being malleable and adaptative, and then I forcefeed the player with hardcoded, immutable effects. No can do.

Instead, I have enabled the player to craft their own tools of destruction (and occasionally, creation)! Right now, there are two possible classes of components:

  • Form components target specific tiles. The Ego Form targets the tile you are standing on, the Beam Form targets all tiles in a straight line in front of you, and so on. They also assign their Caste to the Spell - Ego is Saintly, so all Ego- spells are Saintly as well.

  • Function components trigger an effect at each of the targeted tiles. The Senet Function induces Charm Touch status effects on all targets, the Gyvji Function punches all targets back, and so on.

Each component has a pattern. For example, this is Senet and this is Ego. If you imprison souls in the Soul Cage to draw those patterns like so, the Vision they create becomes special - upon clearing it, you will be awarded with an Ego-Senet spell. It is Saintly, because of the Ego- part. That means that from now on (after equipping the new spell), every single time you'll use a Saintly soul, instead of being healed, you'll enchant yourself with a Charm Touch.

Lore-wise, you are stitching together bits and pieces of the identities of your hapless prisoners. It's like the psychic equivalent of that "flesh golem" trope assembled from the body parts of many different species, but with minds instead of muscles.

With every update, this magic is getting darker and darker... Oh well, there are too many heroes in roguelikes anyhow.

Here is what Beam-Gyvji looks like - reliant on the Unhinged caste (because of Beam-), it fires out a hyper-knockback laser upon the first encountered unsuspecting fool. Sorry about the low framerate, I have yet to find a good GIF recorder that works on OSX (this is LICECap, suggested in the subreddit sidebar).

Fun? So far, very much so. Broken? I expect it to be. With free reign over what can be combined together, the player will probably be able to assemble some pretty deranged contraptions. Frankly, that's part of the fun, but I'll have to keep this system in check to ensure things remain interesting.

The Bottomless Dream-Pit

I made a thread a little while back wondering how I'd actually present those possible patterns to the player. I think I've made my decision - they are all somewhere in the research tree, but their placements are semi-randomized (semi-, because I want simple stuff like Ego- to come up early), and must be unlocked progressively. Each time the player crafts a new spell, all patterns used in the process are "researched" and the next nodes linked to it are unlocked, granting access to more complicated patterns.

There are also some "tutorial" nodes here and there which teach game mechanics, and are "researched" when the player does an action that shows mastery of the mechanic. For example, the node about Turbulent Souls is "researched" (green border) when the player successfully contains one inside the Soul Cage.

It seems to me like a rather interesting gameplay loop - draw patterns in the Cage, go challenge the Vision, return to claim your new spell, look at unlocked nodes... And craft a new spell, more powerful but requiring the defeat of a more difficult Vision, which your new spell should help you with. Great replayability - you might get the same Form two runs in a row, but that's just an invitation to try combining it with different Functions. I might try to go for a "skill tree" of sorts and make it so researching a certain pattern prevents you from researching another, forcing you to make choices.

The only small problem is that unlike the old versions of my game, there is kind of... uh, no way to lose. If you fail a Vision, sure, the souls get scrapped into Shattered Souls, but the only way you'd actually be done for would be somehow breaking every single one of your Souls. It can pathetically happen at the very beginning of the game when you only have one, but after that, it gets quite improbable.

I have ideas for a system that will add a proper loss condition, but that will be the topic of a future post...

Scream of a Million Minds

"A holographic dreamscape, woven from the intertwined daydreams of the Soul Cage's unfortunate denizens. A careless step into this theatre of dancing lights is all it takes to replace your world with their own."

  • Hypnotic Projector flavour text

The Games Foxes Play

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

This week, I have been continuing the complete redesign of my entire game. I feel a little heartsick butchering some huge blocks of code and knowing I am effectively invalidating hours of work, but I try to keep a holistic perspective. I couldn't be where I am now without all these missteps. Every good idea is the sum of many bad ones.

Complete UI rework

The abundance of numbers in the lower part of the sidebar was starting to irk me by its inelegance. I am not sure yet if the replacement I have cooked up is final, but it is certainly an improvement. Two receptacles of Souls illustrate the cacophony of minds screeching inside Terminal's psyche, and a little spinning wheel contains all Souls used in each room. Zero numbers, pure visual goodness. You can even see the turbulent Souls thrashing around! I hope it isn't too distracting. If it is, such an annoyance is clearly representative of the player character being driven mad by the endless chit-chat of psychic voices.

The Intangible Path

Every time I add something new to my game, a question keeps coming up - how in the world will I ever tutorialize this mechanic? I love interactive, text-less tutorials, but at this point I have to make some concessions.

The new Research Tree tries to address this problem, slightly inspired from the Thaumonomicon which appreciators of eldritch tentacles and power drills may recognize. Each "Node" contains an entry of thoughts and reflections from Terminal for those interested in the lore, and a column of condensed information to assist the aspiring soul manipulator. Doing certain things in the game that prove mastery of the previous topic will unlock the next node combined with a discrete notification, pushing the player further on the intangible path.

I imagine some of these concepts are still a bit nebulous for new players, so I hope to replace the placeholder grid in the lower right corner soon with some helpful GIFs - or perhaps a mini-interactable dungeon showing off the feature.

I wish to do more things than just tutorializing with this new feature, but that will be the topic of a later Sharing Saturday - with a possible connection to that one thread I made earlier this week. My gratitude to all kind commenters who pitched in. I already made the pattern finder code - possibly a little inefficient with all those nested loops? My tests seem to run fine for now. If everything goes according to plan, this should be positively awesome.

Sundered Minds

"Failure is as valuable as success and both are required for victory" was always a core part of my design philosophy for TGFP, but with the recent cullings, this precept had started to sink away from relevance. No longer! Upon dying inside a pocket dimension, you now respawn in the dimensional layer above, and all Souls contained in the Soul Cage become Shattered Souls. Lore-wise, I imagine this as a kind of failed surgery - the Souls not recovering from your incursion into the deepest reaches of their identity and breaking apart as a result.

This is not necessarily a bad thing. Yes, you have scrapped some potential building blocks for creating more pocket dimensions, but as Terminal is himself made out of what is basically spiritual sewage, this resource can be assimilated within your psyche to enhance its abilities. Every 3 Shattered Souls grant an additional free use of a spell in each combat room, which is a welcome boon in especially dangerous areas.

Random additional changes

  • I have excised the so-called "accidentally implemented feature" that is the grid effect appearing on the minimap. No, Onei, it's not a feature, it's a bug. I have deluded myself for long enough. Into the trash it goes.

  • Brand-new Hypnotic Projectors, placed inside a special room, constantly display the pocket dimension crafted by the Soul Cage in all its glory. They also double as a means of access, as you stare into the dancing holograms, substituting your reality with their own...

  • I have written and rewritten some flavour text and descriptions here and there to be less heavy on purple prose, and to hopefully leave a better lasting effect. Soul manipulation is dark work, we're not in the realm of bunnies and rainbows here! It's a tough balance finding the right point that screams "delusional zealot" without going full Caves of Qud 2: Attack on Thesaurus.

My obsession with development has been rekindled, and my free time is being mercilessly slaughtered on the altar to JavaScript. I pray that the flame will keep on burning for the weeks to come!