Thursday, September 20, 2018

Replacing the GNDT with a wiki page

This has been rumbling around as an idea for a long time: replacing the GNDT with a wiki page that we can somehow embed in the sidebar. The GNDT has done a good job over the years and to some extent has set the tone of BlogNomic, but it’s never been perfect.

My idea for replacing it is to have a regular wiki page (currently here) which contains whatever data we like. A script I’ve written at https://kevan.org/blognomic/gamedata can then take that wiki page and format it as a minimal GNDT-style web page which we can embed in the sidebar.

Advantages of switching to a wiki page: it’s easier to make complex updates across multiple rows; it’s harder to make certain types of accidental edit; it removes the need for users to have a separate GNDT password; it allows different types of gamestate beyond a single table (the page can contain anything); it gives us a permanent and navigable record of past dynasties’ gameplay; comparing gamestates becomes (in some ways) easier.

Disadvantages: we lose the DICEX tool; some people might find the wiki source harder to edit than the GNDT form; in some ways it becomes harder to see at a glance what gamestate has changed.

Feel free to make test edits to the wiki page I’ve linked there, and it’d be good to hear thoughts on what else is good and bad here, and any suggested alternatives for dice rollers. Based on feedback, I’ll consider a core proposal to replace the GNDT, after a few days.

Comments

Kevan:

09-20-2018 19:41:54 UTC

Aha, looks like there’s a dice-rolling plugin for MediaWiki at https://www.mediawiki.org/wiki/Extension:Dice, which logs rolls and claims to somehow make them tamperproof.

(It also, very curiously, links to the dead domain nomicwiki.com as an example usage of the plugin.)

Kevan:

09-20-2018 19:58:05 UTC

Except oh, looking closer the source is no longer available. Digging around turns up another conversation about using it to play Nomic, and eventually some contact details for the developer, so I’ll see if I can get anywhere with that.

card:

09-21-2018 01:01:27 UTC

>it gives us a permanent and navigable record of past dynasties’ gameplay;
It’s not quite permanent, wiki history pages only go back so many edits. Although it’s probably negligible since the Ruleset page, which is the most edited, goes back about 3 years. I can’t tell how far the GNDT goes back since it doesn’t record a year next to the edits.
>we lose the DICEX tool
and the FRUIT and COLOUR/COLOR tools.
>some people might find the wiki source harder to edit than the GNDT form
Suppose the GNDT submission form was changed from being able to edit only one player’s state at a time to having each player’s state open for editing. That would simultaneously take away the complexity of wikipage editing and the advantage the wikipage has of editing across multiple rows.
>it’s harder to make certain types of accidental edit
supposing the above scenario, having the GNDT forget recently entered values takes most of that away.

>Except oh, looking closer the source is no longer available.
I’m sure you saw https://lists.wikimedia.org/pipermail/mediawiki-l/2017-June/046624.html which might be edited enough to replace DICEX? I guess you’d need to have it also check the surrounding numbers if you wanted it to work in one edit for rules that add DICEX to a specific column.

Zaphod:

09-21-2018 05:39:34 UTC

I won’t get much of a chance to look over the details in the next couple days, but my first impression is to agree with both the advantages and disadvantages mentioned so far (which I know isn’t very helpful).
To fix the visibility problem, is there a way to have a chart with vital stats visible in the sidebar where the GNDT is now? Something that updates along with the wiki, but only has information that Dynastic rules specify as Vital?

Kevan:

09-21-2018 09:00:54 UTC

[card] As I understand it, wiki history is permanent. It might get patchy before November 2014 because that’s when we gave the wiki an overdue manual upgrade, but some of the pages were moved across with their history intact. The ruleset page only drops off in 2015 because a well-meaning admin moved the page (and its entire history) to a new title to archive it at that point, which happens now and again; the edit history can still be found at that archive page, and I imagine can be traced all the way back through old rulesets. GNDT history is archived periodically and manually when I’ve got access to the server, but these archives are inaccessible - and even scrolling back to last dynasty only gives you the comments, as all the data fields are ignored as invalid.

That has always seemed like one of the biggest flaws of the GNDT: a lot of BlogNomic gameplay happens there, but we pretty much lose all record of it at the end of the dynasty.

And thanks, I hadn’t noticed the reworked dice code. It’d need a tweak to support different die sizes, but looks good.

[Zaphod] A wiki page alone would certainly be a problem, but displaying a chart view of a wiki page in the sidebar is exactly what this is suggesting.

pokes:

09-21-2018 23:05:00 UTC

Losing DICEX I think would be a showstopper, but it seems like that’s in the works?

Bucky:

09-22-2018 02:01:44 UTC

How easy is it to add/remove rows and columns to the middle of a wiki table? We can comment out rows, but adding columns means editing all the rows.

Wiki-editing uses concurrency-locks. While this means complex edits are atomic, it also means some inconvenience when two people try to update their state at about the same time. The GNDT would at least allow an interleaved sequence. So a wiki-GNDT acts very differently during critical endgame windows. I’ve been in several dynasties where one player tried to interrupt another player’s endgame sequence (e.g. Metadynasty V) and this dynamic simply wouldn’t exist in a WikiGNDT. Is this desirable?

Finally, the really old people in here might remember that I wasn’t particularly active during the ClingBoom dynasty? Well, that’s because I had trouble following the wiki-based action and generally had no idea what was going on.

Kevan:

09-22-2018 16:58:29 UTC

[Bucky] Adding rows is as easy as copy-and-pasting an existing row into place. Adding columns is a bit trickier, but can still be done by copying what’s already there. I know we’ve struggled a bit in the past with hard-to-read wiki tables, but I think the current one (here) is as human readable.

Timing is a good point. The wiki’s lock system seems a much better thing to have, I think - the interrupting dynamic would still be there, it would just be clearer to players what was happening, and prevent any unwitting simultaneous edits. If two players do something at the same time, the slower one gets a “page changed while you were editing, what now?” prompt, which seems fairer.

Was the ClingBoom trouble just because it was a separate wiki page that had to be checked and opened, and which had no obvious alert system to tell you something had changed there? I’ve always been wary of using wiki pages for gamestate, for that reason.

Kevan:

09-24-2018 11:32:17 UTC

I’ll try and install a dice extension for MediaWiki later in the week.

Bucky:

09-25-2018 16:14:35 UTC

Re: ClingBoom:
The alert issue wasn’t a big deal since (almost) every arena move had an associated GNDT-variable change or DICE roll.

There was no convenient log of the order that changes happened in. Figuring out when a certain change happened would require a manual binary (or ternary) search.

A move and its comment weren’t visible at the same time from the base page; I’d need to history (for comments) and state open in separate windows. Or check diffs for that, but it didn’t occur to me to use diffs for that purpose during the dynasty.

IIRC I also had a problem with some graphics not loading behind firewalls, that wouldn’t apply to the proposed GNDT.

Kevan:

09-25-2018 20:23:02 UTC

I suppose there are some swings and roundabouts here. The GNDT does a good job of giving a log clearly showing which stats have changed and how, but makes it impossible to look back at a previous version of the gamestate, or to compare any versions directly.

I guess the most common log use case for me is answering a question like “when did Bucky’s score hit 100?”, where I’d open the GNDT log and search upwards for the string “Bucky’s Score” until I found an edit that showed it reaching 100. And yeah, that’d be much harder in the wiki (even if we’re generally very good at providing edit comments, it won’t always be obvious which one you need to check).

The “revision slider” MediaWiki extension might do the trick here, if it’s possible to scroll around and see when a number changes. I’ve asked 75th Trombone for the server password, so will have a go at installing some things when I’ve got that.