Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: I'm releasing my game for free (itch.io)
195 points by atum47 86 days ago | hide | past | web | favorite | 103 comments

Sokoban is at the spritual center of a relatively new (or newly invigorated) and pretty hardcore subgenre of puzzle games. Who knew there could be so many interesting ways to push blocks around in a grid? Some good ones are Heroes of Sokoban I, II and III[1][2][3], A Good Snowman Is Hard To Build[4], Stephen's Sausage Roll[5], Ferdy the Cat[6], Kine[7], Snakebird[8] and Baba is You[9].

Each and every one of these games have undo. That's critical for this type of game. Forcing the player to restart because of a single mistake is about the least interesting way to make a puzzle game more difficult.

1: https://sites.math.washington.edu/~ostroff/puzzles/Heroes_of...

2: https://sites.math.washington.edu/~ostroff/puzzles/Heroes_of...

3: https://sites.math.washington.edu/~ostroff/puzzles/Heroes_of...

4: https://agoodsnowman.com

5: https://www.stephenssausageroll.com

6: https://ferdythecat.com

7: https://www.kinegame.com

8: https://noumenongames.itch.io/snakebird

9: https://www.hempuli.com/baba/

Strong recommendation for Baba Is You, probably the best puzzle game I've played in a long while. I won't say more since it's best played blind.


Half of the pleasure of "baba is you" is to discover it. The game assumes this perfectly, and is actually structured to make that discovery part of the gameplay: it's incremental, pleasant, and it surprises you in good ways.

I sometime even laugh at the way the game designer played with me. With one specific block present or missing. With one rule you didn't know about, or didn't think about that way. It's communicating playfulness without a having to say a word.

This game is a beautiful thing.

I first encountered this back on the original GameBoy as Boxxle [0,1]. I recall finding it just as much of a challenge to create levels which worked! The music is just as good as I remember [2].

[0]: https://en.wikipedia.org/wiki/Boxxle

[1]: https://www.gameboyworks.com/1989/09/01/boxxle/

[2]: https://www.youtube.com/watch?v=qKkQxZKTLWQ

Cool, I wasn't even aware that "A Good Snowman Is Hard To Build" is a Sokoban-style game when I bought the Humble Conquer Covid-19 Bundle (https://www.humblebundle.com/conquer-covid19-bundle) a few hours ago (thanks for the opportunity to plug this, normally I don't do this kind of thing, but hey, it's for charity!) - guess this is one of the games I'll install first...

Also, in the vein of "Stephens Sausage Roll" check out "Pipe Push Paradise"


For a kind of similar game but with a bit of a twist (not pushing blocks, but rolling them) I highly recommend Bloxorz [0] although I should warn everybody that it's highly addictive.

0 - https://www.miniclip.com/games/bloxorz/en/

This is pretty much the only good game on long haul flights, nowadays. It's the caveman version. You definitely don't get an undo, but you can cheat to get to higher levels as the passwords are only five characters long (and are dictionary words). Lots of carriers have it [1]

Sometimes you can play Zuma, but that's hit/miss with latency and I can never get past Khufu's Revenge.

Back in the long long ago, some airlines made a deal with Nintendo to put a SNES emulator in their entertainment system [2]. You could play Super Mario World, Zelda: A Link to the Past and other games. I only had the experience once, on a flight to Cape Town around 2002(?) and frankly I was a bit too young to appreciate what it was, but it somewhat spoiled me for inflight entertainment ever after.

[1] https://entertainment.ba.com/en/games/details/17 [2] https://snescentral.com/article.php?id=1019

Yes! I had this on a Virgin flight in 1999 as a kid. Was 10 years before I started travelling as an adult, and was sorely disappointed at how much _worse_ things had gotten

For those who don't know this game is called Sokoban. https://en.wikipedia.org/wiki/Sokoban

yes, I added the "sokoban" tag to my game page. As I said on other comment, the difference between QUBES and a classic sokoban game is that on QUBES the amount of moves you make counts.

It's not enough to solve the puzzle, you have to solve it the best way possible.

