Serene Stability by jharler

PLEASE READ BEFORE PLAYING!
Stabilize unstable objects in order to keep the serenity that exists within this world. Make your way through 20 levels of serene stability. Thanks for playing and please leave me a comment.
I tried to make this a very serene experience, with soothing, pleasant, satisfying sounds and gameplay. It can be very challenging, but I promise every level can be beaten. If you're having trouble, remember that the closer the affecting object is to where you want the stabilizer to go, the less impact each tiny movement of said object will have. Sometimes micro adjustments are required and can be tricky to pull off.
Software used: Unity, Blender, Garageband, and Audacity.
Known bugs: Sometimes the moveable objects can disappear if you click on them at just the wrong time. Restarting the level will bring them back.
Ratings
| Overall | 54th | 3.98⭐ | 27🧑⚖️ |
| Fun | 219th | 3.5⭐ | 27🧑⚖️ |
| Innovation | 158th | 3.68⭐ | 27🧑⚖️ |
| Theme | 268th | 3.58⭐ | 27🧑⚖️ |
| Graphics | 47th | 4.16⭐ | 27🧑⚖️ |
| Audio | 27th | 4.06⭐ | 27🧑⚖️ |
| Humor | 402th | 2.063⭐ | 18🧑⚖️ |
| Mood | 62th | 3.833⭐ | 26🧑⚖️ |
| Given | 20🗳️ | 21🗨️ |
Nevertheless!
Pros:
- I'm always a fan of such 'clicky' games. Especially, when you get your mind out after achiving 'stability'
- Speaking of which, hard-on theme reading. I like it!
- Great usage of simple graphics
- Music is very relaxing. Wish I had time to make my games sound like this.
- Easy to grasp, hard to master
- Different 'items' makes the challenge more fun!
Cons:
- Unfortunately, the exact area-of-effect of each item is very hard to read. For example, I am not sure when attractor actually pulls the stabilizer. This makes the experience less fun. The effect is multiplied by the 'bouncy' animations of each helper item (like changing radius back and forth)... I would suggest indicating a bit harder approach here.
- Encountered few crashes here and there, and the 3-4th level would not reset on it's own.
Overall, a great entry and a must-play. I was watching this one a bit closer, and I'm glad you finished!
Got a crash after the double repell level though.
@slimmerburger Thanks! The gameplay loop is just that, figure out how you want to manipulate the stabilizer and then adjust the manipulators until it goes to just the right place.
@mikoziq
Wow, thanks for the great feedback! FYI, I found and fixed the crash if you're interested in trying again (you can Launch/Retry 5 times and then skip the levels you've already done). I've discovered that the Windows build is much more forgiving of missing references than the WebGL build is.
I spent more time this entry on sound design than I usually do. I had to redo the music a couple times to get the vibe that I wanted. I'm very happy with how it ultimately turned out. It's one of the few entries of mine I can play and not have the music get annoying to me.
I agree with you that it can be tricky to know the exact interaction area for each item. I debated whether I should add a bounding circle showing the exact location, but didn't have enough time to try out that idea.
@pinkemma I think I could play this for hours too, but I don't know if I have it in me to create the hundreds of levels that would take! Haha. I'm glad you enjoyed. FYI, I fixed the WebGL crash so you should be able to get through all 20 levels. You can launch/retry 5 times each level to be able to skip the ones you've already finished if you want. There's no penalty for doing so.
Also, the athmosphere of the game is great:) Good Job!
If I may offer some criticism, I'd say since this is a trial and error game, the level should restart quicker to allow the player to progress quicker. Personally I'd get rid of the fade-out/in.
Thanks for creating this, cheers! :thumbsup:
I think the game mechanics could be a bit more forgiving. Often I hit in such a good angle - but not good enough for your game.
Good job, though :)
Overall, the gameplay is more frustrating than it could have been, and I agree with @mikoziq's comment about the area of effect.
What I would add is that, because you implemented the effects as hard-toggle when the stabilizer particle gets inside a certain radius, the effects of moving a tiny amount can be huge in the trajectory, which makes it extra frustrating!
This sort of dynamics here is already a non-linear chaotic system (which will be sensitive to initial conditions), but this hard radius for the influence to affect the particle makes it much worse, and breaks the notion of "tiny continuous change in initial conditions lead to continuous change in trajectories" which is essential for the trial and error nature of the game.
You could go with a force proportional to 1/r^2 like gravity or electromagnetism (or 1/(e+r)^2 for some minimum
radius "e" to avoid infinite forces), but the effects at a long distance tend to make this sort of setup difficult to play with. Changing the power from 2 to something else doesn't tend to help much in my experience. I would suggest then playing with a polynomial force that goes to zero after some max radius, something like:
function force(r) {
if (r > MAX_R) return 0;
return FORCE_INTENSITY * Math.pow(1 - r/MAX_R, FORCE_DECAY_POWER);
}
Graph would look like this.

