Gaseous Cybernetics

I have a GitHub now! My code is accessible by all, and I hope programmers will recount its terrifying syntax around campfires to scare each other. I never had actual dev experience and learned everything from the internet, so, uh, what even are those "good practices" everyone talks about? Surely they don't have anything to do with the funny noises my computer fans make when I boot up my game...

The Games Foxes Play (github |original post)

This week, I started work on diversifying the 4 branches of the game. Traditionally, roguelike players move between branches by finding entrances, but I think that's kind of boring. It makes every game start in a "Dungeon", locking away all the cool environments behind progression, and makes early splats extremely repetitive. In my game, you will always start in the same branch, yes, but every single time you die, you will randomly continue your adventure in one of the other branches. If you die in F:3, you may respawn in C:4, and when you later die in C:7, you might respawn in F:8. Dying in my game is part of the mechanics, and the amount of times you can respawn is your "real" HP bar. I was inspired by Felid gameplay in DCSS, after all.

Here are the 4 branches. Doing a certain action in each one will advance the "global progression", which will gradually spawn harder enemies, and bring the ultimate end of the dungeon closer and closer.

  • Faith's End was the one seen in my previous gameplay demonstrations. It's a long series of small, claustrophobic rooms, which must be cleared to proceed. The focus here is on small-scale puzzles, positioning and strategy, and slow-paced gameplay. In the future, I plan to add a "maze" generator, and some hallways/L-shaped rooms for diversity. Clearing a room advances the global progression.

  • Roseic Circus takes place in a single large 18x18 room. The room's design is selected from a batch of prefab vaults - I will make more varied shapes in the future. Waves of enemies spawn one by one, and defeating a wave advances global progression. Gameplay here will be chaotic and wacky, with a focus on spamming infinite-use spells and destroying massive groups of enemies with impressive AOE power. Ziggurats from DCSS were my main inspiration here! There's also a hallucinogenic toxin that floats around the battlefield, causing some strange effects.

  • Serene Spire -- the headquarters of the Harmony, the game's main antagonists -- is another "tight" area similarly to Faith's End. This time, there's a gravity effect, inspired from Hyperrogue's Ivory Tower. The threat of falling off the platforms in this vertical dungeon is ever-present, and doing so will result in instant death. Clearing a screen's worth of platforms advances the global progression. I plan that all enemies here will deal zero damage, and will instead use tricks, such as pushing you off into the abyss, or hijacking your inventory to use it against you. Gameplay here will be of the rushing, movement-based type, as exits are always unlocked, and actually trying to slay enemies here can get quite dangerous.

  • Edge of Reality is the most "traditional roguelike" area I have. The generation is very reminiscent of a big cave, with limited Field-of-View to boot (though it does go through walls). Prefab vaults will be scattered around the expanse with a collection of difficult monsters, and activating the switch at the centre of the vault will advance global progression. The expanse is "infinite", in that places far away from you get constantly re-generated and shifted into different things, like DCSS's Abyss branch. No screenshots yet, I can get the cave generation to work somewhat, but it's a horrendous buggy mess that makes my computer fans go brrrrrr.

There is also new music, once again composed by my friend -- one for the Roseic Circus area, and one for a later section of Faith's End.


Another thing I worked on this week was solving a design problem. Think of my game's magic system as a deck of cards: you slay an enemy, you get a card with their spell on it (it's called a "soul"). You can also purchase really great spells at special Harmonic stations. The problem is that as the game progresses, you start to slay massive hordes of enemies, and your deck becomes bloated with 100+ basic and weak spells while the actual good spells are buried somewhere in there. This is boring -- what's the point of getting cool powers if you can only use them every 5 minutes?

Most designers may have done something like making it so there's only a 25% chance of soul drops on kill. I am not "most designers".

