Our discourse is forum is doing well and we’ve built an enjoyable community around flight sims and games. Thank you to the Discourse team for such an awesome and open project.
As an ex-games developer (consoles mainly, not really a web guy) I’ve tinkered with Rails/Ruby a bit (badly) and added some very small plug-ins to our site, themed around what we tend to talk about. We have a Steam Store oneboxer (now in Discourse main I think), a METAR/TAF weather bot that goes and gets aviation weather reports and even a Random Aircraft Quiz Bot that sort of works and uses Wikipedia. All very small things to play with here.
I’ve got a few weeks coming up free and had an idea I wanted to run by the developer community here. I’m looking for opinions and advice. Essentially I’d like to play around with some turn-based games, using forum posts as the inputs and outputs.
Q1. Is there anything like this already that I should go look at first?
The bare bones idea is using a special category in our forum (to stop it cluttering up other topics) where players can join a game and then post their ‘moves’. The game is a simple state machine and could start off as something simple as tic-tac-toe. The bot effectively listens for commands, in the context of a parent topic it knows has started and then moves the state along. It would post replies as the form of output, using simple tile graphics to show a ‘board’. Storage would just be a couple of extra models or even something serialized in the posts that’s hidden. Are there plug-ins that already store conversation ‘state’ in posts?
I’m just thinking about this generically at the moment, but if the idea is unclear here is a narrative example to show what I mean. Here’s forum users Bob and Alice playing a game, the <
indicates automatic replies by the plug-in:
Bob: Play game #mudspike-not-risk
< You are entered to play Mudspike Not Risk. Awaiting more players.
Alice: Play game #mudspike-not-risk
< You are entered to play Mudspike Not Risk. Players ready to play or add more players?
Bob: Ready
Alice: Ready
< Welcome to ‘Mudspike Not Risk Don’t Sue Hasbro Please’. Place your pieces on the board. Type ‘help’ for game help and rules.
(imagine some Excel like 1,2,3, A, B, C fixed axis on these to the left and above).
Bob: Unit1 B2
Unit2 D4
Unit3 D8
Ready
< Bob Pieces placed:
(just imagine them placed, just plain image tiles or some z-order overlay )
Alice: Unit1 E2
Unit2 F1
Unit3 C3
Ready
< Alice Pieces placed:
(just imagine them placed again )
< Pieces all placed. Bob moves first.
Bob: Move Unit1 D1
Attack Unit1 D2
Ready
< Attack rolls starting…
< Bob’s Unit 1 rolls a 3, Alice’s defending Unit 3 rolls a 3.
< Alice Unit 3 wins.
< Bob - use ‘End Turn’ or continue attack’.
Bob: Rage Quit.
< I do not understand the command ‘Rage Quit’. Use the command help or ? to assistance.
So the actual ‘game’ isn’t that important (I can do that bit ok, I’ll start very simple) it’s more about the underlying ideas of if Discourse would be bendable for this?
Q2. Is this a stupid idea and I should stop now and feel bad? Explain my stupidity please.