Octrobat by Koolruz
An acrobatic octopus finds the hat of a treasure hunter, which sends them on a whirling journey across the sea floor collecting pearls!
Use your tentacles preserve your momentum as you swing through a series of fifteen single-screen platforming challenges.

You can press R to reset at any time. If you're ever completely stuck and just want to see what comes next, type "cheatyface" to skip to the next level :)



Controls: - Arrow keys to move - Z to jump/throw your tentacle - M to mute music - R to quick reset - Type cheatyface to skip to the next level
Music by @yaradeen - Special thanks to Jim for composing an undersea disco for me at the drop of a hat!
October 7 Update: I've added a post-jam rearrangement which changes the order of levels for a smoother onboarding experience. The rearrangement contains no changes except for the order in which levels appear, to make it easier for folks to see more of the game without using cheatyface. If you get stuck on the original jam version, the post-jam version might offer a smoother difficulty curve, and should give you more opportunity to play with the movement before the harder levels kick in.
| Link | https://ild-games-llc.itch.io/octrobat |
| Post-Jam Level Rearrangement | https://ild-games-llc.itch.io/octrobat-post-jam-remix?secret=gDqkGcKechUUzTGlJbpqm2rZXVI |
| Original URL | https://ldjam.com/events/ludum-dare/58/octrobat |
Ratings
| Overall | 78th | 4.038⭐ | 54🧑⚖️ |
| Fun | 55th | 4.019⭐ | 55🧑⚖️ |
| Innovation | 239th | 3.519⭐ | 54🧑⚖️ |
| Theme | 723th | 2.856⭐ | 54🧑⚖️ |
| Graphics | 151th | 4.212⭐ | 54🧑⚖️ |
| Audio | 77th | 4.029⭐ | 53🧑⚖️ |
| Humor | 369th | 3.063⭐ | 50🧑⚖️ |
| Mood | 213th | 3.83⭐ | 55🧑⚖️ |
| Given | 53🗳️ | 86🗨️ |
I ended up putting up a post-jam version which switches the level order around and pushes that level further back in the list partially because of your feedback, so thank you! (Though I was very hesitant to do so, because I want folks to continue to leave ratings based on their experience with the original upload, and I'm worried that having the option of playing the rearranged series of levels might impact first impressions if anyone were to skip the original uploaded version and go straight into the post-jam version!)
But on both versions I got stuck at this level, I don't know how to get enough momentum to go back from that crab (well at least I got that nice wall jump tech heh)

Skill issue aside, you did a great job here! I bet the speedruns will go crazy with movement as smooth as this, it's so polished!!
That is some very slick looking wall jump tech! I actually had a different route to beat that level, but I like your way a *lot* better - It looks way cooler and feels great to pull off. I tried it out, and it looks like you can pop up swing back around if you catch the target just a little bit earlier, so that you carry the downwards momentum from your jump into the swing

For posterity, here's how I'd been doing it (you know, if I stuck the landing 😅)

My only real complaint would be that there were a couple places where I had trouble attaching to the right crab at the right distance, because it would try to attach to another nearby one instead (in particular, the level in the first screenshot on this page). That may have been my fault though. Hard to tell if I was just timing it wrong.
I really liked the gameplay style, but I don't understand why the controls are so awkward. Pressing Z isn't very comfortable.
I actually had key remapping hooked up and working, but ended up cutting it because I didn't have the time to set up localization properly for all of the tutorial signage throughout the levels, and I thought it would be confusing to have a sign tell you to press "Z", if you'd remapped it to another key 😅 I can add it back in to a post-jam build, though, if you're still interested in playing and just found the controls too uncomfortable to continue
I appreciate the quick animation and reset after each death, it helped me learn through my 346 deaths how to carry momentum falling from different heights.
The SFX fit really well too! I never would have thought of blowing bubbles into a cup under a blanket to get water sound effects, great job on the creativity. Its nice hearing about your process, and I hope your engine making goes great too.
Lastly ,the game also led me to laugh out loud a few times when I accidentally let go early to fall to my death, or flung myself into a ceiling or back where I started. Good times.
For the range issue, were you having trouble determining whether you were within range of a target, or were you having trouble determining which target you would grab? The reason I ask is that either option is great feedback, but if it's the latter I'd want to improve on the targeting logic. My goal is for the player to not have to think about where the tentacle is going to grab, and ideally for them to not notice the targeting system at all :)

