Building "Monopoly" in Shortcuts - Update #1: The Beginning of Something Terrible

As it had been a few months since my last post on building un-productive things in iOS Shortcuts, I felt like it was time to get back in the game and build something new. I knew that I wanted to create a game of some sort, though I didn’t feel quite up to perfecting the roguelite engine that I had painstakingly laid out previously— largely because, let’s face it, it’s a pain in the ass.

What I settled on was that I should use Shortcuts to build a local multiplayer game; something that used the phone and the power of Shortcuts, but still relied on good old-fashioned human interaction. Examples like Spaceteam and the Exploding Kittens apps were two of the big inspirations. Rather than starting from scratch, I wanted to emulate an existing game that most people would at least sort of know the rules of, saving me the burden of explanation.

The result, I’m sorry to say, is that I’ve started building Monopoly in Shortcuts.

If you are reading this on an iOS device with Shortcuts installed, you can run the current version of the game using this link:

https://www.icloud.com/shortcuts/9b9c8b7103444aa2bd804561b88dac85

It’s important to note that the current version is just barely playable, and well below the minimum viable product for a Monopoly clone, but it’s been about a week since I’ve had time to work on it, so I wanted to share where it was at right now.

What it has:

  • Support for 2-6 local players

  • Emojis instead of token pieces

  • Full Monopoly board

  • Roll dice for movement

  • Purchase properties, stations, and utilities. Each space keeps track of its owner, so you can’t buy another player’s property.

  • Each player gets their own money to spend

  • Players get $200 each time they pass Go

  • All of the Chance and Community Chest cards from the U.S. version of the game

  • Income Tax/Luxury Tax spaces

What it does not yet have:

  • Rent payments

  • Bankruptcy Rules

  • The Community Chest cards don’t do anything yet

  • The Chance cards have minimal functionality, certain cards don’t do what they say they do

  • Landing in/getting out of Jail

  • Monopolies

  • Win conditions

  • An end state

What it will probably never have:

  • Trading

  • Houses/Hotels

  • Fun


Roughly How It Works:

Lists. I’ve used Lists for basically everything here.

The board is a list, where each item contains the space’s name, colour, purchase cost, rental cost, and owner, as an array separated by forward slashes (“/”). I use the slashes a lot here to spoof a two-dimensional array, so if I need a particular part of the space’s information (like the name), I grab the list variable, “get item in list” based on which item I need, “split text” by “/”, and “get item in list” to grab the specific item I need.

The players’ cash-on-hand, token, and board position are all separate lists, where the index matches the player’s spot in the turn order. When I need a bit of player info, I just grab the relevant list variable, and “get item in list” by the current player’s number (1 through 6). If I ever get around to figuring out monopolies, I’ll probably have a list to catalogue how many spaces of each colour each player owns.

Repeats. There are two sort of “core” repeat functions.

The big loop: After the more universal variables and lists have been set, I wrap the whole of the “gameplay” in one big loop, set to repeat an insane number of times. Because Shortcuts doesn’t give us custom functions or “loop forever” support, I get around this by taking a number function, and mashing the 9 key until my thumb gets tired (there is a max value for the number, but it’s something like 1^10*25). Passing this value to the repeat lets it loop until the heat death of the universe, or at least until someone accidentally hits “cancel”. This means that the game won’t end after the first round.

The turn loop: Immediately inside the #BigLoop is another repeat function that loops a number of times equal to the number of players (which is the first question asked of the user). This benefits us in two ways:

  1. When all of the players have taken a turn, we can perform “end of round” actions, like ranking charts or special events.

  2. “Repeat Index 2” == the current player, so we have an easy way of finding the information pertinent to the person whose turn it is, and no one else.

Even smaller loops: There are a few places where I need to update a player’s information inside of one of the lists. Because Shortcut’s doesn’t really let us update items in the middle of lists, we use short loops to achieve this. Each one looks roughly like this:

  • Define which list we’re updating data in

  • Repeat for “number of players”

    • If “repeat index 3” (because we’re in the big and turn loops) equals “current player”

      • Get whatever relevant variable

      • Add it to a temporary variable

    • Otherwise

      • Get item from the list we’re updating, at the “repeat index 3” index

      • Add it to a temporary variable

    • End if

  • End repeat

  • Get that temporary variable

  • Split text by new lines

  • Set variable so that it overrides the original list

It’s a bulkier workaround than I would like, however it lets us reliably update things as needed. We used this to update the player’s money and positions at the end of each turn, plus it’s how we handle payments in the middle of each turn.


Next steps:

  1. Add in paying rent to a player when you land on a space they own. (I know how I want to do this, I just need to make the time for it.)

  2. Add alerts and rules for bankruptcy.

  3. Add an endgame event, and win conditions.

I genuinely don’t know if I want to bother adding houses/hotels. I might rather adjust the dollar values and some minor rules to make this more of a “Speed Monopoly” so that it’s more tenable for a mobile experience.

I would add “make it fun” as a next step here, but, come on. It’s Monopoly.

Using a micro-RPG to "ramp up" new players into D&D

TL;DR: I wrote a simplified version of D&D that evokes the feel of the game, without the nitty-gritty. It’s great for new or hesitant players, gets up and running in five minutes, and is free to download here.

Choosing whether or not to play Dungeons & Dragons in 2018 (soon to be 2019) is an interesting dilemma. Independent games are on the rise across the Internet and local game stores, and offer fresh, exciting, and arguably more “fun” takes on the tabletop role-playing game genre. Meanwhile, despite several attempts to streamline Dungeons & Dragons for new audiences, the game requires books with hundreds of pages, and a minimum investment of $180 USD for a new group to get started. Not to mention the hours on hours of reading, explaining, and re-reading those rules to get started. For many groups, the first session of D&D involves one player walking the rest through character creation for three or four hours, while trying their best to convince them that it will be more fun once they actually start playing. The current creative director of the D&D franchise has even gone on record on Twitter stating that the Dungeon Master (the player who “runs” the game by putting forth obstacles and playing many of the characters in the shared imaginary world) shouldn’t have fun while playing the game.

And yet, we continue to want to play Dungeons & Dragons.

For those of us who played through the days of Satanic Panic (which I was fortunate enough to only see the tail-end of, and is high on my list of “Things to Write About” in 2019), continuing to play D&D might be a show of loyalty. Many, in more ways that one, have earned the right to continue playing the game that has been accused of summoning demons (or worse), and don’t want to let those days go to waste.

It’s also a matter of investment. While packing up to move to the UK, I realized that I had conservatively $800 worth of Dungeons & Dragons material, which now sits in a storage space back in Oregon. This is a low number for a lot of people, too, as I’m not including many of the 3.5e books that were given away (or ruined), and I didn’t buy anything for 4th edition. Lauren and I have collectively spent something like $400 on 5th edition alone, just for the core rules and a selection of campaign reference books. This also doesn’t count the time and emotional investment that goes into preparing for Dungeons & Dragons, especially if you are creating any content (adventures, maps, character races or classes) for yourself. The homebrew community for Dungeons & Dragons represents its own kind of investment in the hobby, and transmogrify it from the game that you read about on the back of the box, into something else entirely. For players who have invested anything above and beyond the norm, be it financial or otherwise, continuing to play D&D reflects a sort of “making good” on those payments.

Lastly, thanks to its years of market domination, media references (like some great episodes of Community), and the recent rise in “actual play” podcast and live streams, Dungeons & Dragons is what new players have actually heard of. Unless they’re already in the role-playing game community in some way, it’s likely that most people will know the Dungeons & Dragons brand, and not much else. For the most part, new players don’t ask, “How do I get into role-playing games?” Instead, they’ll express interest specifically in “learning Dungeons & Dragons”, because so far as they know that’s the only game in the genre. And, to me at least, it feels disingenuous to give them anything else.

The trouble for me is that, when it comes right down to it, I’m not sure that I want to be playing D&D over other games these days. I also worry that new players will be repelled by the text, or the hours of character creation, or the maths that may not come easily to everyone. It’s a big ask to get someone who has never played a TTRPG before to come in and play “real” D&D in their precious free time. At the same time, I don’t want to be the person keeping new players from that experience, if it turns out that is what they want. I also don’t want to disregard the legacy of D&D, and its importance in the larger games space. The real trouble, then, is finding an easy way to bring new players into the world of Dungeons & Dragons that gives them a real idea of what the game is like and do it fast enough that they feel like they’re actually playing a game. If they leave the table not knowing what D&D is, or like they spent the whole time solving some word problem, then I’ve failed them.

In past games, introducing new players to the game has looked like doing the majority of the prep work for them. Lauren and I will typically roll up new character sheets, or print the pre-made sheets from the WOTC website (the existence of which prove the necessity of what I’m talking about), and present the new players with a selection between two or three options, rather than twenty-plus. We then attempt to introduce the rules of the game to the players as we play, so that they don’t have to stress about reading or prep beforehand, and can leap more-or-less directly into the game. While this meets the “actually play the game” criteria, it fails in a couple of important respects:

First, part of the experience of playing Dungeons & Dragons is making your character in a tangible, hands-on way. The mechanics of rolling for stats, selecting race and class, and debating the various pros and cons of equipment choices helps the player build a more concrete understanding of who their character is, and how they operate in the fictional world.

Second, while teaching rules as they come up keeps the paperwork at a minimum, we’ve seen it limit the options that players feel they have at the table. While the rule of thumb given to them is always, “Just say whatever you feel like your character would do,” many players don’t assume that anything is an option, unless a word on their character sheet prompts them. For some classes, such as Paladin or Barbarian, this isn’t an issue, as most everything the character would do is there in the text. For other classes, such as any of the spellcasters, the choices aren’t so clear. When the choices are unclear, often new players will default to inaction.

When friends approached us recently with a desire to learn how to play D&D, the opportunity presented itself to try and resolve these two issues. Once we had figured out schedules, it would be myself as the DM, along with Lauren (who’s been playing for as long as I have), two people who had never played, and a fourth who had played before, but felt that they “weren’t good” at D&D, and were a little hesitant to get back into it.

This became the brief: develop an experience that would show new players what D&D felt like, a player who had less than ideal past experiences that the point isn’t to “be good” at D&D, and still be entertaining and interesting for an experienced player. You can download the finished product here:

While I initially only wanted to create a simplified character sheet, the end result here is a sort of micro-RPG that uses the terminology of D&D, gives off the feel of D&D, but relieves the pain points of getting a new player into the game.

Character creation is done by selecting one “look”, and “training”, which replace race and class. The names give a better idea of what they mean for the character, and each come with a selection of what the character is “great”, “good”, or “bad” at. This gives a new player a one-line synopsis of what they’re getting themselves into with their selection. They also pick two pieces of equipment that are more-or-less exact replicas of their D&D 5e counterparts— they do the same damage and damage types, though we’ve gotten rid of cost or weight, for sake of simplicity. Finally, they select between “Great”, “Good”, “Okay”, or “Bad” for each of the classic D&D attributes (one great, two good, two okay, one bad).

Notice that we’ve completely gotten rid of numbers in our attributes. I’ll be honest, this is 75% because I’m tired of explaining the difference between attribute numbers and modifiers. The other 25% is because this let me right an explanation of what to roll right there on the sheet: if your attribute or skill is “great”, you roll three times, and use the highest result. If it’s “good”, roll twice and use the highest. “Okay”, roll the once and take what you get. Lastly, if it’s “bad”, roll twice and take the lowest.

Those with experience in D&D 5th edition will recognize this as a modified take on the advantage/disadvantage system. What it allows us to do is keep challenge difficulties the same, monster AC the same, and players are given agency in determining how likely they are to accomplish certain actions. I’ve also listed the relevant skills underneath each attribute, which (at least in play-testing) helps alleviate the issue where players don’t know what actions to attempt.

Spellcasting has had a revision since the last test, as initially it had a more PbtA-style fluid vibe. Originally, you could choose what effect you wanted the magic to have, and that would affect the roll’s difficulty. In this version, I’ve created a pared-down spell list, with basic instructions for casting each spell. This further helps give players the “feeling” of playing D&D by bringing in classic spell names, the proper spell terminology (like “saving throws” and “spell slots”), and at least a bit of distinction between different kinds of training.

Finally, the advancement table is listed directly on the character sheet. The rolling system lets us keep all of the same difficulty classes, so we can keep the same XP goals for each level, which helps DMs a bit. Because all of the classes are on the same sheet, the advancement is an approximation of what all classes have in common. At level 3, they may select another training to act as the “specialization” offered by traditional D&D classes, At level 4, they can improve an attribute (maybe someday I’ll feel like writing up a list of feats to choose from instead), and at level 5 they gain an extra attack. While this isn’t 100% accurate for all classes, it provides a close enough representation of what it feels like to advance to level 5. By that point, hopefully the player has a good enough idea of whether they want to play “real D&D” or move on to something else.

So far, this has been pretty successful, especially with new or hesitant players. Character creation is typically done in about five minutes, and we’re able to play fairly intricate one-offs, with the players driving a lot of the action (which is fun for me as a DM). I’ve used monsters straight out of the book with minor editing, and the “feel” of play is very similar to real D&D on both sides of the screen. Up next, the goal is to use these sheets along with official campaign books, editing as little as possible from the text. Something like “Dragon Heist” should play quite well, though if I have players who are into the idea, I may try for “Curse of Strahd” to see how it translates.

A New Game Appears! "I Wanna Be The Rock!"

Do you ever have a song stuck in your head, or a random assortment of words that you just can’t get out until you’ve written them down? For me, unfortunately, those take the form of tabletop games.

I Wanna Be The Rock!

