This blog post describes the level generator for my puzzle game
Linjat. The post is
standalone, but might be a bit easier to digest if you play
through a few levels. The source code is available; anything discussed below is in
A rough outline of this post:
- Linjat is a logic game of covering all the numbers and dots on a grid with lines.
- The puzzles are procedurally generated by a combination of a solver, a generator, and an optimizer.
- The solver tries to solve puzzles the way a human would, and assign a score for how interesting a given puzzle is.
- The puzzle generator is designed such that it's easy to change one part of the puzzle (the numbers) and have other parts of the puzzle (the dots) get re-organized such that the puzzle remains solvable.
- A puzzle optimizer repeatedly solves levels and generates new variations from the most interesting ones that have been found so far.
... Continue reading ...