Add Review
Subscribe
Nominate
Submit Media
RSS
Progress Report
Ch-ch-ch-changes - Progess Report 11
Greetings Vampire Hunters!
Thrall is undergoing some changes. Turns out, I vastly underestimated the scope of this project. Allow me to illustrate.
The image above is essentially a very simple layout of the story progression for Thrall, and how the development is currently going. Up to this point, I've essentially completed three dungeons and a "boss rush" style of dungeon, which has taken me close to one full year to do. I should mention, these dungeons are the smallest in the game. Each of the bullet points on this image signify another dungeon, each one getting progressively longer.
Problem is, my method of making dungeons up to this point is extremely time consuming, taking months to complete even a relatively small dungeon. When I ran the numbers on how long it would actually take to make every dungeon in the game with my current method, it equated to around 1200 maps, each taking 2-3 hours to make. That's like, three to four years of working every single day, 2-3 hours a day on just maps. No cutscenes, no story, no bosses, no mechanics. Just maps. Four years, no breaks.
I'd like to release this game sometime in my life. Preferably in the next two years. So something had to change. I came up with four potential solutions.
One, I could team up with someone, or a group of people. Couple issues with this, however. First of all, I'm not selling this game, or at least I don't plan to at this point in time. So any help that I get would either need to be paid out of my own pocket with no expected return, or I'd need to find people willing to work for free. I believe in compensating people for their time and their work, so that's a no-go. In addition, teaming up with people will inevitably change some things about the game. It's difficult to teach people a consistent art style, so I'd likely have to make some compromises there. Not my favorite choice.
Two, I could reduce the scope of the game. Instead of around 25 dungeons, I could maybe reduce it to ten, and eliminate some of the branching paths. Maybe eliminate the branching narrative structure altogether. Again, not really the vision I had for the game, and not my favorite choice.
Three, I could change the artistic style of the game. Simplify the dungeon style, maybe go tile-based instead of parallax mapped. But, one of the reasons I embraced this style in the first place was because I couldn't stand how bland the dungeons were in the Pokemon Mystery Dungeon games, which is what the dungeon generation aspect of this game is based on. I just felt that the dungeons needed to have some flavor, some character to them. I didn't want basic bland empty square rooms, with maybe a few swapped tiles and different music. So again, not the ideal choice.
And so, there's the fourth option. Find a way to create procedurally generated dungeons, while retaining the artistic style of parallax mapping. And that's exactly what I did.
This mockup is still pretty square and grid-based, but I successfully managed to create a system that procedurally generates dungeons using a series of parallax mapped rooms. The game constructs a dungeon layout, then searches specific folders for image files to stitch together, then reads the image file name to get collision and spawn point data for that room. The game then creates a parallax and overlay using those images, changes the tile data within the map, and reallocates the player, enemies, chests, and any other events such as exits and item bags.
I also got creative with how spawn points are set up, so that a player will never spawn in the same room as a monster, and you'll never have two monsters spawn in one room. Events will never spawn on top of each other, and the map will always generate a layout that is fully accessible, with no isolated sections. And it's still parallax mapping! I have full control over what each individual room and corridor looks like, how it's decorated, how collision is determined, and I don't have to resort to using tiles in the engine! Every dungeon can still have the flavor and character that I'm going for, while actually being MORE random than it was before!
And the best part? Every dungeon, no matter how many floors it has, will only EVER need 82 small maps to create fully random, procedurally generated maps. 82 sounds like a lot, but it's really not. Especially because they're very tiny maps. Like, this tiny.
Tiny. 82 of those? I can make that in about two weeks working for less than an hour a day, maybe three weeks if I take a day or two off. And that's for every single dungeon in the game. No more spending months on end working on a single dungeon, getting burned out, and wanting to give up.
So, what does this mean for Thrall? Well, first I'm going to remake all the existing dungeons. Yes, I'm basically throwing away nearly a year of work, at least on the mapping side. But the end result will be worth it. I've already nearly finished remaking the Bloodstone Mine, and I only started on the maps a week ago. Next is Eleston, then the Lyre Forest. Those will take some creative thinking, but I'll find a way to make it work. The end result might be a little bit more simple, not as detailed, but still very distinctly unique.
Once the existing dungeons have been recreated, I will release a new demo with the changes. This will also include the changes to the Difficulty system that I mentioned in the last blog. And then, it's onward and upward from there! The game may very well be completed by the end of 2025, like I wanted! And it will have even more randomness, even more replayability than I'd ever thought possible.
So with that, stay tuned! It only gets better from here.
By the way, I made a few videos talking about dungeon generation in Thrall, so if you want to check them out, head over to the Media page and go into "Developing Systems." There's a video that talks about the first method used to generate dungeons, and I've linked the video talking about this system as well!
Thrall is undergoing some changes. Turns out, I vastly underestimated the scope of this project. Allow me to illustrate.
The image above is essentially a very simple layout of the story progression for Thrall, and how the development is currently going. Up to this point, I've essentially completed three dungeons and a "boss rush" style of dungeon, which has taken me close to one full year to do. I should mention, these dungeons are the smallest in the game. Each of the bullet points on this image signify another dungeon, each one getting progressively longer.
Problem is, my method of making dungeons up to this point is extremely time consuming, taking months to complete even a relatively small dungeon. When I ran the numbers on how long it would actually take to make every dungeon in the game with my current method, it equated to around 1200 maps, each taking 2-3 hours to make. That's like, three to four years of working every single day, 2-3 hours a day on just maps. No cutscenes, no story, no bosses, no mechanics. Just maps. Four years, no breaks.
I'd like to release this game sometime in my life. Preferably in the next two years. So something had to change. I came up with four potential solutions.
One, I could team up with someone, or a group of people. Couple issues with this, however. First of all, I'm not selling this game, or at least I don't plan to at this point in time. So any help that I get would either need to be paid out of my own pocket with no expected return, or I'd need to find people willing to work for free. I believe in compensating people for their time and their work, so that's a no-go. In addition, teaming up with people will inevitably change some things about the game. It's difficult to teach people a consistent art style, so I'd likely have to make some compromises there. Not my favorite choice.
Two, I could reduce the scope of the game. Instead of around 25 dungeons, I could maybe reduce it to ten, and eliminate some of the branching paths. Maybe eliminate the branching narrative structure altogether. Again, not really the vision I had for the game, and not my favorite choice.
Three, I could change the artistic style of the game. Simplify the dungeon style, maybe go tile-based instead of parallax mapped. But, one of the reasons I embraced this style in the first place was because I couldn't stand how bland the dungeons were in the Pokemon Mystery Dungeon games, which is what the dungeon generation aspect of this game is based on. I just felt that the dungeons needed to have some flavor, some character to them. I didn't want basic bland empty square rooms, with maybe a few swapped tiles and different music. So again, not the ideal choice.
And so, there's the fourth option. Find a way to create procedurally generated dungeons, while retaining the artistic style of parallax mapping. And that's exactly what I did.
This mockup is still pretty square and grid-based, but I successfully managed to create a system that procedurally generates dungeons using a series of parallax mapped rooms. The game constructs a dungeon layout, then searches specific folders for image files to stitch together, then reads the image file name to get collision and spawn point data for that room. The game then creates a parallax and overlay using those images, changes the tile data within the map, and reallocates the player, enemies, chests, and any other events such as exits and item bags.
I also got creative with how spawn points are set up, so that a player will never spawn in the same room as a monster, and you'll never have two monsters spawn in one room. Events will never spawn on top of each other, and the map will always generate a layout that is fully accessible, with no isolated sections. And it's still parallax mapping! I have full control over what each individual room and corridor looks like, how it's decorated, how collision is determined, and I don't have to resort to using tiles in the engine! Every dungeon can still have the flavor and character that I'm going for, while actually being MORE random than it was before!
And the best part? Every dungeon, no matter how many floors it has, will only EVER need 82 small maps to create fully random, procedurally generated maps. 82 sounds like a lot, but it's really not. Especially because they're very tiny maps. Like, this tiny.
Tiny. 82 of those? I can make that in about two weeks working for less than an hour a day, maybe three weeks if I take a day or two off. And that's for every single dungeon in the game. No more spending months on end working on a single dungeon, getting burned out, and wanting to give up.
So, what does this mean for Thrall? Well, first I'm going to remake all the existing dungeons. Yes, I'm basically throwing away nearly a year of work, at least on the mapping side. But the end result will be worth it. I've already nearly finished remaking the Bloodstone Mine, and I only started on the maps a week ago. Next is Eleston, then the Lyre Forest. Those will take some creative thinking, but I'll find a way to make it work. The end result might be a little bit more simple, not as detailed, but still very distinctly unique.
Once the existing dungeons have been recreated, I will release a new demo with the changes. This will also include the changes to the Difficulty system that I mentioned in the last blog. And then, it's onward and upward from there! The game may very well be completed by the end of 2025, like I wanted! And it will have even more randomness, even more replayability than I'd ever thought possible.
So with that, stay tuned! It only gets better from here.
By the way, I made a few videos talking about dungeon generation in Thrall, so if you want to check them out, head over to the Media page and go into "Developing Systems." There's a video that talks about the first method used to generate dungeons, and I've linked the video talking about this system as well!
Progress Report
No Pain No Gain - Progress Report 10
So it's been a pretty productive month. I managed to implement several new systems and do some overall balancing, so let's dive in and see what's new, shall we?
First off, I've started work on the next major dungeon. I don't want to spoil too many details, but I may make a video about some of the mechanics here soon, since I had to get a bit creative with the eventing for this one. I won't say much more yet, so moving on.
I noticed that I made a mistake with the calculation of status resistances on armors, so I went ahead and did some balancing. I also buffed a few passive skills for some party members, but nothing worth going into detail over.
I did get pretty creative about a week into February though, and I've added a host of new consumable items. First of all, the Spectral Pepper item that allows you to walk through walls was reduced in rarity, and will appear more often. In addition, I added the Pure Water item, an epic rarity consumable that allows you to create a custom save point anywhere in a dungeon except for boss rooms. Using this item does destroy all monsters on that floor and locks unopened chests, so it cannot be used to save scum, but it does allow for a breather if you need one.
Now, aside from those changes, I added a few new Legendary items. Four, to be precise. Introducing gemstones!
These are one-time consumable items that have a very rare chance of spawning in any suitable loot source. Using these items has a neat effect: they will replace the elements on ALL equipped weapons! Ruby for Fire, Sapphire for Ice, Amethyst for Shock, and Emerald for Weak! So if you use one gemstone, you can give an element to even exclusively non-elemental weapons, and you can even get creative with the unique effects of certain Legendary weapons if you decide to change their elements while equipped to certain characters. Replacing the element will also change the attack animation to match!
But okay, now we get into the real fun stuff. I did one more thing this month that I'm really happy with. Introducing the Pain System!
I've made a video describing this, so check it out under the "Developing Systems" media page, but I'll also go into detail about it here. What is this system? Essentially, it's a way of modifying the difficulty of the game in fun and unique ways, similar to how Hades handles difficulty with the Pact of Punishment and the Heat system, but much simpler and a bit lower stakes.
First of all, why was this necessary? Simply put, the previous method of handling difficulty was ineffective. The current demo uses a simple but functional difficulty slider. Turn it up to make enemies harder, turn it down to make them easier. That's it. Plain, simple, boring, and no one used it. Bethesda is not a good inspiration for figuring out difficulty settings. While I liked how the slider got implemented, I never really liked the concept for this style of game.
So, to that end I created the Pain system. I turned down the base difficulty by reducing enemy stats, but with this new system you can turn the difficulty up by affecting various modes of play. Enemy stats are one of the things you can modify, but there's other things you can do such as grant enemies new techniques to use, or give them temporary invincibility at the start of a battle, or reduce the amount of HP that healing items restore. With these settings, you get to choose how hard you want the game to be, and how you want the challenge altered.
But higher difficulty isn't much good if it doesn't come with a suitable reward. To that end, I've created four different rewards that will increase for every Pain level you increase. Gold drops will increase by 10% per rank, monster loot drop rates will increase by 1%, and monster loot rarity will increase by 2% per rank. Those are all well and good, but aren't anything you can't find from just opening enough chests. I needed something more, something unique, something exclusive to this system. So...
I've added Shards. When Pain is turned up to five ranks or higher, Shards will start appearing as Epic rarity loot. These are consumable items that will permanently increase the stats of one equipped weapon! Red increases DMG, Green increases DEX, Blue increases ACC, and Purple increases CRIT! You can only augment a weapon with a shard once, so use them wisely, but it is also the only method of increasing item stats in the game. The percentage that stats are raised by is increased by 1% per Pain rank. With all 30 Pain settings in place, you can have items that increase your weapon stats by up to 30%!
I may look at creating more Shards to increase armor stats as well, but for now I'm happy with this. At any rate, the boring and useless difficulty slider is now long gone, and the Pain system is in place, and it works perfectly. More challenges, more rewards, and more fun await with this system.
And that's about it for February! I made some other UI and system changes, such as changing the window cursor (see above), but nothing else really worth talking about right now. So with that, I'll see you all again next month!
First off, I've started work on the next major dungeon. I don't want to spoil too many details, but I may make a video about some of the mechanics here soon, since I had to get a bit creative with the eventing for this one. I won't say much more yet, so moving on.
I noticed that I made a mistake with the calculation of status resistances on armors, so I went ahead and did some balancing. I also buffed a few passive skills for some party members, but nothing worth going into detail over.
I did get pretty creative about a week into February though, and I've added a host of new consumable items. First of all, the Spectral Pepper item that allows you to walk through walls was reduced in rarity, and will appear more often. In addition, I added the Pure Water item, an epic rarity consumable that allows you to create a custom save point anywhere in a dungeon except for boss rooms. Using this item does destroy all monsters on that floor and locks unopened chests, so it cannot be used to save scum, but it does allow for a breather if you need one.
Now, aside from those changes, I added a few new Legendary items. Four, to be precise. Introducing gemstones!