In “I Wanna Be The Rock!”, you play as alternate-universe versions of Dwayne “The Rock” Johnson, each with their own unique attributes and abilities. From Dwayne “The Flock” Johnson, with the ability to turn into birds, to Dwayne “The Spock” Johnson, a wholly illogical being of brains and brawn.

The free PDF comes with 6 unique Dwayne Johnson cards, and a reference sheet for DMs (Dwayne Masters).

Working with Save States in iOS Shortcuts games

While experimenting with the text adventure frameworks outlined in a previous post, I became frustrated with having to start from scratch each time I re-loaded the shortcut. For shorter games, this isn’t an issue, but it prevents us from making longer experiences attractive to players. It’s not much fun to play an epic space opera adventure if you have to do it all in one sitting. So, I began playing around with the idea of implementing basic save states in a text adventure game.

To start, I made a basic layout according to the MUD-style format I outlined here: Text Adventures in iOS Shortcuts

You can download the example here:

Utilizing the “Get File” and “Save File” features, I allow the shortcut to save and receive information from iCloud Drive. In this example, I use this to create a text file with the following information:

  1. Player Class

  2. Player Position

  3. Player Inventory

  4. Amount of Gold the player has

I also put the words “Save Data” right at the top. This lets me load data using this process:

  1. Get File “filename” from iCloud Drive

  2. If file contains “Save Data”

  3. Get Text from Input

  4. Split Text by New Lines

  5. Get each item, and assign it to the proper variable.

We want to use the “Save Data” text check to verify that there is even a save file there to begin with. Otherwise, we only allow the player to start a new game. All of this is done before the main Repeat function of the game takes place, so that if we are loading a game, the player begins right where they left off. Since the loop does not particularly care where we start, no extra steps are necessary within the loop for differentiating between new or saved games.

To save the game’s progress, all you have to do is create a new Text element with the variables you want to save, in their proper order. Then pass this to the Save File function, being sure to check the “Overwrite if already exists” option. I hid this option within a couple of menus, to allow the player to start a new game and save over the previous one, but you could feasibly add the Save File function to the end of the Repeat, so that the game auto-saves after each action the player takes. It’s up to how you want things to play out.

Additionally, you’ll notice that I created a “Filename” element, and un-checked the option to “Show file selector” in both the Get File and Save File functions. This was largely an aesthetic choice for me, as I don’t much enjoy the file picker. This also allows us to ensure that the correct file is saved and loaded each time, preventing any potential errors. If you would rather let the player pick where they save/load from, just enable that option.

The "The Fast & The Furious" franchise is a D&D narrative and I will fight you if you say otherwise.

Following my recent move to the UK, I was struck with a bout of unemployment. What else could fill this sudden influx of free time but nearly the entire run of The Fast & The Furious series on Netflix. Indeed, my streaming service of choice now boasts all but the last two installments of Vin Diesel & Co’s epic tale of living life one quarter-mile at a time.

Over the course of a few afternoons, I would idly watch through the parts of the series that my memory had lapsed a bit (2 Fast 2 Furious and Tokyo Drift), or that I’d only seen in five-minute chunks on TV (Fast Five). In a haze, somewhere between ranking Dom Toretto’s one-liners to remembering that a The Rock-centric spin-off is in the works, something struck me:

The Fast & The Furious franchise, for all its flaws, is the ideal framework for a Dungeons & Dragons campaign.

I will prove it to you by recounting the entire series in the fashion of a group of real people playing Dungeons & Dragons. Also, yes, this will absolutely contain spoilers.

The Fast & The Furious

In our first film (or “adventure”), we introduce two of the main protagonists for the series. These are those players that stick with you, through thick and thin, and make a real effort to show up to every session.

First, you’ve got Dominic Toretto, human fighter, chaotic good. It was probably this player that suggested you start playing D&D in the first place. His goal as both player and character is to keep the group— the family— together, and will stop at nothing to achieve those ends. For a time, between 2009 and 2011, he goes through a baking phase, and brings some pretty alright cookies to your sessions.

As a character, Dom is introduced as having a fairly ordinary life. He’s got his own shop, a steady gig, a family that he cares about, and he only engages in illegal sports every so often. Well okay, quite a bit. He’s really good at them. Besides, they’re only illegal if you get caught, right?

Dom brings his partner, who’s playing Letty Ortiz: human rogue, chaotic neutral. Letty and Dom have a good thing going, both in and out of game. Together, they coordinate heists specific to Dom’s illicit extracurriculars. If anyone crosses Letty, Dom makes sure they never walk again. If anyone crosses Dom, Letty makes sure they stop breathing.

Enter Brian O’Conner, half-elf paladin, lawful good. Why half-elf, you ask? Just look at those baby blue eyes. You’ve played previous games with Brian, and helped roll this character sometime last week. Together, you’ve decided that Brian’s deity Tyr, god of law and order, has instructed him to infiltrate Dom’s illicit sports, and take them down from the inside.

Now, because it’s D&D and because the character sheets are right there on the table, Letty and Dom know right out the gate that Brian’s playing a lawful good paladin, which is bad news bears for their established backstory. Dom, ever the good host, convinces Letty to roll with it anyway, because it wouldn’t be much fun to shun a third of their table right away. They introduce Brian to the world they’ve built together: the shop, the crew, Dom’s NPC little sister. They tell Brian happily that they race… well, let’s say they race horses. That’s in D&D, right?

Brian says, “Great! I happen to have a holy steed right here. I mean, did I say ‘holy’? Just a steed! A normal steed!”

Dom, again the good host, challenges Brian to a race, “to prove himself.” Once Brian has been accepted into the group in-character after a few races, Dom and Letty reveal that they not only race horses, they steal them. And, the Dungeon Master reminds them, the next big shipment of horses is tonight. Dom and Letty invite Brian to the heist, and at this point Brian is reminded of the moral struggle he should be having. The DM prompts a vision of Tyr, which tells Brian to locate the shipment, then call for the forces of good to arrest Dom and his gang of thieves.

The heist plays out, and the DM throws in one more guard than Letty’s investigation rolls revealed, taking Dom by surprise. Brian, beset by his own moral compass, uses his paladin abilities to save Dom’s life, allowing the gang to successfully steal the new batch of horses. The sudden appearance of Brian’s holy powers well and truly blow his cover, however, and now Dom has to fully commit to the bit of being an anti-lawful character. The game quickly becomes a swift bout of player-versus-player roles, each riding their horses faster into the night as Brian chases Dom across Faerun.

Suddenly, Dom rolls a natural 1. He is flung from his horse, and lies on the desert ground, immobile. Brian sees another flash from his vision of Tyr, another reminder that this is what he came here for. Brian informs the DM and the other players that he will now read the Scroll of Summoning, and bring forth the other servants of Tyr, who will be able to properly incarcerate Dom for his horse-thievery.

Then the doorbell rings, and the pizza’s here. “It was getting late,” Dom’s player says sheepishly, “I figured we could all use some pizza. No, no, it’s cool. I can cover it, I just got a bonus at work. You can spot me next time.” Damn, what a good guy. Brian can’t just let his character get shuffled off like this!

Play resumes, and as the Dungeon Master describes the lights and sounds of the oncoming holy servants, Brian interrupts. “Actually, I’m gonna help Dom to his feet. He can take my horse.”

Brian and the DM describe helping Dom up to the horse, and watching him ride off into the sunset as the other servants of Tyr arrive to the scene, just moments too late. Brian has to pass a pretty tough Deception check to keep them from arresting him instead, convincing them that it was in fact he who had the accident.

“You still owe me a ten-second horse!” shouts Dom from the distance, referencing a joke made earlier. Everyone laughs.

2 Fast 2 Furious

A few weeks have gone by, and Brian is itching to play again. He’s had some time to think about his character, what he really wants, and how he can play a paladin that’s not “lawful dumb.” He calls up the DM and schedules a good time for a game, but it turns out that Dom and Letty can’t make it that night. “Go on and play without us,” they say, “We’ll catch up in the next one.” The DM encourages Brian to bring whoever he wants, to help fill the gap. Maybe they’ll just run a one-shot or something.

Enter Tej Parker, true neutral bard, and Roman Pearce, chaotic evil barbarian. Brian, who has decided to break his paladin oath and live as an anti-paladin, is being called by Tyr for “one last job.” If he wants, he can complete the job, and regain his paladin status. Brian enlists the help of his friends to complete the job, taking down an evil wizard by infiltrating his fleet of specialized delivery people, much to the chagrin of Roman’s barbarian nature.

There’s some intrigue, some double-agent action, a race or two. Everything played mechanically more or less by-the-book. Then, following a couple failed Deception rolls on Roman’s part, the group decides to lean into the chaotic nature of the group, and screw over the Church of Tyr while they’re at it. Combining Roman’s raw strength with Tej’s innate ability to gather a crowd, they manage to lose the church in a massive horse race, and still take down the evil wizard. As this double-cross means that Brian’s paladin status isn’t restored, Tej spends the last hour or so of the session flipping through the rules on multi-classing, shoving the more interesting bits in Brian’s direction.

It’s a quick game, and arguably the group spent more time making jokes than they should have, but fun was had by all. They agree to get this group back together soon.

Tokyo Drift

The DM hasn’t heard from anyone in months.

This happens occasionally, and no one really knows why. Maybe something to do with the holidays? But then, why is the DM available? Does everyone else take different holidays? Damn.

While at their day job, we’ll say they’re flipping burgers, the DM relays this feeling to their coworkers. Two of them chime in, “Well, we’ve never played D&D before, but we’ll play with you, if you want!” The DM wants very much. They spend days planning. They roll up characters for the new players, so they can leap straight into the action: Sean Boswell, chaotic neutral rogue, and Han Lue, lawful good monk. The DM introduces them into this world they created with the other players, filled with government intrigue, dramatic heists and horse racing. They set it in a time years into the future from their previous games, and describe the rumors of the events of sessions past. A rich tapestry of lore and mystery is woven.

The game goes horribly.

Han’s character has to spend the majority of the session teaching Sean’s character how to ride a horse, while the DM had to repeatedly remind them both which die the d20 was. Nobody seemed to have much fun at all. When they were supposed to finally get to the rich tapestry of intrigue and mystery, all they really had time for was a semi-climactic race scene. Then, in a series of poor decisions and worse rolls, Han dies!

The session ends. The DM is defeated. Sean says, “Thanks for inviting us over, I just… don’t think this is for me.”

It’s understandable. It’s no one’s fault, either. Sometimes it just doesn’t go to plan.

As Han is about to leave, there’s a knock at the door. It’s Dom and Letty! And they have… sandwiches? Letty got the DM’s text message, it turns out, but they mixed up the times! Is it too late to play?

Fast & Furious

With Dom and Letty on board, the DM convinces Han to give it one more go. “You can keep the same character, even. It’ll be like a flashback for you,” they say, “Now you get this great tragic hero story!” Which, to Han, sounds pretty good.

“But, look.” says the DM, “I wrote a lot of shit for this session that we never got to. If we’re gonna play, I want to do this right. I want this to be epic. We need more players.”

Dom sets the sandwiches down, “I was born for this.”

A few minutes later, Brian’s at the door. Dom then convinces his sister to join in, and play as his in-character sister that was an NPC in the first adventure: Mia Toretto, neutral good cleric. Mia agrees to join in only if she can bring her friend, Gisele Yashar, chaotic neutral ranger.

As the six players take their seats around the table, the DM describes the jobs that Dom and Letty have undertaken in the in-game years since their last adventure. Together they tell the tale of daring heists in far-off lands. But, the DM explains, the group drew too much heat, and had to disband for a time.

“Dom and Letty,” says the DM, “Tell me what you’ve been doing in the five years since then.”

Dom stutters, “Uh… I guess I’ve just been laying low, with my earnings from the heist?”

“Sure, sounds great. Letty?”

A phone buzzes. Letty picks it up, “It’s a work call, you guys, I’m sorry. I have to run. Just say that, uh… Say I was murdered! Yep, totally dead now. See you next week?” And suddenly the table has one fewer player.

This wasn’t what the DM had planned, but it was worth rolling with. “Dom, you awaken suddenly in the middle of the night to a phone call: Letty’s been murdered.”

The group swirls around and comes together via the investigation of this murder. As the night winds on, they find themselves racing illegal potions across national borders in an attempt to take down the alchemist who’s been brewing them, who may have connections to Letty’s killer.

As they get closer to the alchemist, it’s revealed that one of his henchmen killed Letty. Dom attacks him, demanding reasons. The DM falters, trying to keep up the charade that this had been the plan the whole time. Brian picks up on this, and steps in, “It was my fault. I was trying to become a paladin again, and to get into the church’s good graces, I had Letty working undercover for me.”

In the wee hours of the morning, heads aflutter with the revelations of the day, Dom leads the group to take down the nefarious alchemist. As the others get away, Dom and Brian are left in the desert, the Church of Tyr swooping in to take the credit for their work, as usual. Brian knows that they’ll arrest Dom if they catch him, and attempts to stall while the group spitballs ideas to get him out of this predicament.

Dom checks the time. It’s late. “I’m tired of running,” he says, and allows himself to be captured. The group calls it there, and tries to get some sleep for the night.

Fast Five

A couple weeks later, Brian and Dom are discussing the course of the game.

“I don’t know, man. Letty’s been real busy with work still, maybe we should just take it a different path. I’ve been rolling up a new character, even. How’s this sound to you for a name? ‘Vin Diesel.’”

“It sounds like you’re trying too hard,” says Brian. “I have a better idea: let’s break Dom out of jail.”

