Description

Live Chat: Discord.
Get the latest builds: Patreon.
Get Mods here: Reddit.
Public Version for Heroine Rescue Team (v0.51): Here.
Download for Heroine Rumble is at the Heroine Rumble page.

Sunday, November 29, 2020

Test build and 2 new features.

 Patreon LINK.

Hello! I know I been quiet this month and well, thats because I was really focused on getting to feature parity with the new grid-card combat system. Well... I almost did it, everything works(TM) except for 3 things.

The things that are not working in this build are: 

  1. The "Correctional" free-play mode, because I don't have the hotbar anymore and need another way for the player to engage in grabs. 
  2. The grab selection menu (right now grabs are picked randomly) because undecided if I want to re-use the old selection menu or do something with cards to be more uniform with how rest of the UI works.
  3. Devices and carries, because they are not utilized very often yet and haven't got time to do it.

Everything else should just work(TM) tho, so give it a try and let me know what you think. 


In addition to various bugfixes, I also introduced two new features:

The first is an "Encore" special effect when an "Attack" is used on a grabbed enemy. This causes the ally that is grabbing the enemy to resume their grab and make grab progress (deals lust damage and so on.) I noticed that when you are trying to finish off enemies with grabs, often the rest of your party doesn't get anything to do and is just standing there fiddling their thumbs. Now everybody gets to participate, even when there's no room to join in the grab. (You can still join in the grab with a "Grab" effect when there are valid threesome+ grab positions to use)

Here is how it looks in action: https://twitter.com/Enlit3D/status/1332962726092554240


The second feature is the "Automatic grab joining when attacking on downed enemy." I'll be honest, this is primarily motivated by AI considerations. Because the AI does not pick their action/card in any intelligent manner, if this feature doesnt exist, then "interesting" things can only happen when the AI draws a "Grab" card randomly. Obviously, that is less fun. So this is a feature to make those "interesting" things occur more often.

Here is how it looks in action: https://twitter.com/Enlit3D/status/1332962243663646721


Sunday, November 15, 2020


Hello, I been working on a major combat system overhaul, (like, almost replacing the old thing kind of big) since November is probably the best time for it ;). I had to wait for the new combat system to in a more playable state because when I posted tidbits on how it works on discord, there were a lot of confusion. After many long programming hours, it is now  finally presentable. 

Here is an short overview of the major combat changes and explanation on each section to follow:

  1. Align objects to a hex grid
  2. Removal of accuracy rolls
  3. Perfect information on enemy decisions ahead of time
  4. Randomized available actions each turn

And if you want to see it in action, here is the link: https://twitter.com/Enlit3D/status/1327859383695331328 

Rationale for the changes: (Wall of Text warning)

Hex Grid

Previously, the game allows you to (almost) move anywhere on the battlefield. That was chosen because I thought using “distances and radius” would be more familiar to players that don't play much turn-based games.

However, this “freeform” system also introduces its share of problems. Because the game ultimately has to use a hidden grid system underneath to handle AI and pathfinding, this causes inaccuracies in movement cost calculations and makes it hard to be precise. This inaccuracy manifests itself in multiple ways. For example, it is difficult to judge whether or not a unit can move in through the gap in between two obstacles; similarly, it is hard to say whether a unit can reach its target if it needs to path around obstacles.

Due to this inaccuracy, this “freeform” movement system probably works better in games with larger and more open battlefields. This is the case in both Divinity and the new Baldur's Gate, where units can move far larger distances each turn than what CATC has. CATC has smaller and more confined battlefields. This is both a design choice and an implementation reality due to higher development costs to make those larger and beautiful environments.

So instead, now the game will use a hex grid system and everything will be aligned to grid. Instead of distances in meters, movement cost and ability range will now use grid distance. This makes everything precise. As a result, it is now possible to calculate exactly where the units can move to, and which hexes it threatens, as shown here:

Another change I made, is that now it is possible to select your target via the hexes. A common issue that players have is that it can be difficult to select the target via character models if there are multiple models bunched together. I find it to be much easier to use the hexes instead since it imposes a certain amount of separation in between units and that hexes never overlap (unless you position the camera parallel to the floor).

Accuracy Rolls (and Status Effect Chance) Removal

Accuracy rolls (hit and misses), status effect rolls, and grab success rolls are now removed. Which means all attacks will hit 100% of the time, and status infliction and grabs are resolved deterministically.

The first motivation behind this change is that it is frustrating to miss on a high chance to hit ability. I remedied this gradually and the average hit chance has steadily increased across different builds. For example, the basic melee attack started with a 80% chance to hit on the initial versions, to 100% chance to hit on the last version.

