Comments

Log in with itch.io to leave a comment.

(+2)

This was so fun. I found the “speedrun” route first and thought, maybe I’ll try to not lose any HP by going the long way around. NOPE.

Also I have zero foresight so I literally had to reset every room until I figured out what to do, so I can’t wait to see this with some checkpoints!

(+1)

Thanks for the feedback!  I experimented with making it possible to avoid taking any damage, but I couldn't think of a good way to do it that wasn't incredibly obvious (though, as the puzzle designer, what's obvious to me is probably not obvious to other people).  I'd be interested in seeing if anyone can end the game with more than 1 HP, but I don't think it's possible...

(1 edit) (+2)

This has a lot of potential, and the health system is something I haven't seen before! (in sokoban)

(2 edits)

Thanks for the feedback!  As for the health system, the realistic answer was that implementing spikes/fire was the first thing I did because it was an easy sanity check to make sure the level worked, and then I just kept it in the game because why not.  I think I did see a similar type of system in a puzzle book, once:

https://caravelgames.com/Articles/Games_2/TLP.html

(although not a sokoban game).

(+3)

A very good puzzle game which mixes the madness of sokoban with "laser games". Despite showcasing only one level, you will find the four puzzles to exit the room quite interesting and varied and satisfying.

Terminal atmosphere adds to the feel, the only thing it is missing is an in-game legend to represent which-block-is-which.

Thumbs up!

(+1)

Thank you for the kind words!  As for an in-game legend, that's a good idea and something I can work on for a post-jam version.

(+1)

I would like to try it but

f@mkiii:~/download/ion_duct$ ./ion_duct.sh

Traceback (most recent call last):

  File "ion_duct.py", line 481, in <module>

  File "zuab/engine/game.py", line 27, in __init__

  File "zuab/interface/curses.py", line 184, in __init__

  File "zuab/interface/text.py", line 107, in add_window

  File "zuab/interface/text.py", line 144, in addch

  File "zuab/interface/curses.py", line 128, in getch

  File "zuab/interface/curses.py", line 90, in unrasterize

ValueError: chr() arg not in range(0x110000)

[1049943] Failed to execute script 'ion_duct' due to unhandled exception!

(+1)

Hi, sorry for the delay, I've never seen this error before, and I need to look into it further.  Could you tell me what distribution you're using, and what terminal you're using is (that is, the output of echo $TERM)?

(+1)

Sorry, the error went away by itself apparently!

(1 edit) (+2)

...huh, I mean, in a certain sense I'm not sure how it could have happened in the first place (I'll get to that below), but I'm glad it's working for now.

As for what was happening, the code that was hitting the bug was the part that reads back characters that have already been printed to the terminal (the reason why the code does this is so that it can join the two corners of windows together, like it does on the bottom left and bottom right, in order to make it look like they're connected).  However, somehow when it read back the character, it found neither a line-drawing character nor a valid unicode symbol, which is bizarre since those are the only two things that should have been sent to the terminal already.  Actually, the really bizarre thing is that the result from curses is already bitwise anded with 0x4000ff, which means that the argument to chr() couldn't possibly have been what the above error indicates that it was.

In any case, if I ever reproduce (and fix) this I'll be sure to add an explanation of what happened in this thread.