Devlog of Hoopless by sherlocklini
Welcome, dear fellows! In this post, you'll get to know a bit about me and take a detailed look behind the scenes of
I started game development a few months ago in December 2024 - right in the middle of handing in my dissertation and being pregnant at the same time! Despite the chaos, I was (and still am) really eager to learn game development and create my own games.
Thatâs when I discovered game jams - the perfect opportunity to be 'forced' into creating a game within a set time and theme. The GoedWare Game Jam #13 is only my second game jam ever, but it fit perfectly into my schedule. Luckily, I currently have plenty of time to focus on game development.
Before the jam, I decided to do absolutely NOTHING in advance. I wanted to create everything within the given time, purely based on the theme. So, my devlog journey for this game starts right at the beginning of the jam.
At first, I was pretty clueless about what to come up with. 'Breaking the loop' sounded complicated - I thought about time manipulation, repeating sequences, and similar mechanics. However, since Iâm still a noob when it comes to âdifficultâ mechanics, I decided to take the theme literally and have the loop physically break in my game.
For every game jam, I want to learn and create something new. I was especially interested in experimenting with a different gravity system that would allow the player to walk in a circle, rather then a 'standard' platformer.
On Day 1, I focused entirely on implementing the gravity system, without worrying about the art style at all. To at least have some visual feedback, I used the character from Brackeys' Platformer Bundle - much better than my initial 'character,' which was just a single collision shape...
I also started working on different movement states like walking, jumping, falling, and smashing.
One of the biggest challenges was handling player movement along a tangent while still allowing jumps and interactions with objects. After some trial and error, I finally found a solid solution - well, it works, right?
The movement is not perfect, but I was proud on what I achieved during Day 1.
I still had the idea of literally breaking the loop in mind. To achieve this, I decided to construct the circular shape using small individual pieces. Each piece would be able to detect the player and determine whether it should break or remain intact.
At first, I wrote a script to automatically generate these pieces. However, in the end, I decided to place them manually in the scene instead. This gave me more control, allowing me to fine-tune each part without relying solely on code.
Introducing the mechanic to actually break a piece was fairly easy. I decided that the player would need to smash down three times to finally break a piece.
What proved to be more challenging, however, was adjusting gravity when the player entered the region of a destroyed loop piece. It took me a while to figure it out, but eventually, I got it working!
Since this mechanic took me so long to figure out, Day 2 flew by in no time.
With the core mechanics in place, it was time to give my game a makeover! I started with the UI, aiming for a clean and very minimalistic look. First up: the main menu and level selection screen. A few simple animations for buttons, just two colors, and voilĂ - suddenly, my game had a kind of good looking UI - that only changed slightly.
I used two different text styles for my game: GlacialIndifference & RollandinEmilie, both free available and also free for commercial use.
For the level selection, I went with the classic âlocked until conqueredâ approach - because whatâs progress without a little suspense? Each level only unlocks once the previous one is completed. No skipping ahead, no sneaky shortcuts.
But whatâs a game without some eye-catching characters, a lively environment, and a little extra flair? I started creating animations of the loop pieces as they crumbled apart, because if youâre going to break something, it might as well look good to get some visual feedback.
Next up: the character itself. As mentioned before, I wanted to keep things simple, so whatâs simpler than a ball? Round, bouncy, and ready to roll! I whipped up some animations for it, along with flashy effects that would later play a key role in the game play.
This was pretty it for Day 3, however, these initial design ideas didnât stand the test of time, or rather, the test of my ever-evolving creativity. Over the next few Days, things took a turn… and so did my art direction.
My game idea wasnât just about taking the theme literally breaking the loop. I also wanted to turn it into a puzzle game (because, letâs be honest, I just love puzzles!). After creating and scrapping a few more assets (a true game dev tradition), I introduced another key mechanic: the ability to rotate the loop after gathering a power-up. With this new twist (literally) I started getting more ideas for level design. I also included the restriction of actions, so players would need to carefully consider where and when to smash a piece (and else).
I took things further by introducing a color-changing mechanic that directly impacts game play. The idea? Flashes would only be visible and functional once the right power-up was collected. This added an extra layer of strategy to the game. With this new mechanic locked in, Day 4 came to a close.
...the day of changes. After including a hurt system to my game I went full 'Ctrl + A â Delete' on my assets and redesigned EVERYTHING, except the button textures (they somehow survived the purge). New colors, a more minimalistic character, revamped objects, simpler loop pieces, and power-ups. It was a total visual makeover, while I wanted to achieve a kind of 'glowing' affect for most of the objects, which is why most of them are just white. Making them white would also allow for modulation of the color very easy.
You can imagine it took me a loop of trial and error to get all these new stuff in there. Before I knew it, day 5 had vanished faster than a broken loop piece—poof, gone!
I then stumbled upon a little eggstra challenge within the game jam: The Easter Egg Challenge! If you havenât played my game or havenât cracked the secrets yet: SPOILERS AHEAD!
To fit the theme, I gave the level selection a bit of a twist. Each unlocked level now featured a circular shape hinting at what to find. These shapes, with their changing gaps, would appear and vanish in different spots within the levels. Once found and clicked with the mouse, the corresponding shape in the level selection screen would disappear if a level was successfully completed.
I further refined this mechanic within the following Days, but within Day 6 I introduced another crucial mechanic: the 'inner' loop, that ensures that the player is not able to jump. Suddenly, breaking the loop wasnât just about smashing through - it was also about finding a way to escape no-jump zone.
And just like that, Day 6 came full circle with the introduction of a whole bunch of new circular shapes.
With the clock looping toward the deadline, I had a breaking realization: I only had ONE level! So, on Day 7, I finally kicked off level creation, changing some visuals again along the way. Knowing that players might need a guiding hand, I added short tutorial texts for the first few levels.
Still keeping the Easter Egg Challenge in mind, I made sure that if players found the right shape, it would appear at the end of the level. But if they clicked the wrong one (or none at all) Poof! No reveal for you!
Day 7 was then all about crafting the first five 'tutorial' levels. My husband jumped in for some play testing and immediately pointed out that some levels felt brutally hard because you constantly lose life.
I told him, 'Well, youâre supposed to sacrifice your lives. This is why you got three hearts!'
And thatâs when it hit me - this mechanic was also breaking a loop! The endless cycle of trying to complete a level perfectly had to be shattered. Sometimes, progress means letting go. Deep, right?
With the Easter Egg Challenge still on my mind, I decided to level up the concept. What if there was a secret level, only accessible if you found all hidden circles? This would break the loop of just blasting through levels one after another - essentially, loopception!
So, I set out to design the final level and a way to track progress toward unlocking it. To make things clearer, I added visual feedback: when you found the correct hidden shape, the level selection screen would show a 'freed' circle, and each levelâs discovery would contribute to rebuilding a âloop pieceâ in the final levelâs box.
For the final level, I quickly realized it needed something out of the loop—a truly unexpected twist to shatter the cycle once and for all. The player wouldnât just break the loop this time—theyâd obliterate it. I added the ultimate power-up: the ability to become a bomb.
Because I was running out of time so I searched for nice looking explosion sprites and found a nice one made by unTied Games. I wanted this final moment to feel different, something that breaks away from the usual mechanics (Still: It is breaking the loop!). So instead of just pressing a button, the player actually has to type the word EXPLODE to detonate.
Of course, I didnât want to leave them completely in the dark. A subtle hint is hidden within the final levelâs text - just enough to get the idea. The right key combination? Itâs literally at their fingertips.
After all, breaking the loop should take more than just a jump or a smash - it should take one last decisive action.
Did you notice that the level is labeled as 12, but once entered, it magically transforms into 21? Originally, I planned to have 20 ânormalâ levels, with the final one being 21… but after submitting the game, I realized I never updated the number. Oops. But hey, sometimes bugs (or mistakes) turn into features, right? In a way, this unexpected switch is yet another way of breaking the loop - flipping expectations and messing with the usual order. Honestly, I didnât plan it, but now? It feels like it was meant to be.
With this final level completed, Day 8 also came to an end.
I still only had 5 + 1 levels, so - yep, you guessed it - I shifted my focus to game music and sound effects. I dug through free sounds you can find on YouTube and used them for different movements and events. For example, I used some electric zaps for the flashes, clicking sounds for the UI, and, of course, a big boom for the final explosions.
Then I searched for the perfect soundtrack - something catchy, something that fits the gameâs vibe. Thatâs when I stumbled upon Party's Cancelled by RoccoW. The moment I heard it, it latched onto my brain and refused to let go. Perfect match!
With everything else in place, I still had some time left on Day 9 - so I finally sat down and designed a few more levels (four, to be exact). I felt pretty proud of myself for setting up my game in a way that let me quickly create new levels without needing to write extra code. Thanks to Godotâs scene system and reusable components, it was a breeze to expand the game!
My initial goal was to create 20 levels, but with only 9 done, reality started to sink in. I wouldnât be able to reach that number within the last day, especially since play testing was crucial - and my husband also go better things to do than helping his wife with play testing.
Day 9 ended with mixed feelings: a bit of frustration over my overly ambitious time schedule, but also a lot of pride in everything I had managed to accomplish so far.
The final day: Time to polish my game and squeeze in two more levels. Why? When I looked at the level selection screen, something about having 9 + 1 levels just felt… off. I wanted a number that was divisible by three (including the final level), so I went ahead and added two more. Thanks to my setup, creating them was quick and easy.
With that done, I refined the unlocking system for the final level. Since the appearing loop in the last box needed to match the total number of levels, I made sure everything lined up correctly. Of course, last-minute bug hunting was inevitable. I found a few - like the game sending the player to the wrong level when clicking âNext Levelâ, or the player not having enough actions to complete a level - but luckily, these bugs were easy to fix.
I then designed a page displaying the key bindings and integrated it into the game. This way, players would be able to check how to control the character.
Eentually I needed a name... Something that symbolizes a world where loops (or hoops) are broken. A universe where you're trapped in a never-ending cycle yet determined to break free. I wanted a name that was as strange as it was fitting, with a dash of humor and mystery. And then it hit me:
Connecting that you are getting rid of those loops (=less hoops) and also a pun on 'hopeless', because during the game you might find yourself hopeless as a level appears to be hard or you don't know how to unlock the final level...
And that was it.
My game was finally complete!
The last task was setting up the itch.io page to match my gameâs art style. I wasnât sure if changes would be allowed after submission, so I made sure to finish everything before hitting that final submit button. And this is what I did. Hitting this button 26 minutes and 38 seconds before the (announced) deadline.
While working in Godot, I was surprised by how many scenes, scripts, and lines of code I had created. I havenât polished the code yet, and there are plenty of comments included, but still - I didnât expect it to be this much for such a small game.

If you were stuck at a level, this is the complete walk-through, including unlocking and completing the final level:
Hoopless
Entry by sherlocklini for GoedWare Game Jam #13
Status | Prototype |
Author | Sherlocklini |
Genre | Puzzle |
Tags | 2D, Godot, Indie, Minimalist, Pixel Art, Singleplayer |
Languages | English |
More posts
- Days after submission45 days ago
Leave a comment
Log in with itch.io to leave a comment.