Enter the Harmonic Modulators. These creepy cybernetics can only be achieved through two means: found in the Serene Spire, or obtained from a perfect result at a Harmonic station. They are permanent items that you can activate/deactivate at any time. While they are active, you gain an extremely good status effect, like being able to dash every time you take a step, or making it so drawing souls does not take an action. Additionally, all Serene souls (which are Harmony members in the game's lore) gain a special passive effect as long as your cybernetic is active.

The eerie part is that they constantly consume your "basic" souls while they are active. The ones that you loot from random common monsters. And while this is a good thing, as it cuts down the bloat from your inventory, it also makes your inventory much, much less diverse. Every time you use a Serene soul, another random soul in your inventory gets assimilated into a Serene soul. Less souls mean quicker conversion of your entire inventory, at which point you become Harmonized yourself.

These cybernetics look like they're free to use and even provide a benefit (purifying your items), but they are actually quite dangerous. Be careful, and do not fall for the Harmony's tricks!

Next up, I'll populate the Roseic Circus and the Serene Spire with some inhabitants. I have a few ideas already...

AAAAAANNNND SLAM!

AAAAAANNNND SLAM!

I knew this was going to be a funny idea for a spell, but it has exceeded all my expectations. I simply cannot get enough of it. (Not normal conditions - I am cheating to get infinite uses and extra HP).


The Games Foxes Play

This week, I've just been mass producing new enemies and spells (they are called "souls" in the game, because lore-wise, you are channelling the memory of a deceased legend to perform one of the feats they were known for). A huge thank you to everyone who commented in my recent thread on this subreddit for cool creature designs, it has certainly helped with my inspiration. Some of the new additions include:

  • Greedswept Felidol - A cursed cat statue that leaves behind gemstone rubble on a tile on death, which will steal the soul of any creature killed on it to reanimate the idol.

  • Midnight Ragemaw - A pesky bat-like creature that has 1 HP, but constantly respawns on death until the only enemies left are other Ragemaws.

  • Self-Erased Monk - A nasty spellcaster that can use a randomly selected spell among six different ones, from leaving landmines to dashing around.

  • Rendfly Vermin - An extremely annoying fly that buzzes everywhere with insane speed, deals zero damage, but inflicts a "damage delay" effect on enemies. Basically, if I hit a "delayed" creature for 3 damage, they will only take that damage in a few turns. The sound effect makes me go crazy and I might remove it.

  • Humming Paperweaver - My favourite. A completely passive enemy that leaves behind cute little paper pinwheels on the floor. If you step on one, the Weaver enters RAGE MODE, gains Haste, and INFINITE USES of that punching spell I initiated my post with.

I love that spell so, so much, in case that wasn't obvious. Here, I gave myself 99 HP (that's why there's red bars everywhere) and infinite punches, and had an epic 1v1 with a single 99 HP Paperweaver. I swear, this is still a turn-based game, I'm just mashing the keys very fast. In this scenario (warning: loud), I gave myself 999 HP, and accidentally discovered a bug that caused the Felidol enemy to get duplicated if slain by the punch spell. Fixed now, but hilarious to see. If anyone accuses me of slacking off, know that cheating at my game made me find a glitch I might not have found otherwise!


I made other new spells in addition to that punching one, but I don't want to turn this post into a novel anymore than it already is, and would rather like to talk about one of the design problems I encountered with the Serene Harmonizer gambling mini-game, which I described in my last Sharing Saturday post. To put it bluntly, there was absolutely no reason to actually shoot for a good result.

If the player completely failed the challenge, they would earn themselves a snarky comment from the Harmonizer, and... 4 souls from the "bad" tier, which was just an array in which I lumped all the spells I judged to be mediocre. Except they weren't actually mediocre, due to my design philosophy of not ever making anything that's objectively "weaker" than a counterpart. For example, is "charm the next enemy you touch" good or bad? It's bad if you charm some good-for-nothing run-and-stab-you melee dude, but it's outrageously good if you manage to charm a healer and earn yourself your own little private life support. Or an enraged Paperweaver. For the record, that charm power was considered to be part of the "bad" tier, because I made it when enemies were still uncreative and had their threat level based on numbers rather than power. Everything is just so, so situational, and "tiers" had no place in my game, so they were all thrown out.

Now, you are invited to "bet" an amount of souls from 1 to 4. In the actual game lore and descriptions, it's this extremely creepy process revolving around machines that expunge all trace of individuality and identity from the unfortunate prisoners. The souls will also express their disapproval in the message box (message varies depending on which soul it is) when you lock them up in the... "Soulscribes", as they are called. Metal.

Then, once again, you do a little arithmetic puzzle trying to reach a perfect zero. For every 3 points separating you from that goal, each soul you wagered receives a 1% Harmonization chance. Having a negative result is now extremely offensive and will instantly bring your Harmonization chance to 100%. For each soul, the Harmonization chance is rolled, and if it hits... instead of one of those legendary figures, you get a Serene soul. It's literally a clone of the Serene Harmonizer, and it will try to corrupt you from the inside by progressively assimilating your entire inventory into more Serene souls, until you root them out by force. Nasty. At least, they are pretty good in combat, letting you polymorph enemies into Harmonizer summons that fight for you Once again, cheating so I can use it every room, just for demonstration purposes.

I really like this change, because it rockets the creepiness and the horror factor of the Harmony into the stratosphere. Having these innocent souls watch you fill in the Relay while they tremble in anguish every time a Harmonization % trickles in is anxiety inducing.


Finally, my highly esteemed friend has been hard at work on the game's music. There's a new atmospheric title screen theme, and a snazzy "level 1" theme. However, the one I'd like to talk about here is the new theme song for the Harmony - the game's lead antagonistic faction. It starts as this very quiet, light and carefree music box tune, backed by an unnerving crackle of static. The latter represents the protagonist - and hopefully the player's - disgust towards the Harmony and its assimilationist ideology. However, every time their theme song is supposed to play, the game calculates how corrupted you are by measuring the number of Serene souls in your inventory versus your non-Serene souls. The more control the Harmony holds over your psyche, the more layers are added to the music box, which will now be doubled by xylophones, triangles and synthetic vocals. Eventually, the creepy drone in the background is drowned out by the sheer Harmonic holy power, demonstrating how enthralled the protagonist is becoming. In this video, I compiled together 3 excerpts out of the 6 different infection stages (see description for timestamps).

It's so, so creepy, and brings home that half-horror, half-tranquil atmosphere I was shooting for.


For this next week, I will be working on increasing room shape variety, from narrow corridors to massive battle arenas. For that, though, I will need to implement a system where not every tile in the room is visible at once, but things still happen out of Line-of-Sight. It's FOV without walls blocking vision - think DCSS's Ashenzari powers. My code will have to be really tampered with to make this work, and I hope it won't be too difficult.