Tell a Story Jam(and improve my game jam) post-mortem.
Alright, so where do I start? I guess let's start with my choice of engine: RPG Architect. The reason being was that I bought it during the steam summer sale(of 2023) and made a note to play with it because I thought it was neat. I found the Tell a Story Jam, saw the lospec challenge, and decided fuck it- this is the perfect time to see if I could use it to make a game that looked like the gameboy SaGa games(Final Fantasy Legends 1-3; 3 being my favorite). While I won't call that decision a mistake (I went in knowing it was going to be a challenge working with an engine I only played with for about a week before the jam) I didn't expect how much I would end up fighting with it.
It's the UI
One of the biggest challenges I faced was just creating a functional UI from scratch. The biggest challenge was creating command selection menu. I tried manually inputting everything to replicate it from the sample project, but that cost me more time than I want to admit. I eventually just copied and modified it from the sample project and it just worked fine for reasons I could not fathom and still do not to this day.
Making the out of battle menu helped a lot with learning and understanding how the UI tools worked. I got pretty frustrated as it wasn't clear to me how the context system even worked and the wiki had almost nothing to work with. The whole context thing didn't click until 12 hours before submission. At that point I had to switch gears to trying to get content into the game beyond Winter's room instead of fixing the user interface.
On top of that, I had two other major thorns in my side, both stemming from similar things for entirely different reasons with the same results; a softlock.
My dialogue boxes
No really- it sounds ludicrous and funny (probably is to some of you; I don't fault you) but dialogue boxes were the second bane of this entire project. The first issue stemmed from my dialogue boxes that lacked the box for a speaker- or headerless as the engine refers to it. It's basically a copypasta version of my headered dialogue box but, but for some reason if I ever attached these things to the end of an entity's script it would softlock the entire game. Of course, I only figured it out after about a day and a half of wasted of time trying to resolve it. I never figured out the why on this happened (I still haven't) as I was just ecstatic to finally be able to move on.
Control Lock
Now the second one is another issue I could never resolve, but I imagine some people have walked into it already. For context, the engine has an option to lock movement controls when a dialogue box is opened. Except that the control lock on messages sometimes just doesn't work correctly and leads to you able to move slightly during dialogue boxes. After they're cleared, the player's movement remained completely locked. I never managed to find a solution to that and my only other choice was to leave player controls entirely unlocked during movement. A behavior I don't even want to think the potential ramifications of. This made testing hell as sometimes I'd just have to restart the game just to test a dialogue box. It's the whole reason I went to the effort of implementing an intro skip.
Speaking of testing dialogue, one thing that I wish I had was a way to preview dialogue boxes. I could only work with about 82~ characters in my dialogue boxes. With no quick preview, I had to resort to using Notepad++ because it tracks how many characters are on a single line. So I'd first write the dialogue into my documents and then copypasta into notepad++, adjust it, and then copypasta into the game. In order to make sure it looked right, I'd have to start up the game then go check it there.
Other weird issues
Damage numbers
I had them working earlier on but then they just disappeared and I had no idea why. Nothing I did would ever make them show up again. Still can't figure out to the time of posting.
Status effects
I couldn't figure out how to make a duration timer for them, or any way of displaying a notification icon into the UI for them. One thing I like was that there was an entry condition for status effects so that you could probably certain status effects to trigger automatically based on a battler's conditions during a fight. One thing I didn't like though was that for some reason there wasn't a way to select another status as an entry condition or have any scripting functionality. Like, one thing I wanted to do was have the Barrier stop at 0, and death wouldn't occur from that. Instead the character would get the barrier broken status and a hit during that would remove them from the fight. Any barrier above zero would remove the barrier broken status.
Keybindings
I was trying to resolve another issue and I ended up leaving in another overlapping keybinding that allowed menu access when the player normally isn't allowed to. I didn't realize my chat key has the same issue either, but I'm not sure if people found that one. Pretty much entirely my fault on that one.
What I wanted to do
Ideally I would've released the game and it would have had more than functional combat. I originally wanted to have firearm rounds be limited resource that auto replenishes out of battle. Though I ended up turning Ether into that and then I had firearms take a different role. For Winter, it's a weak AoE option while for Autumn it's his primary damage compared to his more situational spell loadout.
What now
The game has endeared itself to me, so I'm gonna try to finish the game and then probably drop the engine for personal reasons. Scripting wise for story events, I'm about half done with the writing being about 2/3rds done.
Oh yeah, I meant to submit an updated build to Improve my Game Jam, but I didn't read the submission time correctly by an hour- the hour I would've used for writing up everything.
Get Winter Ranger
Winter Ranger
Status | Prototype |
Author | JetDungeonDragon |
Genre | Role Playing |
More posts
- Version 2Feb 25, 2024
- Initial releaseJan 22, 2024
Leave a comment
Log in with itch.io to leave a comment.