Technology Stack
Some notes on the technology being used, or that I plan to use, to make Water Water Everywhere work. Also writing this out helps put my own thoughts in order.
Overall
Overall the aims are:
- To see how easy or difficult it is to put technology together to run this kind of game virtually.
- To see how much such an effort costs, in terms of time and money; and when creating and maintaining this kind of infrastructure.
- To see if anyone will use it - can I make the “learning curve” so shallow, and the games so interesting/useful, that players are willing to put in the effort?
| Requirement | Probable Technology | Notes |
|---|---|---|
| Account management | Authelia? | Players need to only have one or two accounts to navigate this |
| DNS | Existing services with online providers | |
| Existing services with online providers | It may be necessary for some players to only be known to me, and have their own email | |
| Forum | Discourse? phpBB or similar? | Where players plan, negotiate, and submit orders, private by default, updated often |
| Website for dev notes | Static website on Azure | The “non-diegetic” website, where I can discuss building the game and the required infrastructure |
| Wiki | Mediawiki? | Updates on the current game state, public by default, updated every turn |
This is ambitious, which shows how much work this kind of project needs; and helps illustrate just how much work “physical space” does during an in-person game, with regard to delinitating areas, or just identifying players and roles.
Non-diegetic website
You are currently on what is grandly called the “non-diegetic[^non-diegetic] website”, this is the website about the game, why it exists, what plans are for it, and so on.
[^non-diegetic:] Diegetic elements in a story are what the characters can hear or see - say dialogue or sets; non-diegetic elements are those from outside of the “story world”, such as soundtracks or voiceovers. For the sake of immersion I think it’s good to differentiate the two in the context of a game whenever possible.
This is a static website run on Azure, built using Hugo, and managed using github. I have just about enough skills to wrangle Hugo, and having a reason to investigate Azure is useful. Cloud technology is now too obtuse, and has so many capabilities, that I think you have to approach it with a specific aim, and learn what you need, rather than just wandering around it and seeing what is useful.
Account management
Thinking about all of this, two key points became clear - firstly that I’m relatively technical, and I’ve been a professional and hobbyist system administrator for quite some time, so managing many accounts for many different services is something I’m used to. In general users have much simpler online
But also, from looking at online services - at the free tiers I’d want to use for this experiment - there were a lot of limits around “organisations” and similar. I didn’t really look into the definitions, but an online game is going to specifically need many artificial divisions between players to limit what information they each have access to. As with many other online services, that’s contrary to one of the basic requirements of a game like this - I can imagine ten or more separate organisations existing in a game, using a wide variety of people’s personal or work email addresses - so I think a self-hosted version is the only solution here.
Combined with some kind of proxy to sit in front of everything that isn’t public to the world, and that also integrates a single user account with the accounts required on any other services.
Yes… this is a very ambitious project isn’t it.
Forum website
Originally I was going to run the game on a Discord server, but I’m intrigued about players being truly anonymous to any other players or observers of the game.
Also I’m wary of what direction Discord is going in, the difficulty of obtaining technical support, the constant appeals to spend money on Nitro… and more money on Nitro, and so on. While it’s a much greater technical headache, hosting something should work out better in the long run.
Wiki
This is where the game’s facilitators, and players, can keep a record of the state of the “game world” - links to current pages about real world geography and organisations, as well as information on how that’s been changed within the game.
Originally I was going to set it up so that the wiki could be viewed anonymously, but instead I think that clearly marked public pages will be mirrored to a read only website somewhere. That way anyone with a casual interest can get some information on the future it’s set in, but without the players who use the wiki having to be too mindful of that concern.
Some of the content is going to be restricted to players and sub-groups of players. This is restricted on a “best efforts” basis using the available tooling within Mediawiki. Players are reminded that their overall aim of the game is to “explore and aim to win”, so actively trying to break the wiki in order to gain an advantage is an action outside of the game.
Also this is somewhere where I’ll need to look at performance tuning, or how much I can get out of relatively cheap hosting.
At the time of writing this is almost definitely going to be Mediawiki, because it’s relatively easy to create and edit content, and also use version control. I think that last option is mandatory as the “single source of truth” about the game world will be this wiki.
Also, as an unintentional by-product, Mediawiki is the same software that Wikipedia uses. Wikipedia is generally an excellent crowd-sourced source of truth, which gives the game verisimilitude.