Brian pitches the idea to the DM, and they gather everyone they can from the previous games: Brian, Mia, Tej, Roman, Han, Gisele, and Dom meet up for the next session. They play fast and loose, racing to catch up with the caravan of Tyr that’s taking Dom to their castle-turned-prison. In a series of rolls with advantage (for good planning), they break Dom free, and arrange to meet him in the next country over.

“Now, Brian,” says the DM, “Originally we said that you could get back into the church if you wanted to be a paladin again. This makes that a lot more difficult, is that cool with you?”

Brian agrees, and the DM lets them know that a paladin breaking their oath this badly would only incur more wrath from the church. In response, they’ve sent another paladin to chase after the team, and he’s hell-bent on tracking each and every one of them down. Enter the group’s new primary antagonist: Luke Hobbs, lawful good paladin.

In a way, Hobbs represents a sort of creative outlet for the DM. A bulky pressure valve, if you will. By this point in the campaign, most of the players are around level 12 or 13, and their plans are getting more ridiculous. Hobbs is a happy accident that lets the DM crank the pressure up a bit on them. Plus, I mean, no one’s gonna check his character sheet. He can totally have hill giant stats if the DM wants him to.

As the players take steps to regroup after breaking Dom free, the DM has Hobbs and his team inch closer to their hideout. Meanwhile, in the shadows, the cartels that the players have wronged do the same. Hobbs gets to them first, and thanks to a few poor rolls on the players’ side, he and his team capture them all. Despite their best efforts, Hobbs alone takes out most of the party single-handedly. They place the team in a well-guarded caravan headed towards the most remote hideout the church can muster.

En route, the cartels attack, set on turning the players from captured criminals to dead ones. In the ensuing cross-fire, the players are released, and Hobbs’ team is wiped out. Now on his own, Hobbs strikes a deal with the players: help him exact righteous vengeance against the criminals that killed his crew, and he’ll let them walk. The job? Steal a vault, out from the middle of a stronghold held by the cartel. It’s filled with all of the gold they’ve collected over the last decade, either running their illicit potions racket, or outright stealing it from the church.

In true level-13-ish fashion, Roman, Tej, Han, and Gisele come up with the worst plan the DM had heard yet. They get their hands on some magical rope, drug their horses with super speed, and rip the vault right out of the fortress, dragging it tumbling through the streets of Neverwinter. In exchange, Hobbs gives them a head start to get away. As he opens the vault, he finds it completely empty. One of them had used a scroll of Dimension Door to port the stash straight back to the team’s hideout.

Fast & Furious 6

By the end of the last adventure, most of the players have reached levels 15 or 16. The DM knows that in order to up the ante, there’s got to be something that genuinely scares them, if not multiple things.

The DM finds a time when everyone can sit down together, and describes to them an epic heist. Something only people with their exact skill-set and ingenuity can muster. They get away with millions of pounds of gold.

“I don’t remember running this adventure,” says Tej.

“You didn’t,” replies the DM, producing a stack of character sheets. “They did.”

The players pass the sheets around: evil, twisted versions of themselves. Their exact level, classes, all built to be mirror images of the party.

“Wait a second,” says Dom, flipping through the sheets, “The hell is this?”

He reads the name on the character sheet aloud: “Letty Ortiz.” And there’s a knock at the door. Letty appears, lets herself in. She sits down next to the DM, opposite the players.

“I got the night off,” she says, “And we rolled a whole new sheet. Letty didn’t die, but she doesn’t remember any of you. So, watch out.”

What ensues is the most difficult battle the players have faced yet: against themselves, and one of their own. The mission costs the group both Gisele and Han, who decides that this is the point the team’s adventures catch up with his first, ill-fated adventure. The team eliminates the gang of doppelgangers and their nefarious leader. After many hours of back and forth and a few slices of pizza, Dom convinces Letty to come over to their side, and the team completes the job as a family yet again.

Furious 7

Still trying to one-up the players at every turn, the DM messages the group to let them know that the gang leader they killed had a brother. A really, incredibly, impossibly evil brother. Worse still: he’s the guy that killed Han. And he’s out for revenge.

The players reconvene, going over the details of what would become Han’s funeral. Out of the corner of his eye, Dom spots a black horse pull up. Riding it is the man that matches the description the DM provided earlier: Deckard Shaw. He prepares for combat.

Before fighting can ensue, a flock of elves swoop in, scaring off Shaw. The leader of the elven unit, the creatively-named Mr. Nobody, offers to help the party stop Shaw in exchange for retrieving an item for him. The item, known as “The Eye of Vecna”, is equal parts evil and vague, but the team needs to rescue its creator, who’s being tracked by a mercenary. It’s all very complicated.

The artifact is being carried as part of a convoy in a faraway country, and the elves offer their flying ship to get there. Tej, attached to his horses, arranges to have them shipped along on the ship. As the ship hovers over their target, the DM reveals that the ship can’t actually land. So they cast Feather Fall on the horses and parachute them in. This happened in the real movie and it cannot be unseen.

Using a combination of their raw talents, magic spells, and the variety of magical items they’ve picked up on their many adventures (but we somehow haven’t really talked about), the party easily retrieves the Eye of Vecna. After fiddling around with it for a bit, they use the artifact to track down Shaw, and trap him in a final confrontation.

In a depressingly quick bout of combat, the group decides to hand over Shaw to their new friend Hobbs, who places him in the same high-security stronghold that the players would have wound up in two adventures ago.

As the adventure winds down, it’s revealed that, for reasons that no one likes, Brian can’t continue playing with the group. This hits everyone pretty hard, but Dom especially. This is one of the few times that he can’t keep the group together through sheer force of will, and is unfamiliar territory for him. It’s unclear whether the group will continue playing at all.

The Fate of the Furious

To my great shame, I still have not seen this film. Partially this is because it came out at a time where I wasn’t able to frequent the theater, and partially because I have real trouble with media properties coming to an end. This may not be the end, who knows? When the next movie comes out, then I’ll see this one. It took me three years to watch the last season of How I Met Your Mother, and still haven’t played the third Mass Effect (yes I know the ending is problematic please don’t talk to me about it or spoil it or mention this ever again).

That said, based on the information that Wikipedia and the movie trailers have provided to me, what follows is my understanding of the latest film in the franchise, as it occurs in my fictional Dungeons & Dragons group setting.

Brian leaving the group was a blow to Dom’s confidence. They had started the game together, and he didn’t like the idea of playing without him. Although, the others still seemed to want to keep going, in one fashion or another. The community that Dom and Brian had built had turned into a pretty solid group, which is hard to come by these days. To try and satisfy both of these feelings, Dom reached out to the DM with an idea:

”Let me run this one.”

It didn’t take much convincing, as the DM had expended a lot of energy in the last seven adventures that the group had run together. It would be nice to be on the other side of the screen for a change.

So, the two trade places. The DM takes the (now level-appropriate) Luke Hobbs on as their player character, and Dom sits down rather awkwardly in the DM’s usual chair.

Play begins like many of the usual DM’s missions: a criminal is looking to steal an important artifact, and Hobbs recruits the team to steal it first. Dom even has his character stay with the team as an NPC, to help give them a leg up. The characters are now nearing epic levels, easily 19 or 20, and things can truly go off the rails.

Using their array of powerful abilities, the team locates the artifact in question quite easily: a wand that can disable all magic within several miles. Before they can grab it, however, Dom has his character swipe it first, and disappear along with a mysterious newcomer.

“Oh yeah,” he says to the group, “I’m not the good guy anymore.”

The players reel in the realization, and learn over time that Dom’s character has been caught up with a mysterious woman named Cipher, who has the ability to control horses remotely. They learn the scope of her power when she sends hundreds of horses hurtling off a building onto them, as they get close to Dom’s new secret hideout. What follows is an epic chase across the nation, Cipher and Dom just barely staying ahead of the group, who are using every tool at their disposal. The players pull out all the stops, summoning elementals, flying ships, and at one point Dom and Cipher have to steal a dwarven submarine to try and get away.

Dom proves to be a dangerous foe for the party. He knows their every move, predicts every step, and— arguably most importantly— doesn’t order pizza for this game. The hungry, bedraggled crew tries desperately to retrieve the artifact from Dom, and free him from whatever grasp this Cipher has on him.

Sensing the frustration, Dom introduces what seems like a new obstacle for the players: Deckard Shaw, and his gang leader brother, suddenly appear! But instead of fighting the players, they explain that Cipher had kidnapped Dom’s illegitimate son, and was holding him hostage. Though they may be criminals, even the Shaw brothers understood that family comes first. The crew takes the exposition dump as an opportunity to finally, finally!, lay down the hurt on Cipher, and Dom’s character joins in. “After all, we’re a family.”

Cipher uses her powers to deflect the team’s horses just long enough to summon a flying ship of her own, and barely escapes on the wind. Months later, the group would hear rumor of her exploits in Waterdeep…

What the future holds…

Apparently, it’s been confirmed that there should be two more movies in the series! And maybe an animated TV show? And then there’s the whole Hobbs/Shaw spin-off movie, which will probably be at least a trilogy. There’s so much room to go from here, which is why leaving the last adventure at a cliffhanger is such a great choice at this point.

Anyway,

that’s my argument for how Fast & Furious is actually the story of a typical D&D group. They start with enthusiasm, hit some bumps along the way, and eventually settle into a groove. Within that groove, they make friendships that will last a lifetime, tell stories that can be told and re-told ad infinitum, and experiment playfully with the rules of the game. Sure, it’s not perfect, but family doesn’t have to be.

If nothing else, maybe this will convince you to go watch the movies. Maybe, just maybe, it will convince me to finish the series. Who knows? I’m just living life one quarter-mile at a time.

Tyler RobertsonD&DComment
Building a Roguelike in iOS Shortcuts

Diverging off of my last post about using iOS Shortcuts, an app built with the intention of productivity, for purely useless reasons, I’m going to go into detail on another one of my ill-conceived Shortcuts-in-progress: Roguemoji.

Link: https://www.icloud.com/shortcuts/a8b49fe817ed43f4b20b78322b2d8d07

With a bit of elbow grease and repetition, Shortcuts actually allows us to build a fairly plausible roguelike game, complete with random maps and items that we can pick up. No monsters yet, that’s on the way.

How it works

At its core, the roguelike “loop” reads very similarly to the text adventure outlined in the previous post: Find the player’s current position, draw the surroundings accordingly, allow the user to change position, repeat. What it does differently is incorporate graphics into the equation, allowing us to visualize a maze (dungeon,. labyrinth, what-have-you) around the player character, rather than relying on just text. Even though it may be more accurate to tradition to use ASCII characters, the iPhone gives us plenty of emoji to play with, so we’ll use them.

As with the text adventure, we start by defining all of our required variables outside of the main “loop”. Most importantly, we’ll need to know what our Map looks like, what our player’s Position is, and since we’re bringing graphics into this, we’ll define a Camera element, as well. The idea here being that we don’t want to show the entire map at once, and show instead a small part of it, centered around the player.

To define the Map, I recommend using the Text function, and drawing in a map of your liking using the Black Square emoji for walls, and the White Square emoji for walk-able floor tiles. The map should be a rectangle of any width/height you prefer, though I recommend keeping the width to something like 12 or 13 characters, as I found that gave me the best legibility while working in the app. Then, use the Set Variable function to save the Text as a variable that we can call up later.

Note: You’ll notice that in the example provided, I used a variety of different Text functions, and assigned them to a list. This allowed me to pseudo-randomly generate a map, which works well enough most of the time. Procedural map-building is a hallmark of the roguelike genre, but not yet a strength of mine, so this will be something we revisit later on. For the time being, feel free to use a single, static Text command to make your Map.

For example purposes, let’s say that we have a map that is 12 emoji wide, with a good spot for the player to start off in at 3 spaces in, and three lines from the top. Our first bit of the Shortcut should then look something like this:

Text: [Map of emoji blocks here]

Set Variable: Map

Number: 12

Set Variable: Map Width

Number: 3

Set Variable: Player X

Set Variable: Player Y

Notice that we’re using two separate variables for X and Y. Since our emoji map exists in a Text function, we can manipulate it into letting us use the two-dimensional arrays that our text adventure lacked. We’ll come back to that, though. Next, let’s look at the camera.

Because there’s only so much space on the phone screen, we don’t want to show the whole Map all at once. Instead, we want to show the player just a segment of it, centered on the player character. This should have enough information of the player character’s surroundings to be useful, but not so much that it becomes cumbersome or difficult for the program to load. After some experimenting, I settled for showing the player a 5-by-5 square, with the character positioned in the camera’s center as often as possible. To achieve this, we first set the Camera’s beginning X and Y positions by subtracting from the player position:

Number: 3

Set Variable: Player X

Set Variable: Player Y

Calculate: Subtract 3

Set Variable: Camera X

Set Variable: Camera Y

Number: 5

Set Variable: Camera Width

Set Variable: Camera Height

Using this, when the Player is at X,Y {3,3}, for instance, the Camera will be at {0,0}, showing us the first 5 characters of the first 5 rows of the Map. If this doesn’t make sense just yet, keep going, and play around with it later. You could also replace the “3” in the Calculate command with a variable that you can easily change later on, so that you can find a balance that you prefer.

Disclaimer: I’m sure you’ve already noticed something about Shortcuts: it takes a while to do literally anything. It certainly isn’t as efficient as programming this sort of thing in C++, Java, Bash, Python, or whatever. Hell, you could probably do this faster in BASIC if you wanted. Shortcuts does not equal programming. This is just how my brain works: taking something that is clearly intended for being useful, and making dumb games with it. Savvy? Okay, moving on.

The Camera

Now that we’ve done all of our setup for the Player and Camera positions, we have to turn that into something that actually does something, right? We’ll do this by returning to the “Nigh-Infinite Repeat” trick that we used for the text adventure in my previous post, which starts like this:

Number: 99999999999999999999999999999

Repeat: [Number] times

We’ll place that at the bottom of the program, under our setup functions, and put our gameplay “loop” inside. For starters, let’s go ahead and figure out what the Camera sees of the Map. I’ll write out what the functions look like first, then explain it line-for-line after. Feel free to also consult the example I provided for a less-than-perfect reference as you go.

Get Variable: Camera Height

Get Variable: Camera Width

Repeat: [Camera Height] times

Get Variable: Camera Y

Calculate: Add [Repeat Index 2]

Set Variable: Row To Get

Get Variable: Map

Split Text: New Lines

Get Item From List: Item at Index [Row To Get]

Set Variable: Current Row

Repeat: [Camera Width] times

Get Variable: Camera X

Calculate: Add [Repeat Index 3]

Set Variable: Character To Get

Get Variable: Current Row

Split Text: Every Character

Get Item From List: Item at Index [Character To Get]

Set Variable: Current Item

Get Variable: Character To Get

If: Equals [Player X]

Get Variable: Row To Get

If: Equals [Player Y]

Text: [Whatever emoji you want to represent your character]

Set Variable: Current Item

End If

End If

Get Variable: Current Item

Add To Variable: Row To Draw

End Repeat

Get Variable: Row To Draw

Split Text: New Lines

Combine Text: Custom [Leave blank]

Add To Variable: What The Camera Sees

Nothing

Set Variable: Row To Draw

End Repeat

Text: [What The Camera Sees]

Alright, wow! That was a lot. It looks like a lot. It is a lot.

But!

That is the core of what we’re doing here today. Everything else is secondary to this, and it’s not that hard once we break it down. Let’s do that now:

First, we’re going to put two more Repeat functions into our big Repeat function (yo dawg, etc., etc.). This is how we create the “square” of what our camera sees: the first Repeat looks at five rows, starting at Camera Y then adding the Repeat Index 2 each time to move to the next row down. Notice that it’s Repeat Index 2, because Repeat Index would correspond to our “master” repeat, and be no use at all. The second Repeat then takes whatever row we’re looking at, and breaks it up into individual characters. From there, we grab the Camera X value, and add Repeat Index 3 to find the individual character that we’re looking to draw.

If the result of Camera X plus Repeat Index 3 matches Player X, and If Camera Y plus Repeat Index 2 matches Player Y, that’s where the character is! Let’s draw that emoji instead of whatever’s on the map.

Whether we’re drawing the Player character or whatever’s at that place on the map, we’re going to Add To Variable to add it to our “Row To Draw”. If you’re playing around with the Add To Variable function, you’ll see pretty quickly that it adds whatever’s passed to it into a new line in the variable. While this would be fine if our map was one character wide and an infinite number of characters long, it doesn’t suit our two-dimensional look. That’s why, after we’ve gone through all of the steps in the second Repeat function (getting the characters out of the row), we Split Text on the “Row To Draw” variable, then immediately Combine Text. Combine Text allows us to combine a List (which is what Split Text gives us) using a Custom value, which we’re just going to leave blank. That takes our vertical column, and returns it as a horizontal row of the proper characters. We then Add To Variable again, adding this nice horizontal row to “What The Camera Sees”.

Before looping back around and going to the next row, let’s use the Nothing function to set the “Row to Draw” variable back to nil. Otherwise, we’ll just keep adding to that variable, and things will get real weird.

Once we have all of the rows that the Camera sees, we’ll use Text to neatly wrap them all up, and if you’re feeling intrepid, you can use Quick Look to check your work.

A Few Notes Before Braving Forth

So far, we’ve done a handful of things:

  1. Trick Shortcuts into letting us use Text as two-dimensional arrays

  2. Used those arrays to display only a small part of the overall map

  3. Separated our camera from our player

The first two things are essential parts of bringing the roguelike genre to this format; if we showed the player the whole map at once, that would not only ruin some of the surprise element, but also not fit on the most mobile device screens (although the iPhone XS is massive so, like, who knows).

The third thing is a simple one, probably, but one that I’m really proud of. That’s because it’s a fundamental element of making games that are set in the third-person (where you see your player character on the screen): the Camera object and the Player object are two separate entities, and can be moved independently. This means that as the Player character approaches the edges of the map, we can have them move all the way up to that edge, without the Camera trying to show the “great beyond” that doesn’t exist.

As an example of this in our roguelike game, imagine that the player wants to move to a space at Row 1, Column 1 (Shortcuts only uses 1-indexed arrays, so there’s no real 0,0). Using what we’ve set up so far, once the player moves to that space, placing them in the middle of what the Camera is showing would first require pulling two empty rows, then two empty characters, before showing the player. You would be using only about a quarter of the space we set up for our Camera to display on, and risk errors or funky display issues.

Using what we’ve set up now, we can let the Player move all the way to that corner, and simultaneously make sure that the Camera doesn’t go past that point. The player would temporarily move out of the Camera’s center while they explore those edges, but come safely back to center once they turn back and explore the rest of the map. It’s a small thing when you put it into words, but speaks volumes for the quality of the final product.

Okay, coming down off my soap box. Now that we’ve set up the base variables, and our loop for using the camera to the player and the map, let’s set up the interface for actually playing the game.

Actually playing the game

If you’ll remember from our previous Text Adventure example, the main cruft of the game revolved around using the Choose From Menu function in a loop, wherein the choices adjusted the Player’s X and Y positions. Here, we’re going to do roughly the same thing, with some extra If functions to keep our Player and Camera in line, and from going off the map. Let’s start with dropping in the Choose From Menu, which we’ll place after the Text function we used at the end of the last section, and before the End Repeat at the end of the function (we want this to take place within our main loop).

Text: [What The Camera Sees]

Choose From Menu: [What The Camera Sees]

Up

Down

Left

Right

End Menu

Nothing

Set Variable: What The Camera Sees

End Repeat

Pretty basic so far. We display “What The Camera Sees”, then ask the player to choose from the four cardinal directions. If you wanted to get more fancy, you could add more things to the Text function (health, inventory, etc.) and use that in the menu instead, or add diagonal directions for a fun isometric feel. For now, we’ll keep things as simple as we can, probably.

We also pass Nothing back to the “What The Camera Sees” variable, so that we don’t just keep adding to it with each repeat.

Within each of the four options (which you’re welcome to rearrange or rename as you like, I ended up using emoji), we’re going to add If statements to make sure that there’s space that direction, then update the Player and Camera positions as needed. Because these get pretty big, pretty fast, I’ll take a look at each direction separately, then we can look at the Menu as a whole. Let’s start with the easiest one:

Up

Get Variable: Player Y

If: Is Greater Than 1

Calculate: Subtract 1

Set Variable: Player Y

Get Variable: Camera Y

If: Is Greater Than 1

Calculate: Subtract 1

Set Variable: Camera Y

End If

End If

We’ll start with the obvious: If the Player’s Y value is greater than 1 (I keep having to remind myself that Shortcuts uses arrays that start at 1), then we subtract 1 from that value, and assign the result back to Player Y.

If the Player changed positions, we’ll also check to see If the Camera has space to move, as well. We do this in the exact same way: If Camera Y is greater than 1, we subtract one from that value, and return it to Camera Y.

Challenge: We can apply that same basic function to the Left option in our Menu, but trading in Player X and Camera X for Player Y and Camera Y. Give it a shot!

We’ll now tackle the more complex movements:

Down

Get Variable: Map

Count: New Lines

Set Variable: Map Height

Get Variable: Player Y

If: Is Less Than [Map Height]

Calculate: Add 1

Set Variable: Player Y

Get Variable: Camera Y

Calculate: Add [Camera Height]

If: Is Less Than [Map Height]

Get Variable: Camera Y

Calculate: Add 1

Set Variable: Camera Y

End If

End If

At lot of the same notes as the other direction, but with some important additions. First, unlike the “Map Width” variable, we didn’t set a variable for getting the Map’s height, so we use Count to get the number of lines in “Map”, representing the number of rows we have to work with. You could do this right up top with Map Width, I supposed, but calling the action here allows us a degree of dynamism (Is that the right word? Probably not.) and gives us the opportunity to change the height of the Map between actions (secret rooms!).

Second, we grab Camera Y and Calculate where the bottom of the frame is, by adding the “Camera Height” variable that we set a forever ago. This way, we are actually checking to see if the bottom of the camera’s viewport is going to go off the edge of the map, then adjust the Camera Y value if it is not.

Challenge: This same concept can be applied to the Right option in our Menu, using Map With, Player X, and Camera X. Can you figure it out before we put everything together?

Putting Everything Together

By now, we have something resembling the structure of a basic, top-down game, with the potential for roguelike elements. Moving into those specific elements will complicate what we’ve done today, at least in my own brain, so I’m going to compile an overview of what we’ve done here, then go into more depth in my next post. If you have questions or comments, let me know! I’m positive I fucked something up somewhere, so don’t be shy.

If you’ve been following along, here’s likely what you have so far in your Shortcut:

Text: [Map of emoji blocks here]

Set Variable: Map

Number: 12

Set Variable: Map Width

Number: 3

Set Variable: Player X

Set Variable: Player Y

Calculate: Subtract 3

Set Variable: Camera X

Set Variable: Camera Y

Number: 5

Set Variable: Camera Width

Set Variable: Camera Height

Number: 99999999999999999999999999999

Repeat: [Number] times

Get Variable: Camera Height

Get Variable: Camera Width

Repeat: [Camera Height] times

Get Variable: Camera Y

Calculate: Add [Repeat Index 2]

Set Variable: Row To Get

Get Variable: Map

Split Text: New Lines

Get Item From List: Item at Index [Row To Get]

Set Variable: Current Row

Repeat: [Camera Width] times

Get Variable: Camera X

Calculate: Add [Repeat Index 3]

Set Variable: Character To Get

Get Variable: Current Row

Split Text: Every Character

Get Item From List: Item at Index [Character To Get]

Set Variable: Current Item

Get Variable: Character To Get

If: Equals [Player X]

Get Variable: Row To Get

If: Equals [Player Y]

Text: [Whatever emoji you want to represent your character]

Set Variable: Current Item

End If

End If

Get Variable: Current Item

Add To Variable: Row To Draw

End Repeat

Get Variable: Row To Draw

Split Text: New Lines

Combine Text: Custom [Leave blank]

Add To Variable: What The Camera Sees

Nothing

Set Variable: Row To Draw

End Repeat

Text: [What The Camera Sees]

Choose From Menu: [What The Camera Sees]

Up

Get Variable: Player Y

If: Is Greater Than 1

Calculate: Subtract 1

Set Variable: Player Y

Get Variable: Camera Y

If: Is Greater Than 1

Calculate: Subtract 1

Set Variable: Camera Y

End If

End If

Down

Get Variable: Map

Count: New Lines

Set Variable: Map Height

Get Variable: Player Y

If: Is Less Than [Map Height]

Calculate: Add 1

Set Variable: Player Y

Get Variable: Camera Y

Calculate: Add [Camera Height]

If: Is Less Than [Map Height]

Get Variable: Camera Y

Calculate: Add 1

Set Variable: Camera Y

End If

End If

Left

Get Variable: Player X

If: Is Greater Than 1

Calculate: Subtract 1

Set Variable: Player X

Get Variable: Camera X

If: Is Greater Than 1

Calculate: Subtract 1

Set Variable: Camera X

End If

End If

Right

Get Variable: Map Width

Get Variable: Player X

If: Is Less Than [Map Width]

Calculate: Add 1

Set Variable: Player X

Get Variable: Camera X

Calculate: Add [Camera Width]

If: Is Less Than [Map Width]

Get Variable: Camera X

Calculate: Add 1

Set Variable: Camera X

End If

End If

End Menu

Nothing

Set Variable: What The Camera Sees

End Repeat

At the end of it all, we have a map built from emoji, a camera that displays only part of that map, a player character right in the middle, and a way to move them around. That leaves us with a certain set of new challenges!

  1. At the start, I mentioned that I used White Square and Black Square emoji for drawing our map. How do we keep the player character from passing through Black Squares? (I did this in the example, check it out.)

  2. How would we go about creating random maps?

  3. How do we handle item interactions?

  4. Can we add random enemies to the map, with their own discrete movement and actions?

I’ve tried my hand at the first three items, and will be tackling the last one soon. In the next post, we’ll go into detail about some potential ways to make this happen, and try it out ourselves.

Text Adventures in iOS Shortcuts

Like a lot of people, I was aware of Workflow as an iOS app that seemed to be a slightly more robust version of IFTTT, but didn’t see an immediate use for it until iOS 12 was released, and the app was re-branded as Apple’s official Shortcuts app.

Only problem was, by that time, I had very little left in my life that I really cared to automate. Something about being sad and unemployed? I don’t know, it sounds vaguely familiar. Anyway.

For Android users, or at least people who don’t care, Shortcuts is a tool that allows you to use a drag-and-drop programming interface to put a limited amount of functions together. The end result of this being a new app, which harnesses the power of other apps on your phone. This can range from things like, polling the Weather app to see whether you will need an umbrella today, and giving you a push notification letting you know when and where the rain will fall. Or, for the smart-homed, curating intricately-choreographed “scenes” far beyond what the Home app is capable of; perhaps texting your entire home an emoji, and watching as the lights, temperature, entertainment center, and coffee machine all work in unison to fit a certain mood.

You could also, if you’re a true Portlander and are so inclined, use it to brag about how many coffee shops are within walking distance.

Though the new tool, with the ability to run programs that brought apps together using Siri, Home Screen buttons, or even the Widgets panel, was designed for those with a will to capital-O Optimize their everyday life, I saw in it a very different potential.