I had considered disabling the wall kick until it was specifically taught to the player in level 6, but I thought that it would be more fun to let curious players explore and discover the mechanic on their own, and it would be more fun for folks replaying the game to have the option to use wall kicks in earlier levels :)
I really loved the fast respawn after death - it completely prevents any frustration from careless mistakes. The minimalistic controls and always clear objectives are perfectly executed.
The music is pleasant and keeps things from getting boring.
The physics feel excellent, especially the swinging mechanics and wall jumps.
And the cheatcodes are an extremely welcome bonus for when you're completely stuck :)
Outstanding work, well done!
I love the movement in this game but it may be a little bit too hard to get the character moving. For example, if you lost all your momentum and just hang on a tentacle, you might as well restart because you are very unlikely to build that momentum again.
I mean, all precision platformers are like that: first you plan a route, then you execute your plan perfectly. Having single screen levels really helps to plan ahead. But in some other games, less momentum-focused, it's a bit easier to just wing it and recover from your mistakes, I think...
Another mechanic that adds to gameplay focused on routing even more is having to activate all tentacle-grabber-thingies. Even if you managed to propel yourself to the exit but missed one, you didn't beat the level. I think it could actually be fun to play this character but in bigger levels, with fewer constraints and spikes, just flying around and having fun.
Also, I think jumping and throwing a tentacle could be separate actions on different buttons. Sometimes I found myself wanting to throw a tentacle but can't do that because I'm stuck to the wall (and jumping off the wall has higher priority) which is a bit frustrating, because it's hard to move away from the wall with slow lateral acceleration mid-air.
Anyway, I actually really liked the game, just sharing my thoughts on it! 😁 The game already feels polished, unique and clearly has a lot of thought and talent put into it!
In terms of physics, the physics *are* framerate independent already, but level 4 requires you to make a precise transfer of momentum before you get a chance to become more comfortable with the controls, which makes the jump feel very inconsistent; you can't actually gain momentum by swinging, so you need to maintain your momentum by attaching to the tethers at the right time. I suspect that the change in screen size made the momentum transfer easier because it changed your timing slightly, and a small change in your angle of approach can have a large impact on how much momentum you preserve. Basically, the closer your momentum is to being aligned with the direction of the rope, the less momentum you'll preserve, as the rope will cancel any velocity moving directly away from it.
I've attached a gif showing the difference that the location of how you attach to the tether can make in terms of how much momentum you carry; on the first jump, I attach to the tether at the moment when my momentum moves tangent to it (at about 9:00, if the tether were a clock), and all of my momentum is all able to be redirected as I swing. In the second jump, I attach just a little later (at around 7:00), so that much more of my velocity is moving down away from the rope, and much more of the velocity is stopped against the rope.

