Posted August 05, 2025 by Ex Ignorantia
#unity #unity dev #unity tips #unity process #behind the scenes #bts #coding #unity coding #puzzle #programming #code #making of
Ooooh boy did we really do it all in 38 hours? Howdy folks, Gustavo Rolanski here!
I’ll be honest with you. Poetry? Definitely not my strong suit, which is why I’m thankful to have Sid’s Big Beautiful Writer Brain to do the heart side of the job, while I focus on building and creating the body of the project. The soul? That comes from both of us 😉
I’ll do a quick once-over of the programming and Unity side of things for y’all!
If you ever wondered what it takes to program a small game for a game jam, here’s the breakdown.
Of course, this doesn’t take into account the 3 plugins we used (LeanTween, Odin Inspector, and PlayerPrefsEditor). 1580 lines of code isn’t that much, in comparison to our bigger game, the Dialogue Manager in Crow’s Requiem alone has nearly 1200 lines of code.
For anyone interested in a more in-depth look, here’s a quick rundown on each script used in Last Round:
Interaction Scripts:
Manager Scripts:
Scriptable Object:
Shader:
Utility Scripts:
The game could have worked fine with only two scenes, but I decided to separate it more, to a total of four: the Title Screen, the Intro Video, the Bar, and the Ending Video. The Bar, being the game’s main scene, is the most complex. All scenes use 2 Canvases, one for the main elements and one for overlay elements.
Last Round’s dialogue system uses this nifty scriptable object, which holds all the info we need to display text on screen, which happens whenever you click an NPC’s image. We have the text and speaker name for each line, and when we reach a line with “Is Choice” on, we display the Heart/Soul/Body buttons. Crow’s Requiem uses the same system, but with a LOT more complexity added in.
When the player clicks one of the buttons, the system will relate the line’s Demand with the NPC’s chosen demands to select the correct line of text to show the player.
And let’s talk about the Tracker. We initially planned to do something like how Phasmophobia tracks the ghosts you’re hunting, but honestly, that would require a lot more than 96 hours to do it properly. So instead, I built this monstrosity of a table full of Dropdowns, with less than 12 hours remaining in the jam. Surprisingly, there is no programming required for it. While you are in the Bar scene and change things around in the tracker, they will stay like that even if you close it, and when the game loops, the whole thing resets on scene load.
Other than that, no other outstanding things to talk about with the Unity side of things, just a lot of UI building, image dragging, and tiny adjustments everywhere!
Unity WebGL and Videos. They don’t go together at all, do they? I mentioned earlier that skipping videos should be possible with the VideoUtils script, and in the Unity Editor, it works like a charm. HTML5 video player, on the other hand, does not like it when you try to change the video’s current time, which is why I gave up on it entirely for the build that’s playable on the Jam.
Another issue came from having the DialogueManager handle player inputs using Unity’s Input Action system, which would advance text when you were trying to open the poem or the tracker. I opted to add a button component that calls the method that advances text to the Raycast blocker the Dialogue Box uses to block clicks on NPCs and the move arrows. Issue solved! (At 4 in the morning, but that’s alright!)
In hindsight, I probably should have added more means of controlling things, like pressing A/D or arrow keys to move left and right, or P to open the Poem panel. Those are probably going to be implemented in a future release, along with gamepad support, maybe?
That’s it from me! We hope our weird game gave you an enjoyable ride. And if you haven’t played it yet, why not? It’s free and it’s fun, go check it out and make these two tired devs day by rating and commenting!