This started with the discovery of Space Alert, a “crappy text adventure” that takes advantage of the branching “Choose from Menu” function. While it’s a short game all told, it proffered a revelation: While the functions provided within are small, they contain all of the necessary elements of a variety of text and turn-based games. And so I set to work.

What unfolded over the last month has been an exploration, of sorts, into the practicalities of building games within a program that is all but explicitly not decided for making games in. Many of them are still a work-in-progress, but it’s proving to be a deeper well of experimentation than I anticipated. Below are two of the methods that I’ve been exploring, with some detailed reference for trying it out yourself.

If neither of them interest you, I’ve also figured out how to make a roguelike with Shortcuts, but that’s… a much longer post. Stay tuned.


Choose-Your-Own-Adventure

Starting with the example set forth from Space Alert, you can use a combination of the Show Alert and Choose from Menu functions to create a narrative with branching paths. Because of the visual nature of the Shortcuts interface, the results of a choice get “nested” inside the choice in the code, so it may be wise to create “routes” that diverge based on choice, then eventually come back together.

Roughly, that looks like this:

Show Alert: “Hello! Welcome to the game. You are in a room with two doors.”

Choose From Menu: “Do you want to go Left, or Right?”

Left

Show Alert: “You have chosen the left path.”

Right

Show Alert: “You have chosen the right path.”

Show Alert “You win!”

Reading that back, you’ll first see an alert saying “Hello! Welcome to the game. You are in a room with two doors.” You will then be presented a menu, allowing you to choose left or right, resulting in the respective alert shown. Then, regardless of choice, you’ll be shown the alert “You win!”

Of course, this can get more complicated as you go deeper and deeper into the branches. You can place a “Choose From Menu” inside a “Choose From Menu”, for example, or even list the result of a previous choice as an option for a new menu to list. Space Alert does a great example showing this off, so I won’t try to provide my own reference outside of that.


MUD-Style Text Adventure

Example: Simple Text Adventure Framework

One of my earliest and most important memories of playing videogames with my dad involves playing my first “MUD”, or “Multi-User Dungeon". A precursor to MMOs and MMORPGs, a MUD allowed a bunch of users to connect to the same server, and play a simple text adventure game together. Typically, this would follow a stereotypical ZORK-like pattern: “You are in a very dark room. You are likely to be eaten by a grue. Exits are NORTH, SOUTH, and WEST.”

You would then have to type commands like, “go NORTH”, or, “attack GRUE” and see how the world responded.

The reason this particular memory stuck with me, however, is that the game we played took place over a large expanse of “rooms” with various descriptions. Sprawling mansions, open marketplaces, creepy dungeons, all of which rendered only in text, without a map to keep them all organized. If you wanted to remember which way you’d turned previously, so that you can make your way back out of the labyrinth before the minotaur catches you, you had better keep track of that somehow. So, we would spend hours together, drawing out each action and movement onto a large sheet (and quickly several large sheets) of graph paper. The game, just a virtual fantasy, soon had a weighty physical counterpart, that we had built ourselves.

In Shortcuts, it’s possible to recreate this same sort of game on a smaller scale by replicating the core conceit of the text adventure above, but adding a few more functions from the Shortcuts arsenal, namely List, Variables, Calculate, and Repeat. All very simple ideas unto themselves, but can be combined powerfully.

Let’s start with how we want the game to look, and work backwards from there. I would like to have the game described to me a fictional room that I’m in, and provide a list of directions, which I can then use to move to the next room, which will then be described to me, and so on…

This is the core “loop” of the game, and since Shortcuts applications are only designed to be run all the way through once, this is achieved through the Repeat function. As of yet, there isn’t a “repeat infinitely” option, however we can set a Repeat of something like 1,000,000,000,000 times, which is basically the same thing. Inside that “loop”, we will do four things:

  1. Calculate what room the player is in

  2. Show that room’s description

  3. Allow the player to choose from a list of available exits

  4. Update the player’s position accordingly

If, like me, you’re prone to draw out maps on graph paper, you’re probably used to thinking about locations and positions in terms of X and Y coordinates. Picturing the top-left corner of the page as the origin, subtracting from a player’s Y value moves them “up” the page, whereas adding to it moves them “down”. Same for the X value with left and right. Once you have the X and Y position of the player, all you have to do is return the room that matches that value, and you’re off to the races.

Well, almost.

Shortcuts, not being an app that’s designed for such purposes, doesn’t allow us an easy method for creating two-dimensional arrays, which is what we typically want for X/Y coordinates. So, we have to get creative (“yaaaaaay,” I hear you saying).

What we’re going to do instead, is take advantage of the List function: a one-dimensional array that we can trick into becoming a two-dimensional array.

To do this, let’s take a look at the total amount of space you’re looking to create. How many rooms wide and how many rooms tall will it be? For the purposes of example, I stuck with three rooms wide, and three rooms high, for a total of nine spaces altogether in our “map”. We then specify the Map Width and Map Height as variables, like this:

Number: 3

Set Variable: Map Width

Set Variable: Map Height

Note that we only have to set the Number once here, as the Set Variable function passes its input on to the next action. If we wanted the height to be different from the width, we would place another Number in-between the two Set Variable commands.

With those numbers in mind, we’ll now create a List of our rooms, with the idea that we will be listing 9 rooms, in imaginary rows of 3. You could conceivably picture them as columns of 3, as well, but I prefer rows, so there. In my example, the list looks roughly like this:

List: “Northwest Room”

“North Center Room”

“Northeast Room”

“West Room”

“Center Room”

“East Room”

“Southwest Room”

“South Center Room”

“Southeast Room”

Set Variable: Room Title

Using the three-by-three layout works well enough for these purposes, but remember that you can adjust this to fit any width or height that you need. You can then use the Set Variable command to save this list for easy use later.

If you want to get more detailed, as I did in the example Shortcut provided above, you can create multiple lists that all correspond to the same rooms. For example, you could have a list of Room Titles, another list of Room Descriptions, and another list of Room Items, just making sure that the order of each list lines up with the order of the others. To determine what item in our lists to return, we will use not X and Y, but the player’s “Position”, a gestalt of the two dimensions.

“Position” will represent the player’s current spot in our many lists, and moving the position up or down will affect what room is display. This is where knowing the width of your map ahead of time is important, because that allows us to fool the list into thinking that it has more dimensions than it really does. To move the player to the right or left, we simply add or subtract 1 from the player position as needed. To move the player “up”, or “down”, we will add or subtract the Map Width variable. This will have the effect of simulating vertical movement in our imaginary map.

In the example we’ve laid out so far, let’s say that we set the Player Position to 5, like so:

Number: 5

Set Variable: Player Position

We can use that number to then return the information that we have about the room at that position, using the Get Item From List function, like this:

Get Variable: Room Title

Get Item From List: Item at Index: Player Position

Show Alert: Get Item From List

When you create the Show Alert, you can use the Select Magic Variable option to pull the result of the Get Item From List directly, rather than having to set/get more variables. When this is all run together, we’ll see an alert telling us that we are currently in the “Center Room”.

With our map and our initial positions set, we must now find a way to move around, which we’ll accomplish by returning to our old friend Choose From Menu. First, we’ll create a menu giving us four options, which we’ll name “North”, “South”, “East”, and “West”, to keep with tradition. Inside each option, we will get, adjust, and set the “Player Position” accordingly:

Choose From Menu: “What direction would you like to go?”

North

Get Variable: Player Position

Calculate: Subtract “Map Width”

South

Get Variable: Player Position

Calculate: Add “Map Width”

East

Get Variable: Player Position

Calculate: Add 1

West

Get Variable: Player Position

Calculate: Subtract 1

End Menu

Set Variable: Player Position

Note that while we Get Variable in each option, to ensure that we really are dealing with the Player Position, we only Set Variable once at the end. Since the Choose From Menu function passes any result to the next action, we can rely on the correct calculation being applied to our variable in the end. If you’re a fan of redundancy, though, feel free to add Set Variable to the end of each choice (like I did in the example I linked above).

With the Player Position updated, we will now loop back around to the beginning of this diatribe, get the correct room from the list, display it, and start all over. In the briefest possible outline, here is how all of that looks within your Shortcuts program:

List: “Northwest Room”

“North Center Room”

“Northeast Room”

“West Room”

“Center Room”

“East Room”

“Southwest Room”

“South Center Room”

“Southeast Room”

Set Variable: Room Title

Number: 5

Set Variable: Player Position

Repeat: 9999999999999999 times

Get Variable: Room Title

Get Item From List: Item at Index: Player Position

Show Alert: Get Item From List

Choose From Menu: “What direction would you like to go?”

North

Get Variable: Player Position

Calculate: Subtract “Map Width”

South

Get Variable: Player Position

Calculate: Add “Map Width”

East

Get Variable: Player Position

Calculate: Add 1

West

Get Variable: Player Position

Calculate: Subtract 1

End Menu

Set Variable: Player Position

End Repeat

And that, as they say, is that. Every time you select a direction, the loop will reset, grab the new Player Position, and return the relevant room.

Now, obviously, that isn’t the whole story, but you’ve read enough! There are a number of remaining questions that I’ve attempted to answer in the example I linked to at the start of this, and invite you to try and answer in your own version of this:

  1. How do you keep the player from moving out of bounds?

  2. Can you make the limited number of Repeats interesting?

  3. Can you update the exits dynamically, forcing the player into corridors and such?

  4. Can you add elements of interactivity, such as items, puzzles, or enemies?

  5. Can you add graphics?

Happy hunting, my friends. As always, if you have questions or comments about any of this, please reach out! The amount of research being done into this avenue of using Shortcuts seems relatively limited, so I’m curious to hear what thoughts are out there.

Like I said at the start, I’ve also been working on a roguelike game, following similar principles to those outlined above, just… much more complex. I’ll work up a new post about that soon.

"The Amazing Screw-On Head" Playbook for Monster of the Week

Up until recently, I was convinced that I would be the only person to remember the brilliant pilot for Mike Mignola’s “The Amazing Screw-On Head”. Earlier this week, podcast host Jeff Stormer (who I’ve mentioned here once before) proved me wrong. In a tweet, he revealed that he shared my eternal frustration that the show never saw the full run that it deserved.

As Jeff is the host of the Party Of One Podcast (which I highly recommend), I replied jokingly that we should find a way to play The Amazing Screw-On Head as a two-player tabletop RPG.

Then, I left it alone for a few hours, content that I’d made a pleasant response and nothing would ever come of it. It was a silly idea that didn’t merit a second thought.

Or a third.

Or a fourth.

Inevitably, it was something like 7 o’clock at night, and I found myself trying to write an Amazing Screw-On Head standalone game. Nothing complex, maybe just in the vein of Cyberpunk Day Job or Teenagers With Attitude, so that I could crank it out and be done with it. Over three separate iterations, though, I realized that all I was really trying to do was re-write the excellent Monster of the Week, one of my favorite games.

So, I opted for the path of least resistance: make a new playbook for MotW.

So far, it seems to have gone over pretty well, which makes me happier than I’m fully able to convey here. You can download it from the link below, and try it in your own games!

A quick note about gameplay mechanics: You’ll notice that the playbook doesn’t include experience or advancement sections. This is for two reasons:

First, the goal was really to run this as a one-shot, or at most a series of monster-of-the-week episodes (see what I did there?) where the development is primarily narrative, rather than mechanical.

Second, this is to balance the mechanics of allowing one character to essentially erase their harm five times. The “advancement” in this case is the selecting of a new body, which is pretty unique to even the unofficial playbooks I’ve seen.

With regard to actually determining moves, much of what’s written is inspired by The Monstrous playbook, which is my favorite to play as. I wanted to make something that would feel like being a weird, wondrous, mechanical hero, and a lot of the Monstrous fit the bill. It’s also built for be played as the only Hunter, so it should (should) fit a handful of roles simultaneously. That said, I could see this running well alongside a Flake, or an Expert, or maybe even a Monstrous for a fun twist.


Let me know if you like it! I’ll likely be using the document as a template for future playbooks, and invite you to make copies and do the same. Unless there’s a better template out there that I was too lazy to look up. In that case, let me know about that too.

Gambino vs. Wii Shop (NSFW)

For some reason, I’m always surprised when someone else shares my love of Wii Shop Channel mashups. Joe Jenkins is one such person, and created a mashup featuring Childish Gambino alongside his own live rendition of the Mii Anthem. It’s deeply not safe for work, as with most early Gambino, so keep those headphones on.

InternetTyler RobertsonComment
Seeing Sounds

While tracking down videos for this month's patrons, I stumbled across the official music video for "Lush Life!" by clammbon, an explosion of hand-drawn 90's shapes and colors. You may have your own feelings about the evolution of the Kawaii aesthetic (I go back and forth on it myself), but damn if this video doesn't make me happy. 

The dynamic shapes and colors reminded me of this Fast Company interview with Pasquale D'Silva, the creator of the Keezy app. He has a form of color synesthesia, which causes sounds to appear as colors and shapes in his head. I can't embed the video here, but you can watch it on Fast Company's website:
https://www.fastcompany.com/3028742/whos-next-keezy-video

And here's the video of Reggie Watts introducing Keezy to the world:

Adventurers between Adventures: Merchants and Customers

Accustomed to a certain lifestyle

While thinking about commerce in Dungeons & Dragons, I keep coming back to the question of how the average person affords the lifestyle they live. As the books are primarily written for the players, many of the rules regarding buying goods and services are built around abstracted costs of living between adventures. These costs are shown first in a high-level abstraction called Lifestyle Expenses, which represent the average daily costs of living in certain levels of comfort. This covers food and lodging, and determines the social strata that your character might interact with during their periods of downtime. The fresher the food or more comfortable the bed, the more expensive the daily costs.

