Gawehold, one of the developers of the upcoming turn-based tactical JRPG Soul Dier – Part 1, which they have been creating with game developer Weonix, talked to us about how a two-person team crafted a story-driven game with handcrafted levels, custom tools built in Godot, and a challenging battle system.
Introduction
I am Gawehold, and I am currently working with my friend Weonix on the game Soul Dier – Part 1; we are a two-person team from Hong Kong, and we have been doing all the work in the game ourselves.
We were both computer science students at the university, and we shared the common hobby of composing music. (Yes, we also composed over 40 tracks for part 1 ourselves!) Making video games was my childhood dream, and lucky for me, Weonix accepted my invitation on this project when we graduated. That's how our story started.
We originally planned 1.5 years for the whole game. Now that we have spent over 5 years, we have finally managed to almost release half of the game (we decided to separate it into two parts because it would take way too long to make the whole game, and even half of it is decently long in terms of the playtime).
We split our workloads rather evenly. We both do programming extensively because we are both decently capable programmers. I work more on the story & cutscenes and graphics and visuals, while Weonix works more on the battle system and model animations, but it's hard to draw a clear line of who is totally in charge of any parts in the development since we are both very active in it.
Game's World
The world of Soul Dier is a pretty yet strange and incongruent place. The player will visit abandoned modern cityscapes, a medieval island town, and more throughout the main character's journey to retrieve his lost memory.
Gameplay Overview
Soul Dier is a turn-based and grid-based tactical RPG, with the emphasis on positioning thanks to mechanics like directional attacks and directional defenses, along with heavy use of cover/obstacles.
It has a very concise level-based game flow similar to the Valkyria series. The main flow is cutscene -> preparation phase (for reading level info and picking the charms, items, upgrades, etc) -> battle -> next cutscene.
Condensed Contents
The game is inspired by many great classics. One of our major inspirations is the Trails series ("Trails from Zero" and "Trails to Azure" in particular). However, we didn't just blindly follow all the traditions present in the classics. When we designed the game, we carefully excluded all the elements we considered not providing enough value or causing too much dissatisfaction, such as insignificant incremental character upgrades (we have a choose-one-from-three upgrade selection system with all meaningful and impactful options for the character upgrades) or boring side quests (there is no side quest in Soul Dier). All the level rewards are permanent, so there is absolutely zero farming.
We want to only focus on the tactical and storytelling sides. Therefore, the gameplay experience in Soul Dier is quite condensed and filled with exciting elements.
Non-Repetitiveness
To ensure our game doesn't become repetitive, our main focus is to make sure the enemies, levels, and bosses that players will encounter are all unique. We strive to avoid filler levels where players are just clearing out similar batches of enemies over and over again. Almost every level introduces new enemy types or unique and impactful level mechanics that players must pay attention to and plan around in order to succeed. Even for basic enemies, we ensure they have unique visuals and impactful skills that demand players' attention.
There are some clever ways to provide much playtime and replayability without the proportional amount of work; however, we simply spent a ton of time on Soul Dier (part 1) to manually create all the unique content. We have also played and modified the levels so many times to make each level perfect. It's all about time and effort. It may not be a smart idea in terms of the resources over rewards, but we want to create a piece of art instead of just a fun game.
Challenging Gameplay
Soul Dier is a challenging game. When we were still figuring out what makes a game fun in the early stages of the development, I recalled "Rainbow Six Siege". I never liked playing most competitive shooters, but I loved playing this particular game owing to how punishing the game is and how cautious I had to be when making every single move. It inspired me to make Soul Dier a difficult game that punishes mindless brute forcing.
One way we made the battles in Soul Dier intense and tight is that there is almost always a hidden "timer" in the battles. It is not a literal limit like "lose if not finished in 5 turns", but the battles usually go into the enemy's favour as the time goes by unless the player can efficiently clear out the enemies, so the player needs to make good moves to gain extra advantages constantly in order to stay ahead of the enemies.
I mentioned how we trimmed all the insignificant components in the game, which also helps players to focus on thinking about the actual strategies without considering all the clutter, such as "did I grind the character levels enough to win this battle?"
While the "gimmicks" in every level are always very punishing and necessary to deal with, the game is very upfront about all the information, and we try our best to make the players feel it is fair (and also satisfying to make good use of the mechanics). For example, in the "security tower roof" level, there are two giant wrecking balls hovering on the ground. They can break the ground and instantly kill any pawns on it. There are two very obvious indicators clearly showing where they are hovering before smashing the ground one turn ahead, and we made the enemy AI not use skills to force the player pawns to stay under them as well.
Despite all of that, Soul Dier – Part 1 is not that tight, such that there is only one way to play the game. It still allows a decently large range of player expression thanks to the customization (upgrades, items, and charms).
Overall, we are proud of how well many of the battles turned out. We won't spoil them here, but please look forward to it!
Main Story
The story of Soul Dier starts with a fairly simple plot. The main protagonist, Curtain, woke up in a forest, and he had lost his memory, so he started an adventure with the allies he met on the road to retrieve his memory while fighting against a mysterious armed organization called "the Sinkers" that kept trying to kill him for some unknown reason.
The plot in part 1 is more about the story of some people Curtain met on the journey. We have a whole chapter around a detective story that was inspired by the Ace Attorney series (and "Umineko When They Cry" for Weonix, who did some early plotting for this part)! Thanks to the complicated nature of detective stories, we spent a lot of time fixing plot holes.
I paid a lot of attention to presenting the characters. I hope players will find them vivid and enjoy watching the interaction between them. There's also some funny humour throughout the whole game.
Inspiration & Reflection
I have always loved JRPGs and anime since I was a kid. They have a massive impact on my creation or sense of art. Characters in Soul Dier are all very prominent in terms of both visuals and personality. You can almost immediately tell who is who just by a single appearance feature or a dialogue line.
However, there are some things I don't like in JRPGs or anime, and I took these things as hints when I wrote the story for Soul Dier.
In Soul Dier, I try my best to make the characters sensical. It doesn't mean they are all smart. Some characters are dumb, but they won't be that illogical to make you scream in your head, such as being irresponsibly sympathetic towards villains.
I also try to make the plots more logical and "down to earth". For example, when the main characters encounter a difficulty, they need to figure out a solution instead of randomly introducing some sort of ad hoc superpower or spiritual power without any prior hint or integration afterward, despite the fact that the story has a fantasy setting. I believe it makes the story much more satisfying to read.
Finally, when we discussed the story, we did need to think a lot about world-building and background settings (which was quite fun to do), but we presented the story in a very easy way such that players don't need to comprehend too much information at the beginning.
So overall, just like the gameplay, I took what I loved from my inspirations and threw away what I didn't like about them.
Visual Design
I am quite happy about how the visuals of Soul Dier turned out, but it is not completely intentional. Initially, I wanted to have a simplistic cartoon style like "Planetary Annihilation: TITANS", but I didn't know how. Then I started abusing the PBR materials by throwing many high-quality textures. As the development went on, my knowledge of 3D graphics became better and better. After many experiments and iterations, the visual style ended up with the one you see now. It's a semi-realistic, stylish look, influenced by the constraints of my lack of knowledge and the limitations in the tools I used. I personally find it unique and charming as a result.
A very old version of the forest scene
By the way, one reason we made it 3D instead of 2D is that we can't draw (well enough). 3D modelling and animating are much easier for us, so it is also a product of a lack of capability. Overall, the visuals of the game are a kind of display of my learning process.
As for the visual design of the characters, they are mainly inspired by the mighty indie game "Hollow Knight". While I think most people won't think it that way at first sight, the story of Soul Dier is on the darker side (will be much more prominent in part 2), so we did want to have the characters be both cute and slightly uncanny.
Development Process
The game is made with Godot 3 and C#. Overall, we like the workflow when using Godot and find the engine quite pleasant to work with. On the other hand, we also found some flaws, bugs, and missing/immature features in it, especially on the 3D side. They may not be that obvious until you develop a serious project with it.
We have created many custom tools and plugins for our use. For example, we have a tool to merge meshes and bake materials into a simple generic material. We also made a very useful cutscene editor to create and preview cutscenes that saved us so much time. I just recently made an editor plugin to convert text-based resources (.tscn and .tres) to binary files on export (Godot's built-in one doesn't work properly for us).
Optimization is a tough aspect of the project. Fortunately, since we both have a CS background and we were always cautious about it from the beginning, optimizing game logic (including enemy AI) wasn't too hard for us.
However, shaders are another story. I didn't have much experience managing shaders on a larger scale, so I created too many shaders in the earlier stage, which caused long shader compilation times and mid-game stutters. To fix that, I revisited many scenes/materials to improve them and created some related tools to help (the mentioned mesh merger and material baker). We also created a very comprehensive shader caching system to compile the necessary shaders in the loading screen to prevent stuttering mid-game. We did a lot of research into this aspect (it's a very complicated topic), and we have updated the shader caching system many, many times. Finally, it can now compile almost all the necessary (and only the necessary) shaders! Players can now finally enjoy our game smoothly.
Plans
Soul Dier – Part 1 is currently in beta testing, but we are already fairly confident in the current state. It is planned to be released in autumn 2025. Before the release, we will be working on small bug fixing and marketing. For the future, there are things we have in mind:
- Controller support
- Support for more platforms (e.g., Steam Deck)
- More languages
- Part 2
Still, although we have been developing and promoting the project for several years, the game has not yet gained much traction, and all those post-launch plans will highly depend on the sales results.
Our game is currently on Steam and open for wishlisting.