Show HN: Kuboble.com – Minimalistic sliding pieces puzzle game (kuboble.com)
Hi,
I wanted to share a simple game I wrote.
It's a sliding pieces puzzle like many others. I have focused a lot on making the experience smooth and minimalistic and the levels being challenging in a way a sudoku or chess puzzles could be.
I had no prior knowledge of game development and while it feels like someone competent could build this game in a week I spent over two years and hundreds of hours to bring this game to life.
My journey went through:
- thinking it will be a PC game
- being overwhelmed by the amount of different game frameworks
- hiring an indie dev to bootstrap the game in Unity for me
- realize the small levels are actually cool and it might fit on a phone
- generating levels and playing through thousands of them myself to curate a smaller list
- realizing the Unity wasn't a good choice
- rewriting the game in html + js drawing on canvas + React
- hiring a bunch of fiverr artists and testers to polish it up
I think I am finally satisfied with the result enough to be willing to share it with the world.If you're a fan of minimalist sliding pieces puzzles I'd be happy if you give it a try!
the game has: - no ads - no tracking of any kind - fully offline after first load
157 comments
[ 3.2 ms ] story [ 254 ms ] threadWell done on "finishing" it. Your story is a typical one, myself being guilty of it: Going too grand in the beginning, and never getting anything viable out. Focusing on the core gameplay, even if "only js+canvas" with no fancy 3d graphics etc is the right start.
Some nits and comments if I may.
* Don't count moving stones as an actual move until the stone is released. I am on a PC and if I click-and-hold a stone and then move it back and forth, each move is counted even though I haven't released the mouse button yet. This is somewhat counter-intuitive and unexpected.
* Put the light source at the top. You have it at the bottom and this results in a drop shadow above the stones, which looks more like an unintended blur or ghosting. Also shadows/highlights are a bit inconsistent - base tiles imply that the light source is at the bottom-bottom-left, but the stones are shaded as if it's at the bottom-right.
* Perhaps reduce the size of stones a bit to add some breathing space around them when idle and when moving.
* Add a keyboard nav? There are two stones, so something as literal as awsd for one and arrows for another would work. Or just the arrows with a 'space' to toggle the focus.
* Starring criteria is unclear. Got one level with "optimal" rating, yet it gave 3 stars. This was the one where I had to undo several moves because I was mindlessly moving the stone back and forth without releasing it.
* the move is applied automatically the moment the done does stone_width/2 in a free direction. It would be tough to implement what you suggest. Also I did implement move counter the way you recommend - that if you make a move that cancels previous move it reduces the count but the testers were unanimously confused by it so I reverted it.
* there is no light source. It's few simple 2d images.
* I actually like how tight the stones are - like in a goban
* keyboard is on my todo if pepole intend to play on a pc
* starring is 5 for optimal score and 1 less for each extra move. Are you sure you have observed that anomaly?
> the move is applied automatically the moment the done does stone_width/2 in a free direction
Shouldn't a move be complete when the stone bumps into a wall and stops moving? I guess you already have the code to detect that event. You can hook the move counter there.
Keyboard navigation is definitely due on a computer. Select a stone with mouse and move with arrows or awsd. We can play two handed. It's much better on a phone now because we can throw stones to walls with a finger.
But I see how it can be confusing when the path to travel is 1*stone_width. I don't have a good idea how to preserve the behavior on a bigger board and making it less confusing on a smaller one.
* I meant "implied" light source. My point was that visually it's somewhat messy due to shadows being on top.
Re: the starring thing - I can't reproduce, but 100% saw it. Was on the level 3.
> Sokoban nostalgia says Hi :)
HN is full of people who have seen it been there done it and like to point it out in the pass agg format such as that.
One of the most difficult barriers to starting a “cool” project for me is the “but X already exists” even worse when someone points it out to me in a snide manner.
Absolutely love your game. Reminds me of the primitive yet challenging games you would find on random floppy disks at a jumble sale. Thank you for making it!
By the way. I didn't get the snarky vibe from the comment at all.
Kuboble is born from Sokoban nostalgia :). I think this exact puzzle mechanic is a subset of many existing games.
I would like to think that my original contribution is mostly the level selection.
I'm grateful for anyone caring enough to post a critical comment.
OP's game has a similar setup, mechanics and requires very similar strategies to solve as another very well-known game that many people know. This is obvious.
Mentioning it doesn't denigrate or belittle OP's creation in any way.
suggestion: if you turn the images upside down (or turn 180 degrees), the light will come from top.
it's a fun game, thanks for sharing !
[EDIT] one minor remark, there seems to be a small graphical glitch: eg. on level one, the 3 squares on the right side (not the top and bottom one) appear to have wrong perspective.
it works with mouse or Tab for piece selection. arrows for moves, and backspace for undo
Eventually I realised that the stones need to be placed on different coloured squares - I'm colour blind (red/green), and can't tell any difference at all between the stones. For the squares, I can tell one is a bit darker than the other. You might want to consider using more contrast, or a more colour-blind friendly colour palette.
Reminds me of Sokoban, which I first played more than 30 years ago!
Examples for the game: the red stone could have a empty circle mark on the top it, the green one could have a circle with a dot inside. The destination squares would be marked with the empty circle and the dotted circle.
A circle and a triangle, for example.
I'll try to come up with something better in the long term
Another option would be to use different forms, e.g. a round stone combined with a square one.
Anyway, nice game!
https://ricochetrobots.kevincox.ca/
However - I only started really liking my game when I have realized that you don't need big complex boards to make interesting challenges.
I like the simplicity of the Kuboble levels. I started like that but then got carried away adding switches and teleports etc. to the later levels.
And similar to Kuboble, mine could do with some keyboard controls. I think both work better with touch screens.
what unexpected things occurred hiring people?
great job, played for longer than expected :)
1) Indie dev - build a first version of the game in Unity. She is responsible for the look&feel of the gameplay 2) Fiver person 1 - who made the very crude js version of the player which I refactored into final version. 3) Fiver person 2 - who helped me with the design of the game menu.
Other than that I have hired some other designers on fiverr, whos designs I didn't end up using, several testers and reviewers.
I also asked all friends and family to try it out and I have observed if they can figure out what the game is about without any hints.
Nothing really unexpected happened in regards to working with people.
It's something based on my name Kuba. Should sound like a game name, be short and have a free .com domain.
Also, tiny error on desktop: start dragging a piece, move out the window, release, and then either piece will move on mouseover.
I'm currently on level 12 with perfect stars.
To me the order of the levels doesn't quite always increase, sometimes a later level is easier. This could just be whatever path I happen to see first, though. If you're collecting data, though, you may be able to use it to re-order your levels.
One small thing that could be nice: the sound of a "click" like a go piece when the pieces collide. A lot of go games have a pleasing click sound, and I think it would be good here. (If you wanted to be fancy it could even be a click when the pieces collide, and a hollow this when it hits the side of the board.)
I had a click sound, but it turned out that on some devices playing the click via javascript works awfully bad (random delays) and it was more confusing than useful. I intend to work on it a bit once I add some customizations options and it will be possible to enable / disable sounds.
The order of levels is by 1) number of balls, 2) board size, 3) optimal number of moves.
Although not perfectly it's actually quite well correlated with difficulty - all levels above 100 are much more tough than any of the first 20 etc.