A downloadable tool for Windows, macOS, and Linux

Download NowName your own price

PuzzleGraph is a tool for creating simple typical computer game puzzles and then analyzing and visualizing their state space.

Setup and connect puzzle elements like gates, toggles, pressure plates and boulders. See the state space of the puzzle visualized, including solution paths, dead ends and fail states.

Share your puzzles!

If you use PuzzleGraph - either purposefully or just messing around - please tell me about your experience. And I'd love to see puzzles you make with it, and potentially include them with the distribution if you want!

PuzzleGraph is open source and the source code is available here under the Mozilla Public License, v. 2.0.

Version history

New in version 1.2

PuzzleGraph on macOS now supports Catalina and Big Sur and supports retina resolution.

New in version 1.1

All the node and edge types now have tooltips to make it more clear what exactly they do and there is a help screen with an overview of all the element types.

I also added three new puzzle elements; the one way edge, the blockable hazard edge, and the ball track edge.

StatusReleased
CategoryTool
PlatformsWindows, macOS, Linux
Rating
Rated 4.7 out of 5 stars
(21 total ratings)
Authorrunevision
GenrePuzzle
Made withUnity
Average sessionAbout a half-hour

Download

Download NowName your own price

Click download now to get access to the following files:

PuzzleGraph_1.1_Linux.zip 13 MB
PuzzleGraph_1.1_Win.zip 10 MB
PuzzleGraph_1.2_Mac.zip 15 MB

Comments

Log in with itch.io to leave a comment.

Not sure if you have ever seen puzzlescript, but it would be super cool to get this to work for a game made in puzzlescript. This is super interesting.

Glad you find it interesting!

I'm familiar with PuzzleScript, though I haven't tried to make something with it myself. If someone were to make a state space visualizer for PuzzleScript, I'd certainly find it interesting too!

But I'm not sure it's viable. Consider a very simple 5 x 5 room with a character and two pushable crates. There's 25 walkable tiles that the character and each crate can be on, so that's 25 * 25 * 25 = 15625 states. Divide by two (the factorial of 2) if the crates are interchangeable, but that's still over 7000 states for a really simple puzzle. Most PuzzleScript levels have more walkable tiles and more interactive elements. A 6 x 6 tiles room with a character and 3 crates would be 36 * 36 * 36 * 36 / 6 = 279936 states. It grows exponentially and most PuzzleScript levels probably have millions or billions of states, if not even more.

It's intractable to calculate such a large state space. There's a reason PuzzleGraph represent rooms as abstract nodes instead of supporting tile based levels.

Now, there was some researcher who found a way to reduce the state space for classic Sokoban, but the method was quite complex and also quite tailored to the specific rules of Sokoban. I'm not sure it generalizes to the extreme flexibility of PuzzleScript. In any case it would be a highly complex research problem to solve, if it's possible. If someone attempts it, good luck to them!

Do you have a link to that research? It sounds very interesting!

(+1)

Unfortunately I can't find the research paper I referred to (I read it many years ago) but if you search on Google Scholar for 'sokoban "state space"' there are a lot of papers covering the topic in various ways.

(-1)

why is mine 10p and not 4k

Sorry, I don't understand the comment.

(-1)

sorry i meant reselution.

Ok, I assume by 10p you mean 1080p. The application is supposed to run as a window that you can resize and can make fill your entire screen if you want, at native resolution. Is this not the case for you?

(-1)

yes. 

(+1)

Cool tool!

(+2)

Glad you like it!

I discovered this tool in 2014-16 I think, and I still use it. It’s a really useful thing, I teach it to my students, for LevelDesign.

I’d gladly add more features like Enemy defeat condition or achievement/mechanic unlocking zones, more file formats, etc.

Let me know if you ever want me to bring some support, ok?

Merry Xmas!

Hi, merry Xmas!

I'm really happy you find PuzzleGraph useful to use for your teaching.

PuzzleGraph is open source, and you're welcome to make a clone of the repository and add features there. I'd follow that with interest! If I end up liking them, I can roll them into the original distribution, and either way you can distribute your version yourself. The source code repository is here (in Mercurial format):
https://hg.sr.ht/~runevision/puzzlegraph

Cheers!

(1 edit)

Hi, I really love the concept and I was wondering if the states panel was interactive in some way ? Since it shows which state you're in on the state tree while you're playing, I was wondering if you could click on a state node and it shows what the state is in the left panel. It'd be awesome to "debug" puzzles while designing them to see potential unwanted states.

edit: ok I saw it was in your todo list. Definitly let me know when it's implemented!

Is there a way to delete nodes after placing them?

Certainly! You can select a node or an edge by clicking on it, and then pressing Delete or Backspace on the keyboard to delete it.

(+1)

Thanks!! I’m an idiot, didn’t think about that. I made a small video on PuzzleGraph for my YT channel, I love it as a tool to analyze dungeon-like level ideas even before whiteboxing them. Good job!!

Hi,

Very interesting.

Is it possible to know which framework was used to create this puzzle game?

Thanks

Hi, PuzzleGraph is made with Unity.

Thanks for you reply. I have used Libgdx and Game Maker in the past and tried Unity for a while but did not like it much although it looks very powerful.  

When trying to open it in macOS Big Sur, now I get this error:

 "PuzzleGraph.app" cannot be opened because the developer cannot be verified.

macOS cannot verify if this app is free of malicious software.

Chrome downloaded this file today at 12:37 PM from runevision.itch.io.

