Hey y'all! I've decided to start posting logs of my game development journey in hopes it helps to keep me on track and motivated in finishing my project.
To give a bit of background before I start with this: I'm 24 years old and an independent game developer. I have an associates in game programming, a bachelors and masters in software engineering, and over a decade of experience as a hobbyist artist. I also work full-time as a game programming professor at a college.
Up until recently, I've had no experience working on shipping a game. Back in February of this year, I completed development on my first shipped title--a small, indie visual novel where my main (and arguably sole) contribution was as a programmer.
That project taught me a lot about scope, the importance of creating modular, scalable systems, and overall game design/player feedback. After development finished on it, I was inspired to take what I learned and try again. This time, I'm going to attempt to make my own story and characters into a game that combines the visual novel system I've built (and since improved on) and a strategy RPG system similar to that of Fire Emblem or Final Fantasy Tactics.
Thus, this development log will serve as a record of my progress on this project. My development so far has resulted in a playable prototype, but my goal is to have a completed demo by the end of August, 2026.
So, with that background out of the way, let's talk about progress!
I've already been working on this project for about 2 months. My consistency has been off and on (as I've been finishing up my masters at the same time), but these are the core systems in development:
Modular Visual Novel System
First, the visual novel system. After the completion of my last title, I realized just how much goes into crafting a modular visual novel system. My main goals were to create a system that:
a) reads dialogue, asset names, and game event calls from a JSON file
b) adapts to new game events easily
These two features were non-negotiable. In a dialogue heavy game such as this, having an external file where the dialogue can be easily edited or changed (both for current development and for potential future localization) was mandatory. Additionally, as most of the game events in a visual novel are tied to specific lines of dialogue (such as camera shakes, social point additions/deductions, etc.), being able to call functions through triggers in my dialogue file was also important.
I'm happy to say this has been accomplished! My current system reads JSON to parse class names and instantiate objects of their type. These objects track subsequently invoke events when the dialogue they're attached to is read by the system.
If you'd like to learn more about the actual code written to do this, I may share details in a future post.
The next part that I've been working on is the battle system. The visual novel system and the battle system together make up pretty much the entire game, so getting these done early was integral to actually completing this project.
This battle system has been something I've worked on for several years now. Inspired by a combination of Fire Emblem Fates, Heroes, and Three Houses, I crafted my third-person SRPG battle system by starting with the movement algorithm.
I'm going to be honest. A* pathfinding drives me absolutely nuts.
I started trying to implement A* back during my second semester of my associates degree. Mind you, this was in 2021... Approximately 5 years ago.
After 5 years, however, I've finally got it working the way I need. Building on top of that movement, I've implemented a unit super-class, player and enemy unit sub-classes, a battle manager, a battle HUD manager, and a finite state machine.
The overall behavior of my system works about as you'd expect:
During the player turn, all units become active
When a unit is selected, their available actions change depending on their destination
They can move to a location, use items, attack enemy units, or support ally units
A short animation (which I have dubbed "combat theater") plays to provide visual attack feedback
The unit classes are not particularly impressive. Actually, they turned out really messy at first. It's been quite a while since I've implemented any kind of turn-based system or any sort of unit stat tracking, so I ended up creating a huge, monolithic mess. A single unit class handled stats, movement, states, etc. Seriously, it was bad.
Since then, I've refactored. Now, I have separate classes for unit movement, data, actions, and states. The most important change, however, is that unit state is now handled on the battle manager instead of on individual units. This way, we're only tracking a single state instead of several individual. This fixed a lot of the problems I was having with HUD elements appearing at the wrong time and unit states overwriting one another.
Overall, the battle system works pretty cleanly! Units can swap between states, once all player units have acted, we swap to the enemy turn, enemy units can move towards players and attack, and basic battle completion conditions are in. I've still got some work to do on the item usage/trading system, and I need to add more/different types of win and lose conditions, but a functioning battle system is in place.
Free-time Menu and Shop system
Next we move into more of the incomplete territory. In order to transition between story scenes and battle, I need "free-time" scenes. Essentially, throughout the story, the player needs time to rest, visit markets, craft restoratives, and save the game. Rather than attempt to implement a save system in the middle of story events or battle, I instead wanted to give the player designated time to save.
So, I decided to implement free-time menus where you can do all of those things. This also helps with story pacing, as returning to your inn room can serve as a natural end to a scene. It also allows me to implement area quests/battles and markets without having the additional strain of modeling entire cities. Overall, nice one-stop-shop for basic interactions outside of story.
As of right now, my free time menu exists and functions, but does not have keyboard input set up. The dialogue and the battle scenes operate solely via keyboard, but the free-time scene requires a mouse. An easy fix, truth be told, but I haven't bothered fighting with the event system to do it yet. Perhaps that's next on the to-do list.
What does work, however, is populating the free-time screen with data relevant to your current city. The shop populates with items unique to the city you're in and the city name changes accordingly. Additionally, the player can save their progress and load the game back to the same city/story event they were on.
So, that about sums up my progress as of yet. I've also begun writing some of the game story, but I'll share the details of that in a future dev log. As of right now, though, I have a playable prototype where the player can:
Play through dialogue/story events
Enter and complete a battle
Return to a story event after battle
Enter a free-time event (with city data unique to where they are in story)
Continue to the following story or battle event from the free-time screen
Save and load their progress
So, good progress so far! I look forward to continuing this project and updating my work here. Thank you for reading, and I hope to report back with more soon.