These are one-time consumable items that have a very rare chance of spawning in any suitable loot source. Using these items has a neat effect: they will replace the elements on ALL equipped weapons! Ruby for Fire, Sapphire for Ice, Amethyst for Shock, and Emerald for Weak! So if you use one gemstone, you can give an element to even exclusively non-elemental weapons, and you can even get creative with the unique effects of certain Legendary weapons if you decide to change their elements while equipped to certain characters. Replacing the element will also change the attack animation to match!
But okay, now we get into the real fun stuff. I did one more thing this month that I'm really happy with. Introducing the Pain System!

I've made a video describing this, so check it out under the "Developing Systems" media page, but I'll also go into detail about it here. What is this system? Essentially, it's a way of modifying the difficulty of the game in fun and unique ways, similar to how Hades handles difficulty with the Pact of Punishment and the Heat system, but much simpler and a bit lower stakes.
First of all, why was this necessary? Simply put, the previous method of handling difficulty was ineffective. The current demo uses a simple but functional difficulty slider. Turn it up to make enemies harder, turn it down to make them easier. That's it. Plain, simple, boring, and no one used it. Bethesda is not a good inspiration for figuring out difficulty settings. While I liked how the slider got implemented, I never really liked the concept for this style of game.
So, to that end I created the Pain system. I turned down the base difficulty by reducing enemy stats, but with this new system you can turn the difficulty up by affecting various modes of play. Enemy stats are one of the things you can modify, but there's other things you can do such as grant enemies new techniques to use, or give them temporary invincibility at the start of a battle, or reduce the amount of HP that healing items restore. With these settings, you get to choose how hard you want the game to be, and how you want the challenge altered.
But higher difficulty isn't much good if it doesn't come with a suitable reward. To that end, I've created four different rewards that will increase for every Pain level you increase. Gold drops will increase by 10% per rank, monster loot drop rates will increase by 1%, and monster loot rarity will increase by 2% per rank. Those are all well and good, but aren't anything you can't find from just opening enough chests. I needed something more, something unique, something exclusive to this system. So...

