From: Joe Wreschnig Date: Fri, 19 Sep 2014 20:47:02 +0000 (+0200) Subject: Include Enjoyable and Rogue 1980 sites. X-Git-Url: https://git.yukkurigames.com/?p=yukkurigames.com.git;a=commitdiff_plain;h=3046b3175c91c3f8f94f4f2a90c427129e1ddc6d Include Enjoyable and Rogue 1980 sites. --- diff --git a/Makefile b/Makefile index 34f9a3b..cab91ec 100644 --- a/Makefile +++ b/Makefile @@ -18,6 +18,8 @@ GIT_REMOTE := http://git.yukkurigames.com SUBPROJECTS := 123456789 choicecss heroik matrixcreatrix mlpccg webcart1000 labelle +.PHONY: all clean superclean update + all: $(ICONS) $(SUBPROJECTS): @@ -35,3 +37,5 @@ update: clean: $(RM) $(ICONS) +superclean: clean + $(RM) -r $(SUBPROJECTS) diff --git a/enjoyable/Enjoyable-1.1.zip b/enjoyable/Enjoyable-1.1.zip new file mode 100644 index 0000000..ab45e88 Binary files /dev/null and b/enjoyable/Enjoyable-1.1.zip differ diff --git a/enjoyable/Enjoyable.zip b/enjoyable/Enjoyable.zip new file mode 100644 index 0000000..fc4391a Binary files /dev/null and b/enjoyable/Enjoyable.zip differ diff --git a/enjoyable/appcast.xml b/enjoyable/appcast.xml new file mode 100644 index 0000000..130ee52 --- /dev/null +++ b/enjoyable/appcast.xml @@ -0,0 +1,37 @@ + + + + Changes in Enjoyable + http://yukkurigames.com/enjoyable/appcast.xml + Most recent changes with links to updates. + en + + Version 1.1 + + Mouse simulation now includes drag-and-drop, middle and extended + button presses, and horizontal scrolling. +

+

+ The system menu bar now contains a status item when Enjoyable is + running. You can enable and disable it and change mappings from this + item. It flashes briefly when the mapping changes automatically. +

+

+ Automatic switching for applications with ambiguous names + (e.g. "Flash Player") was improved. You can also name a mapping after + the application's filename. +

+ ]]> +
+ Mon, 01 Apr 2013 10:26:13 -0500 + +
+
+
diff --git a/enjoyable/icon.png b/enjoyable/icon.png new file mode 100644 index 0000000..5b878ef Binary files /dev/null and b/enjoyable/icon.png differ diff --git a/enjoyable/index.html b/enjoyable/index.html new file mode 100644 index 0000000..3cdd8a3 --- /dev/null +++ b/enjoyable/index.html @@ -0,0 +1,84 @@ + + + + + + + Enjoyable - Joystick and gamepad mapping for Mac OS X ~ Yukkuri Games + + + +
+ + + Yukkuri Games + +

Enjoyable

+
+
+

+ Use your gamepad or joystick like a mouse and keyboard on Mac OS + X.
+ + A screenshot of Enjoyable +

+ + +

Requirements

+ + + +

Mappings

+

+ I play games with a Playstation 3 controller, so these will be + useless if you have a different controller. These are the + mappings I use for games I like. To use them, just save them and + double-click on them in Finder, or use ⌘O in Enjoyable to import + them. +

+ + +

License

