Psykoban [WIP]

196 views
Skip to first unread message

Aaron Steed

unread,
Mar 18, 2018, 8:29:46 AM3/18/18
to PuzzleScript
Just thought I'd try out blocks moving whenever they're on the same axis.


I'm pretty sure this mechanic has already been done. I mean it's a pretty obvious idea, but I can't think of where I've seen it before.

Stephen Lavelle

unread,
Mar 18, 2018, 10:34:21 AM3/18/18
to Aaron Steed, PuzzleScript
if someone has done it, they haven't done it with this charm :) (I'm pretty sure it hasn't been done)

--
You received this message because you are subscribed to the Google Groups "PuzzleScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email to puzzlescript+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Stephen Lavelle

unread,
Mar 18, 2018, 10:35:46 AM3/18/18
to Aaron Steed, PuzzleScript
had trouble reading this tile - is it meant to be the top wall of the pit?


Message has been deleted
Message has been deleted

Hand-E-Food

unread,
Mar 19, 2018, 6:05:32 PM3/19/18
to PuzzleScript
Yeah, I really enjoyed that.  While I enjoy these puzzles being short, I could really go a few more levels of this!

Aaron Steed

unread,
Mar 19, 2018, 7:52:25 PM3/19/18
to PuzzleScript
Tried out a few more levels:


Might do some more. There's a lot of obvious "drag it inside the maze" ideas I come up with, but they're always miserable to play. Gates have a similar problem that I've done two block the door puzzles - not much else in it so far.

Stephen Lavelle

unread,
Mar 19, 2018, 8:12:02 PM3/19/18
to Aaron Steed, PuzzleScript
is there something you could do to refine this level:

h#########h
ho.a.o.a.oh
h..b...b..h
h.eb.@.be.h
haabaaabaah
h..b.e.b..h
ho.b.o.b.oh
###########

it felt a bit busy-worky to me, but there's something about it I like as well

--

Aaron Steed

unread,
Mar 20, 2018, 4:43:10 AM3/20/18
to PuzzleScript
I can change that level into this:

h#########h
ho.a...a.oh
h..b...b..h
h.eb.@.be.h
haaba.abaah
h..b.e.b..h
h....o....h
###########

Which removes the preamble and gets straight to the issue of winching the rocks down without dunking the 3rd rock. But it looks ugly and feels too short.

But what about this?

h#########h
ho.......oh
h.ea.@.ae.h
h.abaaaba.h
h..b.e.b..h
h....o....h
###########

I've connected all of the islands at the edges. It's even more work to solve, but a bit more comedy in playing as it's very hard not to end up targeting 2 rocks at the same time.

-

I'm wondering about the central move a bit. So this grabs anything on the same axis as the player.

[ > Player | ... | Crate ] -> [ > Player | ... | > Crate ]
[ < Player | ... | Crate ] -> [ < Player | ... | < Crate ]

How do I just grab the 1st thing? All I can think of is writing a dirty loop to do it.

My thought was to have some crates that only the 1st in line would respond to your power. But I might get just as much functionality from a simple crate you can push yourself and use to pin rocks against.

Stephen Lavelle

unread,
Mar 20, 2018, 4:47:40 AM3/20/18
to Aaron Steed, PuzzleScript
dirty loop, yip (that is, propagate something from the player until something is found to move)

--
Message has been deleted
Message has been deleted

Aaron Steed

unread,
Mar 20, 2018, 7:28:15 PM3/20/18
to PuzzleScript
Oookay, I'm just repeating the same concepts when I come up with levels now. The share thingy wasn't working for some reason so I dumped it on itch.io:


Here's the code in case anyone wants to keep tinkering:

title PSyKOBAN
author Steed
require_player_movement
run_rules_on_level_start
text_color #ffd600

========
OBJECTS
========

Background
#e5b679

WallTop
#d34900

WallBase
#d32112 #820e00 #d34900 #9da3c7 
22222
22220
01111
11111
11111

Box
#ff8126 #c93700 #ffa30d #d32112
22222
02220
00000
11111
11111

PitTop
#c8601b #7b3a12 #000000 #ff0000 
01010
12121
21212
22222
22222

PitBottom
Black

Crate
#d32112 #ffa30d #ff8126 #c93700 
.111.
11122
12223
32233
.333.

CratePit
#d32112 #ffa30d #ff8126 #c93700 
.....
.222.
22333
23333
3.3.3

BoxPit
#d32112 #ffa30d #ff8126 #c93700 
.....
22222
32223
33333
3.3.3

Marker
#c8601b #e72116 #ffffff #ff0000 
0...0
.0.0.
..0..
.0.0.
0...0

onMarker
#c8601b #e72116 #ffffff #ff0000 
.....
.2.2.
..2..
.2.2.
.....

Player
#000000 #e72116 #ffffff #ff0000 
00000
02020
00000
.0000
.1..1

Switch
#ffd600 #ffa30d #d34900 #c93700 
.....
.001.
.001.
20012
.222.

