[S] D&D.Sci: All the D8a. Allllllll of it.
This is an entry in the ‘Dungeons & Data Science’ series, a set of puzzles where players are given a dataset to analyze and an objective to pursue using information from that dataset.
STORY (very, very, very much skippable)
aphyer: Write MSPA D&D.Sci scenario.
Yes.
Hell yes.
Hell.
Fucking.
Yes.
aphyer: Recap.
You and some of your online friends recently discovered an exciting new game called Housetrapped. You...weren’t exactly expecting that the game would destroy your real-world hometown with meteors, that it would nearly kill you with real-world monsters, or that beating the game would in some way end up creating a new universe, but it seems that is in fact how this game works.
Mage: Enter
After spending forever bungling around (in a marathon adventure of combat and construction that would probably take thousands of pages to summarize, which is nevertheless just the first part of this game), you have entered into the game world as the Mage of Time in the Land of Seals and Melting.
Look at that sad little seal. You shall name her...Clementine!
You start arranging matters for the rest of your friends to enter into the game as well. You are the Mage of Time, and one of your friends has already entered as the Knight of Blood, but two other friends are still in the regular world, and need to enter and take up their Classes and Aspects before they get hit with meteors! You pull out your laptop to set things up for them to enter as fast as possible.
Mage: Appear
Suddenly, Future You appears in a puff of time. This is amazingly unexpected.
For some reason Future You seems to look a lot like an anime character. And have a sweet robe. How do you get a robe like that anyway? Maybe you should ask. But first you need to get your other friends into the game world! Maybe Future You is here to help do that faster?
Mage: Avert
Future You tells you not to do that right away. You ask Future You why. Future You says that you already did that and it didn’t work. You say that no, you didn’t. Future You says yes, you did, it’s a time thing. You say that if you already did it surely you have to do it now to be consistent. Future You says that you did it, that it failed, and the associated timeline was doomed, but Future Doomed You was able to use time powers to get a message to Future Hopefully Non-Doomed You (previously known as Future You), which Future Hopefully Non-Doomed You is using to avert the timeline being doomed by coming back in time themself to tell you not to do that. You say okay, what do you do instead, then.
Future Hopefully Non-Doomed You says that you need to select the right Classes and Aspects for your entering friends. You say you didn’t know you could do that. Future Hopefully Non-Doomed You says that usually you can’t, but that Future Doomed You made a deal with something called Echidna (a monster called a Denizen?) to be able to go back and change that.
You say okay, what Classes and Aspects should they be. Future Hopefully Non-Doomed You says that they can’t tell you. You say what. Surely if they’re you from the future they must already know? Future Hopefully Non-Doomed You says that that’s not how a Mage of Time works. You can’t just pull knowledge out of time without it coming from somewhere. Maybe an Heir of Time could. But for you to have knowledge, you need to actually work it out, and if Future Hopefully Non-Doomed You tells you the answer now you won’t actually put in the work to work it out, and so Future Hopefully Non-Doomed You won’t know it to tell you. You...guess that makes sense? You ask Future Hopefully Non-Doomed You how you can find out what Classes and Aspects to pick. Future Hopefully Non-Doomed You says that they sent a future version of themselves off to gather information on other universes’ sessions from the Void, and that Future Future Hopefully Non-Doomed You should be appearing right-
Mage: Appear x2 Combo!
Suddenly, Future Future Hopefully Non-Doomed You appears in another puff of time. This iceberg is getting pretty crowded!
Past Future Hopefully Non-Doomed You (formerly Future Hopefully Non-Doomed You) says yep, there they are. Future Future Hopefully Non-Doomed You hands you a dataset. Apparently they got it from the Horrorterrors who dwell in the Void between universes. It tells you what Classes and Aspects other sessions have had, and whether they won or not. Future Future Hopefully Non-Doomed You says you should be able to use it to figure out what Classes and Aspects your two remaining players should have to work together with a Mage of Time and a Knight of Blood for the highest possible winrate.
You say wait, this sounds like a lot of work, you don’t have time for that. You only have a few minutes before your friends get hit by meteors! Past Future Hopefully Non-Doomed You and Future Future Hopefully Non-Doomed You both look at you like you are an idiot. A few seconds later, you realize that you are in fact an idiot, and can just go back in time yourself to have time to do this before the meteors hit.
Past Future Hopefully Non-Doomed You and Future Future Hopefully Non-Doomed You both say they have to go. They warn you to look out for trolls.
You say wait, hang on a second. What do you mean, ‘look out for trolls’? Also you said this dataset came from Horrorterrors, that doesn’t sound great. What’s up with that? Why did Future Future Hopefully Non-
Mage: Abscond x2 Combo!
While you’re trying to get out the name, both Future Hopefully Non-Doomed Yous disappear in puffs of time. You (Current Hopefully Non-Doomed You?) sit down on your iceberg and sigh.
Clementine slides up to you on the iceberg. You pat her on the head. It’s okay, Clementine.
DATA & OBJECTIVES
You need to select Class and Aspect (hereinafter ‘classpect’) for the two remaining heroes in your group in order to maximize your odds of winning your session of Housetrapped. You already have a Mage of Time and a Knight of Blood.
Classes are: Bard, Heir, Knight, Maid, Mage, Page, Prince, Rogue, Seer, Sylph, Thief and Witch. You already have a Knight and a Mage—you’ll need to choose different classes.
Aspects are Blood, Breath, Doom, Heart, Hope, Life, Light, Mind, Rage, Space, Time and Void. You already have heroes of Blood and Time—you’ll need to choose different aspects.
For example, you could choose to have a Bard of Breath and a Witch of Void.
You have a dataset of past plays of Housetrapped to inform your decision. This dataset lists how many heroes there were, what class/aspect each one was, and whether they won or not.
Note: This dataset is on Google Drive because Github complained that it was too big. It should be shared publicly to anyone who has the link, but if you have trouble with it please let me know.
EDITED TO ADD: It sounds like the large size of this dataset has been surprisingly inconvenient for players. If people are having trouble with it, I’ve added a smaller version by generating the first 200k rows of the large dataset, see here. This cuts down to a bit under 1⁄6 the size of the main dataset, which will make it harder to identify effects, but if you can’t use the main dataset I assume this is better than nothing. If you want extra time because of this, let me know.
Getting to select your allies’ classpects like this is unusual even by the standards of Housetrapped—you do not need to worry that e.g. other Heroes of Time in your dataset have been able to choose their allies’ classes. All entries in your dataset had their classpects assigned to them by the game at random.
I’ll aim to post the ruleset and results on February 20th (giving one week and two weekends for players). If you find yourself wanting extra time, comment below and I can push this deadline back.
As usual, working together is allowed, but for the sake of anyone who wants to work alone, please spoiler parts of your answers that contain information or questions about the dataset. To spoiler answers on a PC, type a ‘>’ followed by a ‘!’ at the start of a line to open a spoiler block—to spoiler answers on a mobile, type a ‘:::spoiler’ at the start of a line and then a ‘:::’ at the end to spoiler the line.
EDITED TO ADD: I had some bonus objectives that were being presented with dialogue between Homestuck troll accounts in the comments. However, it seems LW admins are not amused by that, and have banned the accounts and deleted the comments. As such, the bonus objectives are:
Troll Bonus 1: If you win the game, you will make a new universe. Whatever aspects your players use will play a large role in the new universe you create. Try to pick aspects that will make your created universe nicer (e.g. a universe made of Hope sounds more pleasant than one made of Doom?)
Troll Bonus 2: Given the following party:
Maid of Time, Page of Breath, Mage of Doom, Knight of Blood, Rogue of Heart, Sylph of Space, Seer of Mind, Thief of Light, Heir of Void, Bard of Rage, Prince of Hope, Witch of Life
which heroes are increasing winrate and which are decreasing it?
Troll Bonus 3: You have the ability to pass a short FAQ/walkthrough of the game to a troll hero of Space so that she can send it into the Furthest Ring for someone else to read later. Write a short (or not-so-short) FAQ of what future players should know.
Mod note: some comments on this post got deleted because, when viewed out of context in our moderation queue, they looked like weird spam. But reviewing this, I think they were supposed to be puzzle material of some sort, not spam, and that deleting them was a mistake. If this is indeed what happened, it’s okay to repost those comments here.
I’ve added the puzzle-relevant parts of the associated comments into the main post.
For immersion/fluff/roleplay/faithfulness-to-spirit-of-source-material reasons, I was posting these via dummy accounts named to match (and pretending to be) Homestuck characters—unfortunately, it seems that in addition to the comments being deleted, those accounts have been banned.
If you’re okay with me filling the comments section of this thread with strange trolling for roleplay reasons, would you be able to unban the following accounts:
adiosToreador
arachnidsGrip
gallowsCalibrator
and let me post random ungrammatical comments on those and other weirdly-named accounts for the next week? I promise the baffling spam-looking comments will remain contained to this post.
If that’s inconvenient/would not really fit with LW moderation in general, don’t worry about it—the puzzle-relevant parts have been copied over into the main post, and the only thing that’s missing from the comments being removed is fluff.
Thanks for the comment!
My solution for winrate maximization:
Add a Page of Mind and a Seer of Void. (this should get us slightly better than 50% chance of success)
My solution conditional on the new universe having both Space and Life (I think Time, Space and Life are prerequisites for a universe I’d like):
Add a Prince of Space and a Sylph of Life; if the gender situation doesn’t line up with that, replace the Prince with an Heir and/or replace the Sylph with a Page. (this should get us slightly worse than 50% chance of success)
My attempt at ranking the party members, based on change in predicted winrate if they’re removed from the team:
The Knight of Blood is the clear MVP, followed by the Bard of Rage and the Seer of Mind. The Prince of Hope and Mage of Doom are actively harmful, and the party would be better off if something were to happen to them (for example, if they took a tumble down some stairs); the Witch of Life and the Page of Breath might also be net-negative but if so it’s pretty marginal.
My advice to other players:
If you happen to be both evil and extremely gullible, play solo as a Seer of Void; otherwise, play solo as a Page of Hope.
Misc. findings:
Average winrate is ~1/3.
Very small teams and very large teams both have an advantage over medium teams; 4 is literally the worst team size.
There are six classpects which invariably fail a solo run; three are “X of Void”, and three are “Prince of Y”; however, “Prince of Void” might be the most robustly useful archetype available. This seems like a strong hint to the generating function, but I haven’t found any other perfect regularities that would help me interpret this one.
The generating function is impressively hard to characterize; there are very few things that don’t happen. There are synergies between classes (Pages work well with Heirs), synergies between aspects (Space players work well with Hope players), synergies which transcend players (Pages work well with Void players, but Pages of Void are bad news), effects which vary with team size (most classpects which work well in single-player games are mediocre in 12-player games and vice-versa) . . . I eventually gave up on analysis and just did the “build an ML model and use it to trial solutions” thing.
Several very strange trolls have replied to your comment with a series of rude, poorly-typed, confusing, and sometimes-profane messages.
gallowsCalibrator says:
arachnidsGrip says:
adiosToreador says:
terminallyCapricious says:
What are people using to load and analyze the data?
I used the python package Pandas.
(I also tried Excel, but the dataset was too large to load everything in. In retrospect, I realize I could have just loaded in the first million rows − 2⁄3 of the dataset, more than enough to get statistically significant results from—and analyzed that, possibly keeping the remaining ~400k rows as a testing set.)
I started out with Excel, but it could only load, as abstractapplic noted, about 2⁄3 of the dataset. I considered using just that, or splitting the data, but then decided that since I had been thinking of trying out doing data analysis in Haskell, I would abandon Excel and try out Haskell.
After various hangups, including most perniciously the stubborn refusal of the Parsec library to modify its operation to conform to my mental model of how it works, I still haven’t actually loaded the data in my program in a usable form. But I’m hoping I’ll manage it soon. And then I have to figure out how to actually process and get data out in a usable form...
Hm. I thought the large dataset would help analysis, and would be pretty easy to truncate if desired, but it seems that wasn’t as obvious as I hoped. If people are having trouble with it, I’ve added a smaller version by generating the first 200k rows of the large dataset, see here.
This cuts down to a bit under 1⁄6 the size of the main dataset, which will make it harder to identify effects, but if you can’t use the main dataset I assume this is better than nothing.
If anyone wants extra time, let me know.
I am now requesting extra time. I’ve loaded the data using my Haskell program (fixed the parsing late last night), and used it to check
basic stats for number of players, aspects, classes including individual player aspect/class combos, which all seem pretty evenly distributed and none of which seem to effect winrate very much except number of players and that’s not that big either
but still need to
check for interactions and especially look for symmetries in those interactions—relatively constant winrates overall suggests symmetric interactions unless the effects are weak
edited to add:
No wait, the variations in winrate for individual player aspect/class combos don’t look that small at all. Noticed this shortly after making the above comment but didn’t want to actually make the edit until I had got the Haskell program to calculate the p-values though the variations were obviously too big to be random if the variations in total numbers for each combo were assumed to be random. The variations in winrates of classes and aspects, while much smaller, are still strongly statistically significant in some cases (if I got the program to do the right math).
Since I was busy with that I haven’t gotten around to looking at correlations between different players in the same team yet. There definitely do seem to be patterns in which classes go with which aspects for individual player aspect/class combos, though.
Understood, no worries! I’ll aim to post the solution on Friday unless I hear further—if you want another weekend I could instead do next Monday.
And looks like I could use the weekend as well, if that’s OK. Though, if other players object, I do feel like I am abusing this a bit—the time ratio between “data analysis” vs “learning Haskell” has been low.
Fine with me
If it helps, I for one am completely okay with you taking the weekend.
Thanks!
Thanks aphyer, I might end up requesting extra time, though I don’t need the 200k row dataset; if I wanted to I could just accept what Excel (or Libre/OpenOfficeCalc) truncates it to.
I’m not going to request any more extra time at this point since I can’t promise myself or anyone else that I’d get the things I wanted to do done in any reasonable amount of time, so will stop now and try those things later. In the end I looked at it with LibreOfficeCalc for a bit and came up with:
It looks like Sylph of Breath and Maid of Hope do decently well in pairs with Mage of Time and Knight of Blood and each other in 4-player groups. Could be completely bogus if more than 2-way interactions are important. But I’ll go with that for the main question and also for Troll Bonus 1, since they sound nice and I can “Hope” that space isn’t required.
For, Troll Bonus 2, I took the games with 4 or more players with class/aspect combos from the team in question and somewhat arbitrarily weighted them by 1.5^(players with combos from team in question—players with other combos). Then I took the weighted win/ weighted loss ratios. The resulting ratios:
Prince of Hope 0.30570369834603
Maid of Time 0.40748379375837
Mage of Doom 0.420345301283368
Witch of Life 0.423639393282491
Seer of Mind 0.431303161503186
Page of Breath 0.446236493426357
Thief of Light 0.452103112303768
Knight of Blood 0.49442917605839
Rogue of Heart 0.495321817146204
Sylph of Space 0.513254186889673
Bard of Rage 0.535594739892861
Heir of Void 0.55043319428873
The Prince of Hope is a notable outlier and prime target for elimination by the troll asking the question. This is also the class/aspect combo with the worst winrate in the dataset as a whole, btw.
Troll Bonus 3: I feel like I still don’t know much about this dataset, but it does seem that class/aspect combos should be chosen with a consistent theme. E.g. if you are going to be an impressive sounding “prince” or “heir” you don’t need “hope” and should go for something suitably edgy like “void”. “Blood” tends to go with classes that sound like they would be physical attackers.Casters might be better with mental-sounding aspects, etc.
I found this one much more difficult to get into than the other problmes in the series. Possibly irrationally I suspect this is because the back ground story was rather convoluted. I was able to load all the data, though it took about 20s to scan all over it which felt like an inconvenient delay.
Based on a rather cursory analysis I hope that the following two won’t be too bad:
Page of Hope and Heir of Space