Battle Billiard Galactic Edition by Anudin
You like violence and billiard? This game is made for you.

If you want to play the web build, please use Firefox for the moment. Also, if you struggle rewatch the GIF above, the tutorial is lousy and I'm sorry for it ;)
WHAT YOU SHOULD KNOW: - Force rockets to collide for bonus points! - When entering target mode move the mouse cursor into the yellow circle around enemies to activate the crosshair. - No matter what the UI implies: the rockets don't auto-aim! You hit were you aim at!
Shortcuts: * Mute audio: CTRL + M * Toggle fullscreen: F11
[Bonus Info, non required read]
This is my fifth entry to Ludum Dare as a solo dev and my fourth entry using the Godot game engine. Sound effects were created in Bfxr. Initially I wanted to create all art in Inkscape but ended up with an arkward mix of bitmaps and in-engine rendering. Judging just by code and art output I was a lot less effective this time around but at the same time I had a clearer vision and was more relaxed in general, at nearly all times I knew what to do next (although I threw away some systems due to design considerations, as it should be ;) ). I had a lot of fun and excitement and I hope you did too - Anudin.
| HTML5 (web) | https://anudin.itch.io/intergalactic-billiard |
| Original URL | https://ldjam.com/events/ludum-dare/42/intergalactic-billiard |
Ratings
| Overall | 496th | 3.472⭐ | 20🧑⚖️ |
| Fun | 326th | 3.5⭐ | 20🧑⚖️ |
| Innovation | 517th | 3.25⭐ | 20🧑⚖️ |
| Theme | 891th | 3.111⭐ | 20🧑⚖️ |
| Graphics | 988th | 2.806⭐ | 20🧑⚖️ |
| Audio | 80th | 3.917⭐ | 20🧑⚖️ |
| Given | 12🗳️ | 21🗨️ |

The movement took some time getting used to, but it clicked after a while.
Gameplay was nice too and I love the music.
I felt the best tactic was to avoid the enemies and only use space for emergency situations if something is about to crash into you. Trying to play pool with the enemies was more fun, but less efficient score-wise. Maybe that is something you could try to balance. Very cool idea anyhow!
As @kungkras said. Great use of simple shapes.
It's a considerable boost but I still agree with you especially later in game. I could give more score bonus, give less points for survived time and I also played around with the idea of adding bonus "pickups" that appear from time to time for a short timeframe and give an extra big boost if you hit them; in order to break repetitive gameplay - sadly I didn't have enough time to implement it. Do you have other ideas regarding the balance between dodging and the pool mechanic?
Thank you for the feedback!
It's hard to point out something concrete because I don't know how the underlying system works exactly, but when it felt difficult it was usually because it sometimes felt like I was accelerating differently even though the input was the same.
But other than that, I liked the movement. It felt sort of like a billiard ball, which suits the title, and if I got too little or too much acceleration, it was nice that I could double tap the WASD keys to get more movement to correct it.
But I agree that the implementation is misleading, in fact in the beginning the bullets had auto-aim and the circles are kind of left over from that. On the other hand I like the visual effect of them, maybe a better tutorial would have helped ;)
If you are afraid to loose the game pace I recommend you to make a smooth slow-mo transition into upgrade panel.
I found a bug, though. After you died press ESC twice and the game will continue to go.
Good Luck🍀
@seizethedia Thank you for the feedback! Colliding two rockets was designed to feel special, that's why the charging takes some time, the explosion has a different color and particles and the screen shake is more extreme (don't know if anyone noticed this at all? ^^). You might still be right though, lowering it by something about 0.5 seconds sounds like a good idea. But it's also a penalty for missing, when you collide two rockets you gain full charge!
I'm also still thinking about how to move more focus towards the billiard mechanic and disrupt repetitive gameplay. Two things that I want to try are:
- A classic combo bonus, more kills in shorter time give way more points
- Maybe automatically re-enable slow motion when two rockets collide so you can try to get more kills right after and connect them to a combo
Also I'm thinking about slowing down the progression of difficulty so there's more time to aim. Might need different kind of targets though or the game could become boring.
I could imagine something like a "Godshot" feature. At random times there would spawn a billiard ball which will introduce an additional layer of indirection: you would need to hit the ball with your shot and the ball would need to hit an rocket which in turn would need to hit another rocket... Would be brutally hard to hit but give an absurd point bonus.
Now a few comments about what could have made this game even better. For a fast action game, the ONE important asset you need is ---> responsive controls, and I was really dissapointed with that: The character takes too much time to reach max speed, and most importantly the bullet time takes FOREVER to activate (what's the use of a bullet time if there's enough time to die twice between the moment you click and the moment it takes effect?).
The bouncing on the boundaries is really not a thing. Its buggy and adds too much randomness. A simple wall would have done the job just right.
I had a bug where I cannot reset the game if I die on the spawn spot.
The hard thing was pulling of a mix between floaty and responsive controls - because I wanted that space feeling - I might have ended a bit too far on the floaty side. On the other hand I really don't want it completely snappy, I might have to tweak some values there. Maybe it would suffice to make the boost more snappy? So the normal controlls would be a bit floaty but if you need to get away quickly you use the boost.
I agree that the bullet time takes too long to activate.
On the bouncing: what do you mean by randomness? It's only buggy in the sense that it allows you to leave the arena before it throws you back which was a design decision because it shouldn't feel like a hard wall but like an organic pull when leaving the area - which could've been communicated a lot better but was veeeery far down the bucket list ;)
Did you have some other buggy experience with the boundaries? The bug on spawn is new to me but I fixed some stuff in the post LD version which might have already fixed that. I don't know if I will release a post LD download but I hope to do so.
The boundaries didn't feel like some kind of pull, but more like a rubber wall, it definitely needs some balancing. I called them random/buggy because it would sometimes bounce you harder (and sometime reaaally harder) without any explanation.
Beside that the game is well polished, and I'd definitely play a post jam version :D
Yeah, there are serveral presentation issues which make most of the game really un-intuitive and it's a shame. Sadly such things are most of the time out of scope during LD - I'm happy if I at least get some good balancing done - which I'm quite happy with this LD.
I'll let you know if I release a post LD build. I hope to get some kind of controller support going because I think that would be pretty cool combined with fullscreen on a TV.
Can you explain this in more detail? You have to use your mouse to aim.
@lost-dutchman-software @kungkras @reax @interpol @crafty-mine @seizethedia @cydouzo @luca1152 @smbe19
Is it the same link as on the page?
I missed a high score feature. Besides this, very nice game. My high score was 264 points.
Also too fast would be to hard later - I could implement it with a difficulty system though.
Completely agree on the highscore system I need to learn that for the next LD. That is a game changer.
I think it'd be even more fun if you can bounce around frantically dodging the rocket instead of slowly moving around.
Great job though!
Also I wonder how you did the collision in Godot? I don't see how a circle inside a circle could collide.
I didn't use the physics engine by the way, it's all custom code so I have full control over what happens.