GateClosed
#ffd600 #ffa30d #a62514 #c93700 
33333
30012
32222
22222
22222

GateOpen
#ffd600 #ffa30d #a62514 #c93700 
3.3.3
.....
3...2
.....
2.2.2

GateOpening
Pink

(#8080ff #97ffff #034ebe #ff0000 


#d32112 #ffa30d #ff8126 #c93700 
#ffd600 #ffa30d #d34900 #c93700 
)
uigrab
#ffa30d #ffd600 #d32112
.111.
11100
10002
20022
.222.

=======
LEGEND
=======

. = Background
# = WallBase
h = WallTop
@ = Player
o = Crate
e = Marker
f = Switch
g = GateClosed
a = PitTop
b = PitBottom
c = Box

Wall = WallTop or WallBase
Gate = GateOpen or GateClosed
Item = Player or Wall or Crate or GateClosed
Pit = PitTop or PitBottom
Movable = Crate or Box
MovablePit = CratePit or BoxPit

=======
SOUNDS
=======

sfx0 8545502 (kick crate)
sfx1 52801501 (crate in pit)
sfx2 89521507 (crate hit wall)
sfx5 19320707 (gate)
sfx6 42954502 (break wall)
sfx7 5123907 (on target)
EndLevel 65686300 (win)

================
COLLISIONLAYERS
================

GateOpening
Background
Marker, Switch, GateOpen, Pit
CratePit, BoxPit
Player, Wall, Crate, GateClosed, Box
uigrab
onMarker

======
RULES
======

(no walk over pits, unless filled)
[ > Player | Pit No MovablePit] -> [ Player | Pit No MovablePit]

(drag)
[ > Player | Box ] -> [ > Player | > Box ]
[ > Player | ... | Crate ] -> [ > Player | ... | > Crate ]
[ < Player | ... | Crate ] -> [ < Player | ... | < Crate ]


(fill pit?)
late [ Crate Pit No MovablePit] -> [ No Crate Pit CratePit ] sfx1
late [ Box Pit No MovablePit] -> [ No Box Pit BoxPit ] sfx1

(gates)
(are items on switches)
late [ Item Switch ] [ GateClosed ] -> [ Item Switch ] [ GateClosed GateOpening ]
(any uncovered)
late [ No Item Switch ] [ GateOpening ] -> [ Switch ] [ ]
(then open)
late [ GateOpening GateClosed ] -> [ GateOpen ] sfx5
(else close)
late [ No Item Switch ] [ No Item GateOpen ] -> [ Switch ] [ GateClosed ] sfx5


(highlight covered targets)
late [ Movable Marker No onMarker] -> [ Movable Marker onMarker ] sfx7
late [ No Movable Marker onMarker ] -> [ Marker ]

(highlight grabbed rocks)
late [uigrab]->[]
late [ Player | ... | Crate ] -> [ Player | ... | Crate uigrab]

==============
WINCONDITIONS
==============

All Marker on Movable

=======
LEVELS
=======

message With my psychic powers I will surpass all my brothers at moving rocks!

h#####h
h....eh
h..@..h
ho....h
#######

h######h
h......h
h...h..h
h@.ohe.h
########

h######h
ho...e.h
ho.@.e#h
ho...e.h
########

message z to undo

h#######h
h@..a..oh
h.e.b.e.h
ho..b..oh
#########

h#######h
haaaaaaah
h..e.e.oh
ho..@..oh
ho.e.e..h
haaaaaaah
#########

h####h##h
ho...h.eh
h..@.h..h
hof..g..h
h....h..h
ho...h.eh
#########

h#######h
h...e..eh
h.@.o.o.h
h.......h
heo...oeh
h.......h
h.o.o.o.h
he..e..eh
#########

h##h####h
h..h...oh
h.eg..f.h
ho.h.@..h
h.eg..f.h
h..h...oh
#########

h#########h
ho.......oh
h.ea.@.ae.h
h.abaaaba.h
h..b.e.b..h
h....o....h
###########

message A heavy block! How dare they test me like this. I must push it the old fashioned way.

h#####h
h..oe.h
h@c#e.h
h..oe.h
#######

h########h
ho......oh
h..@eehh.h
h.hh####.h
h.##ee...h
ho......oh
##########

h#######h
ho..o..oh
h.e.e.e.h
h.......h
hoe.@.eoh
h.......h
h.e.e.e.h
ho..o..oh
#########

hhhh#######h
h###o..a.e.h
h..co..b.e.h
h@.ho..b.e.h
############

message Behold my mastery as I move these final rocks!

h############h######h
h.....a..g...h...ae.h
h..a..bf.h.c.#.o.b..h
ho@b.....h.......be.h
#####################

message Thirsty work. Off to the pub then.

Chyme

unread,
Apr 20, 2018, 4:38:17 AM4/20/18
to PuzzleScript
This was a super clever idea, and yet so simple! Loved it! Quite a bunch of very nice surprises as well.
Reply all
Reply to author
Forward
0 new messages