Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
A jam submission

Perfect BalanceView game page

Submitted by anttihaavikko (@anttihaavikko) — 4 hours, 23 minutes before the deadline
Add to collection

Play game

Perfect Balance's page


CriteriaRankScore*Raw Score

Ranked from 20 ratings. Score is adjusted from raw score by the median number of ratings per game in the jam.

Godot Version

Yes, repo link on description

Game Description
Bullet hellish 2D shmup!

Discord Username

Participation Level (GWJ only)
Yes, my first GWJ and first time using Godot overall

Participation Level across all Jams
Nope not the first, some 20+ entries on other jams

Leave a comment

Log in with to leave a comment.



Lovely art and good game feel, loved that the enemies grab powerups.


Woah, very good!!! I love bullet hells (but I suck at them LOL) and I really like how the game evolves with you, so you are always challenged. A fantastic entry, GG.


Cool game, cant believe this is your first time using godot!

Love all the effects you have going there and the leader board is great (i like seeing the different countries).
I felt like the enemies didn't even feel my shots, some more juice in that would be awesome.


The game is fun(or maybe I just really like bullet hell games). Not sure how it exactly fits the theme. I see that upgrades change the enemies but I haven't noticed that much in game. I got to wave 4 and I guess maybe the enemies shoot differently but the mechanic was not completely clear to me. I wasn't clear how to make a proper decision on the upgrades.

While the main character is charming, I didn't realize initially that the heart is the hitbox,  I thought the whole body was or at least the chest. I would make the heart a darker red honestly as it blends a bit with the other bright "pastelish" colors in bullet hell.

I also noticed some collision issues that would happen when I shoot at the enemies. I could see the bullet going through them without registering a hit. It happens rarely, and I tried replaying to pinpoint when the issue happens but I was not able to figure it out.

The two biggest issues I noticed:

- If you do not take the speed upgrade, some boss fights can be really annoying. I guess the boss movement direction is random, and he will sometimes move away from me and be too far for my bullets to reach him. We move at almost the same speed, nothing is happening, and the fight becomes cumbersome.

- It's hard to know which direction the basic enemies will shoot and in what pattern. I have to stay close to them in order to damage them and get the score, but not knowing what to expect from their attacks makes my positioning harder and I take some damage that feels unfair to me at that point.

Still, fun is most important and this game hits the spot well. I expect to see it place highly in the rankings.


Well it was "change yourself, change the world", not the game. Even though it's kinda the same thing. And there is nothing else in the world besides the player and enemies so it is kinda changing the world. And some power-ups don't directly affect the enemies but their spawn timings etc. So you pick the bonus, and the enemy side then gets applied with what ever is on the left and right sides of your pick. And the effect is always as close as possible for what it would be on the player.

Yeah the heart being the hitbox might be an oversight. I've played a lot of bullet hells and in them it's pretty much a standard to have player hitbox be just a tiny dot in the middle of the sprite, sometimes even not visible at all.

The collision issues boil down to me not using the physics engine at all. Godot couldn't handle drawing and updating such a huge amount of individual nodes as they are just an array of vectors, updated manually and drawn on bulk. I even tried (and wasted a day) to do the bulk drawing on NativeScript C++ but it did't really improve the performance by too much (should have gone the shader route). And would have needed to build the library for different platforms too on different computers so gave up on it. So probably just should need to check the whole distance between previous bullet position and current one instead of just checking the current position. The high speeds and smallish hitboxes sometimes allow the bullets to go through.

Did you notice that shooting cuts down your speed by half? So if you need more speed, stop shooting. Always have to come up with a downside to action such as shooting, otherwise might as well have it automatically shoot all the time instead of having the player hold one button down 100% of the time. And here it serves as a double for speed control, whether you need raw speed or precision for dodging. And I tried to balance it so that all different power-ups would be kinda "needed". So pretty much just toning everything down so much that it borders on not being fun anymore on the start.

There is like a sweet spot for the normal enemies. Like directly in front of them but few degrees on the side. That covers pretty much all their patterns but obviously further on isn't 100% safe since the enemy chains start more shooting on tandem and you can't kill them fast enough. And this is exactly why I made the starting range as low as it is, to try to make the range upgrade needed and wanted.

Thanks for playing and leaving detailed feedback! ❤️

Submitted (1 edit) (+1)

This is probably the game i played the most so far, it's really good! I just wish i could play the browser version in fullscreen. The desktop version doesn't seem to have a leaderboard.


Thanks! The desktop version should have the leaderboards too. Could it be firewall or something blocking the internet access of it?


I really liked playing and got 3rd place (at the time of this comment!). I liked the power-up aspect at the end of each level but even though I always picked bullet speed, I kept wishing I could shoot more bullets faster.  I also think the camera drag made it more difficult to properly dodge the bullets sometimes, or maybe I'm not not very good at shmups :)

I checked the github link but the repo was empty, but I'd definitely love to check out the source, especially the leaderboard stuff. A few months ago I played around with a really simple python flask approach, but it never really left the 'toy' phase. 

Great entry


Seems like you were taking the wrong power-up all the time then... 😅Bullet speed is their movement speed, fire rate is what you were looking for. Hmm the camera and dodging thing might be right. Bullet hells usually do have fixed cameras. 🤔

Oh, looks like I had some weird git & ssl issue and the code wasn't pushed to remote at all. Now it's there, thanks for the info!

And thanks for playing! ❤️


doh! I'll try again and use the correct power-up :)


A very, very, polish experience! Loved the score board. 


Nice work! Given this is a bullet hell game, I think improving the hit-collision/hit-detection would make this game much better!


Maybe yes. The player hitbox is supposed to be the heart in the chest only. It might be a bit wonky but usually works. Thanks for playing!


Cool game! Super impressive since it's your first time using Godot. I liked the art style a lot.


Well... you've obviously made a game or two before :D

Awesome game!