💾 Archived View for stack.tilde.cafe › gemlog › 2021-12-17.update.gmi captured on 2024-07-08 at 23:52:42. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-09-08)
-=-=-=-=-=-=-
I've been running a word puzzle SpellBinding for over three weeks. It's been a rewarding experience overall, and not without challenges.
The initial challenge was fitting this interactive game into the somewhat limited (to understate it) Gemini format. There is literally no way to align anything except for the preformatted toggle, and the 'business end' of the game, the hexagonal puzzle is rendered thusly. The rest of the game -- the submit button, the list of solved words, ratings and leaderboards is tacked on afterwards.
The protocol offers just enough to make interaction possible: an empty submission shuffles the board; otherwise a word is processed and appropriate action taken. Invoking without a query return a response which forces the browser to get input, subsequently sending it back into the game.
Early on I added a command /MSG ... which allows the user to send me a message. That was a very useful addition, and many users submitted missing word and bug reports.
Initially the game was deployed on tilde.team. Due to unrelated issues (malicious users pegging CPU and disk IO, or possibly botnet attacks) tilde.team became unusable. Luckily, tilde.cafe provided a perfect new home for the game, and the migration was painless.
I find the game enjoyable, but after running it for a few weeks I do feel a tinge of concern: it is addictive and it will eat into your day. On the plus side: you will likely enjoy playing, and you may actually learn a few words.
Unlike most of Gemini, where you shout into the vacuum, SpellBinding is now a social game. Even though you play alone, you are aware of others playing alongside via the leaderboard. The leaderboard was a feature I was on the fence about, but in the end I find that it adds a lot to the game. In an effort to make the game less competitive, the leaderboard is scored in an entirely different way (word count) from the normal scoring. When you are stuck, it is encouraging to see others find more words than you - you know it's possible. Locally you have a score and a rating, which adds to the fun (and no one else sees that).
Creating the game is a bit of time-consuming voodoo. Games are generated using Common Lisp interactively. As I mentioned before, my dictionary is decent but far from perfect. With my dictionary there are just over 6000 pangrams, and each pangram is good for 7 games (potentially 42K games), but many of the games are unwieldy with way too many words to be enjoyable.
So I pick random games and look at the size of the solution set, choosing smaller ones as game candidates. Each one is then examined for missing words against several larger dictionaries. This is a total pain in the ass, but without it my dictionary turned out to be missing some common words. I add the missing words to the dictionary as I go, so next time life should be a little better.
A game is scheduled by placing an appropriate gamefile into the game directory and clearing the game database using a simple script. I schedule the changeover manually using the linux 'at' command, or with a simple bash script that sleeps for so many hours and minutes...
This is extremely time consuming, and is not sustainable. It probably takes half hour to an hour to set up a game, between trying to solve it to find obvious missing words to cross-checking dictionaries to fidgeting with scp and command-line scheduling... Luckily, I enjoy pre-playing each game, and writing about the words I find interesting in the gemlog dedicated to such nonsense...
I will need to tackle game deployment soon.
I sincerely hope that you will find SpellBinding to be a fun place in the Gemini ecosystem.