
Show HN: I'm releasing my game for free - atum47
https://victorqribeiro.itch.io/qubes
======
tobr
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...](https://sites.math.washington.edu/~ostroff/puzzles/Heroes_of_Sokoban.html)

2:
[https://sites.math.washington.edu/~ostroff/puzzles/Heroes_of...](https://sites.math.washington.edu/~ostroff/puzzles/Heroes_of_Sokoban_II_Monsters.html)

3:
[https://sites.math.washington.edu/~ostroff/puzzles/Heroes_of...](https://sites.math.washington.edu/~ostroff/puzzles/Heroes_of_Sokoban_III_The_Bard_and_The_Druid.html)

4: [https://agoodsnowman.com](https://agoodsnowman.com)

5: [https://www.stephenssausageroll.com](https://www.stephenssausageroll.com)

6: [https://ferdythecat.com](https://ferdythecat.com)

7: [https://www.kinegame.com](https://www.kinegame.com)

8:
[https://noumenongames.itch.io/snakebird](https://noumenongames.itch.io/snakebird)

9: [https://www.hempuli.com/baba/](https://www.hempuli.com/baba/)

~~~
juped
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.

~~~
BiteCode_dev
Seconded.

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.

------
alpb
For those who don't know this game is called Sokoban.
[https://en.wikipedia.org/wiki/Sokoban](https://en.wikipedia.org/wiki/Sokoban)

~~~
atum47
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?

~~~
bitwize
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!

~~~
atum47
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.

~~~
Mountain_Skies
You can see moves being counted in this port for the TRS-80 Color Computer:
[https://www.youtube.com/watch?v=ncsglTE2xoY](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.

~~~
slantyyz
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.

------
atum47
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.

------
kerabatsos
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.

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

------
overcast
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.

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

bad jokes aside, I designed it that way.

~~~
irjustin
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!

~~~
atum47
thank you

------
GrumpyNl
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...](https://v6p9d9t4.ssl.hwcdn.net/html/2099093/index.html:177:30))
at Image.textures.onload
([https://v6p9d9t4.ssl.hwcdn.net/html/2099093/index.html:217:4](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](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](https://static.doubleclick.net/instream/ad_status.js)
net::ERR_BLOCKED_BY_CLIENT

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

~~~
atum47
well, thank you. =)

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

~~~
atum47
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

~~~
alanbernstein
Cool, thanks for sharing that.

~~~
atum47
you're welcome

------
29athrowaway
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.

[https://ksokoban.online](https://ksokoban.online)

It's in essence the same game.

~~~
atum47
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.

------
atum47
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.

~~~
29athrowaway
Like Sokoban.

~~~
atum47
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.

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

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

~~~
xwdv
And then ranks them by shortest.

~~~
atum47
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.

~~~
xwdv
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.

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

------
steQ
A nice open-source library to create similar games is
[https://www.puzzlescript.net/](https://www.puzzlescript.net/)

------
occsceo
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.

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

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

~~~
atum47
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.

------
jedberg
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. :)

~~~
atum47
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

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

------
jaifraic
Some little improvements I'd like to see:

\- an option to mute audio

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

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

------
coreyp_1
Reminds me of Chip's Challenge. :)

~~~
sfRattan
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.

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

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

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

------
jihadjihad
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](https://en.wikipedia.org/wiki/Microsoft_Tinker)

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

~~~
atum47
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

~~~
Ghjklov
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.

------
Jemm
Reminds me a little of Pengo.

[https://en.wikipedia.org/wiki/Pengo_(video_game)](https://en.wikipedia.org/wiki/Pengo_\(video_game\))

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

~~~
atum47
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.

------
rl3
Reminds me a little bit of Heartlight PC.

[https://www.youtube.com/watch?v=EEqIO3Zet-o](https://www.youtube.com/watch?v=EEqIO3Zet-o)

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

------
sharma_pradeep
Not able to donate. Accept payment from India?

~~~
atum47
yes, itch.io handles the donations

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

------
lsh
got an initial black screen until I pressed 'r'

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

~~~
atum47
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

~~~
lsh
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.

~~~
atum47
did you try the google play version?

------
sonofgod
Nice little browser-based Sokoban clone.

~~~
atum47
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.

~~~
xwdv
Why not add one new game mechanic?

~~~
atum47
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.

~~~
stagas
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.

~~~
atum47
thank you. =)

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

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

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

~~~
pfarrell
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.

[https://imgur.com/a/nN9YndX](https://imgur.com/a/nN9YndX)

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

~~~
crazytweek
You also can simulate the devices with the chrome debugger?

------
ha-ckernews
Reminds me of Paganitzu

~~~
atum47
I'm not familiar. Will look it up.

~~~
sonofgod
For anyone interested:

[https://archive.org/details/msdos_Paganitzu_1991](https://archive.org/details/msdos_Paganitzu_1991)

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

------
bucketmop
clever and fun