Big O notation?

It's not the first sokoban game to score based on number of moves.

But heck, writing an original clone of an already-extant game is an interesting exercise especially for beginner game devs. So cherish the victory of having finished and released it!

thank you. but I swear I had never seen a sokoban game that counts your moves. Well, I haven't search it either, so it doesn't count, but I remember playing sokoban on DOS when I was a kid and it didn't count the moves.

You can see moves being counted in this port for the TRS-80 Color Computer: https://www.youtube.com/watch?v=ncsglTE2xoY

I had that game as a child. Even though it counted moves, I never paid attention to it. I only cared about finishing the level. Your game puts more emphasis on the number of moves especially with showing the minimum number of moves to solve a level. That gives it more replay value.

I had a CoCo as a child too.

I remember thinking the Microsoft "Extended" Basic for the CoCo was pretty cool. Although it was pretty painful manually typing in source code from magazines to try new programs (I think the main magazine back then was "Rainbow").

The tweens today who have only used Github for getting code don't know how good they have it.

1984, same age as me, haha

Qubes should display counter too.

Otherwise it's awesome.

Hi, I'm Victor Ribeiro, author of the game. Yesterday I was let go of my job due to COVID-19. After I got the news, I sat down on my notebook and made a quick port of QUBES to release on itch.io

I understand that the game is a not a 5 stars game and there's room for improvement, some requests I may implement on the next update, but, I'm now working on a new game that I plan to release soon.

I think this new game is more fun. I suggest following me on twitter, itch.io, youtube or github to check it out.

As I told, I'm not working right now so if you liked QUBES and want to support me and the developing of other games, I suggest you make a donation you itch.io, paypal or consider becoming a patreon.

Here I go by atum47, but on all other platforms I'm usually victorqribeiro. On youtube I'm always putting videos of my projects, my english is far from good, but I'm working on my pronunciation.

On GitHub I'm always publishing open source projects that might help others or even serve as a starting point for a project. IsoCity is a good example of that. There are people working on some cool new things using IsoCity as a foundation. So, make sure you take a look at my projects at GitHub also.

Thank you so much for playing the game and for the inputs/feedback.

My 4 year old is enjoying it. Interesting to watch him work through the process. Kept his attention for 15 minutes or so (which is pretty damn good). Thanks for sharing.

yes, nice one. thanks a lot for the feedback.

Kind of strange a non move counts as one, if I just hold the arrow key over on a block that can't move, it will be 157 moves in no time.

I haven't played the game, but if it's well designed, there is a reason for that, and some level down the road will depend on this mechanism.

yes, you moved, the wall just pushed you back.

bad jokes aside, I designed it that way.

For me, that's not how I expected it to work and don't agree.

To move a long distance, I spam the direction until I hit the wall without care of 'wasted moves'.

I didn't understand why I didn't get the optimum moves the first time.

Regardless, thanks for developing the game and releasing it for free. I'm enjoying it while I'm stuck at home!

thank you

If the goal of the game is to complete a level in the fewest possible number of moves, you have to show that number and show a counter of how many moves I've made so far.

(And allow undo. See my other comment.)

> bad jokes aside, I designed it that way.


so you have to think of your move, instead of just press buttons until something good happens

Think about UX, though. I know I want to go all the way to the wall because I'm thinking ahead. I might press it four times when it just needs three moves. It adds nothing to the game for me that I'm penalized for this, it just makes the UX arbitrarily worse.

You can stick to your guns here, but I think you'd be hard-pressed to argue that it improves the game.

What's also annoying is that I don't know if I have suboptimal moves because I accidentally hit some walls or because there's a better solution.

no that's ok. that's something I can consider on the next update. a lot of friends are asking me to add a swipe to move on mobile devices, we argued about that a lot, and I'll may do it also.

It's not like players can brute force a solution. And if they do, they'll get a low score anyways, right?

it's kind my point, if you want 3 stars you need to play carefully. if just want to pass the time, you can too. that's another decision I had to make, I did not lock any level. you free to choose different from other games were if you get stuck on a level you can't progress to the next one.

