Patch Pending devlog - efficient time conversion






Hello everyone!
It's been a loooong time since the last time I posted a devlog, haha. Since the game jam I am participating in this time encourages participants to publish devlogs, I see this as a perfect excuse to write some stuff here. In this post, I will go over the evolution of the game idea over the span of the last 10 days.
When I first started hearing about the theme of this jam, "Breaking The Loop". The first thing that came to my mind is the idea of reinforcement learning in artificial intelligence. For people who are unfamiliar with reinforcement learning, think of the AI as an extremely terrible player. For the life of them, they absolutely suck at gaming. But over a long time, after they repeatedly playing the same game over a million, each time learning something new, they eventually get better and better.
However, another less commonly known ability of reinforcement learning is that the AI agent's only motive is to maximize efficiency as they interact with the environment, even if it means exploiting the unintended elements of that environment if that helps their motive. There are many entertaining YouTube videos online where, for example, a developer codes a bunch of AI humanoids in a physics environment trained to go for the furthest distance. Intuitively, we would like to think the humanoids would use two legs to run and two arms to swing. But it turns out, based on the way that specific physics engine environment is coded, running with 2 legs + 2 arms (essentially 4 legs) allows the humanoid AI to get further distance.
So latching onto the idea of reinforcement learning, the first idea that I settled on is a simple 2D platformer where the player pretends to be an AI algorithm, playing the same level over and over again. There would also be another AI voice as the player progresses, acting as the supervisor to tell the player what to do. The level stays the same, and it is up to the player to figure out tricks and disobey the supervising voice to "break out of the loop".

At this point as you can see, the idea that this game is an interactive narrative already forms in place. After giving an initial sketch of what the level layout would be, writing the code for player platforming, and developing some crazy deep lore for the direction of the narrative, I just realized it's already been 4 days.
However, what I quickly found out was that due to the sheer scale and size of the level, each new interaction takes a longer and longer time to be implemented, as it matters if the player has interacted with some other items previously and in what specific order. (This original level layout is ~15 times bigger than the current layout.)
By this time, it is already day 6, and the first loop is barely playable. I intended to at least have the player be able to play for 4-5 loops, and judging from the development time, it would not be feasible for me to get it all done along with UI & Music & SFX in the next 4 days.
So, to help speed up the development, what did I do? In the next 2 days, I scrapped the entire idea away and started anew. Well, not entirely entirely, but almost everything, including the direction of the narrative, lore, dialogue set, and complicated item interactions. The new direction is to convert as much of the current development time left into gameplay time as efficiently as possible while ensuring the game is still fun. To show you what I mean by efficient time conversion, here is an example. A game idea that maximizes the development time into gameplay time is idle clicker. The developers do not need a lot of development time to add new stuff, but it could take the players a long time to click things and unlock that new stuff. But idle clickers are not always fun to play; players just sit there and watch numbers go up. So I need to make sure the idea has an efficient time conversion but also delivers at least moderate fun.
I realized the best way to survive in a game jam for me, especially with limited time, is to keep things simple. I reduced the scale of the level layout down to what you already know now (thanks to pixel adventure for their great inspiration). This not only helped me shrink down the complicated development process but also made it easier to add new variations in the future loops on top of the first, increasing the efficiency of time conversion.
After fiddling with a new game narrative at day 8 that you are seeing now in the final version, at last, I decided to use the last 2 days to finally code it out.
If you have finished the game (spoiler here), at one point, the level layout is so glitched that the player can't jump over the gap to reach the door by themselves. In this case, the solution is to open up the setting page and walk over the UI elements. Little did I know that implementing this creative solution in the game engine Unity required me to overhaul every UI element I have up to this point. To keep it short, the UI elements are by default positioned in a different place in the game scene but viewed as if they are in front of everything else from the camera's perspective. To allow the player to interact with the Hitbox of the UI elements, I needed to reposition, resize, and keep things consistent throughout the scenes, which took me 25% of the 2-day development time. So if you ever want to implement such a feature with UI interactions like this, try to toggle the "Render Mode: World Space" button ahead of time haha. I definitely did not follow my efficient time conversion tactic here, lol, but it sure makes the game slightly more fun, so it's worth it in my opinion.
This is my first time developing a more dialogue-based game, so I would say I definitely wasted too much unnecessary time thinking rather than actually getting my hands dirty working on code. The only reason for me to apply an efficient time conversion tactic is due to my poor time management. If I had better control of my time, the interactions would certainly be more polished throughout (currently, both intentional and unintentional glitches are ironically swept under the rug of "it's a feature, not a bug" haha). The ending would also be better explained and less abrupt with the sudden cut-scene.
Though, overall, I would I say I had a blast with this game jam. The jam organizer is pretty generous. extending the deadline not just once but twice. For someone who has poor time management skills, this saved my submission for sure.
Ok, enough of me ranting here again. As always,the more game jams down the line, the more our experience will double. Stay tuned for our next game!
Files
Patch Pending
A game where game glitches are wilder than they seems.
Status | Released |
Author | Blue Birdy |
Genre | Platformer, Interactive Fiction |
Tags | 2D, Indie, Pixel Art |
Leave a comment
Log in with itch.io to leave a comment.