Puzzlang is a pattern language and Unity player for abstract single-player games and puzzles.

Abstract games are those with no theme, no characters, no story, just a play area, rules and a way for players to win or lose. It usually means games of perfect information such as most board and paper-and-pencil games, but it needn’t stop there. It can include games for more players, but in Puzzlang games there is only one. It can include games with random elements and with complex ways of moving, but Puzzlang is mostly about pushing stuff around. It can include games with simple theming, as Sokoban where a ‘Player’ pushes ‘crates’ onto ‘targets’. It’s hard to be sure where to draw the boundaries.
Perhaps there are none, but for now Puzzlang only does what is described here.

Puzzlang implements a pattern language compatible with PuzzleScript. PuzzleScript is an incredibly ingenious creation of Stephen Lavelle, see puzzlescript.net. Full credit to Stephen, but targeting only the web has both strength and limitations. Puzzlang targets Unity, which in turn can be used to create players on almost any platform: Windows desktop, Linux, WebGL, Android, iOS and so on.

The current status is that the Puzzlang engine is released, and it compiles and executes games scripts. It is nearly feature complete with PuzzleScript, and has a few extensions. The Unity player is quite basic, compared to what Unity can achieve, but it can play games and it too has a few enhancements. The games are selected from the PuzzleScript demos, and show the range of what now works.

Here are some screenshots.