Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> PuzzleScript allows you to express this succinctly: > [ > Player | Crate ] -> [ > Player | > Crate ]

I'm sorry. This just isn't succinct. You've immediately lost me. The idea is nice, and perhaps it works well within the realm of puzzle-specific scripting, but there's nothing here for a casual reader to interpret.



>...perhaps it works well within the realm of puzzle-specific scripting, but...

Yes, it is literally named "PuzzleScript". Also, if you continued reading, you'd find it is succinctly explained.


Okay, well maybe I've forgotten the definition of "succinct."

> briefly and clearly expressed

Brief, sure, clearly expressed? Absolutely not. There's more to puzzles than moving things around.

    [ > Player | Crate ] -> [ > Player | > Crate ]
This isn't succinct. This is brief. Puzzles, and games in general do more than move things around. So, if I wanted something to turn into a different item, where's the syntax for it?

There doesn't seem to be any.

The syntax is seems to be for moving things. Okay. What if I want something to slide over multiple tile spaces? Where's the syntax for this?

There doesn't seem to be any.

What if I want the item to progressively become more difficult to move, say for instance if I'm moving a snowball. Where's that syntax?

There doesn't seem to be any.

So, in short, an entire syntax has been developed for one feature: movement. And it doesn't do it well. Why would I use this?


On the off chance that you have a genuine interest in knowing the answers to your questions, and are not grandstanding, I will answer.

First differentiate between the syntax and the tool. This isn't a tool that supports every possible game. It is designed for creating movement-based puzzle games. Though it can support many others, that is its focus. You can certainly stretch it to do Tetris or Threes, but probably not Mario.

If you are involved in game technology, it is a masterclass in supporting a very large (but still restricted) class of games in a very small tool set.

So, specifics:

> if I wanted something to turn into a different item

    [> Player | Box] -> [Player | Contents]
assuming you open your box by moving into it, or

    [Action Player | Box] -> [Player | Contents]
if you want to press the action button.

> What if I want something to slide over multiple tile spaces

    [ > Player | Crate ] -> [ > Player | > Crate ]
    [ > Crate | no Wall ] -> [ | > Crate ]
The first line says moving into a crate sets the crate in motion. The second line says it keeps going until it hits a wall.

> if I want the item to progressively become more difficult to move

What does it mean to become more difficult, given that moves are atomic actions? (Back to the restricted domain of this tool.) But, for one possible design, we can do:

    [ > Player | LightObject ] -> [ > Player | > LightObject ]
    [ > StrongPlayer | LightObject ] -> [ > StrongPlayer | > LightObject ]
    [ > StrongPlayer | HeavyObject ] -> [ > StrongPlayer | > HeavyObject ]
Regular players can move only light objects, strong players can move either.

The ethos of the system is that to change state, you change object type. This is less restrictive than it sounds, because it is possible to layer objects. But it is still restrictive. And deliberately so.

> it doesn't do it well.

Based on the calibre of people who have used this, including for the rule development and level design for decently successful commercial indie games, it might be worth entertaining the notion that it might just be you. A more constructive and educational alternative might be to try and specify the same sophistication of rules in a more succinct syntax.


So, if I wanted something to turn into a different item, where's the syntax for it?

    [ >  Player | Crate ] -> [  >  Player | > Rock  ]     
What if I want something to slide over multiple tile spaces? Where's the syntax for this?

    [ >  Player | Crate | ] -> [  >  Player | | > Crate ]
What if I want the item to progressively become more difficult to move, say for instance if I'm moving a snowball. Where's that syntax?

You'll have to explain what "more difficult" means to answer that one!


The rules of the game are pattern matched onto the state of the game. A single rule defines a pattern, and a modification. "If the player is adjacent to a crate and has movement in the direction of the crate, add movement to the crate."


Looked fairly succinct to me. Can it be shortened any further?

I had a play around with this engine and found it quite fun in itself.

Actually I would hope you are trolling. If not, you definitely need to re-evaluate your choices as this may just be one of many opportunities for fun you are actively ignoring.


I work on game software for hobbyists and I think I make a fair point here. It's not overly critical, and I address some basic concerns above. It's nice software, but perhaps making a generous statement about its syntax.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

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

Search: