use HTTPS for remote auth
[yukkurigames.com.git] / pphs / postpartum.html
1 <!doctype html>
2 <html>
3 <head>
4 <title>Rogue (1980) (2013)</title>
5 <style>
6 body { font-family: sans-serif; width: 80%; margin-left: 10%; }
7 </style>
8 </head>
9 <body>
10 <h1>Rogue (1980) (2013)</h1>
11 <div style="width: 70%; margin-left: 15%;">
12 <blockquote style="font-style: italic;">
13 what idiot called it roguelike instead of roguehate
14 </blockquote> - <a href="https://twitter.com/pillowfort/status/322083264175144960">@pillowfort (Mat Jones)</a>
15 </div>
16 <p>
17 (What follows is some mostly unorganized thoughts about
18 designing and playing the game, and then some unorganized
19 explanation of the code changes. The title of this modified
20 game, by the way, is <em>Rogue (1980)</em>, to distinguish it
21 from <em>Rogue</em>.)
22 </p>
23 <p>
24 This game was an experiment. Not in the usual sense of
25 "experimental" game design as something mechanically unusual,
26 but rather as a system designed to prod at a particular problem
27 - abundance of violence / lack of romance - when played. It's
28 not trying to be a "correct" implementation of dating in a
29 roguelike setting. Rather I'm considering how "deep" our combat
30 mechanics actually are (they're not, and most modern games are
31 actually less so than <em>Rogue</em>), and what we demand of
32 them vs. what we demand of dating mechanics.
33 </p>
34 <p>
35 I was trying to reverse-triangulate a game design for a
36 universe in
37 which e.g. <a href="http://auntiepixelante.com/triad/">Triad</a> is
38 unexceptional. If comfortable cuddling rather than explosion was
39 the default theming of our puzzle games, what might that games
40 industry have produced during its formative years?
41 </p>
42 <p>
43 I chose <em>Rogue</em> to start with because its core design can
44 be traced up to many modern titles, often barely changed or even
45 simplified. That's kind of bullshit, isn't it? Thirty years and
46 we're still making games with the same kind of rules about the
47 same kind of violence, then claiming we don't try emotion
48 because it's "difficult" to mechanize. I also chose it because
49 it's a game I enjoy and know well.
50 </p>
51 <p>
52 I don't want to unpack too much about my own game here
53 because, who cares? I'm no expert at games criticism. But I do
54 want to mention a few things.
55 </p>
56 <p>
57 Adding flirting to the game made the combat mechanics so much
58 grosser. In roguelikes you kill a <em>lot</em> of stuff, usually
59 unprompted and as an invader. But no one would
60 call <em>Rogue</em> a violent game. Well, when you put in a
61 flirt command, that ends. Just by having a non-violent choice
62 the resort to combat mechanics, otherwise unmodified, becomes
63 more disturbing. I'm convinced if we had made even token efforts
64 towards including this stuff early on, there's no way we'd be
65 looking at such gross shit like <em>Far Cry 3</em> today. The
66 dissonance would be too great.
67 </p>
68 <p>
69 Similarly the source code is still loaded with references to
70 "kill", "enemy", "attack", etc., even for non-violent
71 actions. Problematic units run through the architecture,
72 content, and output of the program creating a structural,
73 intersecting push back against my attempts to add non-violent
74 options. The age of the code means it's fragile and creaky, and
75 the changes required to fix this would be destabilizing beyond
76 what I could deal with given the time I had to make it.
77 </p>
78 <p>
79 Although you can attract multiple monsters, at the end of the
80 game you can only leave with one. This is my least favorite
81 decision - I'd rather you be able to leave with all nearby
82 monsters when you quit. But again, the base game encodes a very
83 specific (and inaccurate) notion of violence - one specific
84 entity is the cause of killing you. Mapping that system into
85 "non-violence" then forces monogamy.
86 </p>
87 <h2>Mechanical Stuff</h2>
88 <p>
89 <em>Rogue (1980)</em> adds two character attributes and three
90 verbs to <em>Rogue</em>. The first attribute
91 is <em>orientation</em>. It's a set of six on/off flags. Every
92 monster has a randomly-generated orientation. The player also
93 has an orientation attribute, which would maybe better be called
94 presentation - the degree to which the monster's orientation
95 mixes with the player's determines the probability of a
96 successful <kbd>f</kbd>lirt. There's no notion of gender or sex
97 beyond this representation; that may mean there's no notion of
98 gender or sex at all depending on how you interpret it.
99 </p>
100 <p>
101 Successful flirting raises the other new
102 attribute, <em>interest</em>. When interest gets high enough,
103 the monster stops attacking the player and starts
104 accepting <kbd>g</kbd>iven gifts.
105 </p>
106 <p>
107 Orientation also determines how a monster reacts to gifts, as
108 the item ID is hashed to produce an "item presentation". Gifts
109 raise interest much faster than flirting.
110 </p>
111 <p>
112 Once interest is high enough, you can <kbd>E</kbd>mbrace the
113 monster to end the game. You get a score bonus proportional to
114 the experience points the monster would have given for a kill.
115 An optimum score is now reliant on getting the amulet and then
116 dating a <tt>D</tt> or <tt>P</tt> on the way back up. Dating
117 them is not actually harder than dating any given <kbd>B</kbd>
118 or <kbd>K</kbd>.
119 </p>
120 <p>
121 At one point during development embracing enemies was an
122 alternate method to get rid of them rather than another endgame
123 state. If you succeeded they disappeared and dropped a new kind
124 of food item, a date. It was too goofy, and too much
125 "romance-as-conquest". At another point when I was frustrated
126 with debugging the pre-ANSI C, I was just going to write a much
127 longer false context and release <em>Rogue</em> unmodified, but
128 I'm not a good enough writer and that was too lazy even for me.
129 </p>
130 <p>
131 The source code alternates between calling <kbd>@</kbd> and the
132 player "he" and "she" with a preference for the masculine.
133 There's only one instance of a neutral "him/her". Interestingly
134 it's in the context of <kbd>W</kbd>earing, which is the action
135 most closely associated with real-world gender roles, even
136 though <em>Rogue</em> has no gendered clothing. (Wichmann also
137 says armor was a late addition to the game, so maybe it's just
138 because it's from a different developer than the other
139 comments.) This is years before e.g. the D&amp;D manuals would
140 do the same. In roguelike communities today, I don't think I've
141 ever seen anyone call the original <kbd>@</kbd> a woman.
142 </p>
143 <p>
144 Do you have a problem with any of this stuff? Cool! I'm just a
145 mostly-conventional cis man who spent my formative years
146 playing <em>Rogue</em>, the real one. Which is to say, I'm sure
147 I'm blinded to a lot of things going on here. Roguelike culture
148 has always been big on remixing and reinterpreting. I would love
149 to see reconstructions of <em>Hack (1985)</em> and <em>Angband
150 (1990)</em> and so on, even just descriptions of what they might
151 be like. Or any feedback / reactions really.
152 </p>
153 <h2>More Reading</h2>
154 <ul>
155 <li><a href="http://www.gamasutra.com/view/feature/4013/the_history_of_rogue_have__you_.php">The
156 History of Rogue: Have @ You, You Deadly Zs</a> on Gamasutra;
157 Ken Arnold and Glenn Wichmann weigh in in the comments.</li>
158 <li><a href="http://www.wichman.org/roguehistory.html">Glenn
159 Wichmann's <em>A Brief History of "Rogue"</em></a>, this one
160 accurate to our universe.</li>
161 <li><a href="http://www.blackgreengames.com/games.html">Black
162 &amp; Green Games</a> publishes some neat things that might as
163 well be <em>Counts and Courtship</em>. (Other people have as
164 well, but those are the ones I'm most familiar with.)</li>
165 </body>
166 </html>