I happen to like the online version of these rules a bit better than the printed copy, and the Basic Rules on expenses can be found here: https://www.dndbeyond.com/compendium/rules/basic-rules/equipment#Expenses

The prices are then broken down into food and lodging of various comfort levels, also on a daily basis, and then food is broken down into individual items that one might order off a standard tavern menu. You know-- meat hunks, loaves of bread, gallons of ale and the like. This is my personal preferred view, though I might honestly prefer a more in-depth table based on the level of preparation, craftsmanship, and cost to import certain ingredients, but we'll get to that later.

The mile-high view of Lifestyle Expenses is interesting to me because its brevity indicates that there is an expectations for players to not pay it much mind. It creates a simple metric by which players can roughly estimate the cost of their lifestyle, and brush it aside as simply "the time until the next real thing." In truth, I have yet to see a player or dungeon master even reference these rules during play, to the point where for a time I didn't believe they existed. This is just as well, though, because even low-level adventures tend to ensure that players can quickly afford the Modest or Comfortable strati within the first dungeon delve. More, if they're crafty.

For example, a character who survives the introductory adventure The Lost Mines of Phandelver (or Here There Be Gerblins, for fans of The Adventure Zone) can expect to come away with anywhere from 10 to 50gp, plus a magical item or two, if they play their cards right. While this isn't enough to jump straight into the glamorous life of wealth and fame, it's more than enough to live comfortably until heading off into the next adventure. 

That's all well and good for the adventuring type-- the stoic Paladin or fearsome Barbarian who might throw themselves headlong into certain doom, with naught but a prayer to see them safely to the other side. They can use the spoils of their small wars to fund a certain lifestyle until the next evil emerges from its respective pit, and that'll be fine for them. What I wonder about consistently when reviewing these rules is how we are treating player- and non-player-characters who don't want that life for themselves? Even the smallest village is likely to have a humble carpenter, blacksmith, or shepherd. How do they earn enough to live? 

Let's take an example laid out in the Dungeon Master's Guide, and say that my Human Ranger "Karrson" has inherited a smithy. 

Thanks to his inheritance, Karrson doesn't have to shell out the cash to build "Karrson & Sons Smithy" from the ground up, so that's one expense out of the way. All Karsson needs to worry about here are the expenses for daily upkeep. The Player's Handbook and DMG provide some useful tables for average daily costs of a business, such as an inn, but smithy isn't on the list, so we get to improvise a little here. 

Running a smithy "by the book"

To begin running Karrson's smithy according to the books, we need to figure out what the average daily cost of business is. This includes paying staff, and purchasing basic supplies to keep the place running. For the average smithy, you might need 1 "Skilled" hireling to do the bulk of the blacksmithing, and 2 or 3 "Untrained" hirelings to be assistants, or clean the shop at the end of the day. Per the Player's Handbook, that comes to 2gp and 6sp per day, which we'll round up to 3gp for accounting's sake. Then we'll need raw materials to turn into our product, which we'll say is swords and axes. We'll estimate that we need about 10 pounds of iron per day, on average, depending on the work being done. That gives us enough to make a decent longsword or a big war axe, plus some extra for smaller orders (nails and the like). I will admit to not being a professional blacksmith, so one might argue for a smaller or larger number of pounds, that's fine. I'm saying 10 pounds solely so that we can say that our average daily cost for supplies is 1 gold piece. 

That brings us to 4 gold pieces per day to run the Karsson & Sons Smithy, which sounds fair! According to the Dungeon Master's Guide, that places us somewhere between running a shop and a guildhall, which feels appropriate for the concept. 

According to the DMG rules for running a business, whenever a player spends their downtime minding their business, as it were, they roll a percentile die. They add the number of days spent on this activity to their roll, with a maximum of 30 days, and subtract 10 from the roll for any missed payments. The result of the roll determines how the times goes for the business in a general sense, with higher numbers being generally better. For example, a roll of 41-60 reads "The business covers its own maintenance cost for each of the days", while a roll of 81-90 reads "The business covers its own cost for each of the days. It earns a profit of 2d8 x 5 gp." Lower rolls require the player to pay for office maintenance costs out of their own pocket, which may lead to the aforementioned missed payments. 

As you may have expected, I have a few problems with it. Why? Because, dear reader, I -- *pushes up glasses* -- am a loser

The book isn't what I need, and that's okay

I want to be really careful here: the book is not wrong. I have only found that in the particular kind of game that I want to play, these rules do not fit the mechanics or narrative that I want. In the spirit of Unearthed Arcana and years of D&D modules before me, all I want to do here is explore an alternative that I find interesting. 

The book doesn't provide what I'm looking for because of a few simple reasons: 

First, the rules only come into effect while the player is actively spending time on the business. This implies that while the player is not actively there, everything goes pretty much according to plan, and the business stays afloat. This incentivizes the player into never spending time on their business, for fear of losing money. 

Second, the rules specifically list a maximum of 30 days per roll. While this is most definitely included to prevent rolls consistently over 100+ (I can just see myself saying "I spend 100 days on my business lol"), it encourages players and Dungeon Masters to move swiftly between adventures, while sweeping the in-between stuff under the proverbial rug. This is fine if you want to focus primarily on going from dungeon to dungeon and dragon to dragon, but.... I don't? I know, it's the name of the game, it's fine.

Last and most importantly to me, it reduces the entirety of your downtime, up to thirty days' worth of hard work and interactions, to a single roll. Yes, this can be filled in (and done well!) with role-play and narration, but it presents a stark mechanical imbalance when compared to things like combat. Could you imagine reducing an entire dungeon crawl to a single percentile roll? No, of course not, don’t be ridiculous. And why is that? Because the player character, as an entity, is written for combat. The rules for combat in Dungeons & Dragons are more complex, more fleshed out, and more interesting to play.

The argument that I would like to present is that the player character is equally constructed for trade and social interaction, and with the proper implementation of rules that respect that fact, we can make running a shop as mechanically interesting as raiding a dungeon.

Below is a first draft of how those rules may look. Admittedly, I've written these down in spare moments over a number of days, so some thoughts may be incomplete or inconsistent. The intention is to use this as a starting point on the road towards making and play-testing something more "real".


Going into Business

Whether you are inheriting a business or starting something from the ground up, there are many factors that you'll want to keep track of as you get started. It's recommended that you do this on a separate sheet, or in the "Additional Notes" of your character sheet if possible. At the top of the page, outline the general description of your business: name, rough outline of what the business provides, and the primary operating location. Especially if you're building your business from scratch, you'll want to work with the Dungeon Master to figure out the cost of building (or buying) a location to use as your primary operating location.

Below the general description, create three columns: Assets, Expenses, and Extra.

Assets are anything that you can, will, or are actively making money from. This can be physical items that you want to sell, services that you can provide, space that you can rent, and so on. Really, it's anything that you can convince the Dungeon Master that someone else may want to pay an amount of money for at some point. These will be the things that you sell to customers when they come to your primary place of business, which we'll get to later. For example, if you run a small inn, your assets may be a small number of rooms to let, a small breakfast served in the morning, and a warm dinner at night. 

Expenses are everything that you have to pay money for to keep your business running. This includes the cost of crafting or maintaining the things in your Assets column. For example, if you are running a smithy (as in our example earlier), one of your Assets may be "Longswords". A corresponding expense may be the iron needed to craft new longswords, or hiring a blacksmith or assistant to do the actual crafting. Expenses for an inn may include the food to prepare for meals, and a hireling or two to help keep the rooms clean.