+ +
+ + diff --git a/enjoyable/mappings/6180 the moon.enjoyable b/enjoyable/mappings/6180 the moon.enjoyable new file mode 100644 index 0000000..047f1fa --- /dev/null +++ b/enjoyable/mappings/6180 the moon.enjoyable @@ -0,0 +1,45 @@ +{ + "name" : "6180 the moon", + "entries" : { + "1356:616:1~Button 8" : { + "type" : "key press", + "key" : 123 + }, + "1356:616:1~Button 7" : { + "type" : "key press", + "key" : 125 + }, + "1356:616:1~Button 6" : { + "type" : "key press", + "key" : 124 + }, + "1356:616:1~Button 5" : { + "type" : "key press", + "key" : 126 + }, + "1356:616:1~Button 16" : { + "type" : "key press", + "key" : 49 + }, + "1356:616:1~Button 4" : { + "type" : "key press", + "key" : 53 + }, + "1356:616:1~Button 15" : { + "type" : "key press", + "key" : 126 + }, + "1356:616:1~Button 1" : { + "type" : "key press", + "key" : 15 + }, + "1356:616:1~Button 12" : { + "type" : "key press", + "key" : 49 + }, + "1356:616:1~Button 14" : { + "type" : "key press", + "key" : 49 + } + } +} \ No newline at end of file diff --git a/enjoyable/mappings/Anodyne.enjoyable b/enjoyable/mappings/Anodyne.enjoyable new file mode 100644 index 0000000..a29d587 --- /dev/null +++ b/enjoyable/mappings/Anodyne.enjoyable @@ -0,0 +1,61 @@ +{ + "name" : "Anodyne", + "entries" : { + "1356:616:1~Button 6" : { + "type" : "key press", + "key" : 124 + }, + "1356:616:1~Axis 1~Low" : { + "type" : "key press", + "key" : 123 + }, + "1356:616:1~Button 1" : { + "type" : "key press", + "key" : 53 + }, + "1356:616:1~Button 7" : { + "type" : "key press", + "key" : 125 + }, + "1356:616:1~Button 15" : { + "type" : "key press", + "key" : 8 + }, + "1356:616:1~Button 8" : { + "type" : "key press", + "key" : 123 + }, + "1356:616:1~Axis 1~High" : { + "type" : "key press", + "key" : 124 + }, + "1356:616:1~Button 16" : { + "type" : "key press", + "key" : 7 + }, + "1356:616:1~Button 13" : { + "type" : "key press", + "key" : 36 + }, + "1356:616:1~Axis 2~High" : { + "type" : "key press", + "key" : 125 + }, + "1356:616:1~Button 4" : { + "type" : "key press", + "key" : 36 + }, + "1356:616:1~Axis 2~Low" : { + "type" : "key press", + "key" : 126 + }, + "1356:616:1~Button 5" : { + "type" : "key press", + "key" : 126 + }, + "1356:616:1~Button 14" : { + "type" : "key press", + "key" : 7 + } + } +} \ No newline at end of file diff --git a/enjoyable/mappings/BasketBelle.enjoyable b/enjoyable/mappings/BasketBelle.enjoyable new file mode 100644 index 0000000..5762423 --- /dev/null +++ b/enjoyable/mappings/BasketBelle.enjoyable @@ -0,0 +1,53 @@ +{ + "name" : "BasketBelle", + "entries" : { + "1356:616:1~Button 6" : { + "type" : "key press", + "key" : 124 + }, + "1356:616:1~Axis 1~Low" : { + "type" : "key press", + "key" : 123 + }, + "1356:616:1~Button 7" : { + "type" : "key press", + "key" : 125 + }, + "1356:616:1~Button 15" : { + "type" : "key press", + "key" : 7 + }, + "1356:616:1~Button 8" : { + "type" : "key press", + "key" : 123 + }, + "1356:616:1~Axis 1~High" : { + "type" : "key press", + "key" : 124 + }, + "1356:616:1~Button 16" : { + "type" : "key press", + "key" : 7 + }, + "1356:616:1~Axis 2~High" : { + "type" : "key press", + "key" : 125 + }, + "1356:616:1~Button 4" : { + "type" : "key press", + "key" : 36 + }, + "1356:616:1~Axis 2~Low" : { + "type" : "key press", + "key" : 126 + }, + "1356:616:1~Button 5" : { + "type" : "key press", + "key" : 126 + }, + "1356:616:1~Button 14" : { + "type" : "key press", + "key" : 53 + } + } +} \ No newline at end of file diff --git a/enjoyable/mappings/Canabalt.enjoyable b/enjoyable/mappings/Canabalt.enjoyable new file mode 100644 index 0000000..1054bdc --- /dev/null +++ b/enjoyable/mappings/Canabalt.enjoyable @@ -0,0 +1,45 @@ +{ + "name" : "Canabalt", + "entries" : { + "1356:616:1~Button 13" : { + "type" : "key press", + "key" : 7 + }, + "1356:616:1~Button 9" : { + "type" : "key press", + "key" : 27 + }, + "1356:616:1~Button 7" : { + "type" : "key press", + "key" : 125 + }, + "1356:616:1~Button 5" : { + "type" : "key press", + "key" : 126 + }, + "1356:616:1~Button 16" : { + "type" : "key press", + "key" : 7 + }, + "1356:616:1~Button 4" : { + "type" : "key press", + "key" : 49 + }, + "1356:616:1~Button 15" : { + "type" : "key press", + "key" : 7 + }, + "1356:616:1~Button 1" : { + "type" : "key press", + "key" : 53 + }, + "1356:616:1~Button 10" : { + "type" : "key press", + "key" : 24 + }, + "1356:616:1~Button 14" : { + "type" : "key press", + "key" : 7 + } + } +} \ No newline at end of file diff --git a/enjoyable/mappings/Forget-Me-Not.enjoyable b/enjoyable/mappings/Forget-Me-Not.enjoyable new file mode 100644 index 0000000..4badd4e --- /dev/null +++ b/enjoyable/mappings/Forget-Me-Not.enjoyable @@ -0,0 +1,49 @@ +{ + "name" : "Forget-Me-Not", + "entries" : { + "1356:616:1~Axis 2~Low" : { + "type" : "key press", + "key" : 126 + }, + "1356:616:1~Button 8" : { + "type" : "key press", + "key" : 123 + }, + "1356:616:1~Button 7" : { + "type" : "key press", + "key" : 125 + }, + "1356:616:1~Button 6" : { + "type" : "key press", + "key" : 124 + }, + "1356:616:1~Button 5" : { + "type" : "key press", + "key" : 126 + }, + "1356:616:1~Button 4" : { + "type" : "key press", + "key" : 36 + }, + "1356:616:1~Button 16" : { + "type" : "key press", + "key" : 36 + }, + "1356:616:1~Button 15" : { + "type" : "key press", + "key" : 36 + }, + "1356:616:1~Axis 1~Low" : { + "type" : "key press", + "key" : 123 + }, + "1356:616:1~Axis 2~High" : { + "type" : "key press", + "key" : 125 + }, + "1356:616:1~Axis 1~High" : { + "type" : "key press", + "key" : 124 + } + } +} \ No newline at end of file diff --git a/enjoyable/mappings/KRUNCH.enjoyable b/enjoyable/mappings/KRUNCH.enjoyable new file mode 100644 index 0000000..ff74d03 --- /dev/null +++ b/enjoyable/mappings/KRUNCH.enjoyable @@ -0,0 +1,37 @@ +{ + "name" : "KRUNCH", + "entries" : { + "1356:616:1~Button 8" : { + "type" : "key press", + "key" : 0 + }, + "1356:616:1~Button 7" : { + "type" : "key press", + "key" : 1 + }, + "1356:616:1~Button 6" : { + "type" : "key press", + "key" : 2 + }, + "1356:616:1~Button 5" : { + "type" : "key press", + "key" : 13 + }, + "1356:616:1~Button 16" : { + "type" : "key press", + "key" : 6 + }, + "1356:616:1~Button 4" : { + "type" : "key press", + "key" : 53 + }, + "1356:616:1~Button 15" : { + "type" : "key press", + "key" : 6 + }, + "1356:616:1~Button 14" : { + "type" : "key press", + "key" : 53 + } + } +} \ No newline at end of file diff --git a/enjoyable/mappings/Probability 0.enjoyable b/enjoyable/mappings/Probability 0.enjoyable new file mode 100644 index 0000000..baf2249 --- /dev/null +++ b/enjoyable/mappings/Probability 0.enjoyable @@ -0,0 +1,41 @@ +{ + "name" : "Probability 0", + "entries" : { + "1356:616:1~Button 8" : { + "type" : "key press", + "key" : 123 + }, + "1356:616:1~Button 7" : { + "type" : "key press", + "key" : 125 + }, + "1356:616:1~Button 6" : { + "type" : "key press", + "key" : 124 + }, + "1356:616:1~Button 5" : { + "type" : "key press", + "key" : 126 + }, + "1356:616:1~Button 4" : { + "type" : "key press", + "key" : 49 + }, + "1356:616:1~Button 16" : { + "type" : "key press", + "key" : 7 + }, + "1356:616:1~Button 15" : { + "type" : "key press", + "key" : 6 + }, + "1356:616:1~Axis 1~Low" : { + "type" : "key press", + "key" : 55 + }, + "1356:616:1~Button 14" : { + "type" : "key press", + "key" : 12 + } + } +} \ No newline at end of file diff --git a/enjoyable/mappings/Red Rogue.enjoyable b/enjoyable/mappings/Red Rogue.enjoyable new file mode 100644 index 0000000..2c0b40a --- /dev/null +++ b/enjoyable/mappings/Red Rogue.enjoyable @@ -0,0 +1,53 @@ +{ + "name" : "Red Rogue", + "entries" : { + "1356:616:1~Button 11" : { + "type" : "key press", + "key" : 3 + }, + "1356:616:1~Button 6" : { + "type" : "key press", + "key" : 124 + }, + "1356:616:1~Button 7" : { + "type" : "key press", + "key" : 125 + }, + "1356:616:1~Button 15" : { + "type" : "key press", + "key" : 7 + }, + "1356:616:1~Button 12" : { + "type" : "key press", + "key" : 3 + }, + "1356:616:1~Button 8" : { + "type" : "key press", + "key" : 123 + }, + "1356:616:1~Button 16" : { + "type" : "key press", + "key" : 6 + }, + "1356:616:1~Button 13" : { + "type" : "key press", + "key" : 49 + }, + "1356:616:1~Button 4" : { + "type" : "key press", + "key" : 49 + }, + "1356:616:1~Button 10" : { + "type" : "key press", + "key" : 8 + }, + "1356:616:1~Button 5" : { + "type" : "key press", + "key" : 126 + }, + "1356:616:1~Button 14" : { + "type" : "key press", + "key" : 9 + } + } +} \ No newline at end of file diff --git a/enjoyable/mappings/Runner2.enjoyable b/enjoyable/mappings/Runner2.enjoyable new file mode 100644 index 0000000..f43bc66 --- /dev/null +++ b/enjoyable/mappings/Runner2.enjoyable @@ -0,0 +1,77 @@ +{ + "name" : "Runner2", + "entries" : { + "1356:616:1~Button 6" : { + "type" : "key press", + "key" : 2 + }, + "1356:616:1~Axis 1~Low" : { + "type" : "key press", + "key" : 123 + }, + "1356:616:1~Axis 4~Low" : { + "type" : "key press", + "key" : 49 + }, + "1356:616:1~Button 7" : { + "type" : "key press", + "key" : 1 + }, + "1356:616:1~Button 15" : { + "type" : "key press", + "key" : 38 + }, + "1356:616:1~Button 12" : { + "type" : "key press", + "key" : 59 + }, + "1356:616:1~Axis 3~High" : { + "type" : "key press", + "key" : 49 + }, + "1356:616:1~Button 8" : { + "type" : "key press", + "key" : 0 + }, + "1356:616:1~Axis 4~High" : { + "type" : "key press", + "key" : 49 + }, + "1356:616:1~Axis 3~Low" : { + "type" : "key press", + "key" : 49 + }, + "1356:616:1~Button 16" : { + "type" : "key press", + "key" : 40 + }, + "1356:616:1~Axis 1~High" : { + "type" : "key press", + "key" : 124 + }, + "1356:616:1~Axis 2~High" : { + "type" : "key press", + "key" : 125 + }, + "1356:616:1~Button 13" : { + "type" : "key press", + "key" : 12 + }, + "1356:616:1~Button 4" : { + "type" : "key press", + "key" : 36 + }, + "1356:616:1~Axis 2~Low" : { + "type" : "key press", + "key" : 126 + }, + "1356:616:1~Button 5" : { + "type" : "key press", + "key" : 13 + }, + "1356:616:1~Button 14" : { + "type" : "key press", + "key" : 53 + } + } +} \ No newline at end of file diff --git a/enjoyable/mappings/Super Hexagon.enjoyable b/enjoyable/mappings/Super Hexagon.enjoyable new file mode 100644 index 0000000..50c0c99 --- /dev/null +++ b/enjoyable/mappings/Super Hexagon.enjoyable @@ -0,0 +1,45 @@ +{ + "name" : "Super Hexagon", + "entries" : { + "1356:616:1~Button 9" : { + "type" : "key press", + "key" : 124 + }, + "1356:616:1~Button 8" : { + "type" : "key press", + "key" : 123 + }, + "1356:616:1~Axis 1~High" : { + "type" : "key press", + "key" : 124 + }, + "1356:616:1~Button 6" : { + "type" : "key press", + "key" : 124 + }, + "1356:616:1~Button 12" : { + "type" : "key press", + "key" : 124 + }, + "1356:616:1~Button 4" : { + "type" : "key press", + "key" : 49 + }, + "1356:616:1~Button 11" : { + "type" : "key press", + "key" : 123 + }, + "1356:616:1~Button 15" : { + "type" : "key press", + "key" : 49 + }, + "1356:616:1~Axis 1~Low" : { + "type" : "key press", + "key" : 123 + }, + "1356:616:1~Button 14" : { + "type" : "key press", + "key" : 53 + } + } +} \ No newline at end of file diff --git a/enjoyable/screenshot.png b/enjoyable/screenshot.png new file mode 100644 index 0000000..74835a4 Binary files /dev/null and b/enjoyable/screenshot.png differ diff --git a/pphs/index.html b/pphs/index.html new file mode 100644 index 0000000..c1f7213 --- /dev/null +++ b/pphs/index.html @@ -0,0 +1,100 @@ + + + + Rogue (1980) + + + +

Rogue (1980)

+

Exploring the Cavern of Cuties

+
+
+ With as much time as game designers and critics + think and write about the specifics of game interactions, it's + often useful to step back and look at the basics. Let’s ask a + simple question: why are there so many video games dealing with + social interaction and relationships, and so few that explore + violence and action-oriented gameplay? +
+ - Gregory + Weir, Why So Few Violent Games? +
+

+ This question is critical to understanding the value, despite + otherwise negative attitudes, of Rogue, a + roleplaying game from the early 1980s. Rogue is usually + noted at best as a historical anomaly, one of the first games + that visualized a sense of space but with otherwise uncompelling + mechanics; at worst, it has been called a "murder simulator" and + "training for psychopaths". +

+

+ Rather than try to adapt the existing dialogue and interpersonal + mechanics of text-driven fantasy adventure games to their new + interface for spatial navigation, the creators decided to add in + a variety of weaponry and offer exclusively utilitarian + fashion. In addition to the usual romantic options, the game + allows you to hit monsters with swords. This puzzling choice + might be related to its authorship - it was designed by college + students studying computer science rather than out of the more + usual fields like sociology or psychology. +

+

+ Rogue was poorly received at the time of release. Historians + decried the mixture of weapons and armor from disparate + periods. Experts in weaponry were frustrated by its limited + tactics. Drawing Room magazine, a contemporary publication + for gaming hobbyists, said in its column "The Role of + Computers", +

