ALL IS SOUL

"A glass canister filled with wispy, pink vapour. The label reads, "Once the fluorescent tubes' buzzing becomes unbearable, break immediately and inhale contents. May induce ego death."

  • Saints' Breath flavour text

The Games Foxes Play

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

The fascination is getting to me. My ideas are getting weirder by the day. This might be the week in which I put the most hours into my game since its very inception. I don't even want to play video games anymore, I just want to make make make.

Return of the Diamond Fist

My beloved hyper-punch knockback spell is back after an all-too-long retirement, fully reprogrammed to use the new Soul system in a way that makes me feel like an absolute genius. In simple terms, taking a step will passively punch the creature on the next tile in front of the player, knockback that creature (if possible), and create a shockwave at its impact location.

In order to increase reliability, the companion active ability (which I somehow managed to fit in the same Soul) warps every creature in a short circle AOE as far from the caster as possible, in order to forcefully reposition creatures backing into corners or cuddling in packs to avoid getting punched.

Video demonstration.

The wheel UI in the top right has been reworked to automatically scan the player's Souls, detect all hotkey bindings and add them as clickable buttons. Currently, you see it scanning the Saintly Soul, containing the WASD movement commands, and then the Ordered Soul, with that active I just mentioned assigned to 1. Yes, if you mess up your starting Saintly Soul, you may literally lose the ability to move. I am going to need a surrender button.

I am not too sure what to limit these actives with, or when they recharge... Mana, creatures defeated, turns passed? I can't quite find a satistfying mechanic that would tie in with my game. Maybe I should just let these abilities get spammed as much as the player wants and balance them around that.

ALL IS SOUL

I am currently in the process of removing tiles from my game. That's right, every wall, feature and doorway is being turned into a creature that believes it is an inanimate object. Their Souls, devoid of any reaction to the passage of time, only have simple Axioms such as "You are untargetable.".

(Floor tiles will remain as the only tile type).

I expect lots of horrible bugs to surface from this rework, but for now, it has allowed me to create this hilarious "reverse black hole" giga-spell, which instantly makes any pain endured in development worth it. The matching Soul goes roughly like this: "When the spell hotkey is pressed, target all adjacent tiles to the caster, expand, expand, expand, [...], exclude the caster's tile, warp every targeted creature as far away from the caster as possible."

There has been previous times where I journeyed into fundamental reworks like this only to get disappointed and undo everything. This time, I think this is genuinely a great idea:

  • If I am not wrong, not having to draw tiles and just plopping creatures on a black background will improve performance considerably on my potato laptop.
  • If I am not wrong, only having to save the position, health and Souls of creatures and not tiles will do wonders for my soon-to-be save & load system.
  • Lore-wise and flavour-wise, it's just perfect.

I'll be building a starter dungeon of sorts soon where every single interaction revolves around my Soul system. If everything goes according to plan, it will have cool powers like enemy ability copying and body swapping (both of which are trivial due to the Soul system - the creature which currently is the "player" is only determined by which entity is holding the legendary Reality Anchor...)

Perhaps... a new demo before the end of the year is possible? That will depend on what Real Life™ has in store for me...

Many-Worlds Interpretation

"There were a few who craved peace, who undid art in search of a moment without meaning. When they realized their zeal for annihilation was Artistic in itself, their cries could be heard even through the walls of Faith's End."

  • Stillness of Granite, Returned flavour text

The Games Foxes Play

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

The Great Purge continues, with easily 25% of my old code having now been subjugated to utter annihilation. In doing so, I have finally achieved what I wanted: a world map that actually works!

Many-Worlds Interpretation

I can now put all kinds of floor themes in these little mosaics to connect them. Automatically, Hypnotic Wells are generated on each floor to allow passage between each layer. The transition is seamless, and I've put in so much work in making sure the illusion looked perfect. Some may have seen my post on r/roguelikes, which was, as much as I hate to admit it, quite motivating. Wretched crow-brained fool that I am, who judges worth according to internet clout!

Additionally, I've been working on a rework of the UI sidebar to inspect creatures on click. I'm not too sure about those lore descriptions spoken in the protagonist's voice, it's a little cringe, uninformative and I'll probably be remaking those. However, it is much more minimalist than the last iteration! To match my recent Great Purge of many game mechanics, it only has a name, lore description, Soul menu and health bar. The latter capping at 4!

Indeed, every entity in the game can only have between 1 to 4 health points. Naturally, there is a catch - the system already allows for creating Souls like "up to 3 times, on death, respawn at full health". Every creature might be as squishy as a wet tissue, but with the power of soul-forging, nothing is impossible.

I am currently working on a saving-and-loading system (completely different from my failed first attempt) For this purpose, I am simplifying the data structures all over the game, making sure everything can be stored in a compact JSON file that isn't as long as the distance between the Sun and Proxima Centauri. It's actually quite the interesting puzzle! I've already made it so all RNG in the game is derived from a one word seed, which should save me the horrendous burden that would be storing the position of every single tile in the save file.

In the last hour, I just tinkered up a possibly cursed but infinitely amusing system where I log every single player action and replay it on loading. Thank you Chaigidel for the suggestion. It is surprisingly fast, but I do not know how it will scale up as I expand my game.

Annoying Technowizardry

My crusty 8 years old laptop is now only capable of running my game at 30 FPS, which I judge to be a disgrace for a traditional roguelike. Yes, the GPU in it is ranked as "terrible" on UserBenchmark, but that seems like a poor excuse for what is basically a 2D game with almost no animation. The game used to run a lot better on it, but I did something in the last month that wrecked it (while I was developing on another computer) and I have no idea what it was.

Meanwhile, the M1 Mac Mini I also tested my game on has perfect performance. I'm actually not sure what the community's expectations are - I know roguelikes are supposed to be able to run on glorified calculators, but how far do people stretch this? Are you exiled and unpersoned from the community should you dare release something that can't run on a Commodore 64?

I have a few ideas for optimization. But I don't expect it to be easy.