Yes, macOS does that for all software that doesn't have certificates. Read here how to open it anyway:
https://support.apple.com/guide/mac-help/open-a-mac-app-from-an-unidentified-dev...  

By the way, I just uploaded a new version which has retina support and this should look better, so try to redownload before you try to open again.

Thanks, now if I could run the application.

You still can't run it? Did you follow the steps in the link I posted? What issue are you hitting now?

it worked well for me

Oh good, glad to hear it!

(1 edit)

Hello,    The application does not work in macOS Big Sur.

Deleted 3 years ago

I uploaded a new build which should support Catalina and Big Sur and which also implements retina support.

Hey, this is extremely cool! Is there any chance of getting another upload of the source code? I'd love to play around with this a bit if possible. Thanks!

Right, thanks for the reminder. Since Bitbucket stopped Mercurial support, the source is now available here:

https://hg.sr.ht/~runevision/puzzlegraph

thank you!

Ah the mac build needs to updated to 64 bit as the last two versions of macos dont support 32bit apps

(+1)

I know this reply comes a bit late, but there's now a new version which is 64 bit and supports Catalina and Big Sur.

(2 edits)

Very funny and interesting tool.

One thing that you should consider is an option to turn off states calculations. If  you make more complicated puzzle, the game just starts to slow down and freezes eventually due to enormous number of calculations computer has to make to compute all different states the game might have.

And my own puzzle if someone wants to try.


Hi. Glad you like the tool!

Thanks for the suggestion, but I'm not actively developing the tool further (though it's open source if anyone want to give it a go themselves).

Since you're sharing your puzzle: You can choose Menu > Open Puzzle Folder and see the text files for your puzzles. If you post the text content somewhere, other people will be able to save it as text files and open it locally in their own PuzzleGraph application. :)

This is really excellent. It's a fantastic tool for learning puzzle design as a discipline. I notice that doors, if they start open, will close when triggered by a lever, but not a button or a plate. I wish they closed for any trigger, that would make possible a lot of interesting puzzle mechanics. Having one action that is both advantagous and disadvantagous to the player in different ways is a really important idea in puzzle design. I really hope you're able to take this idea further, I'm loving it.

(+1)

Looks really interesting and useful but unfortunately only for really basic puzzles. Suffers from two things that I noticed

* Interchangeability of players and balls - maybe one player is too big to go through crawlspace or something like that, or only one type of balls lets you go through hazard

* Hardcoded rather than customizable puzzle elements, that feel quite arbitrary, especially path elements. I think, it would be better if you could select for each path (or have some library of presets), whether you can see/shoot (in each directions), what types of players can go, what types of balls can be carried/pushed etc. etc.


Also I haven't found a way to reverse direction of stuff like steps and walls

Great tool. I'm looking for ideas to make games and this has my mind racing!

I saw this a couple years ago, and was so glad to see source come out to muck around. Was reading through it and came across something funky though. Sure enough:
Just thought I'd drop that here in case you are after (visual) bug reports.
Regardless. Incredible project.

Good find! To be honest I haven't tested a lot with multiple player characters so am not too surprised. You say you discovered this by looking through the code. What specifically tipped you off?

Hey, awesome to see you read these comments! I've been enjoying spending a lot of time just reading/rewriting/mucking around with the code and seeing ways this project could be taken further. In this case, it seems to be due to the merging of states. As you know, states nodes are created, and then compared to existing states, to see if it's actually an already existing one. In the case of 2 players (other than when they can't reach each other), every state (other than when they are in the same node), involve an exact replica, in which the two players are switched. This visual bug is caused due to the state in which the players are where you'd expect, having been replaced with the state in which they are switched. The ideal solution in my mind is not so tightly linking specific 'movables' to each state, but instead merely linking the concept (or definition) of that movable to the state, and then evaluating which particular movable is most appropriate to animate to the new location.

(+1)

I really like the way this gives immediate feedback to the designer. It might not be the best way to actually design a well-crafted puzzle, but you can just adjust the variables around bit by bit and instantly know if you've destroyed the intended path through the puzzle or opened up a bunch of unintended ones.

I've never been able to find the video of the talk since I watched it originally, but I remember Marc Ten Bosch (Meigakure dev) talking a bit about state spaces and how he tries to design puzzles that create large state spaces with a short goal path, the notion being that these puzzles are easy to solve, but only if you know the solution. This kind of visualization would be pretty useful if that's your design philosophy, especially if it was integrated right into your dev tools (assuming your game lends itself well to being analyzed as a state space - grid based movement and all that).

(+1)

Nice game bro, thanks

The program doesn't work for my computer for some reason, it opens but its black and nothing happens

I'm sorry to hear that. Are you using Windows, Mac or Linux? What version?

I'm using Windows 10

Are you having the same issue with other applications or games made with Unity, or with any games in general - or only with PuzzleGraph?

(2 edits)

Only Puzzle Graph.
But I got a new pc and it works on this one?  Weird.

I am currently messing around with it and there is a problem with one way passages, they don't work. I can still come back.

Also Door that starts open doesn't seem to let me go through either.

Hi. I'm afraid I don't know where to start with regard to the issue you had first, but I'm happy to hear it works on your new PC!
About the puzzle related issues would it perhaps be possible for you to record videos of them so I can see the exact puzzle configuration that triggers it? Thanks!

(+2)

Great work / superb value.

Rugged quality work for solid puzzle game construction in any dimension including virtual to physical. Great application potential for demands of emerging platforms.