+
+ The sweeping cinematic fight scenes found around the table in + games like Counts and Courtship are totally absent. The + difference between the precision of a duel, the chaos of a + bar-room brawl, or the stealthy preparation for an assassination + - all lost to a mush best described as "bumping and grinding" + that would have been better served to provide more variety to + the game's interpersonal interactions. +
+

+ Nonetheles, I think it provides an interesting view into the + world Weir hypothesizes - one in which games work with conflict + as often as cooperation, physics as much as politics. +

+
+

+ The games controls are available by entering ?, then + * for a list of commands. In addition to expected + ones like flirt, gift, and + Embrace, the game supports wield, + zap, and other violent verbs. If esc + doesn't work to cancel a command, try ctrl+g; this + appears to be another artifact of 1980s code. +

+

+ Download Rogue (1980) for
+ Linux + - Windows + - Mac OS X + - Source +

+

+ Please note that this source code is from 1981 and written in + pre-standardized C. Only minor effort has been undertaken to + make it compile on modern computers, mostly related to 64 bit + cleanliness. It may crash, and it certainly will have security + problems if installed, as used to be traditional, with + setuid/setgid on a multi-user system. +

+
+

+ If you're confused, don't worry! Everything above this line is a + half-truth at best. This was a game designed + for ♥♡♥ + THE PULSE POUNDING HEART STOPPING DATING SIM JAM ♥♡♥ in + 2013. I've written some more about what it "really" is and why I made it. +

