
Hi everyone! I want to tell you a bit about how the development of our game "Jim's Quest for Birthday Present" went during the jam!
What's this game about?
You play as Jim - a small but brave boy. Jim really loves his mother and wants to give her the best birthday present he can. Unfortunately, he's running out of time and money.
Jim hears a rumor that a local fisherman, Old Jack, once found the Rainbow Pearl Shell - the most beautiful shell in the world. So Jim decides to take his dusty metal detector, earn some money, and buy a present for his mother.

Who are we?
We are a team of passionate industry professionals. We had never worked together before this jam - in fact, we had never even met before!
@sobigdrasil - all the art
@tim-medvedev - all the sound
@laminariy (me) - turning ideas into reality (i.e., the programmer)
Day 1 - Finding the Game
We actually started even before the jam officially began - during the theme voting phase.
Our artist was really excited about making something dark and occult, and we tried to push the voting in that direction as much as we could. We voted for themes like “parasite” and other similar ideas, hoping one of them would win.
But when the final theme was revealed, none of the options we had in mind could possibly fit. All of our early ideas immediately became irrelevant. So we had to throw everything away and start from scratch.
At that point, I decided to go with something much simpler. Incremental-style games are quite popular right now, and I thought it might be a good direction. That’s when the idea came up: a game where the player walks along a beach, scanning the ground with a metal detector in search of buried treasures.
Very quickly we landed on the core mechanic - a ping-based scan. The metal detector sends out pulses like a sonar, and when a pulse hits buried treasure, it sends a response back - a kind of ping-pong interaction. It was easy to understand, although I wasn’t entirely sure at first how to implement it. Should the pulses go only in the direction the detector is facing, or expand outward like ripples on water?
Like this?

Or this?
By the end of the first day, we had a basic prototype: you could walk around, scan the area, and get feedback from the detector. It wasn’t much, but it already felt like there was a game hiding in there.
Day 2 - Building the Foundations
The second day was focused on building out the systems behind the game. I implemented the digging mechanic, forming the basic game loop:
send ping -> get pong -> dig -> NUMBER GO BRRR
However, at that point, the game still felt extremely empty. There were no real visuals yet - mostly debug rendering and a character moving around. Despite having the core systems in place, it didn’t feel like a real game at all.
I remember feeling very uncertain that day
At the same time, I worked on preparing the foundation for upgrades and progression. Most of it wasn’t visible yet, but internally the structure was coming together. The idea was that once everything was in place, we could rapidly integrate content on the final day.
By the end of Day 2, we had the systems ready - but the game itself still didn’t exist in any meaningful way.

Day 3 - Are we quitting?
The third day was… rough.
I barely slept and felt terrible. At the same time, there was still an overwhelming amount of work left: integrating art and sound, implementing progression and upgrades, scripting the UI, and polishing all the interactions and animations.
At that point, we had a working prototype, but almost no real content. Everything had to come together at once.
I genuinely wasn’t sure we would finish anything at all.
Luckily at some point, I managed to take two short 30-minute naps during the day. That helped more than I expected - I felt a bit more functional and able to continue.
However, when our artist assembled the final scene, something changed. I suddenly saw the game as a whole. It felt cohesive, atmospheric, and honestly - special. That moment gave me a second wind. I realized that we actually had something worth finishing, and that I had to push through and make it in time for the jam.
JUST LOOK AT THIS!

From there, it became a matter of focus. I spent the remaining time integrating assets, wiring up progression, and adding small but critical details - tweens, UI feedback, transitions.
Piece by piece, it all came together. Not perfectly, but enough to feel complete.
Tech Breakdown
Game engine: Defold
Language: Lua
For this project, I went with an ECS-inspired approach - but not a strict implementation: all runtime game data is stored in a central “world” structure, which acts like a database. It contains only data, without any attached logic (aside from simple access and iteration utilities).
All gameplay logic is implemented as commands. You can think of them as small transactions: each function takes the world state, performs some operations, and updates it.
Commands can call other commands or defer their execution until some point in time. Because of that, there is no single global update loop, and no rigid flat system ordering like in traditional ECS architectures.
This approach worked well for a jam:
* it kept systems loosely coupled
* allowed for very modular, bottom-up development
* and avoided the usual headaches with update order and flow dependencies
I think this is a solid architecture. The implementation wasn’t perfect, but with some refinement it could become a very strong framework capable of supporting much larger-scale games.
Final Thoughts
Despite how close it felt to failure on the last day, we managed to finish the game.
This jam was a great experience - especially considering that we started as a team of complete strangers. Everything came together surprisingly well at the last moment, and I’m really happy with what we achieved in such a short time.
You can check our game here:
itch: https://sobigdrasil.itch.io/jims-quest-for-birthday-present
ldjam: https://ldjam.com/events/ludum-dare/59/jims-quest-for-birthday-present

Thanks for reading!