So (1) you don't get infinite range; (2) you don't get infinite force at r=0; (3) easily tunable by three parameters: intensity, decay and max_r.
Anyway, I think this would keep the continuous nature of the force nicely and would allow you to fine-tune the parameters for gameplay purposes well enough.
Just my two cents! But overall, excellent concept and execution! :)
@johnathan-peres Thank you!
@morris I'm glad you found the tutorial useful. That came from my own experience of playing LD games and not having a clue as to how to play some of them. I try to make my games intuitive and add tutorials to help when I can.
@gus-the-shark You did remember your sunglasses, right? Haha, thanks. You're right about the level reset time. The fade out and delay are actually necessary to how I did the reset. If I had more time, I would've liked to have made it reset faster.
@bewelge Great idea. With using Unity physics though, I'm not sure how to best go about doing something like that. I did have that thought too, I just didn't have enough time to explore how to implement it.
@majadroid Thanks for your input. I do agree that it can sometimes miss what seems to be an accurate shot.
@python-b5 Thanks for playing and commenting! I appreciate your feedback.
@bassilij Thanks!
@immow Thanks for playing and for your feedback.
@gaming-night Wow, thanks for the kind words!
@wyl-team I'm glad you enjoyed the music. I spent significantly more time on the audio design in this game compared to my usual game jams.
@lucasvb I'm using the Shapes package for the lines. I'm not sure why it wouldn't show up for you other than it might be some graphics card issue with the shaders that it uses. I appreciate you taking the time to offer the extensive feedback that you did. If I decide to explore this concept further (or do something similar in the future), I will definitely utilize what you've shared here.
@izaya Thanks for playing and for your feedback!
@manio I appreciate your thoughts and thanks for playing.
@kewdev Thank you for the kind words!
@chainsawmcd Thanks for the feedback. There was a dashed line surrounding the unstable objects that showed the orbit. Someone else said the lines weren't showing up for them. Was this your experience too?
@kukurammus I agree, the pixel-perfect nature of placing the effectors can definitely be frustrating.
@blackquiltro Thank you!
@cameron-dunlap I agree with you. Unfortunately, I did not have enough time to play with the effectors as much as I would have liked before I had to start making levels, and once I started doing that I wasn't comfortable going back and tweaking how they worked. I appreciate your feedback!
I might have played even longer if the restart was paced a bit more briskly. The various graphical effects and audio sounds really work well to create the mood, but that fade-out-fade-in on restart takes quite long and I experienced it SO many times while playing that it dragged on me a bit. Especially when I had to fiddle with the circle-bouncers, which have such enormous swings in output per tiny change in position that they require quite a lot of attempts.
Didn't mean to focus on the critique side, because I really enjoyed this. It was relaxing and fun to play around with, a number of cool puzzle ideas packed into a nice aesthetic presentation that I enjoyed spending a bunch of time with. Well done!