A personality quiz to determine which character archetype suits you in the table-top role-playing game Masks: a New Generation by Brendan Conway, published by Magpie Games.
What do all of those words in the sub-title mean?
A table-top role-playing game is a collaborative story-telling game in which a group of players work together to tell a story, with a framework of rules that govern how players share narrative control and resolve uncertain outcomes.
The most famous TRPG is Dungeons & Dragons, currently published by Wizards of the Coast. For decades, it has defined what this hobby has been perceived as becuase it is the most widely-played TRPG in the world and, as a consequence, is also most frequently referenced in pop culture. There are many other games out there — with different rulesets, settings, artwork, feel, and narrative purpose — coverying myriad genres of storytelling like fantasy, action, adventure, horror, sci-fi, cyberpunk, et cetera. Each of these games is referred to in the community as a game system.
Masks is another such role-playing game. Its specific hook is that it is about teenage superheroes who are juggling the emotional pressures of being a teenager with their awesome adventures of fighting villains. You can read more about Masks particularly in the relevant section.
The way these games work is players usually play characters through which they interact with the fictional world. These characters usually fall into a number of different archetypes depending on the system. The most common archetypes, or 'character classes', are from fantasy games like D&D, like the Fighter, Wizard, Rogue, or Cleric. These classes in D&D are determined by the various roles in a fantasy adventuring party that the characters play (with some loose narrative flavour around how their class is their calling in life). These archetypes also have some flavour text around common personality traits or tropes about them.
In Masks, the archetypes, referred to as 'playbooks', are all about being teenagers and getting up to teenage shenanigans. The archetypes are all determined by the personalities that the characters have. There are about 20 different archetypes to choose from, so naturally it can be really difficult to choose the one most suitable. So, I designed a personality quiz to help choose the best character archetype!
The short answer: I was teaching myself how to code and I needed a fun, silly project.
Besides, this is all part of the fun of table-top role-playing: knowing which character one would play, how they'd compare to their friends, and joking about common tropes in the fiction. There are several personality quizzes out there for D&D, and this one my Easydamus in particular was my inspiration. I thought it would be fun to make something similar for Masks as it is my favourite TRPG (more on that in the appropriate section).
Finally, fan content like this is part of the fun of this hobby: people drawing artwork for their characters, coming up with elaborate back stories, or making various materials or tools to help with the games.
A table-top role-playing game about teenage superheroes.
Masks is a game by Brendan Conway using the Powered by the Apocalypse engine. For those unfamiliar with the term, Powered by the Apocalypse is a category of game systems that are based on the overall structure of the Apocalypse World system by Vincent and Meguey Baker. The core concept behind this system is to encourage collaborate and improvisational story-telling by streamlining the mechanics. This is in sharp contrast to traditional TRPGs that have very granular rules and hierarchical authority between a Game Master and the players.
If you imagine all table-top role-playing games to exist on a spectrum between chess and improv theatre with D&D fifth edition right in the middle, PbtA games are much closes to the improv theatre side of the axis, whereas traditional games, while fourth edition D&D would be closer to chess because of its wargame heritage.
Masks is without a doubt my favourite role-playing game system, and I would strongly recommend trying it to anyone who hasn't played TRPGs before, or hasn't played Masks before. What I like most about Masks is its concept of playing teenage superheroes, and all the emotional drama and angst that that entails. For me, it has been so much fun to revisit a difficult age but from a perspective of greater maturity and in a setting where the very differences that I had been victimised for are framed not as liabilities but as superpowers: things that made characters special. This was an age when I really loved reading comic books, and that is why revisiting it with this zany aesthetic is such a delight.
The names of the playbooks, as well as their associated flavour text, are by Brendan Conway, taken from the player sheets that are part of the game documents made freely-available on-line.
Special thanks to the members of the Masks Discord for their advice, feedback, and patience with the original quirks of the web hosting.
How I went about (re)making this.
The pain was worth it, though: in the old method, the code left itself open to a huge bug that I anticipated. Because of the way I implemented the filters for sources, adding or removing playbooks may have mixed up the order of the indexes in some arrays. This would mean all the scores would be mismatched. Likewise, when inputting the data, a single misplaced element would cascade down onto everything. With this new method of using objects, I can name all values with string keys, so they are identified by a fixed name rather than just a mutable position in an array.
But above all, what I like the most about this version, even more than the added features like the filters and label estimator, is that it is very easily expandable. The text of the quiz is procedurally generated from the inputted data. I can add new custom labels for each playbook, new playbooks, new questions, and new sources should more things be published. Although if there are playbooks like The Joined that have complex mechanical details about character creation that mess up the algorithm, then it would be a real pain to programme that into the quiz. Also, the new data format means that the input process is much easier, as all the data is readable rather than needing to be transcoded into index keys or reference values. The readable code is easier to write.
The most interesting aspect of this, however, was having to come up with detailed algorithms to do what otherwise appears to me as an intuitive task: pick the Playbook with the highest score, for example, which seems like an easy task, involves the following steps: come up with a list of all playbooks; find the points scored by each of them; calculate which one is the highest; calculate how many playbooks got the highest value in case of ties; then look up what index number this had on the list of playbooks you started out with so you can work backwards and find the matching playbook for the highest score. Add that playbook to the list of the highest-scores that you can then spit out with the results. Naturally, many of the algorithms I used are really clunky, like running through loops just to find one relevant property of an object, or comparing values to every single playbook. There no doubt are more elegant and efficient ways of doing a lot of what I have done. But I have gotten as far as my current knowledge of the language will take me, and I have enjoyed myself.
If I carry on working on this in the future, I might teach myself some server-side languages and try working from there. And I might tinker with the questions or some elements of this from time to time. So far, though, I got what I wanted from a quiz like this.
A summary of this quiz's development.
2 May 2020.
I would really much rather you used Chrome.
If you notice any incompatibilities or strange browser behaviour, please let me know and I'll try and see how I can fix it.
Another issue that some people brought to my attention was the odd behaviour of the web site on which I hosted the quiz. Different people landed up on different web sites with the same URLs, and after fully reinstalling my web server from scratch, I isolated the problem as being because of URL collissions between my URL shortener and the URL on which I hosted the site, as well as errors with the web server processing some subdomains. I have rectified these issues. But should people notice strange behaviour with the web sit and the pages they see, please let me know and I'll try and fix that. Hopefully, this has also fixed the accompanying error with the SSL Certificates.