Before we begin, I'll have to admit: it is a little daunting to write about this game I've slowly been working on for the past year. And for several reasons.
For one, it has been a long, long time since I've written anything long-form. And for another, I'm not really sure I have much to show yet. To begin with, I already do make a lot of my own personal notes while working on this game. But by starting this dev log, I guess I hope to put it in a more presentable manner. At some point further along in its development, it may even be a good way to promote the game.
In any case, where to begin? I guess I'll start there.
As always, it started with the urge that I should be working on some 'project', preferably a game of some sort. I spent some time debating between picking up the last project I abandoned, Project Vivify (a turn-based RPG where I wanted to focus mostly on the combat) or making a Visual Novel ("VN") (where I'd want to focus on story). But I concluded that while I loved working on stories, personally VNs just never really appealed to me, so it'd feel weird to be working on a game in a genre that I've not had much experience in nor enjoyed much.
Then XCOM: Chimera Squad was released on 23 April 2020 and I rediscovered my love for tactical role-playing games ("TRPGs") (alternatively, people also call them strategy RPGs). I've always been a fan of the genre, my all-time favourite game from childhood being Final Fantasy Tactics (my very first Final Fantasy game even). TRPGs I've played range from the the more 'mainstream' (Tactics Ogre: LUCT, XCOM:EU/EW, XCOM 2, Disgaea, Fire Emblem: Three Houses) to the indies (Into the Breach, Fell Seal, Wargroove, Troubleshooter: Abandoned Children), and I remember playing some obscure ones from the PS1/PS2 era (Hoshigami, Vanguard Bandits, La Pucelle: Tactics, Eternal Eyes).
On 30 April 2020, I decided I wanted to make a TRPG. At the time, I did realize that this was probably a 'bad idea'. While I was no stranger to working on turn-based, grid-based games, this would be my first foray into making a 3D game (I've only exclusively worked on 2D games up to this point). Plus I also decided that this would be a good opportunity to learn to use Unreal Engine 4 for the very first time.
My graveyard of abandoned, (mostly) unfinished games beckoned. But still, I thought if I was going to spend any good amount of time on developing this game, it might as well be the type of game I'd enjoy playing. And TRPGs are definitely a niche genre that people like me tend to starve for, relying mostly on indie studios to deliver the goods or going back to the old classics. Would it be fun to make though? There's a lot I'd have to learn, so maybe? Even at the time, I journaled that I was unsure whether it'll end up as a game, but I just wanted to try make a simple implementation for a TRPG with grid-based movement and combat.
This was more than a month into the first COVID-19 pandemic lockdown, so at the time I dubbed it 'Project Lockdown'. Development started proper on 14 May 2020, and eventually I started referring to it as 'Project Gunwitches'.
Project Gunwitches will be a short tactical, turn-based RPG where you control a squad of Gunwitches who've been tasked to take down a group of Magical Girls gone bad. That's the basic premise, but the details of the story will likely change further into development. The focus will primarily be the combat, interspersed with some dialogue/story scenes and I aim for at least 20+ levels. This is much shorter than most TRPGs I've seen, which tend to have at least 40+ levels for the main story (not including any bonus or optional levels), but is a compromise between what I feel is achievable and how long the game needs to be without feeling too short.
Progress Thus Far
While it has been 8 months since I first started this project, I've only spent roughly 44 days last year (at least according to my journals) working on it. So that's around 2 working months' worth of progress.
- Camera movements: WASD to pan, QE to rotate, mouse scroll to zoom in and out.
- Victory/defeat condition: Defeat all enemies vs all player units defeated.
- Turn order: The order is randomised at the start.
- 2-action system: Each turn, a character can perform up to 2 actions, e.g. move, perform an ability, reload, or end turn. Currently, this allows for moving twice or performing 2 abilities in a row, but I might wish to change this later on.
- Movement: Movement range is highlighted during player character's turn. Straight and diagonal movement are allowed.
- Ability Targeting: May target a single tile or multiple tiles in an area of effect ("AoE").
- Elemental Resistances: Abilities have elemental properties and units can have elemental resistances: less than 0 means they take more damage, 1-100 means they take less damage, and >100 means they absorb the damage as HP. I am still deciding whether this system is necessary.
- Status Effects: Abilities can cause status effects on units. So far, Burning (deals damage after unit's turn) and Entangled (reduces Movement range to 0) have been implemented.
- Aim/Dodge: Most attacks and abilities have a % chance to miss based on the attacking character's Aim stat and the defending character's Dodge stat. Currently this isn't explicit unless looking at the debug print logs.
- Reload system: Each character has 2-3 abilities equipped that can only be used once. The character then has to Reload to be able to use any depleted abilities.
I've also implemented tile objects and walls with cover mechanics (similar to XCOM) and tiles with different elevation, but currently they're broken due to a shift from a raycast-based targeting system to a purely tile-based targeting system. I'll talk more about that in another post once I get around to fixing it.
This Week - The Aura System
Previously, I've only dedicated days when I'm truly free and feel like working on the project - and a lot of downtime was spent on ideation and researching, rather than testing things out by implementing them first-hand. Starting this year, I'll be trying to work on the game more consistently, that is to say, I'll plan what I want to work on for each week, then spend just a couple of hours doing what I can at the end of each workday. To that end, I will be periodically updating this blog to present what I've done.
For this week, it's the Aura system.
Units can have Auras that affect certain units (any, only self, allies, allies but not self, enemies). So far, Stoneguard Aura has been implemented: attacks on allied unit is redirected to this unit instead.
Originally, I wanted this system for the Turret Witch - her whole shtick is that she doesn't attack directly, but instead summons immobile turrets on the battlefield with different capabilities.
But now I'm thinking I could use Auras more broadly for other units as well. Something I'll need to watch out for is if I get too many Auras on the battlefield, the visual UI (the circle indicating the Aura's range) might start to clutter the screen.
I do intend to have an additional visual UI on the unit affected by the Aura itself for clarity. So if the circles do get a bit much, I might experiment with them only appearing when necessary. For example, when player highlights tiles nearby while deciding where to move or what to target.
Next week: Obstructions, cover, and terrain elevation - let's hope I manage to get them fixed!