The second reason is that the percentage based status effect chance leaves too much thing to the dice for my taste. What I mean by this is for the hard disable effects like stun and hypothesis These effects are super powerful and the outcome of an entire encounter could pivot based on whether or not those abilities landed or not.

I am definitely not the first one that encountered this design problem. For example, in Divinity I, the game had a dice roll system to resolve the status effects, but they removed it in favor of the armor/magic armor system in Divinity II.

My original idea is to balance these power status effects by limiting their availability, via cooldowns so they can be used only once out of N turns. But otherwise they have ~100% chance to land on most enemies. This would be fine, except that now I have to deal with the issue of character progression. The original plan is that each character learns new abilities via leveling up, and they can freely put those new abilities on their hotbar to use. The issue is that eventually players may fill their hotbar with abilities just as powerful as the stuns and sleeps, and availability no longer becomes the limiting factor when the player has multiple strong disable abilities to pick from. Instead of only disabling once per 4 turns, it became disables once every turn.

Suffice to say, that puts a huge restraint on the design space and I wasn't sure what would be a good solution. Super powerful enemies? (since it’s likely they’ll get disabled every turn) Disable resistance on enemies to force more 50/50 dice rolls? (Don’t really want that either)

Perfect Information On Enemy Decisions

There is this cool mechanic that some turn-based strategy games have which I think is a good fit for CATC - Enemy Action Preview. Essentially, what this means is that the enemy unit will “announce” to the player what they are going to do for their turn. They may be attacking, or initiating a grab, or attempting to use a stun. Then the player can see what every enemy unit wants to do, and react accordingly.

I think this gives a lot of tactical options. Let’s start with an example by an enemy unit wanting to initiate a grab. The player sees this and has a couple of options. For example, the player can move all the units out of range so the enemy unit will waste their turn. Or perhaps it is better to use one of the disables the player has to make the enemy unit skip its turn. Or perhaps it would be better to not run away, but send one of your units closer to take one for the team. I hope this mechanic will lead to many interesting turns, and since I billed CATC as a strategic game, that is a positive effect.

Randomized available actions each turn

I have removed many sources of randomness, from “randomness” in pathing, hit/miss rolls, effects rolls, andAI uncertainty with the new Enemy Action Preview mechanic. I need to reintroduce randomness elsewhere. And I chose to do it with a semi-randomized ability bar each turn, with cards.

Essentially, what happens now is that each unit gets a deck, and every turn, they draw X cards from the deck and they pick 2 cards from their “hand” to use for that turn. Each card has different effects and characters can only do what the card says. For example, a character must play a Move card to move, an Attack card to attack, and a Grab card to initiate a grab.

A video is worth more than 1000 words and here is a preview of how the new combat system plays out:

Video Link.

Here are a more detailed summary of various card mechanics: (not everything working yet)

  • Every character gets their own deck, it is not shared across your team.
  • The deck is consisted of cards that the character innately possesses, plus their weapon (4-6 cards, unarmed is a weapon too), plus accessories (0-3 cards each)
  • You can find new weapons and accessories as loot in dungeons and equip them in base as you wish.
  • Each turn, a character gets a top action and a bottom action. Split cards ( cards with 2 halves) require top action to play the top half and bottom action to play the bottom half.
  • The majority of player use-able cards are Split cards.
  • Top half is generally associated with attack or an action, bottom half is generally associated with movement or utility.
  • It takes both top action and bottom action to play a Combined card.
  • The majority of enemy cards are Combined cards for brevity.
  • Cards you don’t play on each turn goes to the bottom of the deck, cards you play goes to the discarded pile. When you try to draw from the deck when the deck is empty, the cards from the discarded pile are shuffled back into the deck.
  • Attack effect allows the character to deal damage to enemies.
  • Movement effect allows the character to move X tiles.
  • Block effect gives X damage reduction from attacks until the end of next turn. (stackable)
  • Exhaust is a keyword meaning that once the card is used, it wouldn’t be available to use again until next rest. They are generally more powerful effects, but only single use per use.
  • A card may contain multiple effects, such as Move X, Attack Y, which means you first get to move X, then do an attack. The order must be applied as shown in the card. Move X, Attack Y is different from Move Y, Attack X.
  • AI draws a single card for the turn and then plays it to the best of its ability. It does not choose cards.
  • When a unit is in a grab, certain effects become grab specific effects. For example Move->Escape, Grab -> Reversal/Switch.
  • When grabbed, there will be an escape threshold, and you must play enough Move/Escape cards to beat that escape threshold to escape.