+ + diff --git a/pphs/postpartum.html b/pphs/postpartum.html new file mode 100644 index 0000000..50e641d --- /dev/null +++ b/pphs/postpartum.html @@ -0,0 +1,166 @@ + + + + Rogue (1980) (2013) + + + +

Rogue (1980) (2013)

+
+
+ what idiot called it roguelike instead of roguehate +
- @pillowfort (Mat Jones) +
+

+ (What follows is some mostly unorganized thoughts about + designing and playing the game, and then some unorganized + explanation of the code changes. The title of this modified + game, by the way, is Rogue (1980), to distinguish it + from Rogue.) +

+

+ This game was an experiment. Not in the usual sense of + "experimental" game design as something mechanically unusual, + but rather as a system designed to prod at a particular problem + - abundance of violence / lack of romance - when played. It's + not trying to be a "correct" implementation of dating in a + roguelike setting. Rather I'm considering how "deep" our combat + mechanics actually are (they're not, and most modern games are + actually less so than Rogue), and what we demand of + them vs. what we demand of dating mechanics. +

+

+ I was trying to reverse-triangulate a game design for a + universe in + which e.g. Triad is + unexceptional. If comfortable cuddling rather than explosion was + the default theming of our puzzle games, what might that games + industry have produced during its formative years? +

+

+ I chose Rogue to start with because its core design can + be traced up to many modern titles, often barely changed or even + simplified. That's kind of bullshit, isn't it? Thirty years and + we're still making games with the same kind of rules about the + same kind of violence, then claiming we don't try emotion + because it's "difficult" to mechanize. I also chose it because + it's a game I enjoy and know well. +

+

+ I don't want to unpack too much about my own game here + because, who cares? I'm no expert at games criticism. But I do + want to mention a few things. +

+

+ Adding flirting to the game made the combat mechanics so much + grosser. In roguelikes you kill a lot of stuff, usually + unprompted and as an invader. But no one would + call Rogue a violent game. Well, when you put in a + flirt command, that ends. Just by having a non-violent choice + the resort to combat mechanics, otherwise unmodified, becomes + more disturbing. I'm convinced if we had made even token efforts + towards including this stuff early on, there's no way we'd be + looking at such gross shit like Far Cry 3 today. The + dissonance would be too great. +

+

+ Similarly the source code is still loaded with references to + "kill", "enemy", "attack", etc., even for non-violent + actions. Problematic units run through the architecture, + content, and output of the program creating a structural, + intersecting push back against my attempts to add non-violent + options. The age of the code means it's fragile and creaky, and + the changes required to fix this would be destabilizing beyond + what I could deal with given the time I had to make it. +

+

+ Although you can attract multiple monsters, at the end of the + game you can only leave with one. This is my least favorite + decision - I'd rather you be able to leave with all nearby + monsters when you quit. But again, the base game encodes a very + specific (and inaccurate) notion of violence - one specific + entity is the cause of killing you. Mapping that system into + "non-violence" then forces monogamy. +

+

Mechanical Stuff

+

+ Rogue (1980) adds two character attributes and three + verbs to Rogue. The first attribute + is orientation. It's a set of six on/off flags. Every + monster has a randomly-generated orientation. The player also + has an orientation attribute, which would maybe better be called + presentation - the degree to which the monster's orientation + mixes with the player's determines the probability of a + successful flirt. There's no notion of gender or sex + beyond this representation; that may mean there's no notion of + gender or sex at all depending on how you interpret it. +

+

+ Successful flirting raises the other new + attribute, interest. When interest gets high enough, + the monster stops attacking the player and starts + accepting given gifts. +

+

+ Orientation also determines how a monster reacts to gifts, as + the item ID is hashed to produce an "item presentation". Gifts + raise interest much faster than flirting. +

+

+ Once interest is high enough, you can Embrace the + monster to end the game. You get a score bonus proportional to + the experience points the monster would have given for a kill. + An optimum score is now reliant on getting the amulet and then + dating a D or P on the way back up. Dating + them is not actually harder than dating any given B + or K. +

+

+ At one point during development embracing enemies was an + alternate method to get rid of them rather than another endgame + state. If you succeeded they disappeared and dropped a new kind + of food item, a date. It was too goofy, and too much + "romance-as-conquest". At another point when I was frustrated + with debugging the pre-ANSI C, I was just going to write a much + longer false context and release Rogue unmodified, but + I'm not a good enough writer and that was too lazy even for me. +

+

+ The source code alternates between calling @ and the + player "he" and "she" with a preference for the masculine. + There's only one instance of a neutral "him/her". Interestingly + it's in the context of Wearing, which is the action + most closely associated with real-world gender roles, even + though Rogue has no gendered clothing. (Wichmann also + says armor was a late addition to the game, so maybe it's just + because it's from a different developer than the other + comments.) This is years before e.g. the D&D manuals would + do the same. In roguelike communities today, I don't think I've + ever seen anyone call the original @ a woman. +

+

+ Do you have a problem with any of this stuff? Cool! I'm just a + mostly-conventional cis man who spent my formative years + playing Rogue, the real one. Which is to say, I'm sure + I'm blinded to a lot of things going on here. Roguelike culture + has always been big on remixing and reinterpreting. I would love + to see reconstructions of Hack (1985) and Angband + (1990) and so on, even just descriptions of what they might + be like. Or any feedback / reactions really. +

+

More Reading

+