💾 Archived View for gemini.thegonz.net › glog › 241207-geminiPuzzles.gmi captured on 2024-12-17 at 10:10:19. Gemini links have been rewritten to link to archived content

View Raw

More Information

-=-=-=-=-=-=-

Gemini puzzles: Layer Schmayer, and also Gemsokoban

A new puzzle game you can play over gemini:

Layer Schmayer

Another one (which has been up for a while, but which I didn't announce before):

Gemsokoban

Layer Schmayer

"Layer Schmayer" actually is the title of a little game designed by and implemented for occasional Geminaut sil. It randomly generates simple visual combinatorial puzzles, in which you have to find the right way to rotate and flip some partially filled grids so that every cell becomes filled in at least one grid. It's surprisingly fun.

Gemsokoban

"Gemsokoban" is the stunningly original title of an implementation of vanilla Sokoban for Gemini. I wrote it as warm-up for a more interesting Sokoban-based game which I may finish one day.

Technical observations

Gemini is a great platform for rapidly sketching out games like these. Each was hacked together in Haskell in a few hours. In both cases, the game state is simple enough that it fits in the URI, so there isn't even any need for client certificates or storing state on the server. The program only has to parse the state and moves, and calculate the new state and render it in gemtext form. Almost everything is pure function.

In both cases, the natural way for the player to interact would be through simple atomic actions (flip panel B, walk right). This could have been done here with a menu of links, but the lack of immediate feedback due to network delays actually makes it more convenient to batch multiple such commands. So text input fits well, letting the player specify everything they'll want to do up until the point at which they'll want feedback on the resulting state. I was surprised by how playable Sokoban is this way.