- Add Review
- Subscribe
- Nominate
- Submit Media
- RSS
The Looming Development Cycle - Combat
- narcodis
- 07/19/2022 04:12 AM
- 918 views
Okay, so with this blog I'm going to dive a bit deep. The combat in The Looming Spire has been something that has plagued me as a developer in the time I have worked on this project, and I've wanted to -- for a long time -- break down the elements of its combat system in blog form. But to do that, I need to get into the history of this game a bit. So, here goes.
This game started out as a tech demo in 2009/2010. Rpg Maker VX was the hotness at the time, but I, as someone who had not yet learned how to write code, was incredible frustrated at the impotence of its event editor. Compared to an older tool (Rpg Maker 2003), the capability of the event system felt gutted and hollow. I think the rationale was (and still is!) that if scripting is introduced, events no longer need the technical power that 2003 provided. And to some degree, that's true. Scripting has been a very powerful and necessary component to introduce to the Rpg Maker series, but gutting the event editor left people like myself -- who really really enjoyed building crazy things with the event system -- in the lurch.
So I decided, for fun to go back and make something out of the old tool I loved and spent way too much time on growing up, RM2k3. The concept was simple -- you are a guy with a sword. You bump into a monster, battle starts right there on the map. You take turns attacking each other until one of you dies. The end. That was the entire conceit of the battle system.
Once I got a working prototype of that thing, I decided to try adding some more stuff. Obviously, items had to be included. Need to make potions. Magic seemed like a cool idea. How about multiple enemies? How do we learn magic, by the way? What other items should we add? Oh, maybe something to heal status effects... guess we should add status effects. On an on -- the evolution of the combat system, which was the entire game at the time, was pretty organic in this way. Eventually, there was this idea of making a dungeon crawler, with a UI where your HP was on screen at all times, and you could use magic to manipulate the environment and solve puzzles.
Eventually an event on RMN called "Release Something!" came around, which prompted me to release a small technical demo, and create this very gamepage. The demo wasn't much more than 6 small rooms and some monsters to beat up. But it was received pretty well and I thought, hey what the heck, why not try to make a full game like this? And thus, it began.
But, as you can imagine, the organic growth and design of this game was not sustainable. To make this idea last the entire length of a video game, it needed more substance. Decisions that were made early on in development no longer made sense and had to be re-designed. Lots of really insane implementation details needed to be addressed. I won't get into the technical details too deeply (the entire battle engine and more has been completely rewritten... at least twice) but I am going to try to explain what my design philosophy has been, where some of the pain lies, and the state of the game's combat as it exists today.
So first...
Design Philosophy
My design philosophy, in much of anything I create, has always been about constraints. Often, the constraints of the medium can lead to work that really branches out, explores and pushes the boundaries of those constraints as far as they'll go, whereas another medium with far less constraints might encourage someone (like myself) to feel more at home playing it safe, or worse, adopting a "kitchen sink" approach to your game design. Not too much or too little; with the right constraints, you are merely outlining what you desire to accomplish.
There are two kinds of constraints at play here: technical and self-imposed.
The technical constraints here are kind of obvious from the get-go: this is a game made in Rpg Maker 2003. And for all the love I have for this tool, the amount of effort required to produce meaningful results on this engine is a bit absurd. But this means the entire battle system is cobbled together using events only, using pictures to display UI elements and other things. This isn't the first time something like this has been built using this tool, and I don't think it'll be the last either. And perhaps I'm crazy for continuing with it after twelve years. But... well, yeah.
Secondly, self-imposed constraints. Here's where I get a bit philosophical. Despite having spent a helluva lot of time on the combat system, tweaking elements here and there, designing enemies & abilities, setting up battles, re-writing tons of things... I've never wanted the combat in this game to be the star of the show. I've always wanted the game to feel more like an adventure game, akin more to a Zelda, Metroid, Castlevania, etc, rather than your standard JRPG. I just thought, what if Link to the Past had a turn-based combat system? What would it need to be to evoke the same feeling as those games? I would later play a game called Vagrant Story, and realize my vision was closer to that game than anything else, albeit I'm aiming for much simpler and more strictly turn-based. I digress -- the point here is that I always wanted the Looming Spire to be a single-character RPG with turn-based combat, where combat is a meaningful element of the overall challenge, always fast-paced yet impactful, but never feeling too oppressive. As such, battles never have more than three enemies.
Alright, so with those ideas in mind.... Why is this blog post so long already?
Evolution of the Battle System
Let's take a look at how the battle system has evolved over time.
2010
Early in-game screenshots circa 2010 captured by Darken (featuring Windows XP, I think?)
Early on, the battles were exactly as described above. You bump into a slime, and a small menu pops up right next to the hero, allowing you to choose "Fight" "Skill" and "Item". If I recall, back then, "Skill" allowed you to use whatever runes you had equipped (the lightning bolt on the lower-left side of the screenshot is one of the equipped runes), each rune having a single corresponding ability. I'm going to be completely honest though, I don't remember the details of how it worked this early on. I do wish I had a copy of this first download, would be fun to look back on.
Another early screenshot, showing an iteration of the first boss
Things evolved a bit over the coming months. The HUD changed, for one. Magic was learned by "leveling up" your runes, and this is where the rune system was starting to take shape.
For each rune (Fire, Frost, Sky, Earth, Light, Void), there are base elemental spells, i.e. three fire spells, three frost spells, etc.
On top of that, there is one spell for each pair of runes: one fire+frost spell, one fire+sky spell, one frost+sky spell, etc. These are known as doublespells.
Finally, there are four triplespells that can be learned, which is a spell that combines the power of three different runes.
Each of these spells were learned naturally, as you levelled up your runes. Level 1 gives a spell, level 2 gives a spell, level 3 enables learning doublespells, level 4 learns a spell, and level 5 enables learning triplespells. Back then, there was still an MP system, and casting a spell cost MP.
2011
Yet another early screenshot
On the next iteration, timed hits were introduced. Well, in a limited capacity. You can perform a "timed hit", which is pressing the confirm button right as you land an attack with your sword. This was to spice up things a bit, to make the basic attack maneuver feel a little more involved. It's one of the few features that has gone relatively unchanged as the battle system has evolved.
2014
An old screenshot, but relatively recent compared to the earlier ones
At this point is where the game began to run into development hell, something I might write a blog about someday when I finish this damn game. But as you can see, the HUD has relatively gone unchanged -- an update to the character was made, but that's about it. Development slowed to a crawl, but even slower was development of the battle system -- there were some fundamental flaws in how I was building things that made changing anything extremely time-consuming and difficult, and sapped my motivation away. I didn't know enough about how to build and maintain a large project like this at the time!
And it was at this point that development of this game would lapse, on and off, for years at a time. I'd work on the game for a couple months, little bits here and there really, and then just drop it, feeling too overwhelmed with the idea that it is a waste of time. Perhaps, in a sense, that is true, but I think viewing it as an absolute like that came from a lack of perspective on my part. As I've gotten older, I find the only things worth spending your time on are the things that make you happy. Though I might gripe about it, making this game comes from a place of love, and I get excited making things work with it. I'm pretty much making it only for myself. Okay okay, I'm getting off track again.
2019
Fancy moving screenshot of the most recent iteration of the combat menu (2019)
This here is, I believe, the third time the battle engine was re-written. And I mean, fully re-written. At this point in development, the steam version of RPG Maker 2003 had been released, and I began taking advantage of its new features, and that meant tackling the behemoth of revisiting a lot of old code. Things were trucking along!
The rune system was reworked quite a bit. Rather than learning spells through levelling, things were altered to grant three base element spells with each rune, and learning double/triple spells comes about by "finding" them in the dungeon. At this point, you can still level up your runes, but all it does is increase the damage/effectiveness of spells, no new abilities are acquired.
Otherwise, things were mostly the same! Timed hits still exist, enemies are largely unchanged.
2021
Fairly recent video, showing off the first version of the "parry" system
Later on, the UI was changed QUITE a bit, and the "energy" system was introduced. No longer does your hero have MP. You start the battle with 0 energy, but at the start of each turn, you gain 2 energy. Attacking costs 1 energy, and each timed hit costs another energy, up to 3. Spells each have a fixed energy cost, and using an item or passing your turn costs zero energy.
Also, a "parry" system was added. The idea here was to allow for players to avoid more combat than they had to -- to avoid the need for the player to grind experience. If you can parry well, you can cruise through the game!
This worked... sorta OK. To parry, you could press SHIFT to lift up your sword in a defensive stance between your turns. If the enemy attacked you while holding up your sword, you got a chance to parry. While holding up your sword, your turn meter doesn't increase at all. When you parry, you gain an extra energy point!
At first, if the enemy attacked while holding your sword up, you parry. This felt both busted and bad at the same time. Due to how the combat engine was built, the enemy's attack animation happens outside of the event loop in which you can lift up your sword, so parrying in a reflexive manner was not possible; you had to fully anticipate when the enemy would attack. But if you could do that (and it wasn't hard to do, honestly), then you could avoid almost all damage an enemy puts out, outside of spell damage.
So, to add a little more depth, this "parry meter" was added. When you perform a parry, a cursor will be sent careening down a bar passing by small red balls on its way. If you press the CONFIRM button while the cursor is on the balls, you will break them. Break them all, and you successfully perform a parry. This still had the issue of the player needing to fully anticipate the enemy's attack, which felt weird and bad, in my opinion. However, it was still kinda cool and worked fairly well, and created a skill window that could allow a skilled player to bend the game over their knee.
But now, finally...
Where things are now
2022
Most recent iteration of combat
This is where combat is today. The parry system was reworked -- now players will get a chance to parry EVERY attack, regardless of whether or not they held up their sword in anticipation. And the parry event was completely changed: now it depicts the player character facing down some projectiles.
The player can choose to
1) soak the projectile (taking full damage)
2) Block the projectile (hold the defend button and take half damage, and reducing the Guard meter -- if the guard meter "breaks", you can't defend until it recovers)
3) Parry the projectile (press the defend button right as the projectile lands to parry it)
Parrying all the projectiles for a given attack will net you one extra energy point. Every enemy has their own unique projectile pattern!
I think the combat is in a fairly good spot. There are a few more features that I've kinda glossed over that get shown in that last video:
Alright, I think that's all I really have on this subject.
In the near future, I need to make updates to how Runes are "leveled", since a flat leveling curve no longer really makes sense, and introduces issues that come with how the progression of this game is laid out. But beyond that, this is the battle system!
Thanks, let me know your thoughts.
This game started out as a tech demo in 2009/2010. Rpg Maker VX was the hotness at the time, but I, as someone who had not yet learned how to write code, was incredible frustrated at the impotence of its event editor. Compared to an older tool (Rpg Maker 2003), the capability of the event system felt gutted and hollow. I think the rationale was (and still is!) that if scripting is introduced, events no longer need the technical power that 2003 provided. And to some degree, that's true. Scripting has been a very powerful and necessary component to introduce to the Rpg Maker series, but gutting the event editor left people like myself -- who really really enjoyed building crazy things with the event system -- in the lurch.
So I decided, for fun to go back and make something out of the old tool I loved and spent way too much time on growing up, RM2k3. The concept was simple -- you are a guy with a sword. You bump into a monster, battle starts right there on the map. You take turns attacking each other until one of you dies. The end. That was the entire conceit of the battle system.
Once I got a working prototype of that thing, I decided to try adding some more stuff. Obviously, items had to be included. Need to make potions. Magic seemed like a cool idea. How about multiple enemies? How do we learn magic, by the way? What other items should we add? Oh, maybe something to heal status effects... guess we should add status effects. On an on -- the evolution of the combat system, which was the entire game at the time, was pretty organic in this way. Eventually, there was this idea of making a dungeon crawler, with a UI where your HP was on screen at all times, and you could use magic to manipulate the environment and solve puzzles.
Eventually an event on RMN called "Release Something!" came around, which prompted me to release a small technical demo, and create this very gamepage. The demo wasn't much more than 6 small rooms and some monsters to beat up. But it was received pretty well and I thought, hey what the heck, why not try to make a full game like this? And thus, it began.
But, as you can imagine, the organic growth and design of this game was not sustainable. To make this idea last the entire length of a video game, it needed more substance. Decisions that were made early on in development no longer made sense and had to be re-designed. Lots of really insane implementation details needed to be addressed. I won't get into the technical details too deeply (the entire battle engine and more has been completely rewritten... at least twice) but I am going to try to explain what my design philosophy has been, where some of the pain lies, and the state of the game's combat as it exists today.
So first...
Design Philosophy
My design philosophy, in much of anything I create, has always been about constraints. Often, the constraints of the medium can lead to work that really branches out, explores and pushes the boundaries of those constraints as far as they'll go, whereas another medium with far less constraints might encourage someone (like myself) to feel more at home playing it safe, or worse, adopting a "kitchen sink" approach to your game design. Not too much or too little; with the right constraints, you are merely outlining what you desire to accomplish.
There are two kinds of constraints at play here: technical and self-imposed.
The technical constraints here are kind of obvious from the get-go: this is a game made in Rpg Maker 2003. And for all the love I have for this tool, the amount of effort required to produce meaningful results on this engine is a bit absurd. But this means the entire battle system is cobbled together using events only, using pictures to display UI elements and other things. This isn't the first time something like this has been built using this tool, and I don't think it'll be the last either. And perhaps I'm crazy for continuing with it after twelve years. But... well, yeah.
Secondly, self-imposed constraints. Here's where I get a bit philosophical. Despite having spent a helluva lot of time on the combat system, tweaking elements here and there, designing enemies & abilities, setting up battles, re-writing tons of things... I've never wanted the combat in this game to be the star of the show. I've always wanted the game to feel more like an adventure game, akin more to a Zelda, Metroid, Castlevania, etc, rather than your standard JRPG. I just thought, what if Link to the Past had a turn-based combat system? What would it need to be to evoke the same feeling as those games? I would later play a game called Vagrant Story, and realize my vision was closer to that game than anything else, albeit I'm aiming for much simpler and more strictly turn-based. I digress -- the point here is that I always wanted the Looming Spire to be a single-character RPG with turn-based combat, where combat is a meaningful element of the overall challenge, always fast-paced yet impactful, but never feeling too oppressive. As such, battles never have more than three enemies.
Alright, so with those ideas in mind.... Why is this blog post so long already?
Evolution of the Battle System
Let's take a look at how the battle system has evolved over time.
2010
Early in-game screenshots circa 2010 captured by Darken (featuring Windows XP, I think?)
Early on, the battles were exactly as described above. You bump into a slime, and a small menu pops up right next to the hero, allowing you to choose "Fight" "Skill" and "Item". If I recall, back then, "Skill" allowed you to use whatever runes you had equipped (the lightning bolt on the lower-left side of the screenshot is one of the equipped runes), each rune having a single corresponding ability. I'm going to be completely honest though, I don't remember the details of how it worked this early on. I do wish I had a copy of this first download, would be fun to look back on.
Another early screenshot, showing an iteration of the first boss
Things evolved a bit over the coming months. The HUD changed, for one. Magic was learned by "leveling up" your runes, and this is where the rune system was starting to take shape.
For each rune (Fire, Frost, Sky, Earth, Light, Void), there are base elemental spells, i.e. three fire spells, three frost spells, etc.
On top of that, there is one spell for each pair of runes: one fire+frost spell, one fire+sky spell, one frost+sky spell, etc. These are known as doublespells.
Finally, there are four triplespells that can be learned, which is a spell that combines the power of three different runes.
Each of these spells were learned naturally, as you levelled up your runes. Level 1 gives a spell, level 2 gives a spell, level 3 enables learning doublespells, level 4 learns a spell, and level 5 enables learning triplespells. Back then, there was still an MP system, and casting a spell cost MP.
2011
Yet another early screenshot
On the next iteration, timed hits were introduced. Well, in a limited capacity. You can perform a "timed hit", which is pressing the confirm button right as you land an attack with your sword. This was to spice up things a bit, to make the basic attack maneuver feel a little more involved. It's one of the few features that has gone relatively unchanged as the battle system has evolved.
2014
An old screenshot, but relatively recent compared to the earlier ones
At this point is where the game began to run into development hell, something I might write a blog about someday when I finish this damn game. But as you can see, the HUD has relatively gone unchanged -- an update to the character was made, but that's about it. Development slowed to a crawl, but even slower was development of the battle system -- there were some fundamental flaws in how I was building things that made changing anything extremely time-consuming and difficult, and sapped my motivation away. I didn't know enough about how to build and maintain a large project like this at the time!
And it was at this point that development of this game would lapse, on and off, for years at a time. I'd work on the game for a couple months, little bits here and there really, and then just drop it, feeling too overwhelmed with the idea that it is a waste of time. Perhaps, in a sense, that is true, but I think viewing it as an absolute like that came from a lack of perspective on my part. As I've gotten older, I find the only things worth spending your time on are the things that make you happy. Though I might gripe about it, making this game comes from a place of love, and I get excited making things work with it. I'm pretty much making it only for myself. Okay okay, I'm getting off track again.
2019
Fancy moving screenshot of the most recent iteration of the combat menu (2019)
This here is, I believe, the third time the battle engine was re-written. And I mean, fully re-written. At this point in development, the steam version of RPG Maker 2003 had been released, and I began taking advantage of its new features, and that meant tackling the behemoth of revisiting a lot of old code. Things were trucking along!
The rune system was reworked quite a bit. Rather than learning spells through levelling, things were altered to grant three base element spells with each rune, and learning double/triple spells comes about by "finding" them in the dungeon. At this point, you can still level up your runes, but all it does is increase the damage/effectiveness of spells, no new abilities are acquired.
Otherwise, things were mostly the same! Timed hits still exist, enemies are largely unchanged.
2021
Fairly recent video, showing off the first version of the "parry" system
Later on, the UI was changed QUITE a bit, and the "energy" system was introduced. No longer does your hero have MP. You start the battle with 0 energy, but at the start of each turn, you gain 2 energy. Attacking costs 1 energy, and each timed hit costs another energy, up to 3. Spells each have a fixed energy cost, and using an item or passing your turn costs zero energy.
Also, a "parry" system was added. The idea here was to allow for players to avoid more combat than they had to -- to avoid the need for the player to grind experience. If you can parry well, you can cruise through the game!
This worked... sorta OK. To parry, you could press SHIFT to lift up your sword in a defensive stance between your turns. If the enemy attacked you while holding up your sword, you got a chance to parry. While holding up your sword, your turn meter doesn't increase at all. When you parry, you gain an extra energy point!
At first, if the enemy attacked while holding your sword up, you parry. This felt both busted and bad at the same time. Due to how the combat engine was built, the enemy's attack animation happens outside of the event loop in which you can lift up your sword, so parrying in a reflexive manner was not possible; you had to fully anticipate when the enemy would attack. But if you could do that (and it wasn't hard to do, honestly), then you could avoid almost all damage an enemy puts out, outside of spell damage.
So, to add a little more depth, this "parry meter" was added. When you perform a parry, a cursor will be sent careening down a bar passing by small red balls on its way. If you press the CONFIRM button while the cursor is on the balls, you will break them. Break them all, and you successfully perform a parry. This still had the issue of the player needing to fully anticipate the enemy's attack, which felt weird and bad, in my opinion. However, it was still kinda cool and worked fairly well, and created a skill window that could allow a skilled player to bend the game over their knee.
But now, finally...
Where things are now
2022
Most recent iteration of combat
This is where combat is today. The parry system was reworked -- now players will get a chance to parry EVERY attack, regardless of whether or not they held up their sword in anticipation. And the parry event was completely changed: now it depicts the player character facing down some projectiles.
The player can choose to
1) soak the projectile (taking full damage)
2) Block the projectile (hold the defend button and take half damage, and reducing the Guard meter -- if the guard meter "breaks", you can't defend until it recovers)
3) Parry the projectile (press the defend button right as the projectile lands to parry it)
Parrying all the projectiles for a given attack will net you one extra energy point. Every enemy has their own unique projectile pattern!
I think the combat is in a fairly good spot. There are a few more features that I've kinda glossed over that get shown in that last video:
- Status effects! The player can be poisoned, disarmed, silenced, a whole slew of other things. The player can similarly receive buffs to their attack, speed, etc. They show up in the left-hand side.
- Wards, a type of spell that when cast, places a "ward" on the battlefield (shows up on the left with a "crystal" icon). The player can have at most three wards in play, which trigger their effect at the start of each of the players' turns. Some spells have different effects based on the number of wards in play!
- Equipment! Boy, a whole blog could probably be written about this alone, but the player has access to armor, helmets, and rings. Armor increases stats (like DEF, INT, etc), helmets provide effects that trigger when attacked, and rings provide effects that trigger when you land an attack. The player can also upgrade their sword using an item called Runic Ore, found throughout the Spire.
- Enemy states! Enemies can respond to specific attacks, have a "final breath" attack when dying, and can change their behavior in response to specific conditions. For example, there's a robot enemy who, when attacked with an electric move, will go into a "charged" state and start slinging powerful electric abilities.
- And more!
Alright, I think that's all I really have on this subject.
In the near future, I need to make updates to how Runes are "leveled", since a flat leveling curve no longer really makes sense, and introduces issues that come with how the progression of this game is laid out. But beyond that, this is the battle system!
Thanks, let me know your thoughts.
Posts
Pages:
1
Man, I remember ONE of these you had sent me. Wonder if I can still find it somewhere.
Glad to see the progress.
Glad to see the progress.
author=WIP
Man, I remember ONE of these you had sent me. Wonder if I can still find it somewhere.
Glad to see the progress.
Dude, if you can find it, I would be THRILLED to see it.
Pages:
1