I Made a Puzzle Game

9 wildlogic 4 6/2/2025, 10:00:40 PM geonot.github.io ↗

Comments (4)

dlcarrier · 1d ago
I'm a huge fan of Simon Tatham's puzzle collection, and this has the potential to be right up there, with the best of the puzzles in his collection. If you can add an option (or make it default) for the puzzles to have only one solution, it will make solving large puzzles more straightforward.

I did find a bug that's pretty easy to reproduce. If you have started or completed a pipe from a depot, then click on the depot to clear out the pipe, you can no longer run a pipe out of the depot in the same direction as the cleared pipe.

Also, it's difficult to tell which depot is selected, at least on my web browser. You might want to test in different browser engines, with different dark-mode browser and OS settings, to make sure there's enough contrast. Bonus points if you also test it with dark-mode plugins.

Instead of fixing the bug as it is, I recommend that you add an ability to partially deploy a pipe, stopping when either the pipe is dragged off the edge of the grid or into an invalid grid location, when the user lifts the mouse button while dragging, when the user presses the 'escape' key while dragging, or when the user clicks on an invalid location when placing pipes by clicking. At this point, instead of the depot being selected, the grid location of the last placed pipe piece would be selected. The user could then place pipe from there, or start from another depot or pipe pipe. Clicking on pipe, or dragging upstream from the terminus of the pipe, could start routing from that grid location, removing any pipe that had been routed past that location.

This would not only make the interface more intuitive, while making it easier for the user to work on larger and more difficult puzzles, but it should also make development and maintenance of the game logic easier, by making it stateless.

wildlogic · 1d ago
Gameplay is on a grid from 5x5 to 12x12 in size. Each level has a number of "depots", from which the player lays section of "pipe" to Von Neumann neighboring tiles. Pipes cannot cross each other, and a tile cannot have more than 1 pipe. Pipes cannot be placed on depots. Click a depot to "activate" it, and then place the pipes from that depot. There are 3 ways of placing pipes - clicking on the adjacent square, dragging through adjacent squares, or clicking several tiles away in a straight line from a placed pipe or activated depot to lay pipe on each tile in the line.

Thanks for giving it a try - I would appreciate any feedback!

07617 · 1d ago
Played a few levels on the smaller grid sizes, the couple I tried on the larger sizes were pretty maddening. I'm not sure I'll make it through all 800... Is this np-complete?
wildlogic · 1d ago
The levels are in order of difficulty per grid size, sorted by the number of backtracks it took a solver to complete (some of the harder levels on the biggest sizes took hundreds of thousands of backtracks, though I didn't really code any heuristics).