Similarly to the physics being framerate independent, the game is also screen-resolution-independant. It's actually always running and rendering at an internal resolution of 320x180 pixels, and gets upscaled to match the screen size as I apply the CRT and underwater effect. I'm very happy to talk shop about the physics or screen shader if you're curious - The underlying physics engine is actually a custom physics engine that I've been working on for awhile and eventually plan to open-source, and isn't running on Unity's sim physics at all, so I'm always excited to geek out about it lol (and I'm always happy to investigate if anything behaves in an unexpected way!)
Thanks again for the great feedback - I *really* appreciate you taking the time to dive in deep and provide specific details about your experience with the game! :)
That said, reading your feedback made me realize that I can make the "bail and take the death" option feel less bad, without impacting the core experience! If the tether were to have (for example) a limited duration, that wouldn't ever impact players who successfully maintain their momentum throughout the level, but it would make it so that players who lose their momentum would have a game-enforced reason to restart, and wouldn't ever have to decide that they were in an unwinnable situation and have to give up (which feels bad).
I also agree wholeheartedly about splitting apart the jump and tether buttons, and wish I had thought to do that during the jam! I had originally been playing around with a very wacky control scheme where you had multiple tether buttons, tied to multiple jump buttons (so that you were behaving more like an octopus, and holding/releasing several inputs at once), and the current control scheme was a holdover from that original experimentation period, which went unnoticed as I refined the design. Thanks again for the great feedback! :)
It started to get a bit difficult as soon as the first double-hook appeared... Especially for someone like me who isn't very quick to react. I finally made it through the earlier trials, but then got stuck again at the swinging-hook section with multiple platforms.(Level 3 maybe, The first hook, if you don't use a jump to generate relatively high kinetic energy, can easily be directly locked downward by gravity; *I guess that's the reason.*) Each time I was just a little short—what a pity!
If you get a chance, could you help me better understand when things felt unfair to you? That's *really* valuable feedback for me! :) I try to build precise challenges in order to give players the opportunity to fully engage with a game's movement, but I always want each death to feel like a learning opportunity that motivates a player to try again - I never want the player to feel as though any of their deaths were unfair or due to factors outside of their control!
Thanks again! I really appreciate it :)
(looking back at the gif you posted in response to andriybyelikov, i think that's a perfect example of what im talking about. i feel that the second jump should still result in a similar swing. maybe not with as much speed, but not hard stopping you like it does there.)
The art is delicate and beautifully crafted (I loved the animations and the details of the moving plants). The old TV filter adds a touch of charm to the image.
The challenges are just right. Not too easy, not too difficult.
The music, even when looping, doesn't get boring. It's completely immersive and in tune with the game's rhythm.
Definitely one of my favorites from LD58.
And the fact that it was made by a single person leaves me astonished. Truly excellent work!
Congratulations!

Even the sound / music feels authentic to the game!
The game is brutally hard though. Even with the GIFS you provided I cannot finish it sadly. Also, I'm sorry, I don't see the theme in this one really. Sure, I collect pearls in each level. But it does not feel like "collector" if you know what I mean. Maybe multiple pearls per level would have been better. As right now it's more a mechanic to end the level
Don't get me wrong, I had lots of fun though! It brought a smile to my face and in my opinion that is the most important aspect!
I'll see about putting together a community post going over the shader that I wrote for the CRT effect in detail, but the long and the short of it is that I suspect a good portion of what makes it *feel* so right is that the game is genuinely running at an underlying resolution of 320x180 pixels, which then gets upscaled to fit the screen the game's being played on. The CRT effect is then being applied after upscaling. This means that the image being drawn is locked to a low-resolution pixel grid as would happen on a genuine CRT, but I have a higher resolution and sub-pixel control when drawing CRT artifacts such as scanlines, horizontal deflection, convergence artifacts, pixel bleed, etc. The low resolution input is important because it more accurately simulates the data being transmitted to a genuine CRT (a genuine CRT can't render anything smaller than a full pixel, so if the player sits at a half-pixel coordinate, that position will be rounded to its nearest whole-pixel value when being drawn), but the sub-pixel control over artifacts is important because CRT artifacts aren't all locked to the pixel grid that the TV is rendering - As an example, scanlines need to be much thinner than a single in-game pixel, and should be placed at the halfway point between two in-game pixels.
Once I had the low-resolution render being upscaled and run through my shader, it was a matter of writing simulations for different CRT artifacts, and using a light touch in deciding which ones amplified the feeling I was going for; I didn't want to over-exaggerate things and end up with a caricature of a CRT image! 😅 I've got a Sony Trinitron in relatively good repair that I love the look and feel of, so I wanted to write something relatively accurate to that, with a few choice degradations inspired by childhood TVs I remember playing on which were in more poor repair. The only place that I chose to exaggerate the CRT artifacts for effect was that I intentionally amplified the horizontal deflection (causing slight waves to run down the screen) and added a wave of over-exposure running across the screen over time, because those artifacts helped give a subtle shimmery watery feeling to the scene, while also reading "true" to a well-loved CRT.
As for the theme, you have absolutely got me there lol - It's a very fair criticism. I had originally started building towards a maze-chase-inspired style of game, where you were swinging around non-linear levels collecting the tether targets as you went (removing them from the level after you detached from them), but it wasn't coming together quite how I wanted - Literally collecting each target made the flow of those open-ended levels feel less open, let you play with the tether mechanic less, and ended up making each level feel more like a logic puzzle than a way to let the player explore their movement options. That made me pivot into the more traditional platforming style where each level had a distinct start and end point, and you had to "collect" the targets by latching onto them and simply changing their state, which made for a more fun experience but significantly weakened the throughline to the theme.
I think there's probably a version of the maze-chase style where each target was holding a pearl, and you were collecting those pearls instead of the targets, but sadly I didn't get there in time during my initial experimentation. 😅
Thank you again for such great feedback! I really appreciate you taking the time to share your thoughts, and hopefully this gives some useful insight into how the CRT effect works! If I have time this week, I'll put together that community post and go into more specific technical detail!

All that said, your games are always super fun, look great, sound great, and play very well. I look forward to seeing what you come up with next LD!
Making the grab process faster is such a great idea to make things feel more consistent and to make the player feel more in-control of their momentum, and I can't believe I didn't experiment with that at all - Thank you so much!
For the targeting logic, my goal was that it should invisibly work without the player thinking about it. Unfortunately, the logic needs some work because it isn't necessarily picking the best choice when there are multiple targets that are close to one another 😬
Thanks again for playing, and for the great feedback! :)
Yeah, getting targeting logic that's THAT smooth is a huge task indeed! For someone like me, you'd almost need to get an eye tracker and just always target the one I'm looking at, because I'm all over the place in what I expect/hope haha.
The effects are really well balanced I think. We all have some rose-tinted glasses about having a CRT/Trinitron set and how that would look like. The exaggerated aspects are indeed exaggerated, but in the good kind of way. I checked my own television set to see it up-close but then I realized I don't have a Sony Trinitron :sweat_smile:
Thanks again for the explanation. Maybe next LD I will try to recreate the feel in my own little javascript-thingy :-)
I hope it's useful, or at least interesting! 😅
https://github.com/Koolruz/crt-shader-example