Sokocode is a programming sokoban "Zach-Like" where you take on the role of an intern at the newest box-centered enterprise, BoxTopic.

The game requires a keyboard and mouse to play.


  • A fake programming language for telling a robot how to move boxes around.
  • 43 levels of increasing difficulty. (21 available in the demo.)
  • Levels that require the same solution for separate attempts.
  • Scoring system to compare solutions and optimize code for speed or size.


By buying the game, you also get access to a downloadable version and a printable instruction booklet.

For a bit more, you can gain access to the un-minified and somewhat commented source code.


This version is actually remake of a game I made before that ran in Zachtronic's game "Last call BBS" using the "Axiom QuickServe" feature that allowed users to make their own fake servers in JavaScript and share them around.  The reason for the remake is that the original was a quite a bit inaccessible due to it requiring Last Call BBS and knowing how to find and add servers.  All of the base levels, mechanics, instructions, and dialog remain mostly unchanged. If you're interested, you can check it out at https://github.com/Werxzy/SokoCode.

StatusReleased
PlatformsHTML5, Windows, macOS, Linux
Rating
Rated 4.2 out of 5 stars
(6 total ratings)
AuthorWerxzy
GenrePuzzle
Made withPICO-8
TagsPICO-8, programming, Singleplayer, Sokoban, zach-like
Average sessionAbout an hour
LanguagesEnglish
InputsKeyboard, Mouse

Purchase

Get this game and 2 more for $6.50 USD
View bundle
Buy Now
On Sale!
35% Off
$3.00 $1.95 USD or more

In order to download this game you must purchase it at or above the minimum price of $1.95 USD. You will get access to the following files:

Printable Instruction Booklet.zip 1.2 MB
sokocode.p8.png 45 kB
sokocode_linux.zip 755 kB
sokocode_osx.zip 3.2 MB
sokocode_raspi.zip 2.1 MB
sokocode_windows.zip 996 kB
sokocode_source.zip 36 kB
if you pay $3.25 USD or more

Development log

Comments

Log in with itch.io to leave a comment.

the label part is confusing :(

Is this coming to Steam?

Probably not. I haven’t put anything on steam yet and I’m not sure how well this game would do.

It will do pretty well relative to most games. It reminds me of a very popular game, TIS 100 by Zachtronics. I loved playing it, and this is even better!

Of course, nobody can guarantee success. Failure is healthy. This is definitely a great product. After I played that pesky block welding game and enjoyed it, I looked at your other work recently and found it all top notch. This one seems to be the most commercially viable, in my opinion. I would also pay if that slime puzzle became a full fledged product.

Your work ethic and planning skills astound me, brother.

It is so good that I think someone might steal it if you do not turn it into something more. I would have added a graphical Scratch like option for kids, though. I will definitely let my son play this game. You really did great! I mean professionally great, not hobby great, which is also amazing.

If you put it up and let it accumulate wishlists for some time (and maybe try to promote it on YouTube or something), you could probably get good results if the price were reasonable. If you just release it silently, it probably won't do well. 

can you please make a downloadable version of the demo? It's more convenient for people who want to play offline.

(+2)

I find it really funny that 'chf back' & 'chf left' are more efficient 'set false' commands than 'set false,' but 'set true' is more efficient than 'chf forth'

Why is that the case? I don’t understand any of this deeper level game behavior.

Character counts. Chf is 'check if' and sets it to true if it's true and false if it's not. False is 5 letters, while true is 4. Left and back are relational directions, and 'chf left' checks if you're facing to your left, but that's always false because you're facing forth, because forth is always forward. 

So 'set true' has the same character count as 'chf left', while 'set false' and 'chf forth' use the same number of characters.

It's not a major improvement in efficiency, but it's there. 

(+1)

This game's save function works fine, but if you play using the itch.io app's sandbox function, it opens using data in your active user profile (which will be none) and then writes to the sandbox profile. I imagine this isn't something you can really fix, but it's unfortunate nonetheless.

Yea sorry about that. Not something I think I can control with pico8.

That's pretty much what I expected; not really your fault

(1 edit) (+1)

I can think of a billion ways to do the 2nd puzzle in the 2nd batch if we had an accumulator or register and a way to track units moved...  I was like "Maybe if I pushed them all to the top, then looped pulling them back 1 at a time..." but there's no way to set a register for looping.  IDK how to math when you can't math lol

This 2nd set is super brutal...  I can't beat any of the puzzles 😂.  GG

(+1)

You might double check the in game manual, there might be a command or two you missed. :)

(+1)

:O there is one!  And I have no idea what it needs because it doesn't like any of the directions I give it.  Hmmmmm

Also: I checked out the Last Call BBS version of this game - well done!

(2 edits) (+1)

Going through via the Pico-8 cart now, and with what I've learned along the way, I just got the best solution for "Hallways" 😂`  2 lines of code


Spoiler:










ST: FRS FENS
JMP ST
(+1)

ha, yep. There are much more efficient solutions in the early levels with the new command. Someone actually programmed a solution finder that brute force searches using a single loop and variations of the secret(ish) instruction.

(1 edit) (+1)

lol your demo screenshot shows a ROT command.  That would have been handy for a few solutions lol.  I guess it was too easy to cheese your way through with it, though 😂


[EDIT] I just realized you can use FCE RIGHT to basically do the same thing... d'oh

(+1)

I think rot was an old command that I removed. lol oops.

(1 edit) (+2)

Glad to see someone combined zach-like with sokoban.