I've added Shards. When Pain is turned up to five ranks or higher, Shards will start appearing as Epic rarity loot. These are consumable items that will permanently increase the stats of one equipped weapon! Red increases DMG, Green increases DEX, Blue increases ACC, and Purple increases CRIT! You can only augment a weapon with a shard once, so use them wisely, but it is also the only method of increasing item stats in the game. The percentage that stats are raised by is increased by 1% per Pain rank. With all 30 Pain settings in place, you can have items that increase your weapon stats by up to 30%!
I may look at creating more Shards to increase armor stats as well, but for now I'm happy with this. At any rate, the boring and useless difficulty slider is now long gone, and the Pain system is in place, and it works perfectly. More challenges, more rewards, and more fun await with this system.
And that's about it for February! I made some other UI and system changes, such as changing the window cursor (see above), but nothing else really worth talking about right now. So with that, I'll see you all again next month!
Progress Report
Massive Update and New Demo - Progress Report 9
The demo has been updated!
This update is huge. I mean, absolutely massive. November and December were decently productive, but January was just something else. I had three weeks of vacation, and since I'm looking for a new job I took them all at once. During that time I managed to get a ton of work done, and I wanted to release an updated demo with all the new mechanical changes.
However, I decided to go one step further.
The original demo could get the player up to about level 8, maybe 9 or 10. While it definitely gave a sample of the main gameplay loop and a lot of the mechanics, it didn't really do what it should have, which is reveal the potential of this game. You don't really get to fully experience the loot system or try out the various skills trees until about level 12 or so, and unfortunately that isn't really feasible to reach with just a prologue and a single dungeon. So, with that in mind, I have an announcement...
The new demo has been expanded to include the first FOUR dungeons, and all the story content up to that point!
Now, I don't intent to release any further story content past this point until the full release. I don't want to fall into the trap of constantly trickling out more content for the game until the player basically has half the game or more without a full release. I don't want an episodic game. But with the demo in its current state, the player can pretty easily reach around level 15 - 17, and get a much better feel for the loot system and the potential of the skill trees. There's also a lot more story content to get you hooked. But, having said that, the amount of story content available relative to the total planned story is still pretty light. Take a look at this story path mockup for an example.
So there's really only about 25% of the game content here, and from this point forward is where the branching story structure will really come into play. It is still somewhat of a linear story, but each individual path taken will have some radical differences between them, even if they all converge near the end of the game.
At any rate, the demo has a lot more to offer now, and more properly reflects the potential this game has and where I intend to take it. I hope you all enjoy the new content!
But with that said, the new dungeons are not the only changes present in this demo. Not at all. I've been hard at work this month, and there's a ton of new cool stuff to see. I'll highlight the major changes, then post a comprehensive list at the bottom if you want to see EVERYTHING I got up to. So, let's kick it off! What's new?
Customizable Armor!
So I kept thinking, you can see what weapon you're using in battle, as the weapon sprite actually appears in the hands of the user when you attack. Cosmetic changes actually do exist in that sense. But what about armor? No matter what armor you wear, the character sprites don't change. It can break immersion a bit when you equip a bright red cape, but your party member sprite is still wearing a muted blue cape. Well, not anymore!
With one of the more recent changes, character sprites will now change when you equip a new body armor! The color is determined by the actual icon of the armor you're equipping. If equipping a cape, clothes, or anything cloth related, the color of your cape will change to match the color indicated by the icon, and the armor will be randomly determined. When equipping armor, a cuirass, or anything metal, the color of the armor itself will change to match the icon, and the cape will be randomly determined when the loot is generated. It's also consistent between party members, so if you remove the armor from one member and put it on another, the color scheme will be the same, but for the new party member's sprite!
Side Missions and Keep Member Dialogue!
In the previous demo, keep members wouldn't really have anything to say. That was never intended, I just hadn't gotten around to adding their dialogue trees at that point. Well, now everybody's got some words for you! And maybe a little more...
Any keep member that has (...) above their head will have something to say, and if they have a (?) above their head, they'll even have an optional side mission for you! These missions can vary in difficulty, but every one of them has a special reward for completing them. These rewards are rare and unique weapons and armors that have special effects that no other loot has! They're absolutely worth getting, so don't ignore them!
Job Board!
As a reward for completing the demo, you'll get access to the brand new Job Board! If you've ever played the Pokemon Mystery Dungeon games, you'll be familiar with this.
Jobs will be randomly generated, providing a random location, floor, objective, and reward. There are currently four different objectives available, with more to come in the full release. One of the objectives has ten different variants as well, so it'll never be too boring. In addition, the rewards can be very worthwhile! You can be rewarded with Gold, or you could even receive a randomly generated item, weapon, or armor, with rarities ranging from green to purple! And that's just the MINIMUM rarity for the reward. It's entirely possible to be rewarded with Legendary equipment, if you're lucky.
Other Things!
Aside from those major changes, I've also added some really cool things that aren't easily shown in screenshots. For example, I've added diagonal movement! I talked about this in a previous video, so check it out if you're interested. Movement is much more intuitive now, and makes sense for the environment of this game. In addition, the Big Enemies I mentioned in an earlier blog are available in this demo.
I've also modified some of the status ailments, most notably Weak status. Weak will now double all subsequent damage to that target while active, sort of like Slag in the Borderlands games. I've also modified Seize to reduce DEX instead of RES while locking skill use, but Freeze status will reduce RES as well as immobilize.
And finally, I did some major changes to the scripts in the base game. Specifically, I re-wrote Game_Battler from the ground up (mostly). With this, battles are much more consistent. Physical skills gain all the benefits that a physical attack would, and it just makes more sense. I've also done some massive enhancements to the UI, both in and out of battle. For example, when the Party Command Window is open during battle, there will be icons displayed next to the actions you can take. For the Attack command, the icon of your equipped weapon will be displayed, but if the weapon has an element then the icon for that element will be displayed instead. This way, you can immediately determine what element you're attacking with, without having to remember it. In addition, I've added a button prompt in the corner of the screen to show how to escape battles, since that mechanic isn't well-explained and is often ignored.
Anyway, that's most of the big major changes. There's a plethora of other enhancements, but they're not as important. Still, I'll list everything in a spoiler tag below if you're curious.
Anyway, that's it for this demo update! I hope you all enjoy! Oh yeah, and I apparently broke the file size limitations. So now the download is on MediaFire. Haha oops.
This update is huge. I mean, absolutely massive. November and December were decently productive, but January was just something else. I had three weeks of vacation, and since I'm looking for a new job I took them all at once. During that time I managed to get a ton of work done, and I wanted to release an updated demo with all the new mechanical changes.
However, I decided to go one step further.
The original demo could get the player up to about level 8, maybe 9 or 10. While it definitely gave a sample of the main gameplay loop and a lot of the mechanics, it didn't really do what it should have, which is reveal the potential of this game. You don't really get to fully experience the loot system or try out the various skills trees until about level 12 or so, and unfortunately that isn't really feasible to reach with just a prologue and a single dungeon. So, with that in mind, I have an announcement...
The new demo has been expanded to include the first FOUR dungeons, and all the story content up to that point!
Now, I don't intent to release any further story content past this point until the full release. I don't want to fall into the trap of constantly trickling out more content for the game until the player basically has half the game or more without a full release. I don't want an episodic game. But with the demo in its current state, the player can pretty easily reach around level 15 - 17, and get a much better feel for the loot system and the potential of the skill trees. There's also a lot more story content to get you hooked. But, having said that, the amount of story content available relative to the total planned story is still pretty light. Take a look at this story path mockup for an example.
So there's really only about 25% of the game content here, and from this point forward is where the branching story structure will really come into play. It is still somewhat of a linear story, but each individual path taken will have some radical differences between them, even if they all converge near the end of the game.
At any rate, the demo has a lot more to offer now, and more properly reflects the potential this game has and where I intend to take it. I hope you all enjoy the new content!
But with that said, the new dungeons are not the only changes present in this demo. Not at all. I've been hard at work this month, and there's a ton of new cool stuff to see. I'll highlight the major changes, then post a comprehensive list at the bottom if you want to see EVERYTHING I got up to. So, let's kick it off! What's new?
Customizable Armor!
So I kept thinking, you can see what weapon you're using in battle, as the weapon sprite actually appears in the hands of the user when you attack. Cosmetic changes actually do exist in that sense. But what about armor? No matter what armor you wear, the character sprites don't change. It can break immersion a bit when you equip a bright red cape, but your party member sprite is still wearing a muted blue cape. Well, not anymore!
With one of the more recent changes, character sprites will now change when you equip a new body armor! The color is determined by the actual icon of the armor you're equipping. If equipping a cape, clothes, or anything cloth related, the color of your cape will change to match the color indicated by the icon, and the armor will be randomly determined. When equipping armor, a cuirass, or anything metal, the color of the armor itself will change to match the icon, and the cape will be randomly determined when the loot is generated. It's also consistent between party members, so if you remove the armor from one member and put it on another, the color scheme will be the same, but for the new party member's sprite!
Side Missions and Keep Member Dialogue!
In the previous demo, keep members wouldn't really have anything to say. That was never intended, I just hadn't gotten around to adding their dialogue trees at that point. Well, now everybody's got some words for you! And maybe a little more...
Any keep member that has (...) above their head will have something to say, and if they have a (?) above their head, they'll even have an optional side mission for you! These missions can vary in difficulty, but every one of them has a special reward for completing them. These rewards are rare and unique weapons and armors that have special effects that no other loot has! They're absolutely worth getting, so don't ignore them!
Job Board!
As a reward for completing the demo, you'll get access to the brand new Job Board! If you've ever played the Pokemon Mystery Dungeon games, you'll be familiar with this.
Jobs will be randomly generated, providing a random location, floor, objective, and reward. There are currently four different objectives available, with more to come in the full release. One of the objectives has ten different variants as well, so it'll never be too boring. In addition, the rewards can be very worthwhile! You can be rewarded with Gold, or you could even receive a randomly generated item, weapon, or armor, with rarities ranging from green to purple! And that's just the MINIMUM rarity for the reward. It's entirely possible to be rewarded with Legendary equipment, if you're lucky.
Other Things!
Aside from those major changes, I've also added some really cool things that aren't easily shown in screenshots. For example, I've added diagonal movement! I talked about this in a previous video, so check it out if you're interested. Movement is much more intuitive now, and makes sense for the environment of this game. In addition, the Big Enemies I mentioned in an earlier blog are available in this demo.
I've also modified some of the status ailments, most notably Weak status. Weak will now double all subsequent damage to that target while active, sort of like Slag in the Borderlands games. I've also modified Seize to reduce DEX instead of RES while locking skill use, but Freeze status will reduce RES as well as immobilize.
And finally, I did some major changes to the scripts in the base game. Specifically, I re-wrote Game_Battler from the ground up (mostly). With this, battles are much more consistent. Physical skills gain all the benefits that a physical attack would, and it just makes more sense. I've also done some massive enhancements to the UI, both in and out of battle. For example, when the Party Command Window is open during battle, there will be icons displayed next to the actions you can take. For the Attack command, the icon of your equipped weapon will be displayed, but if the weapon has an element then the icon for that element will be displayed instead. This way, you can immediately determine what element you're attacking with, without having to remember it. In addition, I've added a button prompt in the corner of the screen to show how to escape battles, since that mechanic isn't well-explained and is often ignored.
Anyway, that's most of the big major changes. There's a plethora of other enhancements, but they're not as important. Still, I'll list everything in a spoiler tag below if you're curious.
Major Changes
2024
- Added Lyre Forest
- Added Eleston
- Added Jagged Lagoon
- Added dialogue for Keep members including side missions
- Added color changing armors
- Added Job Board
2023
- Re-wrote Game_Battler
- Weak status inflicts 2x damage
- Big enemies
- Diagonal movements
Minor changes
2024
- HALFCRIT accessory replaced with LESSCRIT
- Stat healers now restore 20% HP
- Normal healer items are buffed
- Added Escape button prompt in battles
- Added objective icons to fast travel
- Dead allies get 1/4 EXP
- Altered Party Command Window in battle with icons
- Changed EXP allocations and balancing
- Altered REGEN armors to 0.5%
- Reduced enemy crit chance and damage
2023
- Status ailment changes (Seize for DEX, RES for Freeze)
- Enemy stats calculated individually
- Added "info" to skill trees
- Enhanced UI in various menus
- Added animation and SE to full OD gauge
- Colorblind mode improvements
- Weak weapons have custom animations
- Tutorials have been enhanced and better paced, more reactive
- Locker capacity tripled
- Burn status DOT altered
Bug Fixes
2024
- COOLDOWN only worked on helmets
- Minor UI fixes
2023
- RES did nothing at all
2024
- Added Lyre Forest
- Added Eleston
- Added Jagged Lagoon
- Added dialogue for Keep members including side missions
- Added color changing armors
- Added Job Board
2023
- Re-wrote Game_Battler
- Weak status inflicts 2x damage
- Big enemies
- Diagonal movements
Minor changes
2024
- HALFCRIT accessory replaced with LESSCRIT
- Stat healers now restore 20% HP
- Normal healer items are buffed
- Added Escape button prompt in battles
- Added objective icons to fast travel
- Dead allies get 1/4 EXP
- Altered Party Command Window in battle with icons
- Changed EXP allocations and balancing
- Altered REGEN armors to 0.5%
- Reduced enemy crit chance and damage
2023
- Status ailment changes (Seize for DEX, RES for Freeze)
- Enemy stats calculated individually
- Added "info" to skill trees
- Enhanced UI in various menus
- Added animation and SE to full OD gauge
- Colorblind mode improvements
- Weak weapons have custom animations
- Tutorials have been enhanced and better paced, more reactive
- Locker capacity tripled
- Burn status DOT altered
Bug Fixes
2024
- COOLDOWN only worked on helmets
- Minor UI fixes
2023
- RES did nothing at all
Anyway, that's it for this demo update! I hope you all enjoy! Oh yeah, and I apparently broke the file size limitations. So now the download is on MediaFire. Haha oops.
Progress Report
Happy New Year! - Progress Report 8
Happy New Year!
I missed another blog day. Sorry.
But I've been thinking about that, and I'm going to change my release schedule for these blogs one more time. I've been doing regular weekly videos on my YouTube channel for a couple of months now, and that's become the place where I give more updates on some of the new features that I've been working on in this game, as well as developer insights on certain game design choices. To that end, it doesn't really make much sense for me to write blogs about those topics, and instead I'll just focus on the videos for that stuff.
However, I do still want to write blogs about progress reports on Thrall. I want to be able to share some of the cool new things I've been working on that don't deserve an entire video, as well as show you all that development is very much still underway, and I'm not disappearing in a hole in the ground. No matter how much I may want to sometimes.
So with that in mind, I'm only going to write blogs on the last day of each month, and only for progress reports. I think this will allow me to be more consistent with my schedule, and will also allow each of the blogs to have a bit more meat to them.
Anyway, that's all for that. Now, what have I gotten up to this month!?
...Uh, not much honestly. Between work, the Secret Santa, hosting a karaoke night to cover for a friend who got double booked (which lead to two nights in a row of 4 hour sleeps), Christmas parties and family get-togethers, plus getting as much sleep as I could in between, I really didn't get a whole lot done. I had planned on completing the third dungeon by the end of November, and I didn't even get it done this month. I have literally one more map to do, plus a few cutscenes, but it's just not done yet.
However, I did do some cool coding things. I added a few new features that I think will drastically improve the overall quality of the game. Let's dive into those! First of all, I added an info screen to the skill trees!
This screen was kind of cool to implement. I made use of a previously unused text box in the database to store the file name of the picture associated with that skill displayed in the in-game guide accessed from the bookshelf in the map room of the keep. Then, by pressing a key while highlighting a skill in the Skill Tree scene, that guide will be displayed, allowing you to access the full description and all the information relating to that skill. While all this information could be accessed already, this saves a lot of time and allows the player to access the information while looking at their skills, instead of having to go into a completely separate scene to do so. Man, I didn't describe that very well.
Anyway, that was cool. So I got on a really creative streak with coding and found a way to more dynamically alter how enemy stats are determined! This game has enemies that scale to the average party level, based on the level of the dungeon that you're in. Each dungeon has a min and max level that enemies will scale between, so they'll never drop below the min and never scale above the max. However, this worked by replacing the stats of every enemy with the value assigned to a variable. Each stat had its own variable, and the variable got its value through the stats of a dummy actor that scaled to the average party level. I would have three sets of variables, one for the base stats, one for boosted stats, and one for reduced stats. Then, certain enemies would get one or two boosted stats, maybe one weak stat, and the rest would be the base stats.
The problem with this was that each enemy would basically only have one of three potential options for the stat I was assigning. It was fine, but not very nuanced. Well, now I've found a way to change that!
Now, every enemy is assigned just the base stats. I have one set of variables for each of those, relating to HP, MP, ATK, DEF, SPI, AGI, and EXP. I didn't mess with Hit Ratio and Evasion, and I actually completely recoded what Gold is used for. More on that later. Then, once the base stats are determined, the stats are modified based on what's assigned to that enemy in the database. In the above example, this Slime would have 100% of the base HP, MP, ATK, and EXP but would have 125% of the base DEF, 110% of the base SPI, and 75% of the base AGI. With this code, I can modify how strong each individual enemy should be, giving me much more fine control and allowing for a much more dynamic range of enemies, even with stats that scale to player levels!
Now, I mentioned that I recoded how Gold works. Well, since this game uses a random loot system, I decided to add a variable that determines how often certain enemies will drop loot. Normally you have a 1/20 chance of any given enemy dropping a piece of loot after an encounter. However, this is now just the BASE drop chance. That drop chance can now be modified to a percentage based on what the enemy Gold is set to. So, loot will drop 1/20th of the time, but this slime will drop loot 110% of 1/20th of the time. Or, 1/18 chance. This is more noticeable with certain enemies that have higher gold. So, one enemy in particular has 200 gold, which means that enemy will drop loot 1/10th of the the time instead of 1/20th. This change allows for enemies to have higher drop chances without requiring them to drop loot. And while we're on that note...
OHHESSUCHABIGOLBOI!
I made BIG enemies! These are enemies that are big. They have double the health of their common variants, 20% more ATK, and double the chance of dropping double the amount of loot. I found a way to perfectly upscale the enemy sprites, so they look a little bit retro without looking stretched. Literally every pixel is now just a 2x2 square of the same pixels, perfectly to scale. I saw this technique used in a different game and thought it looked quite charming, but I can't for the life of me remember which game it was right now.
At any rate, these enemies have a 5% chance of spawning over any enemy in a troop except for the first one. While I was at it, I made some adjustments to the spawn rates of enemies, added hoard encounters of up to six weak enemies, and added some much smarter enemy AI by rewriting the code for a skill condition that was going unused. Now I can make enemies do things EXACTLY when I want them too, and even give them a specific designated target. I may do a video on how I did that later. Speaking of which...
I did a video on how to implement 8 directional movement, and now it's in the game. It works extremely well, and actually fits this game quite well. I won't talk about it too much here, since the video is right in front of you. Go watch it. You know, if you feel like it. No pressure.
And the last thing I did this month was alter some of the status ailments. Seize will now reduce DEX instead of RES, but Freeze will reduce RES as well as immobilize. And, most importantly, Burn status damage over time has been altered. When an actor is inflicted with Burn, they'll take damage equal to 3% of their max HP every turn. But when an enemy is hit with Burn, they'll take damage based on their level. This means that common enemies will take quite a lot of damage, but boss enemies won't be affected quite as heavily. This also allowed me to modify some of the Legendary elemental weapons to give them some really cool effects, like a Fire sword that can deal double the DOT when it inflicts Burn as opposed to any other Fire weapon. That took some creative work too, but it's a bit complicated to go into right now. Needless to say, some of the Legendaries just got way cooler.
And that's about it for this month. Huh. I guess I got more done than I'd thought. Just not much story progress. But these are all changes I'm really happy with, and a lot of thought went into them. It also stretched me quite a bit as a developer, trying to figure out ways to implement these features into RMVX. I should mention, all the code that went into this stuff is my own. I'm not really using a lot of scripts from other scripters in this game, so whenever I think of something to add to the game, I have to figure out how to do it myself, and in a very old engine at that. So, yeah. I guess I'm proud of what I got done.
And with that. Goodbye 2023. Honestly, you kind of sucked. But this game has given me a lot of happiness. I'm looking forward to seeing what I can get done with it in 2024. See you all then! And happy New Year!
I missed another blog day. Sorry.
But I've been thinking about that, and I'm going to change my release schedule for these blogs one more time. I've been doing regular weekly videos on my YouTube channel for a couple of months now, and that's become the place where I give more updates on some of the new features that I've been working on in this game, as well as developer insights on certain game design choices. To that end, it doesn't really make much sense for me to write blogs about those topics, and instead I'll just focus on the videos for that stuff.
However, I do still want to write blogs about progress reports on Thrall. I want to be able to share some of the cool new things I've been working on that don't deserve an entire video, as well as show you all that development is very much still underway, and I'm not disappearing in a hole in the ground. No matter how much I may want to sometimes.
So with that in mind, I'm only going to write blogs on the last day of each month, and only for progress reports. I think this will allow me to be more consistent with my schedule, and will also allow each of the blogs to have a bit more meat to them.
Anyway, that's all for that. Now, what have I gotten up to this month!?
...Uh, not much honestly. Between work, the Secret Santa, hosting a karaoke night to cover for a friend who got double booked (which lead to two nights in a row of 4 hour sleeps), Christmas parties and family get-togethers, plus getting as much sleep as I could in between, I really didn't get a whole lot done. I had planned on completing the third dungeon by the end of November, and I didn't even get it done this month. I have literally one more map to do, plus a few cutscenes, but it's just not done yet.
However, I did do some cool coding things. I added a few new features that I think will drastically improve the overall quality of the game. Let's dive into those! First of all, I added an info screen to the skill trees!
This screen was kind of cool to implement. I made use of a previously unused text box in the database to store the file name of the picture associated with that skill displayed in the in-game guide accessed from the bookshelf in the map room of the keep. Then, by pressing a key while highlighting a skill in the Skill Tree scene, that guide will be displayed, allowing you to access the full description and all the information relating to that skill. While all this information could be accessed already, this saves a lot of time and allows the player to access the information while looking at their skills, instead of having to go into a completely separate scene to do so. Man, I didn't describe that very well.
Anyway, that was cool. So I got on a really creative streak with coding and found a way to more dynamically alter how enemy stats are determined! This game has enemies that scale to the average party level, based on the level of the dungeon that you're in. Each dungeon has a min and max level that enemies will scale between, so they'll never drop below the min and never scale above the max. However, this worked by replacing the stats of every enemy with the value assigned to a variable. Each stat had its own variable, and the variable got its value through the stats of a dummy actor that scaled to the average party level. I would have three sets of variables, one for the base stats, one for boosted stats, and one for reduced stats. Then, certain enemies would get one or two boosted stats, maybe one weak stat, and the rest would be the base stats.
The problem with this was that each enemy would basically only have one of three potential options for the stat I was assigning. It was fine, but not very nuanced. Well, now I've found a way to change that!
Now, every enemy is assigned just the base stats. I have one set of variables for each of those, relating to HP, MP, ATK, DEF, SPI, AGI, and EXP. I didn't mess with Hit Ratio and Evasion, and I actually completely recoded what Gold is used for. More on that later. Then, once the base stats are determined, the stats are modified based on what's assigned to that enemy in the database. In the above example, this Slime would have 100% of the base HP, MP, ATK, and EXP but would have 125% of the base DEF, 110% of the base SPI, and 75% of the base AGI. With this code, I can modify how strong each individual enemy should be, giving me much more fine control and allowing for a much more dynamic range of enemies, even with stats that scale to player levels!
Now, I mentioned that I recoded how Gold works. Well, since this game uses a random loot system, I decided to add a variable that determines how often certain enemies will drop loot. Normally you have a 1/20 chance of any given enemy dropping a piece of loot after an encounter. However, this is now just the BASE drop chance. That drop chance can now be modified to a percentage based on what the enemy Gold is set to. So, loot will drop 1/20th of the time, but this slime will drop loot 110% of 1/20th of the time. Or, 1/18 chance. This is more noticeable with certain enemies that have higher gold. So, one enemy in particular has 200 gold, which means that enemy will drop loot 1/10th of the the time instead of 1/20th. This change allows for enemies to have higher drop chances without requiring them to drop loot. And while we're on that note...
OHHESSUCHABIGOLBOI!
I made BIG enemies! These are enemies that are big. They have double the health of their common variants, 20% more ATK, and double the chance of dropping double the amount of loot. I found a way to perfectly upscale the enemy sprites, so they look a little bit retro without looking stretched. Literally every pixel is now just a 2x2 square of the same pixels, perfectly to scale. I saw this technique used in a different game and thought it looked quite charming, but I can't for the life of me remember which game it was right now.
At any rate, these enemies have a 5% chance of spawning over any enemy in a troop except for the first one. While I was at it, I made some adjustments to the spawn rates of enemies, added hoard encounters of up to six weak enemies, and added some much smarter enemy AI by rewriting the code for a skill condition that was going unused. Now I can make enemies do things EXACTLY when I want them too, and even give them a specific designated target. I may do a video on how I did that later. Speaking of which...
I did a video on how to implement 8 directional movement, and now it's in the game. It works extremely well, and actually fits this game quite well. I won't talk about it too much here, since the video is right in front of you. Go watch it. You know, if you feel like it. No pressure.
And the last thing I did this month was alter some of the status ailments. Seize will now reduce DEX instead of RES, but Freeze will reduce RES as well as immobilize. And, most importantly, Burn status damage over time has been altered. When an actor is inflicted with Burn, they'll take damage equal to 3% of their max HP every turn. But when an enemy is hit with Burn, they'll take damage based on their level. This means that common enemies will take quite a lot of damage, but boss enemies won't be affected quite as heavily. This also allowed me to modify some of the Legendary elemental weapons to give them some really cool effects, like a Fire sword that can deal double the DOT when it inflicts Burn as opposed to any other Fire weapon. That took some creative work too, but it's a bit complicated to go into right now. Needless to say, some of the Legendaries just got way cooler.
And that's about it for this month. Huh. I guess I got more done than I'd thought. Just not much story progress. But these are all changes I'm really happy with, and a lot of thought went into them. It also stretched me quite a bit as a developer, trying to figure out ways to implement these features into RMVX. I should mention, all the code that went into this stuff is my own. I'm not really using a lot of scripts from other scripters in this game, so whenever I think of something to add to the game, I have to figure out how to do it myself, and in a very old engine at that. So, yeah. I guess I'm proud of what I got done.
And with that. Goodbye 2023. Honestly, you kind of sucked. But this game has given me a lot of happiness. I'm looking forward to seeing what I can get done with it in 2024. See you all then! And happy New Year!
Game Design
Over 70 Different Kinds! Try them now! Don't wait!
So nobody asked me about this, but I'm writing about it anyway. How did I manage to create one enemy with 70+ different "skins?"
I'm talking about the Thralls. You know, the enemy that the game is named after. So, when you encounter a group of Thralls, each one will spawn with their own sprite and weapon. There's a lot of detail that went into this, from checking what their equipped weapon type is and giving them the correct attack pattern, and even determining whether or not the weapon is elemental, changing the weapon animation, status applications, and damage type respectively. But I'm not talking about that.
I'm talking about the sprites, specifically. See, here's the thing. The database only has one entry for "Thrall" in the enemy section. So how are there 70+ different enemy sprites for this one enemy? Well, it's all (in part) thanks to the battle system I'm using. For Thrall, I'm using an old VX version of Tankentai's Sideview Battle System. In that script, there's a section where the battler sprite is created. Thanks to some inventive naming conventions, I was able to add in a small line of code that alters the battler sprite upon creation of that battler, but does not constantly update the sprite. That code looks a bit (exactly) like this:
Essentially, it uses the battler graphic assigned in the database "$Thrall" and checks to see if there's a number at the end. If not, a random number between 1 and the total number of possible enemy sprites is generated and concatenated onto the battler name. Then, the battler sprite is created using that name. I then named each of the possible battler sprites with this naming convention, as follows:
So the game will never use the base sprite, and instead will re-skin the Thrall with one of 70 or so potential sprites. This same code is used for Newbloods and possibly will be used for other types of enemies. With this code, I can use a single database entry for a massive number of different looking enemies, even if they all function the same.
Anyway, that's really all there is to it. I was going to do a progress report for the end of November blog, but honestly this month has been slow. The progress report from the 15th was way better, so instead here's a bit of developer insight. That's all for this month, see you all again on December 15th!

I'm talking about the Thralls. You know, the enemy that the game is named after. So, when you encounter a group of Thralls, each one will spawn with their own sprite and weapon. There's a lot of detail that went into this, from checking what their equipped weapon type is and giving them the correct attack pattern, and even determining whether or not the weapon is elemental, changing the weapon animation, status applications, and damage type respectively. But I'm not talking about that.
I'm talking about the sprites, specifically. See, here's the thing. The database only has one entry for "Thrall" in the enemy section. So how are there 70+ different enemy sprites for this one enemy? Well, it's all (in part) thanks to the battle system I'm using. For Thrall, I'm using an old VX version of Tankentai's Sideview Battle System. In that script, there's a section where the battler sprite is created. Thanks to some inventive naming conventions, I was able to add in a small line of code that alters the battler sprite upon creation of that battler, but does not constantly update the sprite. That code looks a bit (exactly) like this:

Essentially, it uses the battler graphic assigned in the database "$Thrall" and checks to see if there's a number at the end. If not, a random number between 1 and the total number of possible enemy sprites is generated and concatenated onto the battler name. Then, the battler sprite is created using that name. I then named each of the possible battler sprites with this naming convention, as follows:

So the game will never use the base sprite, and instead will re-skin the Thrall with one of 70 or so potential sprites. This same code is used for Newbloods and possibly will be used for other types of enemies. With this code, I can use a single database entry for a massive number of different looking enemies, even if they all function the same.
Anyway, that's really all there is to it. I was going to do a progress report for the end of November blog, but honestly this month has been slow. The progress report from the 15th was way better, so instead here's a bit of developer insight. That's all for this month, see you all again on December 15th!
Progress Report
Oh Snap - Progress Report 7
Oops.
I missed blog day. It was supposed to be yesterday and I just forgot. Matter of fact, I completely forgot to come up with a subject for the mid-month blog, so I'm doing another progress report!
That's okay, though. I was on vacation for a week in the first half of November, so I was able to get a lot done, and there's actually quite a bit to report on. So, let's get into it, shall we? First of all, I managed to create a unique consumable item that'll be used in the late game. I think I can share this without any spoilers, but essentially I found a way to create an item that replaces the elemental damage type of your currently equipped weapons! This was super cool, and gave me some really good ideas for how to wrap up some story points. What's really neat about this is that it not only overwrites whatever element the weapon had, but it also replaces the attack animation for the weapon while keeping its weapon type (blunt, sword, axe etc.). So that was cool.
What else? Well, I found a way to animate the Overdrive gauges! Now, when the gauge is completely filled, it won't just turn into a static rainbow colored gauge, but will instead be a color changing, flowing rainbow gauge! I know, so exciting. I'm sure it doesn't sound like much, but I'm really happy with the result.
Yeah, this progress report is mostly going to be me geeking out over a bunch of very small and seemingly insignificant but kind of cool coding things I figured out.
On a more useful note, I did find a way to improve on the Colorblind mode, and actually test it out. I changed some of the gauge colors for better contrast and adjusted some other system colors while that mode is active, then tested the mode by going into my computers graphic settings and turning saturation to zero. I then played through the demo to see how effective the method was, and while not perfect it certainly was an improvement over the previous iteration. Accessibility settings are important! They deserve as much attention as anything else.
Now, one major thing I did was rewrite the battle system. Mostly. I essentially completely re-wrote how the Game_Battler script calculates damage for both physical attacks and skills. This solved two problems. One, the code is much more readable and easier to edit if I need to change or add anything. And two, now you can gain all the benefits of passive abilities from skill trees or unique weapons while using techniques, instead of getting those buffs exclusively from normal attacks. This was very important for a number of things such as Overdrive skills not stacking Overkill damage, or certain skills being less powerful than the base attack simply because they didn't get the same buffs across the board. With this change, combat will be much more consistent and predictable.
Also, apparently I screwed up somewhere and the RES stat did literally nothing. That's fixed now. Oops.
What else, what else - OH! I changed Weak status. Before, Weak status would reduce enemy DEF by 80%, increasing the amount of damage physical attacks would do if the enemy had naturally high DEF. But that's kind of boring and unpredictable. So now, Weak status works kind of the same way as Slag in the Borderlands games. Enemies (or allies) afflicted with Weak status will take 2x damage from all sources. In addition, I've added custom animations for Weak weapons and attacks to look more like poison attacks, and even changed Damien's attack animations when using daggers if he has Poison Blade unlocked. It feels much more like a viable weapon element now, and is also something to be more wary of when fighting enemies.
Let's see, I also changed the tutorials. Instead of a massive info dump all at once that explains EVERYTHING, tutorials are now more reactive. So for example, instead of explaining Overdrive at the beginning of the first battle, Overdrive will be explained only once you've filled your Overdrive gauge for the first time. Also, I've added small tutorials for when you find elemental weapons, explaining what each element and the associated status does.
And finally, since I know this was brought up in the initial testing phase, I changed the Locker. Normally, you could stash one weapon and one armor that could then be accessed from any save file. Now, you can stash up to 3 weapons and 3 armors. This way, you can transfer at least one item per party member, essentially. This didn't seem to increase load times at all, but it does increase the game's overall file size. By a whole whopping 2KB. Scary. At any rate, the Locker should be much more functional now.
And that's about it! I did work on a ton of maps and cutscenes as well, but that's kind of par for the course. Sorry for the late blog, and sorry it's not very well structured or formatted, this was kind of rushed. Hopefully I'll be a little more prepared for the blog at the end of November. Until then!
I missed blog day. It was supposed to be yesterday and I just forgot. Matter of fact, I completely forgot to come up with a subject for the mid-month blog, so I'm doing another progress report!
That's okay, though. I was on vacation for a week in the first half of November, so I was able to get a lot done, and there's actually quite a bit to report on. So, let's get into it, shall we? First of all, I managed to create a unique consumable item that'll be used in the late game. I think I can share this without any spoilers, but essentially I found a way to create an item that replaces the elemental damage type of your currently equipped weapons! This was super cool, and gave me some really good ideas for how to wrap up some story points. What's really neat about this is that it not only overwrites whatever element the weapon had, but it also replaces the attack animation for the weapon while keeping its weapon type (blunt, sword, axe etc.). So that was cool.
What else? Well, I found a way to animate the Overdrive gauges! Now, when the gauge is completely filled, it won't just turn into a static rainbow colored gauge, but will instead be a color changing, flowing rainbow gauge! I know, so exciting. I'm sure it doesn't sound like much, but I'm really happy with the result.
Yeah, this progress report is mostly going to be me geeking out over a bunch of very small and seemingly insignificant but kind of cool coding things I figured out.
On a more useful note, I did find a way to improve on the Colorblind mode, and actually test it out. I changed some of the gauge colors for better contrast and adjusted some other system colors while that mode is active, then tested the mode by going into my computers graphic settings and turning saturation to zero. I then played through the demo to see how effective the method was, and while not perfect it certainly was an improvement over the previous iteration. Accessibility settings are important! They deserve as much attention as anything else.
Now, one major thing I did was rewrite the battle system. Mostly. I essentially completely re-wrote how the Game_Battler script calculates damage for both physical attacks and skills. This solved two problems. One, the code is much more readable and easier to edit if I need to change or add anything. And two, now you can gain all the benefits of passive abilities from skill trees or unique weapons while using techniques, instead of getting those buffs exclusively from normal attacks. This was very important for a number of things such as Overdrive skills not stacking Overkill damage, or certain skills being less powerful than the base attack simply because they didn't get the same buffs across the board. With this change, combat will be much more consistent and predictable.
Also, apparently I screwed up somewhere and the RES stat did literally nothing. That's fixed now. Oops.
What else, what else - OH! I changed Weak status. Before, Weak status would reduce enemy DEF by 80%, increasing the amount of damage physical attacks would do if the enemy had naturally high DEF. But that's kind of boring and unpredictable. So now, Weak status works kind of the same way as Slag in the Borderlands games. Enemies (or allies) afflicted with Weak status will take 2x damage from all sources. In addition, I've added custom animations for Weak weapons and attacks to look more like poison attacks, and even changed Damien's attack animations when using daggers if he has Poison Blade unlocked. It feels much more like a viable weapon element now, and is also something to be more wary of when fighting enemies.
Let's see, I also changed the tutorials. Instead of a massive info dump all at once that explains EVERYTHING, tutorials are now more reactive. So for example, instead of explaining Overdrive at the beginning of the first battle, Overdrive will be explained only once you've filled your Overdrive gauge for the first time. Also, I've added small tutorials for when you find elemental weapons, explaining what each element and the associated status does.
And finally, since I know this was brought up in the initial testing phase, I changed the Locker. Normally, you could stash one weapon and one armor that could then be accessed from any save file. Now, you can stash up to 3 weapons and 3 armors. This way, you can transfer at least one item per party member, essentially. This didn't seem to increase load times at all, but it does increase the game's overall file size. By a whole whopping 2KB. Scary. At any rate, the Locker should be much more functional now.
And that's about it! I did work on a ton of maps and cutscenes as well, but that's kind of par for the course. Sorry for the late blog, and sorry it's not very well structured or formatted, this was kind of rushed. Hopefully I'll be a little more prepared for the blog at the end of November. Until then!
Progress Report
Spooky Spooky Vampires - Progress Report 6
Happy Halloween!
Time for another progress report on the development of Thrall! This month has been very productive, and I managed to add a lot to the game for the story, mechanics, and dungeon creation. To start, let's go through a brief list of what's been added this month:
- Controller configuration and accurate button prompts in-game
- Updated UI in the equip, inventory, loot and skill tree scenes
- Created a flowing water effect with a parallax mapping style for the next dungeon
- Added Gold drops to the common item loot pools
- Changed the way EXP is handled and updated battle end messaging
- Added an option to sort loot by either rarity or type
- Added an entire new weapon accessory "MULTI", which allows for two hits per attack
- Overhauled and buffed most of the skill trees
- Created a Blackjack minigame
- Added unique character-specific Overdrive skills
- Added several maps to the next new dungeon
- Started on a written story outline
- Updated the demo with all of the above listed changes
And a host of other minor changes and fixes!
So, that's a lot of work for one month. I've also added several new videos to the YouTube channel showing my work on some of these. I won't go into detail on all of these changes, but there's a few I'd like to highlight.
First, the button prompts. I already sort of mentioned this, but I figured out a way to recognize how a player has their keys and controller buttons configured from the F1 menu, then display on-screen prompts that coincide with those configurations, meaning that you'll always be given accurate prompts for in-game actions! This is something that has plagued RMVX games for over a decade, and with the help of a script from Zeriab's pastebin (and some considerable editing on my part), this issue has been pretty much completely resolved! The only issue that remains is that configurations are not updated until the game is fully closed, so if you change your settings you'll need to do a hard reset of the game before the prompts are updated. Nothing I can do about that, unfortunately, since the registry file literally does not update until the game fully closes.
Another thing I wanted to highlight is the new weapon accessory. Previously, weapons could only generate with one of three potential accessories, "FAST", "KNOCKBACK", and "CRITDMG". Now, a new accessory has been added, "MULTI". With this new weapon accessory, there are around 40 more unique weapon prefixes that can generate, and weapons can get some cool new functionality! With the "MULTI" accessory, normal attacks with these weapons will hit twice per round! But be careful, because those same weapons will generate with 40% less DMG. Elemental weapons can be very powerful with this accessory, as you get double the opportunity to proc status effects, and certain characters can abuse this mechanic to stack certain combinations faster than ever! But any ability that uses the DMG stat of the weapon will likely be negatively affected by this change, so be careful who you give these weapons to.
At any rate, those are the main changes I wanted to address in this blog, but there are a plethora of other changes! And the best part? You get to try them out! The demo has been updated as of yesterday to v0.5, and all these changes plus more have been included! I look forward to revealing more about the game as time goes on, and I look forward to hearing your feedback! This project has been a major highlight in my life, and a much-needed creative outlet, so I'm thrilled to be able to share it with you.
And with that, I hope you enjoy! Happy Halloween! See you again on November 15th!
Time for another progress report on the development of Thrall! This month has been very productive, and I managed to add a lot to the game for the story, mechanics, and dungeon creation. To start, let's go through a brief list of what's been added this month:
- Controller configuration and accurate button prompts in-game
- Updated UI in the equip, inventory, loot and skill tree scenes
- Created a flowing water effect with a parallax mapping style for the next dungeon
- Added Gold drops to the common item loot pools
- Changed the way EXP is handled and updated battle end messaging
- Added an option to sort loot by either rarity or type
- Added an entire new weapon accessory "MULTI", which allows for two hits per attack
- Overhauled and buffed most of the skill trees
- Created a Blackjack minigame
- Added unique character-specific Overdrive skills
- Added several maps to the next new dungeon
- Started on a written story outline
- Updated the demo with all of the above listed changes
And a host of other minor changes and fixes!
So, that's a lot of work for one month. I've also added several new videos to the YouTube channel showing my work on some of these. I won't go into detail on all of these changes, but there's a few I'd like to highlight.
First, the button prompts. I already sort of mentioned this, but I figured out a way to recognize how a player has their keys and controller buttons configured from the F1 menu, then display on-screen prompts that coincide with those configurations, meaning that you'll always be given accurate prompts for in-game actions! This is something that has plagued RMVX games for over a decade, and with the help of a script from Zeriab's pastebin (and some considerable editing on my part), this issue has been pretty much completely resolved! The only issue that remains is that configurations are not updated until the game is fully closed, so if you change your settings you'll need to do a hard reset of the game before the prompts are updated. Nothing I can do about that, unfortunately, since the registry file literally does not update until the game fully closes.
Another thing I wanted to highlight is the new weapon accessory. Previously, weapons could only generate with one of three potential accessories, "FAST", "KNOCKBACK", and "CRITDMG". Now, a new accessory has been added, "MULTI". With this new weapon accessory, there are around 40 more unique weapon prefixes that can generate, and weapons can get some cool new functionality! With the "MULTI" accessory, normal attacks with these weapons will hit twice per round! But be careful, because those same weapons will generate with 40% less DMG. Elemental weapons can be very powerful with this accessory, as you get double the opportunity to proc status effects, and certain characters can abuse this mechanic to stack certain combinations faster than ever! But any ability that uses the DMG stat of the weapon will likely be negatively affected by this change, so be careful who you give these weapons to.
At any rate, those are the main changes I wanted to address in this blog, but there are a plethora of other changes! And the best part? You get to try them out! The demo has been updated as of yesterday to v0.5, and all these changes plus more have been included! I look forward to revealing more about the game as time goes on, and I look forward to hearing your feedback! This project has been a major highlight in my life, and a much-needed creative outlet, so I'm thrilled to be able to share it with you.
And with that, I hope you enjoy! Happy Halloween! See you again on November 15th!
Game Design
Gambling - Developer Insight 2
Greetings Vampire Hunters!
Today's blog is going to be highlighting a new feature that I managed to implement over the last two days. All told, it was about four hours worth of work, so not an incredibly long time investment, but the end result is quite pleasing. This time, I was able to create a small gambling mini-game at the Hollow Keep.
I created Blackjack!
Among other things.
Let me start with one part of this screenshot, the button prompts. You may notice, there are icons denoting which key to press for each option. That's actually something I managed to figure out about two weeks ago, and uploaded a video about last week. Now, this game can recognize how you have your controls configured, determine whether or not you're using a controller or the keyboard, then output specific icons that correspond with your configurations, meaning that the on-screen prompts will always be accurate! This was super exciting, and I'm really happy to have figured out how to do that.
Anyway, let's get back to the main focus of this blog. Yes, I created Blackjack. Why? Because I was bored, mostly, and really wanted a break from the tedium of mapping. In one evening, I managed to create a working prototype, and the following morning I imported it into the project and added some nice fluid animation, sound effects, a clean UI, and overall presentation. This will be available as a simple mini-game that can be played at the Hollow Keep after completing around 3-4 missions. You can bet any amount of gold between 0-999, and if you win you'll double your bet. This adds a method of earning money at the Keep, which means that if you find a Legendary weapon or armor in the shops and can't quite afford it, there's still a way of purchasing it without missing out.
The idea here is that this will be helpful to fill in the gaps, but as you gain more levels and find better loot, the better method of earning money will absolutely be selling extra gear. I don't want this to become a way to spam infinite money, which is why the most you can earn from any individual game is limited to around 1000 gold. When you get to higher levels where top tier weapons can cost literally hundreds of thousands of gold, it isn't exactly the best method, but can really help in the early game.
Now, how did I do this? Actually, it was pretty easy, but took some scripting knowledge. I started by creating three arrays in the $game_system module. One for a deck, and two for the player and dealer hands. Then, at the start of the game I populated the deck array with the file names of the card pictures. I also named those pictures with a specific format. For example, the two of spades is named "2 1", and the two of hearts is "2 2". I'll explain why I did that later.
The next part was to determine how to deal cards. I basically took a random value out of the deck array, copied it to one of the hand arrays, then deleted it from the deck. I then displayed a picture using the file name in that array, thereby displaying the correct card.
But, how did I manage to calculate card totals? This is where those file names come into play. I managed this by taking the file name, using .split(/ /) to separate the numbers, then reading the first number with .to_i and adding up all the values in the hand array. If the array was over 21, I would scan the array to see if any of the file names was equal to 11 (an ace), then remove 10 from the value. From there, it was a simple matter of checking if the value is over 21, higher or lower than the opponent, etc. Opponent AI for blackjack is about as simple as it gets, since the dealer is essentially automated in almost every version of the game.
And that's honestly about it. I used the Label and Jump To Label event commands quite a bit for this, and managed to create the whole game without using any evented loops, but honestly about 80% of the event is script calls. Regardless, it wasn't terribly difficult, but has resulted in a fun and simple mini-game that gives the player a nice way of making some extra money.
These kinds of things are what make a lot of games fun, in my opinion. Can you take a little break from the story to do something fun? Is there a brief and rewarding distraction from the bleakness of the situation? I always wanted to make a fun little card game in one of my games, but I always thought it would be too complicated. Until I ended up making a random loot system and random dungeon generation. Compared to those, Blackjack is a piece of cake.
Anyway, that's it for this blog! This month has already seen a TON of innovations and creativity, and I'll share all of them in the progress report at the end of the month, but for now I just wanted to highlight the most recent development!
Today's blog is going to be highlighting a new feature that I managed to implement over the last two days. All told, it was about four hours worth of work, so not an incredibly long time investment, but the end result is quite pleasing. This time, I was able to create a small gambling mini-game at the Hollow Keep.
I created Blackjack!
Among other things.
Let me start with one part of this screenshot, the button prompts. You may notice, there are icons denoting which key to press for each option. That's actually something I managed to figure out about two weeks ago, and uploaded a video about last week. Now, this game can recognize how you have your controls configured, determine whether or not you're using a controller or the keyboard, then output specific icons that correspond with your configurations, meaning that the on-screen prompts will always be accurate! This was super exciting, and I'm really happy to have figured out how to do that.
Anyway, let's get back to the main focus of this blog. Yes, I created Blackjack. Why? Because I was bored, mostly, and really wanted a break from the tedium of mapping. In one evening, I managed to create a working prototype, and the following morning I imported it into the project and added some nice fluid animation, sound effects, a clean UI, and overall presentation. This will be available as a simple mini-game that can be played at the Hollow Keep after completing around 3-4 missions. You can bet any amount of gold between 0-999, and if you win you'll double your bet. This adds a method of earning money at the Keep, which means that if you find a Legendary weapon or armor in the shops and can't quite afford it, there's still a way of purchasing it without missing out.
The idea here is that this will be helpful to fill in the gaps, but as you gain more levels and find better loot, the better method of earning money will absolutely be selling extra gear. I don't want this to become a way to spam infinite money, which is why the most you can earn from any individual game is limited to around 1000 gold. When you get to higher levels where top tier weapons can cost literally hundreds of thousands of gold, it isn't exactly the best method, but can really help in the early game.
Now, how did I do this? Actually, it was pretty easy, but took some scripting knowledge. I started by creating three arrays in the $game_system module. One for a deck, and two for the player and dealer hands. Then, at the start of the game I populated the deck array with the file names of the card pictures. I also named those pictures with a specific format. For example, the two of spades is named "2 1", and the two of hearts is "2 2". I'll explain why I did that later.
The next part was to determine how to deal cards. I basically took a random value out of the deck array, copied it to one of the hand arrays, then deleted it from the deck. I then displayed a picture using the file name in that array, thereby displaying the correct card.
But, how did I manage to calculate card totals? This is where those file names come into play. I managed this by taking the file name, using .split(/ /) to separate the numbers, then reading the first number with .to_i and adding up all the values in the hand array. If the array was over 21, I would scan the array to see if any of the file names was equal to 11 (an ace), then remove 10 from the value. From there, it was a simple matter of checking if the value is over 21, higher or lower than the opponent, etc. Opponent AI for blackjack is about as simple as it gets, since the dealer is essentially automated in almost every version of the game.
And that's honestly about it. I used the Label and Jump To Label event commands quite a bit for this, and managed to create the whole game without using any evented loops, but honestly about 80% of the event is script calls. Regardless, it wasn't terribly difficult, but has resulted in a fun and simple mini-game that gives the player a nice way of making some extra money.
These kinds of things are what make a lot of games fun, in my opinion. Can you take a little break from the story to do something fun? Is there a brief and rewarding distraction from the bleakness of the situation? I always wanted to make a fun little card game in one of my games, but I always thought it would be too complicated. Until I ended up making a random loot system and random dungeon generation. Compared to those, Blackjack is a piece of cake.
Anyway, that's it for this blog! This month has already seen a TON of innovations and creativity, and I'll share all of them in the progress report at the end of the month, but for now I just wanted to highlight the most recent development!
Progress Report
Lyre Forest - Progress Report 5
Good evening!
It's been a fairly productive month, but I've noticed something about the development of this game. Notably, that development is taking longer than anticipated. I had hoped to have most of the next dungeon completed by the end of this month, but as of now I'm currently sitting at about 1/4 complete for the next dungeon. As a result, I may need to push back the expected release date of this game, but we'll see. I am also expecting to get faster as I go along, and have more time as life starts to settle down again (things have been a little nuts).
However, with that said, the next dungeon is in fact well underway!
The Lyre Forest is the next dungeon in development, and it comes with a host of unique features. My goal with each dungeon is to have a special unique feature or enemy that distinguishes the dungeon from any other. The Bloodstone Mine was basically just an introduction to the dungeon style, and Eleston had bats that had a chance to turn into a Vampire on touch. The Lyre Forest, however, has two unique enemies that change the way encounters are handled.
The first enemy is the Forest Sprite, which will vanish if you get too close to it, but will chase you once invisible. Once it touches you, the battle will start. It is still faintly visible when vanished, but it makes avoiding this enemy a little more difficult.
The second enemy is somewhat the reverse of the Sprite. The Gnome will appear on the map as a simple normal rock. But, get too close and the Gnome will burst out, chasing you down. You'll have to watch carefully to see if the rock is benign, or hiding a hostile Gnome.
That's all I'll reveal so far about the Lyre Forest, and I'm hoping to have the dungeon done by the end of October. I've also got the next dungeon planned out, and it should take considerably less time. With any luck, I'll have the game about 1/4 complete by the end of the year!
Now, that's not all I did this month. I also released several more videos on YouTube for the Thrall Developers Showcase. Links to those videos are available on the Media page. Included are showcase videos detailing the skill trees of all four party members, as well as a mapping series where I showcased the full mapping process for the Lyre Forest. I'll continue to release one video per week, preferably on the Sunday showcasing another aspect of development. Tomorrow, I'll be talking about save systems, and how the system for Thrall was developed.
Anyway, that's it for the month of September! See you all again on October 15th!
It's been a fairly productive month, but I've noticed something about the development of this game. Notably, that development is taking longer than anticipated. I had hoped to have most of the next dungeon completed by the end of this month, but as of now I'm currently sitting at about 1/4 complete for the next dungeon. As a result, I may need to push back the expected release date of this game, but we'll see. I am also expecting to get faster as I go along, and have more time as life starts to settle down again (things have been a little nuts).
However, with that said, the next dungeon is in fact well underway!
The Lyre Forest is the next dungeon in development, and it comes with a host of unique features. My goal with each dungeon is to have a special unique feature or enemy that distinguishes the dungeon from any other. The Bloodstone Mine was basically just an introduction to the dungeon style, and Eleston had bats that had a chance to turn into a Vampire on touch. The Lyre Forest, however, has two unique enemies that change the way encounters are handled.
The first enemy is the Forest Sprite, which will vanish if you get too close to it, but will chase you once invisible. Once it touches you, the battle will start. It is still faintly visible when vanished, but it makes avoiding this enemy a little more difficult.
The second enemy is somewhat the reverse of the Sprite. The Gnome will appear on the map as a simple normal rock. But, get too close and the Gnome will burst out, chasing you down. You'll have to watch carefully to see if the rock is benign, or hiding a hostile Gnome.
That's all I'll reveal so far about the Lyre Forest, and I'm hoping to have the dungeon done by the end of October. I've also got the next dungeon planned out, and it should take considerably less time. With any luck, I'll have the game about 1/4 complete by the end of the year!
Now, that's not all I did this month. I also released several more videos on YouTube for the Thrall Developers Showcase. Links to those videos are available on the Media page. Included are showcase videos detailing the skill trees of all four party members, as well as a mapping series where I showcased the full mapping process for the Lyre Forest. I'll continue to release one video per week, preferably on the Sunday showcasing another aspect of development. Tomorrow, I'll be talking about save systems, and how the system for Thrall was developed.
Anyway, that's it for the month of September! See you all again on October 15th!
Game Design
The Locker - Developer Insight 1
Greetings Vampire Hunters!
Today's blog is going to be a bit different. I'm going to be changing how I make blog posts moving forward, but don't worry! I'll still keep you up to date on all the cool new things that I'm working on.
Moving forward, the blog post scheduled for the 15th of the month will not actually be a progress report, but instead a blog depicting some of the insights of the developer (me). This could be anything from the reasons I started this project, why I made some development choices, how I created certain functionality, or even a Q and A if I get more questions that could be answered in a blog format. However, the blog post released on the last day of the month will still be a progress report, and will include all the changes and progress that was made during that month, rather than just a two week period.
So with that, let's jump in! Our topic today? The loot system. I'll probably make a couple different blogs diving into this topic, since it is a completely unique feature for a game made with this platform (to my knowledge). The loot system is entirely custom, and I've yet to see something quite like this made with RMVX. Ace had some pretty unique systems, and I've seen a lot done with the newer engines, but I've always used VX, and I've found that there's little that can't be done with the engine if you know what you're doing.
Today, I'd like to share some insight as to why I made certain design choices surrounding this system. Next month I'll probably dive more into how the system actually works, but for now let's talk about one particular feature that this system enables: the Locker.
Once you get past the opening sequence, you gain access to three storage lockers. One is for gold, and is entirely evented. Another allows you to store and retrieve up to 10 weapons, armors, and items that you find (also a custom system that was actually a byproduct of the loot system). And the last one allows you to store ONE weapon and ONE armor, but with a unique caveat: the items stored in this locker can be retrieved from ANY save file. If you put something in this locker on File 1, you can retrieve it from File 3.
I'm not going to go into too much detail about how I made this system, but it involved adjusting how the game saves and loads weapon and armor data. At any rate, with this system you could find a Legendary weapon on one file, but eventually your characters will become too high of a level for it to be relevant. Now, you can stash this weapon and use the Locker to move it over to a new save file when you become a high enough level to use it on the new file. That way, if you find a great weapon, the amount of time you get to spend using it can be expanded indefinitely.
That's great, and it's a very unique feature for this engine, but there's a problem. This allows for item duplication. How so? Well, if you saved your game in two separate slots, you could load one file, transfer a weapon into the locker, load the other file, and retrieve it from that one, thereby giving yourself a duplicate item with very little effort and no bugs or cheating. So, how do you fix this?
Well, my solution was to limit how you can save the game. When you start a new file, you get an account. You can only save to that one account. The account cannot be overwritten by other files, and you cannot change which slot that account is saved to. Essentially, you get one save file per playthrough. If you want a second save file, you need to start a new game. This prompted two more necessary changes. First, I had to ensure that you could erase your save file to make room for new files, since normally you could just save over old files. This was simple, and just meant including an "Erase" option from the main menu. The second change, however, was to ensure that players could never softlock the game.
The problem with limited save systems is typically softlocks. If you get stuck, but you've saved your game, you can't reload an older save. There can only be one. So, this meant removing game overs entirely. I had to spend quite a bit of time considering how I would canonically include respawns to the game, and I kind of just realized that it wasn't important to the canon of the game. So, I recoded how lost battles are processed. Instead of triggering a game over, the player is simply warped back to the home base. But this prompted yet another challenge: how do you make lost battles something punishing and to be avoided when you hardly lose any progress? I considered having the player lose everything they were carrying, but if you had found a really rare weapon or armor in your travels and lost it due to a bad encounter, that would really suck.
In the end, I went with lost battles costing the player all their held gold and consumable items. This further improved the usefulness of the already-implemented storage systems, as now you had a reason to stash gold if you felt the risk of a lost battle was fairly high. Stored gold is not lost, nor are stored items.
Now, there's one more feature that was prompted by the inclusion of the Locker. Level requirements. The idea was that you could find a high powered weapon at level 99, transfer it over to a new file, and have a level 1 character use it. That wasn't something I wanted to have happen, as it would essentially invalidate that special weapon you found at level 20, which was the whole point of the Locker in the first place, extending the usefulness of early game rare items. So, to that end, I added a level requirement for weapons and armor to ensure this system couldn't be cheesed. It's still pretty useful, and accomplishes its goal, but I wanted to share with you how implementing one system can necessitate the implementation of others, and how no one system works on its own, but rather in conjunction with all the other systems surrounding it.
I'll close this by saying that while this solves the majority of the problems, there are still workarounds. You can still technically duplicate items, granting yourself infinite money or a full set of super powerful gear. Will I tell you how to do it? Nope. If you can figure out how, awesome, good for you. You earned it. But keep in mind, if it isn't something that I've included in the normal gameplay, it is technically a cheat in this context. It's your save file, you can do what you want, but I do want to make that totally clear from the developers perspective.
Anyway, that's it for this mid-month blog! See you all again at the end of September for the next progress report!
Today's blog is going to be a bit different. I'm going to be changing how I make blog posts moving forward, but don't worry! I'll still keep you up to date on all the cool new things that I'm working on.
Moving forward, the blog post scheduled for the 15th of the month will not actually be a progress report, but instead a blog depicting some of the insights of the developer (me). This could be anything from the reasons I started this project, why I made some development choices, how I created certain functionality, or even a Q and A if I get more questions that could be answered in a blog format. However, the blog post released on the last day of the month will still be a progress report, and will include all the changes and progress that was made during that month, rather than just a two week period.
So with that, let's jump in! Our topic today? The loot system. I'll probably make a couple different blogs diving into this topic, since it is a completely unique feature for a game made with this platform (to my knowledge). The loot system is entirely custom, and I've yet to see something quite like this made with RMVX. Ace had some pretty unique systems, and I've seen a lot done with the newer engines, but I've always used VX, and I've found that there's little that can't be done with the engine if you know what you're doing.
Today, I'd like to share some insight as to why I made certain design choices surrounding this system. Next month I'll probably dive more into how the system actually works, but for now let's talk about one particular feature that this system enables: the Locker.
Once you get past the opening sequence, you gain access to three storage lockers. One is for gold, and is entirely evented. Another allows you to store and retrieve up to 10 weapons, armors, and items that you find (also a custom system that was actually a byproduct of the loot system). And the last one allows you to store ONE weapon and ONE armor, but with a unique caveat: the items stored in this locker can be retrieved from ANY save file. If you put something in this locker on File 1, you can retrieve it from File 3.
I'm not going to go into too much detail about how I made this system, but it involved adjusting how the game saves and loads weapon and armor data. At any rate, with this system you could find a Legendary weapon on one file, but eventually your characters will become too high of a level for it to be relevant. Now, you can stash this weapon and use the Locker to move it over to a new save file when you become a high enough level to use it on the new file. That way, if you find a great weapon, the amount of time you get to spend using it can be expanded indefinitely.
That's great, and it's a very unique feature for this engine, but there's a problem. This allows for item duplication. How so? Well, if you saved your game in two separate slots, you could load one file, transfer a weapon into the locker, load the other file, and retrieve it from that one, thereby giving yourself a duplicate item with very little effort and no bugs or cheating. So, how do you fix this?
Well, my solution was to limit how you can save the game. When you start a new file, you get an account. You can only save to that one account. The account cannot be overwritten by other files, and you cannot change which slot that account is saved to. Essentially, you get one save file per playthrough. If you want a second save file, you need to start a new game. This prompted two more necessary changes. First, I had to ensure that you could erase your save file to make room for new files, since normally you could just save over old files. This was simple, and just meant including an "Erase" option from the main menu. The second change, however, was to ensure that players could never softlock the game.
The problem with limited save systems is typically softlocks. If you get stuck, but you've saved your game, you can't reload an older save. There can only be one. So, this meant removing game overs entirely. I had to spend quite a bit of time considering how I would canonically include respawns to the game, and I kind of just realized that it wasn't important to the canon of the game. So, I recoded how lost battles are processed. Instead of triggering a game over, the player is simply warped back to the home base. But this prompted yet another challenge: how do you make lost battles something punishing and to be avoided when you hardly lose any progress? I considered having the player lose everything they were carrying, but if you had found a really rare weapon or armor in your travels and lost it due to a bad encounter, that would really suck.
In the end, I went with lost battles costing the player all their held gold and consumable items. This further improved the usefulness of the already-implemented storage systems, as now you had a reason to stash gold if you felt the risk of a lost battle was fairly high. Stored gold is not lost, nor are stored items.
Now, there's one more feature that was prompted by the inclusion of the Locker. Level requirements. The idea was that you could find a high powered weapon at level 99, transfer it over to a new file, and have a level 1 character use it. That wasn't something I wanted to have happen, as it would essentially invalidate that special weapon you found at level 20, which was the whole point of the Locker in the first place, extending the usefulness of early game rare items. So, to that end, I added a level requirement for weapons and armor to ensure this system couldn't be cheesed. It's still pretty useful, and accomplishes its goal, but I wanted to share with you how implementing one system can necessitate the implementation of others, and how no one system works on its own, but rather in conjunction with all the other systems surrounding it.
I'll close this by saying that while this solves the majority of the problems, there are still workarounds. You can still technically duplicate items, granting yourself infinite money or a full set of super powerful gear. Will I tell you how to do it? Nope. If you can figure out how, awesome, good for you. You earned it. But keep in mind, if it isn't something that I've included in the normal gameplay, it is technically a cheat in this context. It's your save file, you can do what you want, but I do want to make that totally clear from the developers perspective.
Anyway, that's it for this mid-month blog! See you all again at the end of September for the next progress report!






















