My Small RPG Is Finally Taking Shape
Previously, I went on a quest to make a small RPG game. I initially thought it would take only 1 to 2 months to complete. However, in practice, the project is still not done and I’d like to show what I’ve been up to.
My game can be summarized as follows. It’s an action RPG with a mouse driven combat system where you avoid projectiles and attack by colliding with attack zones. The goal is to defeat a tyrant king named Donovan accessible from the start. You can move around the over-world and fight various foes to become stronger and therefore, be more prepared for the final encounter.
Now that I had a battle editor allowing me to quickly design battle patterns for various enemies, I still needed to diversify the types of attacks that could happen in battle. At this point, I only had two attack types implemented : linear and wavy. While you could play around with speed, amplitude, frequency to make attacks more varied, my options felt too limited.
Battle System Additions
For this reason, I implemented :
A curved attack type with the ability to set its speed and curve height.
The ability to set the rate at which each projectile spawns. Initially, I only could spawn one projectile every second and it couldn’t be modified per projectile. Now, I could have one projectile spawn every 3 seconds and another every 2 seconds, etc…
And finally, allow any projectile to rotate on itself at a configurable speed.
With these new additions, I felt I had enough building blocks to make novel attack patterns for every enemy and therefore avoid repetitiveness as much as possible.
That said, instead of continuing to work on designing battle patterns, I decided I would tackle this later.
The Lore System
My game has a somewhat unique encounter system. Instead of having random battle encounters, you have encounter stars appearing on the map. It’s then up to the player to determine which encounter to engage with by colliding with one of the stars. Yellowish stars are for battles, the red star is for the final boss and finally, greyish stars are for lore encounters. They are the main way I plan to deliver the game’s story and lore.
Except for the intro cutscene which tells the story more directly, my idea behind lore encounters is that when the player collides with one, they get a description that tells them more about the world they’re evolving in.
This is mostly just text. However, I also implemented the ability to show images and split dialogue into multiple parts that could be viewed as a slideshow of some sort.
To summarize, the player would either, get a text-only dialogue and when more important, a slideshow.
Considering that my game is non-linear, as everything is accessible from the start, I still needed to come up with a compelling way to deliver the game’s story.
My plan therefore, is to take the same approach they did in Zelda Breath of The Wild. In that game, the player could find memories that depicted past events in the form of cutscenes. The issue with this system, is that you could often find memories out of order since you were free to explore the world in whatever order you desired. This destroyed any sense of tension or emotional investment in the story.
To not make the same mistake in my game, I came up with the concept of memory chains.
For example, I could have multiple memories as part of a given chain. The player can access the first memory in the chain whenever, however, from then onward, the game will check if you’ve already seen the first memory in that chain before showing you the second.
While there would be multiple independent chains accessible from the start, some would require that you’ve seen the last memory of a previous chain as a prerequisite. Of course, the player wouldn’t be aware of this as the unlocking of memories would be done in the background.
Here is a diagram to better illustrate the idea.
I suspect that creating many memories will be somewhat time intensive. To alleviate the workload, these memories will be intermixed with plain lore descriptions.
Finally, to motivate the player to engage with lore encounters, rather than just battling, sometimes a lore encounter will grant the player loot in the form of added currency or a health boost.
Adding More Encounters Available at Once
A thing that bothered me with my game, is how barren the world felt. At any given point, you only had one or two encounter opportunities spawning and you had to move all the way to that point which felt tedious. However, the fix was quite simple, increase the number of encounter stars available at once. This meant that the player always had many options to choose from every time. That said, I had to be careful to not put too many stars at once as to not overwhelm the player.
CRT Effect Shader
One thing that’s very important when making a game, is making sure it’s visually appealing so that marketing it will be easier. After having announced my project, I’ve received comments telling me that my game looked like a SNES RPG.
To lean into that vibe, what if I offered a CRT effect? I knew that it was something I could offer as the game library I was using had an example I could take.
So I took it and applied it to my game.
I posted the result on Reddit and received interesting feedback.
To summarize :
Some disliked CRT effects in general because they caused eyestrain.
Some liked the effect but wanted the ability to configure it.
Some mentioned that the effect wasn’t realistic enough.
Therefore, I went back to the drawing board and this time, used another CRT shader but from a website called shadertoy which was more accurate and adapted it for my game.
Making a Settings Menu
Now, I needed to make it toggleable and configurable. For this purpose, I decided to create a settings menu that would be accessible by right-clicking.
Considering that my game is actually built using web technologies rather than a standard game engine like Unity or Godot, I had the option of either rendering the menu within the game or on top of it. I opted for the latter because I could access many of the affordances of the web which made making UI elements like sliders, tabs, toggles, etc… a breeze.
The issue of course, is that it looks out of place considering the CRT shader can’t be applied to it, plus the fact that the UI looks too modern. However, you could view this differently. Dialogue boxes, attack and upgrade menus are all designed to be part of the game’s visual language while a settings menu could be considered as something separate, a bit like you’re playing the game through an emulator.
What do you think? Should I lean more into the settings UI being different than the game’s UI or I should reimplement the menu within the game. That said, I know that the current settings menu UI still needs tweaking either way.
Before moving to other aspects of the project, would you prefer if the game had the CRT effect on by default or you would prefer that it would be opt-in rather than opt-out.
Adding Dialogue in Combat
To make each battle meaningful, I had the idea that every enemy should say a few lines before battle. This would give each of them more personality. I was inspired to do this once I realized that in Pokémon, every encounter with a trainer starts with a few lines of dialogue before the battle starts.
If I wanted to apply something similar, I couldn’t really do it in the over-world as you couldn’t see the specific enemy there. Therefore, I had to put this in the battle scene.
Considering that the battle zone is a giant rectangle, It didn’t feel right to place a text box at the center bottom of the screen. I tried bringing it upward, but it still looked weird.
This is where I had the idea of displaying dialogue as a speech bubble near the enemy rather than a traditional text box.
Instead of having the same line over and over, I added up to three different lines per enemy and one would be randomly selected every encounter. For now all enemy dialogue is random placeholder.
Revisiting Design Decisions
Players No Longer Losing All Their Currency After Losing a Battle
In a previous devlog, I explained that to level up or heal, the player needed to spend a currency that was earned by battling enemies. I also mentioned that the player would lose all their currency if they lost a battle.
I wanted to take this approach because I was inspired by soulslikes and this is what they did. In the end, however, I think this mechanic is too punishing for my own game. The main reason is that there’s no way to recover lost currency by winning the next battle, like in many soulslikes.
I could’ve implemented that mechanic as well, but I opted to lean on the fact that my game already had variable rewards after battle. If you won a battle hitless, you would get the full reward for that enemy otherwise, you would get less relative to the damage you took.
Different Upgrade Costs for Attack vs Health stat
It was suggested to me under my playtest page on itch.io that I should make sure the cost required to upgrade the attack stat wouldn’t be the same as the one for health. They found out that if they put all their attention in leveling up the attack stat, they could become easily overpowered making upgrading the health stat useless.
I agree with this sentiment. Even if the scaling of costs for the two stats you could upgrade in the playtest version wasn’t final, I thought having different costs for each was a very good idea.
I therefore proceeded to implement it.
Adding Legendary/Greater Foes
While working on the game, the following idea came to mind : What if I added enemies that could only be beaten once. The idea came about when I remembered that in Elden Ring some enemies (like Dragons) could only be defeated once and would therefore disappear from the world. I thought this would be a nice way to bring actual bosses to my game. For this purpose, I designed a new enemy that would fit the bill.
That said, I’m still not sure if I should commit to this idea, just yet. What do you think? To face a greater foe, you would need to collide with an encounter star of an orange-ish red color which would be used to signifiy that the enemy ahead is an actual boss. They would grant a sizeable reward when defeated.
Anyway, I think I’ll need to add more enemies in general to the game for it to feel like a more complete experience.
I Paid The Steam Fee
When I started working on this game, the goal was always to sell it on Steam. However, up until recently this felt a bit abstract as I never released something there before.
I’d like to announce that I have created my Steamworks account, filled the required info, paid the 100$ fee and used it to create a Steam page.
The page is not public as I’m still filling it in. The biggest bottleneck that prevented me from making it public is the fact that I need capsule art for my game. I’ll tackle this aspect in a moment but in the meantime, I’d like to ask about my game’s description. If you were in my place, how would you describe my game? This is the description I currently have :
A challenging action RPG featuring precise, mouse-driven combat. Liberate the land of Hydralia from the oppressive king Donovan. Strengthen yourself by battling fearsome foes, or confront Donovan directly… if you dare!
What do you think? Please let me know in the comments.
Making Capsule Art
Making effective capsule art for Steam is harder than it looks.
I first needed to think about composition, so I started sketching something in Aseprite (a pixel art editing software) using my mouse.
In the same vein, I tried something else.
Then I tried to polish it up a bit.
However, I started to realize that the composition was getting too complicated and it might not translate to an effective capsule art. Another issue was that the game is called Hydralia : Donovan’s Demise but looking at the previous sketches, someone unfamiliar could easily confuse the main character as being Donovan as he was about to get taken out.
Feeling a bit discouraged, I tried put something together using only art I had already made for the game.
Unfortunately, it didn’t turn out well at all.
This time, I decided to just watch a video of Chris Zukowski (the Steam marketing expert) reviewing capsule art while I was sketching something using proper tools. Mainly an an ipad + apple pencil rather than a mouse. This is the result I was able to achieve.
Overall I’m more satisfied with the final composition as it’s more true to what the game is about. I’ve noticed that almost all games on Steam have their title in the capsule. This made me realize that I should probably drop the Hydralia part of my game’s title as it made it too challenging to put in the capsule.
Donovan’s Demise is simpler to search for and write than Hydralia : Donovan’s Demise.
Anyway, I still haven’t started working on the final capsule yet so it would be nice to have your input on which composition I’ve shown here you prefer.
Conclusion
That’s all I have to share for now. I would say that my game’s systems are mostly complete and what’s left is really producing compelling content for the game. I also need to prioritize getting the Steam capsule done so I can publish my Steam page and start collecting wishlists as early as possible.
If you’re interested in seeing where this game dev journey will lead, I recommend subscribing to not miss out on future devlogs.
If you’ve missed the previous devlogs, I recommend checking them out.














Damn, I love your drawing skills. I know they're not putting you on the same level as big artists, but looking at them, I see something really indie. Love it. I wish I knew how to develop such skills myself :D
I'm gonna buy this game. Make sure it runs on a Steam Deck!