5 ms·
PuzzleScript – an open-source HTML5 puzzle game engine
- andrewmcwatters 8y ago> 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.
- devveppev 8y agoThe 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."
- 0xBA5ED 8y ago>...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.
- andrewmcwatters 8y agoOkay, 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?
- panic 8y agoSo, 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!
- sago 8y agoOn 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.
- adiusmus 8y agoLooked 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.
- andrewmcwatters 8y agoI 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.
- cokernel 8y agoThis puzzle game engine was written by Stephen Lavelle, who may be best known for Stephen's Sausage Roll. Here's Sokogoban, a cute recent game made with the engine: https://www.puzzlescript.net/play.html?p=8726ac1f3addfe42cc527c2217b848e8 https://www.puzzlescript.net/play.html?p=8726ac1f3addfe42cc5... I recommend clicking the "hack" link at the bottom to see the code for the game.
- sago 8y agoIt is great to see this pop-up again. Such a great toolset, deliberately limited, in such a way that anyone can create a game in an hour or so, but powerful enough that the games aren't all the same. You can put some genuinely interesting mechanics into it. Stephen (the author) knows puzzle games. It is interesting to see his games, and the sophistication he has generated with this simple rule set. Terry Cavanagh (of Super Hexagon and VVVVVV fame) has also done some clever stuff with it. For someone new to game design, it's a great start. And from there you can graduate to Pico-8! Previous discussions in 2013 [0] and 2015 [1]. --- [0]: https://news.ycombinator.com/item?id=6501034 https://news.ycombinator.com/item?id=6501034 [1]: https://news.ycombinator.com/item?id=9376940 https://news.ycombinator.com/item?id=9376940
- devveppev 8y agoSome classics made in this tool: Heroes of Sokoban 1, 2, and 3, by Jonah Ostroff. https://www.puzzlescript.net/play.html?p=6860122 https://www.puzzlescript.net/play.html?p=6860122 https://www.puzzlescript.net/play.html?p=6910207 https://www.puzzlescript.net/play.html?p=6910207 https://www.puzzlescript.net/play.html?p=7072276 https://www.puzzlescript.net/play.html?p=7072276
- 0xBA5ED 8y agoThere was a game awhile back called "A Good Snowman is Hard to Build". The creator used PuzzleScript as a level editor/prototyper. He would make and play the levels inside the PuzzleScript engine, then import the completed level data into his own engine. I thought that was pretty cool.
- doppp 8y agoYup, here's the video at said timestamp: https://youtu.be/W_okgL6HJX8?t=24m15s https://youtu.be/W_okgL6HJX8?t=24m15s
- leafo 8y agoA while back I wrote a puzzlescript detector for itch.io, all the browser based games that use it are automatically tagged. You can see them here: https://itch.io/games/made-with-puzzlescript https://itch.io/games/made-with-puzzlescript
- doomlaser 8y ago^ leafo is the creator of https://itch.io https://itch.io, which is about the coolest platform for indie game developers out there (deserving of respect alongside increpare's amazing puzzlescript). I personally like to think of itchio as almost an Internet Archive for video game culture, as well as serving a similar function for developers as MySpace did for bands in the 00's decade. One of my favorite Puzzlescripts is Farbs' Dungeon Janitor: https://www.puzzlescript.net/play.html?p=6866423 https://www.puzzlescript.net/play.html?p=6866423, along with his puzzlescript adaptation of Pac-Man: https://www.puzzlescript.net/play.html?p=6847686 https://www.puzzlescript.net/play.html?p=6847686
- TheAceOfHearts 8y agoI don't use their platform and I'm not much of a gamer, but one criticism I read online is that they intend to police their platform more heavily than Steam. The creator criticized Steam's game policy on Twitter [0]. Of course, it's their platform and they can do as they please, and if you share their views then you might view this in a positive light. If I were involved in that community I'd have some concerns of rules being selectively enforced, although I don't know if that has ever been an issue with them. Personally, I've been favoring gog.com over Steam as of late; they have a decent amount of DRM-free indie games available. I think anyone can submit their game, although I'm uncertain of their content policy, and I wasn't able to find any information on it after a quick search. It's also worth noting that the actual Internet Archive [1] has a large amount of games freely available. It's mostly retro games, but I don't think there's any restrictions against modern games. Of course you'd probably only upload your game there if you were making it freely available, since it's meant as an actual archive. [0] https://twitter.com/moonscript/status/1004448157776793600 https://twitter.com/moonscript/status/1004448157776793600 [1] https://archive.org/ https://archive.org/
- cyborgx7 8y agoIf you understand games as a system of rules, an engine that lets you simply describe those rules and then set up starting positions becomes very interesting. I've been playing puzzlescript games from the gallery, as they come out, for a while. Would love to see how far you could push this idea.
- andrew_wc_brown 8y agoI haven't been working on my game since my newborn has been my priority but I have an open-source tetris-attack like game built in eletron, typescript and phaser. Its deterministic, has multiplayer, and frame to frame recreation to the tetris-attack mechanics https://github.com/omenking/swap-n-pop https://github.com/omenking/swap-n-pop
- makz 8y agoWho needs unity when there is puzzlescript and pico-8? And before you say “it’s a different use case” that was a rethorical question.
- JansjoFromIkea 8y agoStephen Lavelle/Increpare is the most impressive indie game developer out there by an absolutely landslide imo. Beyond things like Puzzlescript he's just madly inventive when it comes to making games and interactive experiences of his own. Stephen's Sausage Roll and Slave of God (https://www.increpare.com/2012/12/slave-of-god/ https://www.increpare.com/2012/12/slave-of-god/) stand out in particular to me but on the whole he strikes me as a guy who has tons of great idea and the talent to implement them. Only issue is he hasn't the time to devote to take most of them beyond being extremely impressive proofs of concept.
- kyo3 8y agoThis is so cool :D