Sure, but you can restart levels as many times as you want, so what's the difference? You're notified at the end on how many moves you made, and how many is optimal. So why bother with the non moves?

Maybe show your number of moves as you go then? That would go a long way.

I cant start the game, getting some errors and connections to doubleclick. index.html:177 Uncaught DOMException: Failed to read the 'localStorage' property from 'Window': Access is denied for this document. at loadGame (https://v6p9d9t4.ssl.hwcdn.net/html/2099093/index.html:177:3...) at Image.textures.onload (https://v6p9d9t4.ssl.hwcdn.net/html/2099093/index.html:217:4) loadGame @ index.html:177 textures.onload @ index.html:217 load (async) loadAssets @ index.html:216 (anonymous) @ index.html:225 www-embed-player.js:438 GET https://googleads.g.doubleclick.net/pagead/id net::ERR_BLOCKED_BY_CLIENT Xe @ www-embed-player.js:438 We @ www-embed-player.js:424 (anonymous) @ www-embed-player.js:726 N @ www-embed-player.js:312 mj @ www-embed-player.js:723 xe @ www-embed-player.js:736 yj @ www-embed-player.js:741 zj @ www-embed-player.js:742 (anonymous) @ www-embed-player.js:759 (anonymous) @ 0lP8Q6u1Shw:12 www-embed-player.js:542 GET https://static.doubleclick.net/instream/ad_status.js net::ERR_BLOCKED_BY_CLIENT

I played one level around 80 and was able to figure out how it works without reading any instructions. You did good.

well, thank you. =)

Is the source available? I'm curious how you're able to run either as an app, or in the browser.

I wrote the thing with mobile and desktop on mind (touch and keyboard controls, render to several types of screen). Then this line does the magic:

   const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
if isMobile = true, I show you the touch controls

I'm holding the source code on this one for now, cause I'm trying to make a bucket out of it. But I'll release it soon enough. Check out my github for some other fun projects as well

Cool, thanks for sharing that.

you're welcome

by the way, the app version is a hybrid. I'm using java and javascript. I use a javascript interface to talk between the two. Java handles the ads and the data storage, the rest is javascript.

I like it.

I used to play KSokoban, when I used KDE long time ago. Now, someone took the assets of KSokoban and made an online version.


It's in essence the same game.

I remember playing the first time I used Linux also, when I was a teenager. later I got hooked in computer graphics (3D and vfx) and went back to windows.

In QUBES your goal is to move the boxes to their happy places making the least amount of moves possible. After the end of each level you get stars based on your efficiency. Hope you have fun playing it.

Like Sokoban.

yes. two things: on QUBES efficiency matters, you have to complete the levels making the least amount of moves.

Since I wrote a solver / level generator for my game, I'm able to tell how many moves you need to make to finish the level as efficient as possible.

Given that possible moves for each level are discrete, does your solver work with an algorithm or by trying all possible inputs?

each movement (left, right, top, bottom) generate a new state, the algorithm goes around searching the whole game for a "win" state

And then ranks them by shortest.

yeah, I needed a way to classify the levels by the difficulty. I should have done a double sort, one for the number of goals (boxes) and then the number of minimum moves necessary to finish the level.

This is a pretty standard way of creating solvers for puzzles that have discrete states. When you are searching for a shortest solution you can also hash states to track losing paths and abandon them early.

If you like this type of game check out 'Adventures of Lolo' on an NES emulator, circa 1989.

A nice open-source library to create similar games is https://www.puzzlescript.net/

hi, thanks much. very fun. any chance you could add keyboard shortcuts to the menu items after completing a level? (try again, next, menu) so that a user doesn't need to switch from keyboard to mouse.

With space bar you can go to the next level. I'll try to add the other ones later, is that ok?

cool. add a comment/indicator that space bar advances?

on the game? because it's on the description of the game, on the itch.io page.

The game was supposed to be mobile only, I just had a bad day today and made a quick hack to make it available on desktop.

I'll try to refine it more, later.

This is great! Small, efficient, easy to understand even for a someone who has never seen Sokoban (me!).

One small feedback, it would be great if there were an undo. It's really frustrating to make one mistake twenty moves in and have to start over. :)

yeah, I remember seeing one game where you had like 3 undos and 3 solutions, and you can buy more. I have decided no to that. but I'm really glad you liked it

No I mean literally just add a U button that undoes the last move.

Some little improvements I'd like to see:

- an option to mute audio

- a counter to see how many moves I did by now

if you click the square button (when playing any level) you'll get a option to mute sound and music

Reminds me of Chip's Challenge. :)

This comment brought back some lovely memories of my grandfather, who got into computers late in his life and had all sorts of games on his Windows 95 (I think it was originally Windows 3.1) machine. One of them was Chip's Challenge, and it was the only game my brother and I could play together (at about 5 and 7 in the late 90s) and take turns without squabbling because half the fun was puzzling out the solution to each level.

Please add on-screen controls for tablet (and phone) users

That's brilliant :) The last level was really fun.

Thank you so much. Really nice seeing your work being appreciated.

Did anyone ever play Microsoft Tinker? [0] This game kind of reminds me of that, I spent a lot of hours playing Tinker on my old computer!

[0]: https://en.wikipedia.org/wiki/Microsoft_Tinker

Oh no, the kind of game I have to force myself to stop or I'll spend the whole night playing.

hey, you're the second one. I have met only one other person who I know was addicted to the game. I know that cause she wrote me an email asking for the 3 stars solution for the 12 level. really funny

I started having trouble around there too, at 10 and 11. I had to settle for 2 star solutions. I knew I could spend all night trying to do all this (3 stars or nothing) so I called it quits.

@atum47 - Fun game! How were the optimal number of moves determined?

I turn each state of the game into a node and then I search the minimum cost path to a node with the "win" state.

Reminds me a little bit of Heartlight PC.


I installed the game but it crashes immediately on opening. I'm on an oldish phone (OnePlus Two) which may explain why.

Not able to donate. Accept payment from India?

yes, itch.io handles the donations

This is good fun. Needs more music variety! Perhaps a new track every 10 levels or so, otherwise the loop gets stale!

got an initial black screen until I pressed 'r'

figured out what to do, then it froze. Pressing space bar did nothing.

space bar works only when you finish the level, to go to the next one. for the rest, I'm afraid you'll have to click the buttons

Click buttons? There are no buttons to click. And no indication clicks are being received or being used.

It looks like a fun thing to play while a build is running, I'll check back if it crosses my radar again.

did you try the google play version?

yes just a black screen for me in chrome too - "r" does nothing

Nice little browser-based Sokoban clone.

Thank you. This project was born literally from me writing a level generator for sokoban. I added some free open source 2d art, some sound fx, some music, gave the game a story (the boxes are sad away from their happy place, help them) and BAM. Got myself a game.

Why not add one new game mechanic?

because I'm a garbage person, right after I upload this one I was already working on something new.

I'll trying my luck as a indie game dev for now, and this is not a game that people would buy or spent a lot of time playing. so, after I thought I had enough for a "game" and released.

Tomorrow I'll start working on a new game. This next one I'll put more thought into it.

Please, be a garbage person and release stuff. Don't be a tidy person who bikesheds and procrastrinates forever, like most of us. Garbage persons make the world go round.

Edit: Lovely game, btw! Congrats.

thank you. =)

For the best Sokoban implementation on Android, go to "Soko++" by Joris Wit.

The controls are not small enough to fit on iPhone SE and smaller screens.

sorry about that, I'll see what I can do

Fun game. Wanted to pass on issue I had. Safari on iPhone 7, couldn’t use touch controls on level 3 because browser chrome is in the way.


I'm talking to a friend about buying his father's old iphone, I need that to develop / test my apps.

You also can simulate the devices with the chrome debugger?

Reminds me of Paganitzu

I'm not familiar. Will look it up.

Also Lolo for NES was similar.

the google play version supports Portuguese, English, Spanish and Chinese, but it got ads.

clever and fun

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact