Break the Siege Dev Log #1
Welcome to the first Break the Siege development blog. Break the Siege is a tactical turn-based RPG being developed for PC. Development started about 3 months ago. This is the first version of the game that is technically a playable game from start to finish. There are many more features I hope to implement but I thought this was a good place to start documenting the creation of the Break the Siege. Please join me on my journey.
My goal with Break the Siege is to make a turn based tactical game similar to Fire Emblem and cross it with the intensity of Gears of War's horde mode. The very basic gameplay premise is that the player controls a handful of units that must fend off wave after wave of demons emerging from a nearby Hellmouth. I am working on a larger narrative for the game but right now I want to focus on the gameplay.
Please feel free to watch the gameplay video for Alpha 0_1.
The Right Tools
This was not my first attempt to create “Break the Siege”. In March 2019, I started creating the first prototype but I built it from the ground up in Unity. I was still in school at the time and working on my other projects “Lantern” and “Company Man”. After about 3 months it became apparent to me that programming a turn based tactical game completely by myself and creating all the art assets was going to be way too much work for me. However, the prototype was at least playable and got the feel across that I wanted. I put the project on the backburner for sometime.
It wasn’t until December of 2019 when I discovered a new “Turn Based Toolkit” on the Unity Asset store. This toolkit was really close to what I wanted from Break the Siege. Among the list of features I was looking for the Turn Based Tookit had quite a few:
Grid Based Movement
Custom environment tiles with easy to create maps
Abilities with a wide range of variables such as grid size, custom animations, and team effected.
Ability parameters: Different damage types and status effects
Standard Units have health, action points, magic armor, and physical armor
This was already more features than I was able to program by myself in the original three months I worked on Break the Siege from the ground up. I gladly increased the game’s budget from $0 to $20 to buy the turn based toolkit. Of course there was some features that I knew right away that I would need:
Spawnable Enemies: The toolkit doesn’t include a feature to spawn more enemies. It assumes the user will place them all on the map.
Defeat Waves of Enemies: The toolkit comes with quite a few win conditions such as defeat x amount of enemies or survive x amount of waves. Both close but not exactly what Siege needed.
Ability Cooldown: Out of the box abilities could be used every turn. I playtested without a cooldown for a while but the player units just felt too overpowered.
Custom Parameters/status effects: Abilities had some status effects but I had to program a handful of custom parameters that affect movement and AP.
The one big downside to the “Turnbased toolkit” is the lack of documentation or commented code. There is great documentation explaining what each prefab and script does, but nothing that breaks down how any of the C# code works. This had led to a lot of reverse engineering of the code. Luckily, the code is very easy to read and this still was a lot faster than programming the whole thing from the ground up.
The Main Lesson Learned
The main reason I consider this playable version the first alpha instead of a prototype is that it is technically a complete game. There is a start screen with custom UI, 3 playable levels, and an end screen that lets the player know they won. There is also some key character art in place. Time to publish to steam.
Currently the game has 4 playable hero units and two types of enemy units. The enemies just have standard attacks but the hero units each have a standard attack and two abilities. One of my design goals is to make sure the player has many different ways to tackle challenges. I don’t want there to be one tactic that works best with every fight. After getting some player feedback, I’ve determined the first immediate problem:
Static Attack Numbers
Attacks currently do a set amount of damage. There is no probability or dice roll involved in attacking. David’s standard attack will always do 2 dmg and Jarrod’s standard attack will always do 4 dmg. When an enemy has 10hp it means the player knows exactly what they need to do to defeat them. Two attacks from Jarrod and one from David. There is no risk involved and hardly any incentive to use the other attacks.
This also quickly makes the fights a little repetitive. Every action needs to have a little bit of risk and reward to it. So the main feature I’ll be focusing on is a “Combat Calculator”. This means a few things
Every Attack will be based on a dice roll
Every character will have stats that affect their rolls.
To be completely honest, I’ve never really taken the time to try and understand the dice rolls or probability systems in RPGs. So first things first I’m going to be doing a lot of research to try and understand how some of my favorite games work under the skin.
For now I’m only going to focus on four stats to keep the scope limited. The four stats will be: Attack, defense, accuracy, and evasion. This will help me get started on a basic combat equation.
Currently I have a long list of features I would like to implement, but I really want to concentrate on two major things:
Giving the player more choice and agency.
Making each fight feel unique.
In Alpha 0.1, overall the player already does have a good amount of choice in battle but very quickly they will begin using the same strategies. I don’t want them to think of the characters as one dimensional. I don’t want Jarrod as the unit who can take the most hits or Mariette as the character who only stuns. The goal is to have each unit have strengths and weaknesses but not restricted to just one role.
I don’t want to give the player complete control over what abilities and stats a character has, this would be way out of scope. I am thinking of implementing a small skill tree instead. Basically, I want each character to have a group of say 10 abilities they can learn but the player will only be able to access half of those on one playthrough. Overall, I think this will make winning each fight more exciting because it will be with abilities the player selected and it’ll mean earning points towards new abilities. I may begin implementation for this feature but it may not make the next build of the game.
Thank you for joining me for the first development log. I look forward to showing you the next version of Break the Siege!