Players and Dungeon Masters should work together to determine the prices and costs of both Assets and Expenses, starting with the examples provided by the book (we'll consider those "market value" for most items). Players may freely opt to mark up or down the prices of the Assets, though that may affect a customer's willingness to purchase something later on. One of the additional projects that I'm laying out for myself currently is writing up lists of example Assets and Expenses, to create a sample set for your businesses. This may turn into something resembling a separate character sheet for shopkeepers, but we'll keep things loosey-goosey for the time being.

Creating Customers

While a character owns a business, the business sees a number of customers per day equal to the character's Charisma modifier (minimum 0, though perhaps we could make a case for having an negative number of customers). This number can be increased through Marketing, which we'll talk about some time later on. Customers, from the Dungeon Master's perspective, should be treated like monsters. They have lives, react to other customers, and can intersect with the character's lives at the worst possible moments. 

When a customer enters the shop, give them a Goal, an Expectation, and a Demeanor. These can be selected from the list below or chosen randomly by rolling the corresponding dice. Goal and Expectation are to be kept secret by the Dungeon Master, while the Demeanor should be made known to the players immediately.

The Demeanor reflects both how the character behaves while in the shop, and the mechanical challenges that the player may face while they remain there. The Demeanor can be changed through successful skill checks, outlined in Making the Sale below.

The Goal reflects the initial desires of the customer (which they may or may not be honest about), and affects every roll made involving them. 

The Expectation reflects what is likely to catch the customer off-guard, and give the player the advantage. The first time a player character performs an action that proves the customer's expectation wrong, they gain advantage on their next roll. 

Goals (1d6)

  1. To purchase the most expensive item or service available at a 50% discount. (+2 DC against rolls to improve Demeanor)

  2. To haggle with the merchant as much as possible. (Failed Making the Sale rolls reduce the Demeanor by 2, to a minimum Demeanor of 1)

  3. To purchase a specific item or service at 80% market value. (+1 DC against rolls to improve Demeanor)

  4. To purchase something at an acceptable price. (+2 DC against rolls to improve Demeanor beyond 4)

  5. To spend money freely in exchange for premium service. (-2 DC against rolls to improve Demeanor. If another customer's needs are given priority, Demeanor is instantly reduced to 2)

  6. To purchase the desired item or without causing too much trouble.

Expectations (1d6)

  1. That service will be slow.

  2. That this store will not have the specific item/service that I need.

  3. To have to haggle to receive a fair price.

  4. That assumptions will be made about me based on appearance.

  5. That the merchant will know nothing about their product.

  6. That the quality of the item/service that I receive will be lacking.

Demeanor (1d6)

  1. Upset. Will pay 50% of market price. DC 18 to improve.

  2. Irked. Will pay 60% of market price. DC 16 to improve.

  3. Unsure. Will pay 80% of market price. DC 14 to improve.

  4. Reasonable. Will pay market price. DC 14 to improve.

  5. Gleeful. Will pay 125% market price. DC 12 to improve.

  6. Ecstatic. Will pay 150% market price. Cannot be improved.

When asked, a customer should be specific about the kind of item or service they intend to purchase. If a customer enters the store with a Gleeful or Ecstatic Demeanor, they may not even wait to be asked. The item or service should always be within the realm of what the business has to offer-- though it would be "more realistic" in some cases, we don't want customers coming into our smithy looking for the bed and breakfast. Additionally, the customer enters the store with the intention of purchasing something. If the Dungeon Master wants to bring in characters that are "window shopping", that's fine, but they should be treated separately from Customers.

As I mentioned about, when creating the business, Dungeon Masters and players should work together to create a short list of the kinds of items and services that the business is likely to have on-hand, and use the prices outlined in the books to create a sort of "menu" that can be referenced. Customers who may have doubts about the availability of a product or the shop's ability to produce it are likely looking at the more expensive products on the "menu", while most other customers are likely looking for something towards the middle. 

Making the Sale

When you interact with a customer with the intention of changing their demeanor, describe what action you take, and make a check according to the relevant skill. For example, lying to the customer about a product's value would require a Deception check, while extolling the virtues of a service may require a Performance check. If you are unsure what skill your action requires, defer to the Dungeon Master's judgement, or simply add your Charisma modifier to your roll. If your roll meets or exceeds the DC listed on the customer's current Demeanor, their Demeanor increases by 1 point, to a maximum of 6. Otherwise, the Demeanor decreases by 1. If the player's action is focused on a target on than the customer, their Demeanor decreases by 1 per action. 

If a customer's Demeanor reaches 0, or if the item or service they require is not offered for some reason, they will leave the establishment without purchasing anything. 

At any point while interacting with the customer, the player may opt to Make the Sale. At this point, they expend the item or service from their inventory, in exchange for the agreed upon amount. The customer then leaves the business. In the case that the item or service requires the customer remain at the place of business, such as renting a room in an inn, no further rolls are required for Making the Sale, and this has no impact on the number of customers seen per day.

While not required, I highly recommend creating names and quick descriptions for each customer. This can be something the player and Dungeon Master come up with together, or something pulled from a random generator for sake of ease. This is important to me, because it opens up the possibility to have recurring customers, adding further depth to the world and creating connections that may not have otherwise been made. Recurring customers could turn out to be the captain of the town guard, or a passing noble, or even the campaign's main villain. These characters can be played however the Dungeon Master prefers, and their goals, expectations, and demeanor may change freely.

Marketing and Advancement

While I enjoy the idea of a player character’s Charisma modifier dictating the number of customers a store sees each day, as it represents a sort of abstract word of mouth, I want there to be room for improvement in all things. We can’t leave out low-charisma characters, after all, and we should reward players who want to take the time and strategize well. There are a couple ways that I can think to do this, both of which I’ll look to detail further in later posts (because I believe I’ve written enough here, don’t you think?).  

The first method would be to give each store a separate character sheet, complete with attributes and skills and everything. Initially, the store’s sheet would match the character running the shop, but as the store earns capital, it can exchange it for experience points. This is similar to more “old-school” games like Labyrinth Lord or Dungeon Crawl Classics (though you can check my memory on that one). We’d have to do a bit of conversion math, but at a glance I feel that a 1 to 3 gold-to-XP ratio sounds fair.

What this allows us to do is separate the store’s progression from the character. If the store does well, it advances well, and at certain levels it can take advantage of an attribute point increase, then begin to use its own charisma modifier to bring in customers, rather than the player’s. We could conceivably translate a good number of feats to relate to commerce instead of combat, as well. 

The alternative, which I might like even better, is to take advantage of the existing hireling rules that I mentioned earlier. Only, instead of hiring someone to carry your things or help make new items, you hire town criers and advertisers to go around promoting your business. The conversion on this is fairly easy as well, if we think of a purely monetary value: skilled hirelings bring in one more customer per day, and unskilled hirelings bring in one new customer every 1d4 days. This is roughly equivalent to the kinds of daily value you can get from hirelings performing other tasks, and gives players a decent chance of breaking even on their investments rather quickly. 

 

Next Steps

I’d like to work on creating some fillable character sheets for stores, and perhaps coming up with a few commercial archetypes— weapon shops, taverns, inns, etc. It would be fun to treat these like classes in the PHB, with unique perks as they level up and everything. 

What I’ll write on next, though, is the idea of politics and public works. We’ll explore ways that players can, through their actions and investments, indirectly influence the events in a location, and how a Dungeon Master can help draw the lines between actions and outcomes on a large scale. 

A More Comprehensive Ruleset for Adventurers Between Adventures: Introduction

A Question of Loot

While running a game of Dungeons & Dragons 5th Edition recently, as the adventure wound to a close, and the adventurers made their way out of the Sunless Citadel, and the telling signs of late-night exhaustion made their way 'round my players' faces, I was struck with an urge to remind everyone of what loot they find on their way out. This wasn't something that we had much paid attention to (I'm lucky to play with people whose first instinct isn't always to loot the bodies), but the adventure's end triggered something in my lizardfolk-DM brain, saying that they might need these small treasures later on. 

Now, in the cold light of day, I don't think that they do. 

Of the combined 640+ pages of the 5e Player's Handbook and Dungeon Master's Guide, less than ten pages are dedicated to things that you can reasonably purchase on the daily. There's a chapter on Magical Items in the DMG, yes, but it's difficult to justify the average shop having anything more than a few Potions of Healing available on any given Tyr's Day. I'm strictly thinking of items that you can walk into a store and buy between adventures. 

While providing dense tables of trinkets and adventuring gear, replete with weight and cost and flavor, the latest edition of D&D is content with letting the mechanics of these tables play out "off-screen." I have yet to play in or watch a session in which the purchasing of equipment or "mundane" items is not hand-waved away with a "Sure, we'll say you got that while in town. Anyway, on to the combat..." Spending gold just is not the most interesting thing to do in this game. Neither is haggling for a better price, or determine an object's true value. A single successfully Deception or Persuasion check can get an NPC to do what you want, for the most part, while a single successful Insight or Investigation check will let you know what they're hiding. Why waste time on the <10 pages of paying for things and talking to people, when we can focus on the 20+ pages of combat rules, status conditions, and debates over the definitions of "grapple" and "invisibility"? Not to even mention the scores upon scores of spells and incantations to prepare each day. 

Why, indeed. Most people-- commonly referred to as "normal people"-- will agree that the exploration and combat elements of D&D are the most interesting, and provide the most mechanically interesting elements for a role-playing session. "The tables on buying land and paying upkeep are serviceable, and the rules for social interaction pillar were clearly intended to be fluid and allow for in-character improvisation and fun," the voices in my head tell me. Why would we fix what isn't broken? 


Let's be Barons

Of every campaign I've been a part of, the one I talk about most was the first one. You never forget your first, as they say. It was a fairly modified version of Decipher's The Lord of the Rings, which had been crudely printed out and shoved into a three-ring binder. Our group, which had consisted of mostly the same characters for the whole run, had been playing for four years in real-time, and nearly a decade in-game. This meant that, in addition to wielding mythical weapons of power, one of the three Elvish Rings of Power, and (not to brag) enough magical aptitude to take down a dragon in a single blow, we were also filthy rich

My father, a telecom engineer and the group's de facto banker, realized somewhat suddenly one day that his character (a ranger of the north), had been carrying roughly 900 pounds of gold, jewels, and knick-knacks on his person. Encumbrance issues aside, we hadn't the faintest what to spend it on. By that point, we had become heroes of the land, and were welcome with food and lodging wherever we traveled. We wanted for naught but the cool breeze of adventure in our faces and the warmth of victory at our backs. 

When our game master, a history teacher, presented us with a down-on-its-luck stronghold in need of proper management, there was only one true solution: we bought it, and became barons of the land.

Over the course of several months, spreadsheets were drawn up, detailing the intricate daily plans of the keep. Everything from transporting stones from the quarry to bringing in farmers and cattle to occupy the surrounding hills was detailed with an approximate cost in gold coins. We would hold small council meetings before and after each adventure, voting on which endeavors to fund and which to put on the back burner, slowly building a village around our new castle. With our spreadsheets, we could see the real-time impact of each decision, prompting us to develop investment schemes, saving plans, and plan adventures around how much gold we could bring back to continue our pet projects. I was more enthusiastic and responsible regarding this imaginary money than I have ever been, and potentially ever will be, about the small amount of money I possess in real life. 

So while the social and commercial interactions in D&D aren't broken, by any means, I miss that level of exuberant obsession in tabletop games. The kind ridiculed on TV and in movies, where nerds sit around a table for weeks on end, drowning in their own filth as they calculate the odds of a single arrow sparking a cultural revolution in the east. It was a sort of pure joy that people who liked math and stories could enjoy together, getting lost in not only the fantasy of being a knight in shining armor, but the mystical realities of being a capable accountant, shrewd lawyer, and wise ruler. 


New Adventures in Old Mundanity

Using Dungeons & Dragons as a framework, my intention is to write a small series of rules for adding a welcome complexity to the hum-drum everyday life of an adventurer between missions. Hopefully not too much complexity, but enough to make interaction, rolls, and a player's time valuable. The intent is to make it fun and interesting for players to haggle on prices, set up shops, compete with NPCs for market share, throw parties, and take time enjoying the finer things in life.

Each set of rules will become a new post here, and they'll eventually compiled in a small bundle called "A More Comprehensive Ruleset for Adventurers Between Adventures". I won't write them quickly, I'm sure, but that's the goal.

Topics I'll be covering include the following:

  • Spending Money
  • Property Management
  • Business Management
  • Marketing and Propaganda
  • Laws and Lawyers
  • Friends, Family, and Romantic Interests
  • Holidays, Festivals, and Other Events

With the introduction out of the way-- have you played games like this before? Would you play them again? What topics am I missing, or am I reinventing well-greased wheels?

That Which Is Known

I enjoy the physical act of writing-- sitting seriously in a coffee shop somewhere, putting my headphones in, typing away at nothing in particular. Looking into the middle distance for long periods of time, accomplishing nothing. You know the kind. 

That said, what I've run into a lot lately is that I often lack (or think that I lack) the things to actually write about. While the flesh is willing, the spirit is weak, as they say. This listlessness quickly turns into mindless googling, and before I know it I've spent all my dedicated writing time reading about the history of a particular Bulgarian thatching method on Wikipedia. 

To try and stave off this feeling, I made a game called "That Which Is Known", which you can read more about here:

Big Life Changes 2018

Two years ago, almost to the day, I was on the phone with Lauren. She was visiting a friend in London, and they had been waiting at a train stop after a day trip to visit Durham (in the north of England). 

“How was it?” 

”It was...” it took her a long time to come up with the right words, “it kind of turned into an interview?” 


Durham Castle

Durham, site of Durham Castle and Durham Cathedral, the national heritage site where St. Cuthbert is interred, is also home to Durham University. It’s known for a lot of things, one of which being many locations for the first few Harry Potter films, but it also has the fourth best archaeology program in the world. Lauren, both a Harry Potter fan and increasingly interested in pursuing a career in archaeology, went for a visit and a campus tour. 

When no tour guides were available, the school called up the head of the archaeology department, who happened to be on campus, getting ready for the start of the next term. 

After an hour of walking around campus and discussing archaeology, conservation, and the differences in how our countries handled such things, the tour came to a close. 

 ”I’ll just count this as your entrance interview,” he said, “I’m looking forward to your application.”

This past December, Lauren got a letter in the mail. She had been accepted to study Conservation of Archaeological Artifacts at Durham University, starting October 2018. A program that only ten students are accepted to each year. 

So: that’s the big news. We’re moving to England!

Her term begins the first week of October, so we’ll be packing up and leaving mid-to-late September. Between now and then we’ll be selling a lot of our stuff, storing the rest, and finding a place to live.  

Durham_Kathedrale.jpg

That’s kind of where you come in.  

Some of you may already know this, but I’m already a British citizen, which is part of what makes this move possible. I’ll be looking for work while Lauren’s in school, and will likely work a few part-time jobs here and there to pay the bills. Like always, we'll find a way to make ends meet. But, while supporting my partner in her dream, I’m taking the opportunity to try and live out mine: make a living (or part of one) writing and making games.  

If you follow my blog or any of my posts online, you probably know that this is something I’ve considered doing for a while, but now I have a reason to ask for money for it. If you like the things I write, or the games I make, or just want to help support our crazy move halfway around the world, I want your help. Here's how:

If you like what I do and want to buy me coffee sometime, consider making a one-time donation to my Ko-Fi page: 

http://ko-fi.com/tylerdotgames

Naturally, I'll be keeping you all up to date with our move and the next leg of this crazy adventure we're going on, so don't worry about missing out. I know times are tough for everyone right now, so if you can't help out financially right now, that's super okay. Just reach out and say hi! Whatever support you can provide, in any form, is incredibly appreciated. 

More updates as they happen!

The Heroes of Norumbega (Rough Notes)

When we as a culture say that we have begun a “settlement”, we rarely mean that we are settled. Settling new land is violent, trudging, and painful. The people... most people are not built for such work. We have brought them with us to be useful in small ways– to build houses and raise livestock and raise young ones– but they cannot flatten the mountains that stand in our way, or blaze the trail that we seek. Many of them don’t hear the call of the land that we seek, they cannot see the green fields of Vinland when they sleep. They need Icons, Others... they need Heroes to lead them.

Heroes are not like the others, they do not belong with the People. They are outcast, set apart, forced by destiny and expectation to go out and forge a new trail for the People to follow. They do not know this new land any more than we do, but they are not afraid of it, and will not be deterred.

Below are those that we need to lead us. Each comes around only once per generation, if we’re lucky.


Attributes

Every hero has within them what we will refer to as the five basic Attributes. These are the elements of a heroic soul, the building blocks of the spirit, and are what are channeled into each action of consequence in a hero’s life.

Flame

While it burns, the Flame represents many things. While, yes, it is often associated with destruction and pain inflicted, it can also be cleansing. A hero’s flame represents the physical effect they have on the outside world-- clearing paths, piercing obstacles, and creating a new beginning.

Stream

The Stream represents a swiftness towards a point on the horizon. Though it may encounter many things in its path, it does not slow. A stream is also a continuum, and cannot be defined to any one of its individual parts. Is a raindrop a stream before it has joined the flow? A hero’s Stream represents their own swiftness in the world, and their ability to flow around objects, attuning with nature as a raindrop to the stream.

Root

Imagine an apple tree that has produce more apples than you’ve ever seen in your life. This magical tree that has sprung up suddenly to feed all of the villages for miles around, and still has apples left over to bake and to save. Imagine, however, that this tree does not have roots. When the autumn winds blow, the weight of the tree’s bounty topple quickly, as there is nothing in the ground to hold it aloft. A hero’s root acts the same way, it keeps them planted, and ensures their safety as the cold winds blow.

Hearth

While a hero’s calling may be to the wilds, there is no replacement for the hearth in their lives. This is where their family is, where their hearts find strength, where their minds find rest. Hearth for a hero is about reviving spirits, and making connections with the spirits of others.

Mist

In the hills, there is a silence that falls in the mist; an isolating, impenetrable silence. In the low-lying clouds, even the slightest sound rings out like a bell. This mist resides in the heart of each hero-- it is the force that sets them apart from normal folk. In the mist await mysterious things, just waiting to be discovered.


The Heroes

The Wolf

It is said that the Ulfhednar, the wolf-coats, of certain clans can forsake all notion of pain or hesitation in battle. Forsaking shields and all but the necessary clothing, they carry their spears into battle with a deafening howl. In my youth, I saw an Ulfhednar recruit perform the sacred trials in a village nearby. The young hopeful, eager to join the ranks of their forefathers, faced a feral bear in unarmed combat. Before the combat ended, I had to leave the village, on the first day after Summer Solstice. When I returned just past Yule, that same combat was still underway.

Treat your Flame and Root runes as 6 for ten minutes, or the remainder of a conflict. After the conflict ends, treat them as 1 until a period of rest.

When taking damage, reduce the amount of damage taken by one level of severity.

When using force to clear a path, increase the damage dealt by one level of severity.

Like the Barbarian, all moves revolve around improving the Berserk move, or lessening the after-effects of it.
 

The Fox

I have had enough of foxes. Each night, I check that my chickens are put away in their hutch, that the door is locked tight. Each year I’ve made a new lock for the door– more complex, more expensive. This year, I’ve hired young Stenos to guard the door. I gave him my bow, a few arrows. Each night, without fail, I hear the whistle of an arrow in the air, as Stenos chases the Fox away. Each morning, I have one fewer chicken.

Uses Root and Stream to evade detection, slip in and out unnoticed, and disappear in nature.

Like the Killer in The Sprawl, focused on getting into and out of dangerous situations, and reading situations.

More combat-focused than the Rabbit.

Move that lets you survey ahead, and hold for +1 bonuses when acting on the information. Maybe spend one hold to instantly escape back to a selected point within a range (like Sombre’s teleport ability in Overwatch).

 

The Rabbit

When Loki was a child, he built a trap to catch rabbits at the edge of the woods, using vegetables and breadcrumbs as bait. He checked the trap each day, and found it had sprung, but was empty. Not only had no rabbit been caught, but the bait had gone as well. After nine days, the god-child decided to make camp and watch the trap for a full day. At dusk, the rabbit came. From his hiding place, Loki witnessed the hare step willingly into the trap, which instantly trapped and slew the animal. Then, in a blink, the hare was eating the food beside the sprung trap, as if nothing had happened. That was the day that Loki learned what Magic really was.

Uses Hearth to escape impossible situations, regain health, trick death.

Like a non-lethal Rogue. Moves are all geared towards rewarding getting yourself into a bad situation, then bonuses for getting out of those situations.

More magic focused than the Fox.

Move that moves health from one creature to another.

 

The Raven

As the messengers of Odin, the Raven comes before the east wind, after which nothing good can follow. Against the star-lit skies, their black wings swallow whole all that man holds dear. Even in the warm Summer nights, the wind beneath them chills to the bone. When they land, it is only to speak ill, to give warning, or to lure the innocent to their doom. Few amongst the People can say with honesty that they have witnessed the Raven– and those who have knew that it was already too late.

Uses Mist to shape elements, create shadow, see signs and portents.

Similar to Dungeon World's Druid.

Don’t want long list of spells, maybe a way to create one or two general use spells like the Spellslinger in Monster of the Week.

Spell casting could involve selecting a couple element-focused bases, and a couple action-focused effects. Then when you cast a spell, you select one of each.

 

The Serpent

Uses Mist and Hearth to see the unseen, speak many languages, convince others of the rightness of their ways.

Similar to Dungeon World Paladin in that they use their other-worldly nature to affect others in a non-physical way.

Move that lets one other player’s Rune match the Serpent’s corresponding Rune while they are within earshot of each other.

 

The Sparrow

Uses Stream and Flame to hunt from a distance.

Like the traditional RPG ranger classes, should come with an animal companion.

Best at distances, learning about one target at a time, and utilizing ranged force where necessary.

Bonuses to scouting ahead when moving the settlement.

"Hell or High Water" Play-Testing

I've been sitting on this for a bit, and can't figure out for the life of me what else to do with it. I've written up all of the rules and playbooks for Hell or High Water, comprised them in a handy PDF, and we're ready to start play-testing.

If you like adventurous outer space stories like FireflyFarscape, or Babylon 5, and want to try a tabletop game that gets you right into that mood (hopefully), I really hope you'll give this a go for your next game night:

I'll be running a test of this myself soon, and will likely immediately make changes to it, which of course I'll document here. If you play the game, let me know what you think! This is obviously not the final version, there are still a few things left to do, such as find an illustrator, write detailed rules for running the game, and finalize an example mission to include in the book.

Reach out any time with feedback, I'm honestly all ears. Once finished, I'd love to be able to put this up on DriveThruRPG or something and sell copies, maybe even get a physical version made. 

This is A-Yu-Gi-Oh!

 “This Is America” is a phenomenal song and video from Childish Gambino, and may be one of the most important music videos of this decade. 

Unfortunately, the video just happens to sync perfectly with a whole bunch of popular songs, and thus a meme was born.  

Without giving too much more away, I contributed to that meme today, and I’m very sorry: 

"Solo: A Star Wars Story" and the Expanded Universe
solo_ew_han_1_ed4568fc.0.jpeg

Before we get too far: This is not a review of Solo, and there will absolutely be spoilers ahead. I'll see how far I can get before they come up, and there will be a clear indication for when they're about to start, but you should know that they absolutely will be here.

What follows is kind of a rant, and I apologize in advance.  


Solo, much like Rogue One before it, is an ambitious attempt at smoothing the harsh cut between Revenge of the Sith and A New Hope. Both movies come in the still-undulating wake of Disney cutting ties to all "unofficial" Star Wars content, and replacing it with their own. Rather than allowing the public (and a good helping of professional writers, artists, developers, and filmmakers) fill in the gaps left by the main Saga, Disney opted to do the work themselves, seizing empiric control over what's known as the "Star Wars Expanded Universe". Everything created before that point was de-canonized, and rebranded as "Star Wars Legends", which is a polite way of saying that it was taken out back and shot. Star Wars fans have plenty of feelings about that move, and I won't go into detail about them here. Largely, the consensus is that "Star Wars is over" and the series has been thoroughly ruined by corporate greed. 

I... only sort of agree with that. 

Star Wars is kind of a tough nut to crack. The “main” story (which I consider to be episodes 4 through 6) adheres so strictly to the Joseph Campbell-esque hero’s quest, that its ending does feel pretty complete. The evil is vanquished, the student has become the master, the scamp gets the girl, and so forth. There isn’t much left to tell there that wouldn’t somehow re-trod that same ground. As a result of this, everything that has been added to the “main” saga has felt relatively tacked-on. 

And I don’t mean offense by that— The Force Awakens is a wonderful movie, and even The Phantom Menace still has a place in my heart. But, realistically, they don’t do much to affect the universe set by the original trilogy. The thing that makes these additions interesting is how they introduce settings, and fill them with characters and details that bring the world to life. 

As a young teen, some of my favorite books were the Star Wars Encyclopedias, a Scholastic Books product that tried its best to make the franchise feel educational somehow. There was an encyclopedia for each movie, and they went into the smallest details about every character, prop, and concept contained therein. I would spend hours learning about the various lightsaber stances taught by the Jedi, the ingredients of a death stick, the different species of flora and fauna native to Naboo, and so forth. It was the density of these details that brought the universe to life for me, and kept me interested despite the lackluster story of the prequel trilogy.

It's the same density of detail that interested hundreds and thousands of authors to write their own stories set in the universe, adding all sorts of flavor to the existing universe. This is how we got stories like the daily lives of Stormtroopers, the interpersonal drama of moisture farmers, the last thoughts of a Rebel pilot. This is also how we got Admiral Thrawn, who I guess is coming back into the canon now, which I'll have to learn more about.

These stories, while they often referenced events of the original trilogy, existed firmly outside of them. They added detail and filled in the gaps and allowed us to better imagine ourselves in the world where the force is real, beat-up X-wings zip across sandy dunes, and we really can be anything we want to be. The main story and characters were still there, and we could appreciate them from a distance, but these stories preferred to get lost in the weeds and explore on their own. 

It's understandable why so many people are angry about Disney deeming these stories as "non-canon". They were, for lack of a better analogy, the New Testament for Star Wars fans-- a message meant for everyone, inviting each person to a galaxy far, far away. Then, to add insult to injury, they've started creating their own offshoots and expanded universe content? Of course fans are angry, I think that's natural. 

Donald-Glover-as-Lando-Calrissian-in-Han-Solo-movie.jpg

But I don't think that this means that Star Wars is over.  

For starters, they can never take my Expanded Universe from me. I will cherish every moment spent imagining alternative Jedi weaponry, or the obscure games played in back-alley casinos. I personally triple-dog-dare George Lucas to come to my house and take my copy of the Christmas Special. Also there is nothing anyone can do to erase my battle droid fan fiction. Nothing

But more than that, this effort to re-do the Expanded Universe reflects, I think, a recognition that people want to see what's at the edges of this world. As a Disney subsidiary, Lucasfilm gets to create these side-stories with an actual budget, and we get to vote with our dollars regarding what we do and don't want to see more of.

It also means that the side-stories are all managed from one place. While this can contribute to the feeling of corporatization that so many complain about, it also means that these stories exist in the same universe in a more tangible way, which is where Solo really shines.

If you want my opinion, this isn't the end of Star Wars. This is the start of something new.


OKAY, SPOILERS FOR SOLO AHEAD. CONTINUE AT YOUR OWN RISK, YOU SCRUFFY-LOOKING NERF HERDERS. 


I'll start with the one thing I thought was weird: the dice. So prominently were they featured in the first act of the movie, I think Lucasfilm realized that no one knew what the hell they were in The Last Jedi, and had Ron Howard film them from every conceivable angle. 

Okay, now for what I liked:

Qi'ra

Qi'ra

But not for the reasons you think. Sure, it was nice that we get to see Han in a relationship before Leia (because of course he was), but more important: we get to see what Han could have become. Qi'ra, a fellow runaway indentured to Lady Proxima, moves from position of servitude to position of servitude, patiently biding her time until an opportunity presents itself. When she finally gets out from under Dryden Vos' thumb, she absolutely could have gone with Han and maybe have been happy leading that life. But she knows too much, and she knows that going with Han is not the safe play here. No matter where she goes, she knows that she will continue to be either beholden to someone, or hunted by them. "Everyone serves someone", she tells Han early on, and she lives by that. She knows that the safe play here is to lean into the Crimson Dawn, and usurp Vos as an information broker. While she's still serving someone (who I'll talk about later), this position affords her a degree of security. For Mass Effect fans, this gave me similar vibes to the Shadow Broker storyline, which I loved. 

I also love that storyline because it gives us a glimpse into the seedy underbelly of Star Wars that actually does something. In A New Hope we see Mos Eisley, the wretched hive of scum and villainy, but nobody there is doing anything particularly scummy or villainous. Save for an infamous blaster duel, the cantina reads very similarly to an Elks lodge, and doesn't pose the same threat that the setup tries to give it. It's refreshing to know that crime is a real industry in this world, and has real teeth to watch out for. 

solo-l3.jpeg

L3-37

A lot of people will list L3 among the best characters of the year, and with good reason. She's funny, poignant, and introduces the idea of human/droid sex into the Star Wars universe.

But she also raises questions that are important to the Star Wars universe, specifically about robot sentience. This is something that is in the cultural zeitgeist lately, with shows like Westworld and games like Detroit: Become Human and Nier: Automata taking center stage. Up until now in the Star Wars universe, while droids have often been a favorite character, they have been firmly placed in an "other" category. "We don't serve their kind here," is a line that rings true with too many people, and not much is done to rectify it. Rather than stand up for his friends who changed (and effectively saved) his life, Luke asks C-3PO and R2-D2 to wait outside. 

In Solo, L3 serves as the droid Spartacus, and in addition to actually leading a droid rebellion, shows us in a mechanical sense how many of the beings that we see in the background are being controlled. She demonstrates several times that when that control is removed, many droids would rather be doing something else. As a series that is finally starting to put women and people of color into positions of power, it's good to see this equality begin to extend to all sentience. 

enfyst-nest.jpg

Enfys Nest

The thing that I appreciate most about Enfys Nest is that not much is explained. We get bits and pieces of backstory (their mother wore the mask previously, for example), and a demonstration of what the so-called marauders are capable of, but the film doesn't go too deep into any one thing. We could have gotten so many things-- the origin of the mask, the location of their home planet, the technology powering their unique hover-cycles, and so forth. But we don't, because it's not important. 

What is important is what Enfys Nest represents. At the end of the film, Enfys tries to recruit Han to join... something. Something new, something big, something that doesn't have a name yet. It's a chance, a hope, a rebellion. While that last word they use will either delight or frustrate you, it reminds us that there is an optimism in this world still. After a whole movie where actions are motivated by a need for survival, and each success is met with a betrayal, this optimism is a welcome presence. It reminds us that in the face of hardship, we do not always need to become cold or harsh, or attempt to run away from our problems. We can always choose to lean in, to run towards danger with a smile on our face and our friends at our side.

Screen_Shot_2018_04_18_at_11.06.51_AM.0 (1).png

The Name

This is a quick one: I love how they named him Solo. It brings up so many more questions about the naming schemes in the Empire. Is this a John Snow situation, where all nameless bastards are given a common last name? Are there other Solos out there? If Han had a twin, would he be Han Duo?

 
darth-maul-star-wars-rebels-twin-suns-238925.jpg

Darth Maul

This is the last one, both because I've written a lot (too much?) already, and this is my main point: the introduction of Darth Maul at the end of the movie represents Disney/Lucasfilms commitment to the promise that they are creating their own Extended Universe. 

While I haven't yet watched Star Wars Rebels, I'm sure as hell going to now. In animated the series, now the only canonical TV show in the Star Wars universe, it's revealed that Darth Maul survived his fight with Obi-wan in The Phantom Menace. He returns, a bit worse for wear, with robot legs and a new lightsaber, fashioned from the parts of new weaponry introduced in the show. 

That same Maul, those same legs, that same saber, appear in Solo. The events of a television show, which existed pretty much entirely outside of the main arc of the Star Wars saga, have directly affected a plot point in a Star Wars motion picture. Whether or not they'll go anywhere with it, I guess that remains to be seen. I hope they do, even in small ways. Maybe Qi'ra makes an appearance in Rebels? Again, I haven't seen the show yet, I'm not sure. But what this proves is that the relationship of Star Wars movies to other media is no longer a one-way street, and what happens in the other properties can (and should) have an effect on what we see on the big screen. 

Up until now, we've only seen shows, comic books, video games, and so forth, based on the Star Wars movies. Solo represents a significant change in the other direction. Moving forward, who knows what we'll see? Movies based on the video games? The conclusions of plot points started in the comic books? 

If Solo works-- not just for us, but also financially for Lucasfilm and Disney-- it can represent a huge opportunity for the franchise, and for the creators who love it. The Expanded Universe may be dead, but its spirit lives on in this gesture. Ideas can come from anywhere, and the canon has more than enough room to expand.

Star Wars isn't over. Star Wars is just getting started.