tag:blogger.com,1999:blog-22088905642656150272024-03-08T20:00:56.215+11:00Ascii DreamsA roguelike developer's diary.Andrew Doullhttp://www.blogger.com/profile/11099404183952971291noreply@blogger.comBlogger968125tag:blogger.com,1999:blog-2208890564265615027.post-42425564297283086232024-02-28T22:15:00.000+11:002024-02-28T22:15:04.500+11:00Sixty Years In Space: A Primer<p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWlpph-uF-V_ROD5ugtT3rCayaejq-MrSJEfVlM8D6zSMUbjZo5ai85FDD3DXOqrhOJk_50l7Vtqe9NSx4wBCj8Hr7STlkyvsmyBYwMyPE3uABG9PZJdtzcqyb2N3_-mFGF-ZJEx6DNyN03FNGAqqD6uRdp1BIxB3A3DlaiL4dpzs8RWOiCkOxHXfZtoc5/s500/60%20Years%20In%20Cover.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="500" data-original-width="354" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWlpph-uF-V_ROD5ugtT3rCayaejq-MrSJEfVlM8D6zSMUbjZo5ai85FDD3DXOqrhOJk_50l7Vtqe9NSx4wBCj8Hr7STlkyvsmyBYwMyPE3uABG9PZJdtzcqyb2N3_-mFGF-ZJEx6DNyN03FNGAqqD6uRdp1BIxB3A3DlaiL4dpzs8RWOiCkOxHXfZtoc5/s320/60%20Years%20In%20Cover.jpg" width="227" /></a></div><a href="https://half-apress.itch.io/60-years-in-space">Sixty Years In Space</a> is the officially licensed tabletop roleplaying game of the High Frontier board game, which means it already starts with all the hard rocket science that the board game includes. And the inspiration doesn't stop there: you'll be exploring the solar system, finding water and building factories just like in the board game except zoomed in to the scale of individual crew members rather than from the perspective of the mission control. But it doesn't limit itself to the practicalities of space exploration at a human scale.<span style="font-family: inherit;"> While you're in space, Earth society will be changing, including your m</span>ission control, and a significant part of the game is deciding how your crew reacts to the missions your are assigned and the technologies imposed on you.<p></p><p><span style="color: #222222;"><span style="background-color: white;">The game is extremely crunchy - the core rules and first 4 supplements run to nearly two thousand pages - and covers everything from microgravity health risks to robots to colonies. </span></span><span style="background-color: white;"><span style="color: #222222;">Rather than having a fixed future, your crew will be responsible for defining and reacting to it over the course of their lives, with potential life spans measured in the millions of years or more. It also doesn't have a game master, instead relying on random tables to create missions, other factions, rewards and even space dungeons!; condensing systems modelling insolation, agricultural area and population distribution down into relatively simple maps generated by dropping different coloured counters and dice and placing playing cards. And if you're fascinated by the High Frontier board game map, the A Lot of Zeroes supplement has an appendix which provides guidance on how to create maps for solar systems other than our own.</span></span></p><p><span style="background-color: white;"><span style="color: #222222;">It's hard to overstate just how much stuff is in this game, with small gems of insight on each page about what a part of a possible future in space might look like. But fortunately you can download <a href="https://half-apress.itch.io/60-years-in-space">the first 120 pages of the core rules for free</a> along with a chapter on space infrastructure and terraforming from the This Space Intentionally supplement, even if you don't envisage playing the game with your regular gaming group.</span></span></p><div class="blogger-post-footer">---
This post is from <A HREF="http://roguelikedeveloper.blogspot.com">Ascii Dreams</A>.</div>Andrew Doullhttp://www.blogger.com/profile/11099404183952971291noreply@blogger.com0tag:blogger.com,1999:blog-2208890564265615027.post-81056166756328943812023-06-10T11:55:00.003+10:002023-06-10T12:49:37.154+10:00Marvel Snap<p>Per my wont, I have become obsessed with another game: the 3 lane card battler Marvel Snap. I've been largely uninterested in large deck card games since 1995 because the deck building possibility space is too big - I always ran as slim and simple a Magic deck as possible using cards that were just clearly better than others like "true" dual lands and lightning bolt. Even Imbroglio's deck building is too complex for me, but the difference between 16 locations and the 12 cards in the Marvel Snap deck is apparently enough for me to dive deep into the collection and play mechanics.</p><p>I've mostly been posting bite-sized takes on Twitter which includes some microblogging about the game. A good recent example is my thoughts on Move decks at <a href="https://twitter.com/andrewdoull/status/1662591178708242433" target="_blank">https://twitter.com/andrewdoull/status/1662591178708242433</a> which seems to have largely predicted the outcome of the latest card addition Ghost-Spider. If you're not familiar with the game, I summarize it at <a href="https://twitter.com/andrewdoull/status/1661002185960980482" target="_blank">https://twitter.com/andrewdoull/status/1661002185960980482</a> and I highly recommend you read through that before proceeding further if you haven't played the game recently or at all.</p><p>I want to emphasize here that the game design is fundamentally solid and the designers are operating at a level of ongoing excellence that I've not seen in a live service game (Caveat: I wasn't around for the early days of Slay the Spire). A lot of Marvel Snap players are probably coughing into their tea at this statement - Second Dinner, the developers, apparently designed the game in 2 days and then took 4 years coming up with the card acquisition model, and that part of the overall experience is very rough at the moment. Undoubtedly there's a lot of internal pressures between monetization, community pressure to do the right thing, and (hopefully) pivoting to an improved card collection mechanic that they've been promising. The big error they've made is they're trying to hold back some clearly good but not great cards in order to do something with them, after creating the expectation that those cards were going to drop down to a more accessible tier in the acquisition mechanic.</p><p>That stuff doesn't especially interest me. As I've said elsewhere, you should play with the cards you have, not the cards you want, and besides I have some <a href="https://twitter.com/andrewdoull/status/1666266835455733760" target="_blank">hot takes</a> that the held back cards aren't that interesting (except for <a href="https://marvelsnapzone.com/cards/zabu/" target="_blank">Zabu</a>. And <a href="https://marvelsnapzone.com/cards/modok/" target="_blank">MODOK</a>, for reasons I outline below).</p><p>What does interest me is the deck building space on the margins of the game, such as <a href="https://twitter.com/andrewdoull/status/1663190528656310273" target="_blank">this deck</a> which depends on you drawing 3 cards and playing them on turns 4, 5 and 6, and works extremely hard to make that happen. Part of how it works is the surprise of playing Spectrum as opposed to much more frequently played cards on a Wong -> Mystique combo, and the opponents realization that the low powered cards you played are because they have the Ongoing keyword rather than their abilities. I outlined in more detail the principles at play at <a href="https://twitter.com/andrewdoull/status/1665511669135740928" target="_blank">https://twitter.com/andrewdoull/status/1665511669135740928</a>.</p><p>That this deck is possible, is because of the redesign of the card <a href="https://marvelsnapzone.com/cards/crystal/">Crystal</a>, which used to work like the location <a href="https://marvelsnapzone.com/locations/attilan/" target="_blank">Attilan</a> but only if you played it in the center location. Because of tempo, there was almost never any benefit to playing the old Crystral, whereas the redesigned Crystal is now useful in decks looking for specific card combinations, like the one above. The devs have provided some insight into their process for Crystal specifically on Discord, an entirely transient and non-linkable medium, but luckily there are screen shots at <a href="https://twitter.com/MarvelSnapBugle/status/1667021988995399688" target="_blank">https://twitter.com/MarvelSnapBugle/status/1667021988995399688</a> - in essence, the cost of redesigning a card from scratch is high enough that they're better off making a new card in almost all instances.</p><p>Which leads me to a couple of conclusions. One of which, naturally, is that I'm going to <a href="https://twitter.com/andrewdoull/status/1667299086024998912" target="_blank">backseat design some new cards</a>. The other of which is we haven't seen the full picture - the cards that currently look underpowered are either that way because there's <a href="https://twitter.com/MarvelSnapBugle/status/1666287185035771907" target="_blank">new cards coming that will indirectly buff them</a> (one new card referenced is likely <a href="https://marvelsnapzone.com/cards/legion/" target="_blank">Legion</a>), because it's too hard to buff them cleanly by just adjusting their power or cost, or because they're actually better than expected. <br /></p><p>A common complaint is Second Dinner is much happier to nerf cards than buff them. This is inevitably true, as any live service game is prone to power creep - I think the meta at the start of the current season at time of writing (Spider-Versus) was just fractionally too good to allow for much fun experimenting with decks and while the latest over the air (OTA) patch has gone some way to address this, bounce decks are likely still too strong. What interests me though is the cards that feel too weak at the moment but haven't been buffed - examples might include <a href="https://marvelsnapzone.com/cards/strong-guy/" target="_blank">Strong Guy</a> and <a href="https://marvelsnapzone.com/cards/black-cat/" target="_blank">Black Cat</a> - because they point to data that isn't publicly available which suggests they're performing better than expected in decks which aren't in the current meta.</p><p>This is especially true if there isn't an upcoming card which will potentially buff them. The next season's cards have been announced - some of my initial thoughts on Phoenix Force, the July season card are at <a href="https://twitter.com/andrewdoull/status/1662620224410238976" target="_blank">https://twitter.com/andrewdoull/status/1662620224410238976</a> which starts (hilariously in retrospect) ignoring the most obvious synergies in favour of a bunch of weird edge cases which may not even work at all. But, for instance, Strong Guy and Black Cat don't synergize with any upcoming cards - except Black Cat with <a href="https://marvelsnapzone.com/cards/night-nurse/" target="_blank">Night Nurse</a>, and that's only going to be useful if you have <a href="https://marvelsnapzone.com/cards/the-collector/" target="_blank">The Collector</a> out. I'm not entirely ruling this out, because +1 or -1 power is often significant enough a buff or nerf to make a difference, but I don't think its enough in this instance.<br /></p><p>So that is a strong hint that there's a deck using those discard cards that wins a lot of games. I've seen something similar with <a href="https://marvelsnapzone.com/cards/shanna/" target="_blank">Shanna</a> - there's some viable Shanna decks out there that won't really hit the meta until Shanna drops to tier 3 this month which effectively means it's in the main card acquisition pool. Shanna works because you can get to around 20 points in each lane if locations permit, and that's the typical threshold for winning 2 lanes. If the locations permit is the big caveat which is why this deck isn't played that often (and why Legion is likely to be a big buff for it).<br /></p><p>So let's talk MODOK. MODOK discards all your cards, and should theoretically synergize with Strong Guy who gets +6 power, but in reality MODOK is only used in Hela discard decks, which normally play Apocalypse and Apocalypse cannot be discarded (he gets buffed instead). Some Hela decks instead run without Apocalypse, but they are frustratingly unreliable because they keep discarding Hela, unless MODOK is hidden behind Invisible woman turn 5 along with Hela on turn 6. For a so-called invisibility power, this is incredibly telegraphed and takes a lot of set up and luck.</p><p>But I ran into a deck about a month ago that absolutely wrecked me using a combination of cards I haven't seen before: it ran MODOK without Hela or Apocalypse, and instead relied on Collector and <a href="https://marvelsnapzone.com/cards/morbius/" target="_blank">Morbius</a>. This is also a natural synergy, but it normally uses a lot more discard cards, whereas this deck relied on card acquisition cards like Sentinal to have a 7 card hand on the final turn and dropping Agent 13 and Morbius. That's a +16 power with two cards, and an empty hand, which makes me think that Strong Guy would work well in the mix (for another +6 in another lane). So my theory is that there's a deck, that is just wrecking house, but no one is picking up on it whereas some game designer at Second Dinner is just smiling and waiting for people to figure it out.</p><p>The problem is I don't have MODOK to test it. Which goes back to the card acquisition dilemma I mentioned earlier.<br /></p><div class="blogger-post-footer">---
This post is from <A HREF="http://roguelikedeveloper.blogspot.com">Ascii Dreams</A>.</div>Andrew Doullhttp://www.blogger.com/profile/11099404183952971291noreply@blogger.com0tag:blogger.com,1999:blog-2208890564265615027.post-2682776681083476322023-06-10T10:28:00.002+10:002023-06-10T10:28:57.734+10:00Sixty Years in Space: Devlog 3<p> </p><section class="object_text_widget_widget base_widget user_formatted post_body" id="object_text_widget_2208110"><p>A
lot of my concerns about the length and complexity of 60 Years in Space
could simply be addressed by looking at the 5th edition Dungeons &
Dragons Players Handbook and seeing how many rules players would be
willing to put up with just for character generation. But there's two
clear differences: there is an incentive to learn about what your
character can do, which is cleverly partitioned by class so that - for
instance - a barbarian never has to read about mage spells; and that a
lot of the invented or borrowed Dungeons & Dragons lexicon has
entered general language usage over the 49 years it has been played.</p>
<p>Science fiction has a similar challenge, except each science fiction
world invents its own terms and adopts its own definitions for more
general terms such as robot. In a fictional world, the author has
control over the pacing and scope of the new language, using this to
teach the reader at a pace they are comfortable with. By procedurally
generating the world I could do something similar: have a massive list
of all possible science fiction futures, but only have a limited number
come up with each possible play through. I could even let the players
win the game or have the world or the universe end - whereas most
science fiction TTRPGs consist of a string of subgenre sand boxes which
let players play in their favourite without spilling over into another.<br /></p>
<p>This still doesn't solve the language problem. If I wrote the
supplements using invisible ink and used a magic marker pen to reveal it
as you play, I might be able to avoid you worrying about the names of
every possible type of human-robot-animal-alien hybrid mix. But I have
to be consistent in defining what a theriomorph, for instance, is so
that when you see that word in the rules you know it means a human who
has changed themselves to have an animal-inspired form. It helps, of
course, if you are a classical scholar or speak Greek, but in the end I
ended up using a lot of words that fall outside normal vocabulary. And
as a result, much of the five books consists of the definitions of
things.<br /></p>
<p>I also coined some new words while doing this - apologies in advance
if one of these is your band name or user handle. This is not an
exhaustive list, but the most interesting.<br /></p>
<ul><li>amorcracy - rule by a group of people who sleep with each other</li><li>beginling - the first member of a species (from endling) </li><li>bisentient - intelligent being consisting of one body and two minds</li><li>fandemic - a behavioural modifying pathogen which makes infected both moderately addicted to a pleasurable activity
and driven to infect people around them to get them addicted to the
same activity</li><li>posterhuman - human who has completely replaced
their body with a robotic body, but retains a humanoid form for
aesthetic reasons</li><li>skototropolis - a city that hangs underneath an aerostat</li><li>simgularity - a singularity that has occurred in a simulated environment and is therefore not transferable to the real world</li><li><p>storgearchy - rule by people who have children</p></li><li><p>Theseuvian - either a robot who has replaced themselves with human parts or a human who has replaced themselves with robot parts</p></li></ul>
<ul><li>tunafication - increasing proportion of fast twitch muscle fibers in meat</li><li>xenonaut - someone who explores digital environments looking for naturally evolved life</li></ul></section><div class="blogger-post-footer">---
This post is from <A HREF="http://roguelikedeveloper.blogspot.com">Ascii Dreams</A>.</div>Andrew Doullhttp://www.blogger.com/profile/11099404183952971291noreply@blogger.com0tag:blogger.com,1999:blog-2208890564265615027.post-413789098195340052023-03-03T09:09:00.005+11:002023-03-04T20:16:38.142+11:00Sixty Years In Space: Devlog 2<p>When I started writing Sixty Years in Space, there weren't as far as I was aware any TTRPG adaptations of board games. Dungeons and Dragons itself was an adaptation of a miniatures game, and that tradition had kept going, and a collectible card game had a an adaptation, but the overwhelming flow of adaptations was in the other direction. Board games, especially in the modern renaissance of board games, were prolifically adapting everything they could, either directly or inspired by. And video games in turn have begun borrowing ideas from board games and rapidly iterating on them, taking advantage of the fact that while a board game rarely gets more than 10 plays at the table, a board game-inspired video game might be able to get 10 plays an hour.</p><p>Board games have a number of cool ideas that could easily be adapted into TTRPGs. As someone pointed out on Twitter, board games have much, much cooler character sheets. Indie board game fans are are more comfortable with the idea of paying for things than indie TTRPG fans. I would argue that boardgames do a lot more work with a lot simpler maps and rules (although you are free to disagree). And board games sometimes do something else, which I'm going to term diegetic play.</p><p>Something strange occurred as I was writing Sixty Years In: I began to notice that reading the rules was part of playing the game.</p><p>For a start, that's a great excuse for allowing me to get away with making more rules. If reading the rules is part of playing the game, then more rules equals more game play. But I already had a great excuse: as long as nothing I wrote was as complicated as rocket movement in the High Frontier board game, I could get away with as writing as much as I wanted (and let's not start with the sins that the phrase living rules enables). So something else was up.</p><p>Monopoly is a much bullied game in the board game community in a way that ignores its popularity. Most of the Monopoly rules are terrible. But when you go to the bank in monopoly, you get handed money which is counted out by the banker, just like people of a certain age used to do in real life. And that's what I mean by diegetic play: the thing you do in the game mimics as closely as practical the thing you do in reality.</p><p>Reading the rules in Sixty Years In with a group of friends and figuring them out is as close to the experience of sitting in NASA mission control, with the spacecraft design and operating manuals out, trying to figure out a technical solution to an unexpected situation as I can make it.
And that's not the only place I was able to introduce diegetic play. Creating a map can become diegetic play, if I make the process of creating the map follow the same order of operations as surveying a planet or star would follow in the real world. Running an exfiltration, while you watch from afar as red and blue teams move throughout a map, can become diegetic play. Calculating fuel allowances is diegetic play -- but building rockets in the board game is diegetic play but not in the TTRPG, so I've not been able to do this everywhere.</p><p>You might argue that even venerable Dungeons & Dragons has diegetic play every time you have a conversation with an NPC. But there's an inherent tension in every role-played conversation in every TTRPG: it is reliant on player-performance instead of character-performance. And moving figurines around the map is diegetic only in the miniatures forebears of D&D, mimicking the battle map a general might move their troops around during a combat operation. Except.
Except if you recast yourself as a co-director of a fantasy movie, moving figurines around a map is just what you'd do with the stunt and special FX teams while you were planning out an action scene. And that's where D&D gets the closest to indie TTRPGs: the combat map is a collaboration between players and DM in much the same way that collaborative play is designed for and encouraged in many of these games.</p><div class="blogger-post-footer">---
This post is from <A HREF="http://roguelikedeveloper.blogspot.com">Ascii Dreams</A>.</div>Andrew Doullhttp://www.blogger.com/profile/11099404183952971291noreply@blogger.com0tag:blogger.com,1999:blog-2208890564265615027.post-48133832205291566752023-03-01T08:50:00.008+11:002023-03-01T19:28:21.677+11:00Sixty Years In Space: Devlog 1Sixty Years In Space is available now at <a href="https://half-apress.itch.io/60-years-in-space">https://half-apress.itch.io/60-years-in-space</a><p>
<iframe src="https://itch.io/embed/1944476" width="552" height="167" frameborder="0"><a href="https://half-apress.itch.io/60-years-in-space">60 Years in Space by half-a.press</a></iframe>
<br />Sixty Years In first came into being as a Google doc, then a collection of Google docs, early 2015. I had been working in my spare time (I didn't need much sleep) on the High Frontier 3rd editon - I am the uncredited developer of the edition of High Frontier Interstellar that was packed in as a stretch goal for that release and provided cheerleading, goading and playtesting on the 3rd edition proper.<br /><br />Very quickly I recognized that this was a unique opportunity to develop a game unlike any other that I had played: by making it a table top roleplaying game I could give it unlimited scope (up to a billion years it turns out), by steering into the idea of the player characters being responsible for colonizing the solar system I could give them the ability to shape what the future looked like - the trade-off that the bump mechanic provides between personal gain and making sure the future is safe for everyone else was added very early on - and by making it act much like the board game I could get rid of the need for a GM which meant I could play it as well.<br /><br />My background in roguelike game development meant I was comfortable with procedural generation mechanics, and thus the rough shape of the game formed. Player characters (crew) would be sent on randomly generated missions, encounter randomly generated spacecraft and visit randomly generated locations on fixed planets on the High Frontier map initially, but randomly generated elsewhere in the universe. And it would happen at High Frontier scales, which meant years would pass quickly - perhaps a decade in a play session. I had tried this previously in a much smaller game (Wisp) that was unfortunately lost due to a laptop hard drive failure, and much of A Lot of Zeroes is a spiritual successor to that game.<br /><br />The next 8 years have been filled with figuring out what that exactly looks like and how much I had to create to fulfill those requirements. And how to make it fun.<br /><br />Making the game GM-less immediately created a whole lot of challenges. The biggest one is the amount of bookkeeping required. Without a GM, I couldn't rely on any authorative game state being preserved implicitly in the game master's memory. So everything has to either appear on the map or be written down. I struggled for a long time trying to work through the implications of that and ended up abandoning almost all attempts at turning that process into systems. There was at one point a whole set of mechanics for creating characters who had secrets hidden from each other, that could be revealed during the game. Players didn't just have crew positions, but also have separate roles which determined what parts of the game they book kept. These ideas may return: there is absolutely a good game to be made where each player is a crew member on a space ship who is controls part of the game (navigation, comms, etc). This is not that game although it wants to be.<br /><br />The second set of challenges arose from the fact space is an incredibly hostile and unforgiving and worst of all, unintuitive place. To reflect this, I needed to both create systems that reflected this, but also understand myself what that meant. I did mathematics in university, but not physics ever and was at times during development literally doing rocket science. There's an incredibly messy Google spreadsheet with maybe a hundred tabs of doodling and calculations where I hopefully haven't made too many gross mistakes. A few very helpful space people helped me out: I absolutely need to shout them out, but, much like maintaining a bibliography, I didn't have the discipline to note who they all were. You'll just have to trust me when I say all of this game is based on research.<br /><br />My love of science fiction drove a lot of this: but I've tried to avoid direct homage too much. I removed an entire supplements worth of random faction mission tables from All Errors are my Own when it became obvious the amount of work and page space required to have one table per faction (I'd already done half) and the fact I was worried I might be sued for lifting plots from every science fiction work I'd ever read. What also drove my was my absolute annoyance at some beloved sci-fi game properties. The entire Weapons chapter is fueled by my annoyance at the generic-ass-we-gotta-have-a-heavy-pistol Eclipse Phase weapons table. No Mans Sky has a great sound track but is also extremely instructive on where planetary procedural generation works (pretty colours and crossing hazardous terrain on foot) and what doesn't (almost everything else they tried).<br /><br />To create as much as I did requires some cheating, so apologies for this in advance. I absolutely created hundreds of faction doctrines by Googling "theories of X" and then creating a doctrine for each theory - and then never taking the time to hide the evidence. There are so many random tables because random tables have blank entries, and blank entries force you to come up with ideas, and then even if those ideas are bad, you can come back later and fill them in with a better idea. Hopefully I did that everywhere. Some of those random tables have levels of precision required to precisely match stellar frequency or demographics, and some of those tables I've basically pretended that 2D6 has the same probability distribution as 1d12. And speaking of demographics, two of the most egregious outcomes of the whole development is the lose of diacratic marks from the demographics table in the core rules, and deciding to use consciouness as the measure of how advanced a civilization is on the development path. Or maybe its using Alzheimer's and cancer as game mechanics (they're from the source material!). Or maybe its alphabeticizing some tables and not others. Or the use of capitalization.<br /><br />But the biggest cheat was that I had to make the process of creating the game fun. That absolutely breaks Sid Meier's fifth rule of game design "5. Make sure the player is having fun, not the designer/computer." This game wouldn't exist if I hadn't had fun making it. And will you have fun playing it?<br /><br />One morning at about 5 am after having spent a largely sleepless night planning a turn for a play by forum game of High Frontier 2nd edition, I made a move where my rocket got to the Saturn heliocentric zone. I can still feel it to this day: my stomach dropping away from me like I was on a roller coaster as I'd finally, after months of playing a cut throat and unforgiving game, I'd moved a plastic counter on a cardboard map farther than I had ever moved it before.<br /><br />That's a strange kind of fun. But I want you to experience something like it. And that's why I've made this game</p><div class="blogger-post-footer">---
This post is from <A HREF="http://roguelikedeveloper.blogspot.com">Ascii Dreams</A>.</div>Andrew Doullhttp://www.blogger.com/profile/11099404183952971291noreply@blogger.com0tag:blogger.com,1999:blog-2208890564265615027.post-79993882142638619672022-01-30T16:48:00.023+11:002022-02-06T09:45:05.905+11:00Hell Let Loose: Winning as Commander<p>I'm going to teach you how to win as commander in Hell Let Loose - at least at beginning and intermediate levels. This is for purely selfish reasons: I have a much better experience at Hell Let Loose if the commander doesn't loose the game, and too many of my recent game experiences have been because the commander loses the game.</p><p>Let's start by inverting the command chain. The fantasy of being in charge of 49 other people is just that, a fantasy. As a commander you are not here to command: you are here to be a servant for the other 49 players in order to ensure that they are having a good time. To do that you have to understand human behaviour, because your chain of command is fundamentally about getting the team to behave the way you want them to. A key part of this is understanding <a href="https://en.wikipedia.org/wiki/Loss_aversion">loss aversion</a>: people are prefer to avoid losses then making equivalent gains, even when the final outcome is equivalent. To translate this: the team will have a much better time if they hold a point, rather than if they lose it then regain it over the same period, even though the net outcome is the same. And by holding a point, we avoid the risk of losing the game.</p><p><b>Your primary responsibility as a commander is to never lose a point.</b> Everything else much become subordinate to that. If you never lose a point, your team will have a stable platform from which they can launch attacks, feints, go off on adventures and find stories to tell. At worst, you will lose warfare maps 2-3 (but only against other players who've read this guide), win offensive maps when you're defending 4-1 (given the first point can often fall before the team gets there), and offensive maps when you're attacking... well, let's get there after covering off the basics.</p><p>Mechanically, how can you lose a point? Again, there is a very simple reason: your team is not on the point defending it. So all your actions must be considered in the light of "<b>will this ensure my team will get to the point and defend it?</b>", and anything that does not must be discarded.</p><p>At this point, some players reading this might start to object and point out how important the commander is for attacking. This is entirely nonsense. The commander does not need to do anything for the team to attack. The team will naturally attack. They have all the tools they need. A support class and either an officer or recon can put up offensive garrisons in blue territory. A well organised squad or pair of squads can do the same in red territories, given at most 40 seconds of swapping players between support to do so. An officer or spotter in a supply truck can do that anywhere that there's no armour on the field. If the squads don't choose to do so, that is not your problem as the commander; it is their problem as one of the other 49 other people in the game. If they can't kill the other team effectively when they're attacking, it's their problem, not yours.</p><p>Luckily for us the game is balanced so it is much easier to defend than attack, that smart players will realise that you're giving them every opportunity to maximise their kills and win that 50% experience bonus.</p><p>So as we're agreed that defense is the only thing we need to consider, let's look at the commander powers in light of this, starting with the manpower abilities.</p><p><b>Airheads</b></p><p>There is no faster way to lose your point then put up an airhead in exactly the right spot to attack the enemy team.</p><p>This may sound paradoxical, but hear me out. An airhead that gets up and stays up long enough to be useful attacking an enemy point will immediately divert the majority of your team from defense to attack. One of two things will happen: either you'll cap, because the other team is unprepared, or you'll be met with an equal or greater number of defenders. Your team attacking off the airhead will get their outposts up, and if you're lucky a garrison, and if you're incredibly lucky the garrison won't stay locked. But the stars have to align right for you to do this (and we'll talk about how to get the stars aligned right when talking about bombing runs) but in every instance, your airhead will stop before you've finished capturing the point.</p><p>At this point, you are in an incredibly precarious position. Your garrison and outposts are surrounded by enemy spawn points, a whole lot of your team is stranded in enemy territory and the other team is doing the right thing (staying on the point defending) and you're doing the wrong thing (not staying on the point defending). This is where I bring up the third principle of being a commander: <b>you will win if your team is better then the other team, regardless of what you do.</b> If your team is better, you can cap off an offensive airhead. But if your team is better, you're going to win anyway. Using the methods outlined here, you'll get your team joking "HLL speed run", a message I got while commanding a team last night using these techniques - even though I had lost voice comms for almost the entire match! That, by the way, is the secret to winning an offensive map when you're attacking, that I alluded to earlier: just have a better team than the opposition. It's simple really. Being the attacking side on offence is a test of the entire team, not just the commander, and I suspect where a lot more interesting high level commander tactics are actually useful. You'll see players haranguing you about these: "place the airhead here", "bombing run please", "drop supplies on me". Ignore them, unless you're the attacker on an offensive map. Then, and only then, start to consider the wisdom of the crowd and traditional techniques.</p><p>There's only one circumstance that you can reliably expect the other team to be unprepared, and that's after you've just captured a point. You may be tempted in these circumstances to drop an offensive airhead to get a double-cap. Ignore it. You're going to be setting up double-caps using an entirely different technique that will get you triple-caps, without any of the risk of manpower. And if the airhead stays up, you're in an even worse position than a traditional airhead, because now you've spread your team out across three points: the airhead, the point you've just captured, and the point you were defending.</p><p>Instead, use the air-head to reinforce a point you're just about to capture or that you've just captured. Drop it on or as close to the point, ideally behind some friendlies, with an unobstructed path to the point. The timing of the airhead is important: I required at least half of the capture bar to be filled, but usually as commander I'm busy doing something more important and end up saying something stupid sounding like "oh **** we're capping" and that's my cue to drop the air-head.</p><p>Get everyone to redeploy onto either the airhead you've dropped or the garrison someone is placing. People will ignore you, then come in on the second wave. That's ok.</p><p><b>Reinforce</b></p><p>Reinforce should be used whenever the capture bar starts to turn red on the point you are defending. Don't wait for it to get one third red, or in fact any appreciable distance into the red bar. Do it immediately. You're already in a position where the enemy has got too close to the point, because, as should be obvious, it means that all the enemy are close enough to the point, because, as stated before, all your team should be on the point defending. Reinforce is a force multiplier, so the best time to use it is when you have lots of defenders on the point.</p><p>Always keep enough manpower to use reinforce, but be prepared to sacrifice it immediately to use your airhead as described above.</p><p><b>Encouraged</b></p><p>Use encouraged whenever you get above around 700 manpower. You'll get to do this often, because you're not wasting airheads or reinforces. You'll end up with 2000 or more fuel as a result, but that's ok. Don't use it if you don't have nodes.</p><p><b>Supply Drop</b></p><p>Fourth rule of commander: <b>Do not drop supplies anywhere in front of the point you are defending. </b>This includes in the blue territory. In fact almost all of the supplies you should be dropping should be on the point you're currently defending. Supplies are a giant flashing sign in the sky of where your garrisons, infantry and recon squads are. They give away vital intelligence and are honey for enemy recon squads, recon tanks and bombing runs. Instead use them to encourage your engineers to build defences and to ensure your squaddies can immediately build another garrison if you ever lose the garrison on point.</p><p>We may as well discuss garrison placement now. This is your primary minute by minute job as commander: to ensure you have defensive garrisons. You'll do this by running up supplies using a supply truck, turning around, going back and getting more supplies. Make sure that you build the garrison as far away from where you dropped the supplies as you are able to, to make the supplies harder to find. But also be careful not to put the supplies within 50m of a zoomed out map grid line because a) it makes the locations more predictable because it is easier to measure in map grids and b) someone might build a garrison in the red territory (even if that territory is blue now).</p><p>A lot of commanders will argue that you should triangulate your garrisons around the point you're defending so that you don't have a garrison on point. The argument boils down to it's not fun spawning on a garrison which the enemy is bombing or spawn camping; and they're going to be spawn camping the point they're attacking. But the enemy is going to be focused on garrisons anyway, and triangulated garrisons gives them three opportunities to spawn camp instead of one.</p><p>I instead prefer to have a garrison on point, because I have the supplies on point and I have engineers building barricades to block incoming fire on point. I then have a defensive half-moon of garrisons around the rear of the point around 300 meters out (one and a half grid squares). I pick 300 meters, because I want the enemy to build their offensive garrisons within this ring, and I want to slow down enemy recon squads and tanks getting from garrison to garrison. I've seen a recon tank take out 3 triangulated garrisons and a half-track in less than two minutes around an undefended point at rear.</p><p>I want the enemy to build their offensive garrisons within my garrison ring so we can always flank and take them out, and because of rule number two: I want my team defending the point, not wandering off it. 300m is too far away to be convenient to spawn at another garrison and run back to point. I want them on the point.</p><p>There is one other exception to supply drops, for warfare maps only, and only when you're 2-3 or 4-1 down. If you have plenty of supplies on point, you should drop a supply drop or two deep into enemy territory: half-way between cap 4 and 5 if you are defending the second point, or between cap 3 and 4 if things have gone really bad and you're defending the last point. The function of these supply drops is to enable a triple-cap. This works as follows: you cap a point, reinforcing it using your airhead as you normally would. Your friendly recon squad immediately builds an offensive garrison in enemy territory using the supplies you dropped. From there you cap the next point (double-cap) by moving back from that garrison and the point after that (triple-cap) immediately afterwards.</p><p>It is really important that these deep supply drops aren't anywhere that can be used to build a garrison before you make the next cap. Doing so will enable your team to wander off the point you are currently defending, diluting your defense.</p><p><b>Recon</b></p><p>Since you never need to recon the next point, because you don't want to encourage attacking it, this frees up reconnaissance flights for their primary function: hunting tanks. Ensure that your officers mark up all the tanks locations to assist your tank and anti-tank gun crews.</p><p><b>Strafing Run</b></p><p>Use your strafing runs to kill the recon squads taking your defensive garrisons out. Zoom in and make sure you aim carefully, as soon as you notice the garrison is locked (completely red). Sometime it'll be an enemy vehicle passing by, but rarely. You want to teach the enemy recon the lesson that they'll die any time they try to take down a garrison. Then have someone deploy on the garrison to hunt down and kill them and destroy their outpost.</p><p>If you're dead or respawning, change your respawn location to an HQ to ensure you get the strafing run in time. Note that you can place strafing runs and other command tasks while you are mortally injured and waiting for a medic.</p><p><b>Bombing Run</b></p><p>Use your bombing runs to take down enemy garrisons that enemies are using to attack your point. Only use them against confirmed (precisely marked) garrison targets, and give the squad 30 seconds or so to take the garrison down itself. They likely won't be able to because that's where the enemy will be aggressively spawning, but note that if the garrison is in your blue zone, that it'll be locked from 100m out which should make it easier.</p><p>Note that these enemy garrisons will often include the garrison on their defensive point. Your team may choose to take advantage of this.</p><p>I will freely admit to not being very good at this but I've seen it used against my team and it is truly terrifying.</p><p><b>Half-tracks</b></p><p>The initial version of this article had a bunch of theory crafting about half-tracks, based on the most effective uses I had seen. I then went out and tried to put it into practise that evening, and remembered why the only times I've lost warfare matches is because I've used half-tracks. Half-tracks appear to support, but actually violate the principle <b>"will this ensure my team will get to the point and defend it?"</b>. Will they can double your defensive spawn capability, any player of your team can decide to relocate the half-track, either driving it into a place which will get it destroyed (the least bad option), do something incredibly stupid like forget to switch the engine off (which will waste your team resources trying to fix it) or by putting it into an effective attacking position (really bad). This is bad for exactly the same reason that an effective attacking airhead is bad. The specific game I lost because I spawned half-tracks in, we lost because a player 'helpfully' got a disabled half-track from deep within enemy territory (wasting time they could have been using to defend our point), and drove it right up behind the enemy point in an highly effective attacking position. Everyone saw this, abandoned their defense of the final point, and we lost as a result. (We were defending final because I'd effectively lost the game in the first five minutes by getting a supply truck stuck in a great attacking garrison position, and the team built a succession of four garrisons all of which drained resources away from the defense of the point we needed to defend, after losing the neutral cap).</p><p>There are two situations where a half-track might be useful as a stealth airhead: either when you have capped the first point in an offensive map and need to get to the other edge of the map for point two; or when you have your fourth point almost captured and you want to ensure you can spawn on the HQ behind the final point. In both instances, limited yourself to a single half-track and hope that someone gets it blown up shortly thereafter.</p><p><b>Supply Trucks</b></p><p>Spawn a second one as soon as you are able to. You're going to be spending a lot of the game driving these: initially to get your garrisons up and then to get supplies up to points. If you are killed in one of these, just respawn and get another. Your team will use the one you left behind, or it'll get destroyed. If you drop the supplies, turn around, go back and get more supplies.</p><p>The worst thing you can do is get a supply truck stuck, so don't take any risks driving them. It's better to have the truck and you destroyed by a tank or mine than to get it stuck.</p><p><b>Other Tanks</b></p><p>I have never met as meek and polite a group of people as armoured officers asking for another tank. They're incredibly apologetic that they wasted your resources and embarrassed that they let a tank get killed, and if they don't hear from you they're likely to just go off and fire some artillery for a while. Keep reminding the command chat that you have 2000 fuel and Tigers for everyone.</p><p><b>"All your team should be on the point defending"</b></p><p>Don't ever tell the team off for not defending. Encourage them to defend, but if they do something else, that's fine, but it's their decision, just not something you can provide support for right now. The whole point of this "Doull's Doctrine" is to make everything else inconvenient enough that defense is the obvious thing to do. Call out when outposts and garrisons get lit (red indicator) or locked (all red), but you already have plans for that. Smart squads will use the garrisons you place to flank enemy positions.</p><p>The most persistent people are those calling for a supply drop, especially recon, because that seems perfectly reasonable thing to request from their perspective. The best thing I can do at this point is claim supplies are a minute out, and then in a minute, drop supplies on the defensive point again and blame the supply drop user interface: "Sorry I double-dropped at the last location". If it's a recon squad, drop them deep, and tell them "get the garrison up after we cap".</p><p>The location they're requesting will be overrun by the attackers soon enough.</p><p><b>So uh how do we cap?</b></p><p>If you never attack, there's no advantage to the defenders defending, is there? The defenders will get bored and stop defending and go all in. At that point, one of your disobedient squad leaders or a newbie will get in the attacking circle and start capping. This might happen several times. Just be patient and re-read the airhead section. You'll get the point faster than you think.</p><div class="blogger-post-footer">---
This post is from <A HREF="http://roguelikedeveloper.blogspot.com">Ascii Dreams</A>.</div>Andrew Doullhttp://www.blogger.com/profile/11099404183952971291noreply@blogger.com0tag:blogger.com,1999:blog-2208890564265615027.post-56006769571696238442022-01-01T13:21:00.005+11:002022-01-01T13:33:21.505+11:00Games as Emotion (Part Two)<p><i>Looking back at my older blog series, I guess I've broken the post title convention I used to adopt, which was The Blog Post - Part One (The Partening) or something like that. I guess if you want a subtitle, then I guess <a href="http://roguelikedeveloper.blogspot.com/2022/01/games-as-emotion-part-one.html">part one</a> might be Sadness, but this part two would be Making, which of course makes no sense.</i></p><p>A big part of the reason I've played a lot more games this year, is that they've got a lot easier to play. Roughly this time last year, I spent a bit too much money on a new rig with a 3080 and a curved QHD high refresh rate monitor and as a result games got a lot smoother than my slightly upgraded rig from 2012.</p><p>I bought it, of course, to play the PC release of Death Stranding (104 hours), which is an incredible visual feast of a game with DLSS running. I also played and finished Deathloop (time not tracked?) and Rage 2 (40 hours), started and finished a new play through of Prey (around 15-20 hours), and played Hell Let Loose (191 hours), The Witcher 3: Wild Hunt (72 hours), Mad Max (47 hours), The Witness (15 hours), Cyberpunk 2077 (6 hours?, I've done one quest after the opening), Disco Elysium (5 hours?, I've made it out the front door of the hotel and visited a book shop), Neocab (time not tracked), replayed half of Titanfall 2 (time delta not tracked because the game whips by), wasted my time getting frustrated by bad stealth mechanics in Alien Isolation (90 minutes) and am still unsure how the majority of games systems work or what I was doing in Destiny 2 (51 hours). Of those games, Death Stranding, Hell Let Loose and the Witcher 3 have become the 5th, 4th and 6th most played games of mine since Steam started recording that sort of thing. I also clocked some hours on Slay the Spire which is undoubtedly up there on time played.</p><p>This is mostly to say that the human brain loves lists (or perhaps a table or pie chart), and I am no exception. But my play experience has been made well by getting a new PC, and in turn, I've been able to play a number of well made games. And the games on this list are well made in the sense they exhibit a technical mastery of art and video game development. But that's not what I mean when I used the phrase "well-made" in the previous post.</p><p>Instead I think specifically of the interactions between the game, it's systems and aesthetics, and the player, the act of playing itself, to create a story which is experienced in a completely separate mode from being told or shown it: making a story. I've intuitively discarded alternate phrasings like "well-played", "well-designed" or "well-done" (doing a story), because of unwanted meanings associated with those phrases and because I want to emphasise the (conscious and unconscious) choices of the people making the game (in all its aspects, not just game design). I'm trying to gesture towards an active process: the construction of a "well-made" story requires the presence of a player who willingly enters the magic circle and plays the game aided by the game design suspending their disbelief and engaging them. However there are enough random factors in any game and player that I don't want to put any blame on a player if they don't experience the emotion affect intended: this is the distinction between "well-made" and a hypothetical "well-played".</p><p>In this sense, a game is a tool that allows a player to generate emotional experiences.</p><p>(And now I am torn, because maybe the term should be "well-generated" stories, but I've already used and abused 'generate' too much).</p><p>What I'm trying to capture here is best expressed by Hell Let Loose, a first person multiplayer collaborative shooter, where players effectively enter a deliberately limited consensual reality that largely mimics specific World War 2 scenarios. Hell Let Loose defies some conventions of these games while embracing others, but at its heart, much like Death Stranding, it tries to force people to communicate and collaborate in specific modes and channels to achieve objectives. Hell Let Loose does this using a number of now standard mechanisms (pings, voice and chat, group voice and chat) but creates vertical and horizontal choke points in these mechanisms which require players depend on each other to overcome. Players read compass directions and map grids and symbols to each other because targets are hard to see and quickly become dangerous; audio channels become expressive if used sparingly but jammed if overused, with officers having to observe, listen to and use channels and expressions that their squad is not privy to; building and attacking dynamically placed critical infrastructure is more important than individual achievements.</p><p>And, unlike a co-op shooter like Left 4 Dead, Hell Let Loose has a wide breadth of experiences for players to choose from, all of which are weighted with enough significance so that they meaningfully impact play: you can choose from driving a supply truck, firing artillery, desperately trying to flank a tank to hit it with one of only two rockets, and so on, so that the potentially each of these actions is a unique experience generator even nearing 200 hours of play. For instance, last night I lead a squad for 10 minutes to push a supply truck 200 meters up a road to try to get a second attacking garrison into Foy, only to have to abandon it to defend a previously well-defended position that was now falling on the other side of the map. For those 10 minutes, moving that truck while under fire was the most important thing we could do, and none of us ever before had had driving a truck such a short distance become so meaningful in the game.</p><p>These stories are not "well-told" or "well-shown": they are unique to games. And I am wise enough to see the hand of the game makers in making specific choices in Hell Let Loose that I see a continuum between single player, highly authored experiences like Death Stranding and multi player chaotic experiences like Hell Let Loose.</p><p>I'm going to pause a while, play some more Hell Let Loose and then think about writing a part three.</p><div class="blogger-post-footer">---
This post is from <A HREF="http://roguelikedeveloper.blogspot.com">Ascii Dreams</A>.</div>Andrew Doullhttp://www.blogger.com/profile/11099404183952971291noreply@blogger.com0tag:blogger.com,1999:blog-2208890564265615027.post-60249009922226542502022-01-01T10:49:00.004+11:002022-01-01T13:23:16.135+11:00Games as emotion (Part One)<p> 2021 was a year where I reconnected with playing games in a big way. I played a lot more games. I finished games. And I felt a lot more strongly in games.</p><p>To be clear, I didn't feel a lot more strongly about games. As has probably been obvious from this blog feed and the lack of any Roguelike Radio episodes for more than a year, I have cared less and thought less about games than probably any time in the last decade. The exception maybe the TTRPG I've been working on since 2015, but even then releasing it has felt less urgent than probably at any point during its development.</p><p>This is because I am tired of the whole rotten industry edifice: the abuse of game maker and critics by players and funders continues to harm, burn out and drive away those people in the industry while enabling abusers. I quit BGG a few years back because of the way that community ignored, created and facilitated that actively hostile environment, and I genuinely see no end in sight anywhere in the industry. The world wide failure to deal with COVID should be clear to everyone by now that capitalism ensures there is no end.</p><p>While I'm highlighting the power imbalance between workers and consumers, I should be clear that there is no safe part of the industry: game players are just as trapped in this systemic abuse as anyone else, nor elsewhere in the world. My non-game industry day job is about 8 out of 10 on the actively evil scale and I spend as much effort as I can afford trying to get it to a 7.</p><p>But games in 2021 made me shout out emotions: fiero, joy, boredom, regret, surprise and surprisingly sadness, in a complex palette, in brief shared exchanges with strangers and in ways that no other medium can possibly encompass.</p><p>I'm writing this because I want to talk out a distinction I felt between emotions engaged by games and emotions engaged by narrative in games. I'm sure that there's plenty of writing and analysis out there about this (post in the comments if you know of any), but I'm going to try to tease these out myself so excuse any old ground that I'm walking over in a way that doesn't patent infringe by causing a narrow path to slightly broaden (<a href="https://www.vg247.com/sony-patents-death-stranding-path-building">thanks Sony</a>!).</p><p>And that brings me to the first feeling I want to talk about, and probably the most complex: sadness in Death Stranding. Parasocial twitter mutual GB 'doc' Burford has <a href="https://docseuss.medium.com/playthis-death-stranding-d22e660d2581">written extensively about this elsewhere</a> but I want to call out a different time Death Stranding hit me in the feels: the literal end of the Elder quest chain. Quest chain is the wrong word: Death Stranding does part of <a href="http://roguelikedeveloper.blogspot.com/2009/10/quest-for-quests-cast-part-one.html">what I asked for many years ago</a> and turns quests into a trading-like game, although like everything the game does, it makes the them most gentle and forgiving version of that idea.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhAr-g3Er5YbXVSH_VYd26ODzOm0wNOn257cInUguVHhrkur6O19qd0f6mMdRyeGcCI-GPlYcTA40HjV-QAE9M765QN2t5nb86glzdkqzhugWwjxiMDSRPgN-KrgDwQNzifH-wvjzd-3yynuTWmDNkVFDe70yDBHQkiRitR4joSTQN-ZfciNT8pCoPh9g=s372" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="372" data-original-width="260" height="200" src="https://blogger.googleusercontent.com/img/a/AVvXsEhAr-g3Er5YbXVSH_VYd26ODzOm0wNOn257cInUguVHhrkur6O19qd0f6mMdRyeGcCI-GPlYcTA40HjV-QAE9M765QN2t5nb86glzdkqzhugWwjxiMDSRPgN-KrgDwQNzifH-wvjzd-3yynuTWmDNkVFDe70yDBHQkiRitR4joSTQN-ZfciNT8pCoPh9g=w140-h200" width="140" /></a></div><p>On this scale, the Elder is the more annoying version. He's out of the way, requires that you climb up to the top of a hill without being technically difficult, and offers little in the way of rewards. The Elder also delays his connections to the chiral network just to rub it in your face: he doesn't want you there and the game does little to pay back your investment. Unlike another mission giver, there is no hidden back story, no secrets or twist. The Elder starts being unpleasant to your face, eventually begins to like and praise you and, just as I got towards the end of the game, he leaves you a message saying he's dying and then dies.</p><p>And his death left me in tears.</p><p>I have a good relationship with my father. He nearly died last November, which is to say that I have possibly felt a tiny fraction of the grief and frustration that someone who has lost a loved one during this pandemic and been unable to travel to see them before they died or to grieve them with others afterwards. This happened well after this incident in the game, which is my circular way of saying that I don't think there are specific extenuating circumstances that might have rendered me vulnerable to this story arc in a way someone else might not be.</p><p>Instead I think it was a story well-made. It wasn't well-told, or well-shown: the holo image I saw of the man fit the thematic conceit of Death Stranding, and the plainly written emails aren't especially memorable in themselves. This underdevelopment is typical Kojima canniness towards the broader themes he's exploring, but that set dressing needed me to act and feel my along the path he had laid out. My thesis here is games are unique in the way they can make emotions in a way no other medium can.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgTP2MWOtd5Cjaq1DKTnKBeXIjiRaZo9V6ji995iOiz9yuVCr3PBB_mIYdQpoOoxKxr6rBBAECxx1PSPbechtJ5dMM0S30O3j-y_rzfTunIA4VHA4NOPqrOmG2Q4NhoOSKohb0FzZMODUePlhUOFJqH1hIXH1VKYKvDQWQu0gtNZR-mcUY-A0CO5PuCLw=s1200" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1200" height="480" src="https://blogger.googleusercontent.com/img/a/AVvXsEgTP2MWOtd5Cjaq1DKTnKBeXIjiRaZo9V6ji995iOiz9yuVCr3PBB_mIYdQpoOoxKxr6rBBAECxx1PSPbechtJ5dMM0S30O3j-y_rzfTunIA4VHA4NOPqrOmG2Q4NhoOSKohb0FzZMODUePlhUOFJqH1hIXH1VKYKvDQWQu0gtNZR-mcUY-A0CO5PuCLw=w640-h480" width="640" /></a></div><p></p><p>And in <a href="http://roguelikedeveloper.blogspot.com/2022/01/games-as-emotion-part-two.html">part two</a>, I attempt to explain what I mean by the phrase a "well-made" story.</p><div class="blogger-post-footer">---
This post is from <A HREF="http://roguelikedeveloper.blogspot.com">Ascii Dreams</A>.</div>Andrew Doullhttp://www.blogger.com/profile/11099404183952971291noreply@blogger.com0tag:blogger.com,1999:blog-2208890564265615027.post-89358381842390732142019-04-16T22:43:00.002+10:002019-04-16T22:53:24.632+10:00His Eyes - Part One“Words have lost their power. I could tell you your life was a lie but it’d barely graze the hardened callouses you’ve built to protect yourselves. Whereas for me those words rang true like the call of the bugle my grandfather fell into the trenches fighting for. Thundered like the New Zealand guns that shattered his friends.”<br />
<br />
“At least we can agree on one thing. Fuck Australia!” They toasted together burning their throats with the space brew.<br />
<br />
“It’s an unusual position I find myself in. Plotting trajectories with the grandchildren of those whose earlier arcs broke him.”<br />
<br />
Why not stay in China? The words stayed unsaid but he curled his mouth downwards, sliding his top lip over the stubble under his bottom lip. He had refused to depilate, roaring ‘I spent so much getting this.’<br />
<br />
“I had reached the periapsis of what the Party would find acceptable. China was too small for my ambition and my childhood dream was not going to resolve itself. To Rocket Labs!” He toasted again and all four raised their drinking tubes.<br />
<br />
There was not enough gravity to drink from glasses in Deimos station. Deimos station! The words themselves made him giddy with how far they’d come and how much they’d achieved. But not just them. The Americans. With their Callisto-bound nuclear rocket parked just over the horizon. They kept to themselves, not just for safety, but the political situation back home had worsened and while the spirit of international cooperation flowed so far, it apparently stopped short of coming the final kilometre of the 157 million they had travelled. To celebrate his birthday.<br />
<br />
“Deimos station, this is mission control. We don’t mean to interrupt your fun, but NASA has an urgent request.”<br />
“Mission control, how can we help?” The commander spoke up, flashing glances around the galley.<br />
“It appears Triumphant’s uplink is out. They’re running diagnostics Earth side but we might need to EVA and get a relay up.”<br />
“Decompression protocol will take two hours. What are our remote options?”<br />
“So far we don’t think we can get an antenna up high enough using one of the drones.”<br />
“Can we print one? Straight up from the refinery.” Engineering suggested.<br />
“That’s a… novel option. We’ll run the numbers. But prep for the EVA.”<br />
“We’ll get the relay in place but to get that far up the ridge we may as well roll down the other side and tap on their hull.” He said.<br />
<br />
He was out on the surface with Payload. She was smiling, excited to be out on the surface again so soon. The rover seats were filled with the antenna mast, tools and emergency gear in case the situation on the American spaceship was worse than a communications error.<br />
They reached the top of the ridge.<br />
“Hailing Triumphant. This is Deimos station. Hailing Triumphant.” He repeated the hail using another set of standard codecs, then switched to analog radio in case the digital systems had failed. When they didn’t respond, Payload hefted a scope from the front of the rover.<br />
“No exterior damage visible. No outgassing. No one on the surface. Hatches are all closed. Uh… the crew module is warm. Really warm. Radiators are pumping out a lot of heat to compensate so its not a thermal circulation issue. It’s survivable but not comfortable in there.”<br />
“Ok. Forget the mast. We can run the relay from the rover. It’s about a 200 metre walk down the hill. Let’s get going.” He checked the brakes on the rover and followed Payload down the slope.<br />
<br />
“They’ve dug up one of the RTGs.” Payload said as they reached the shadow of the ship. The RTGs were radioisotope thermal generators: basically big radioactive batteries that relied on the the decay of isotopes inside them to create heat to generate electricity. Deimos station had supplied a couple to Triumphant to keep it powered to avoid running their reactor at night: there was no way of turning the RTGs off whereas the reactor could be shutdown using control rods to allow it to be serviced. But the RTGs also sank into the moon’s surface and had to be periodically moved to avoid overheating, a job that wasn’t due for another few weeks. The boxy shape of the RTG was visible about 50 meters beyond the ship.<br />
TICK<br />
The closest airlock hatch of the two was up a ladder next to the foreleg of the spaceship. He climbed up and banged on the body of the airlock. Then he waited for a response, holding his glove to the hatch to try to detect any vibrations. Nothing. He banged again, twice more, and checked. The hull rang like a bell from his impacts but no one replied.<br />
<br />
The next step was complicated. With the crew inside the airlock would normally be pressurized. He would have to evacuate all air from the outermost part of the airlock, called the crew airlock before entering it. But there were no manual controls external to the hull to do so. He’d have to hope that the crew airlock was unoccupied and the pressure door to the inner “equipment airlock” was closed. If not, he’d depressurise the whole ship.<br />
He carried hull patches to patch the holes he was about to make. But not enough to patch the holes twice. The equipment airlock door needed to be closed for him to be able to enter the ship at all. Best assume the best scenario and operate on that basis.<br />
TICK<br />
<br />
He began drilling.<br />
TICK<br />
<br />
The soft pop of air turned into a jet as he pulled the drill bit from the hole. How long would the crew airlock need to empty? A minute? Two minutes? He’d work on exposing the door lock mechanism in the mean time.<br />
TICK<br />
<br />
The jets in the door died down suddenly. The door was closed between the outer and inner airlocks. He signalled down to Payload, forced the hatch open and stepped inside.<br />
TICK<br />
<br />
Payload and him worked quickly to plug and seal the holes he’d drilled. TICK. The seals would take a couple of minutes to set in vacuum and they’d hold for years. TICK. Then once the seals were set, they pressurised both the outer and inner airlocks to a low pressure, high oxygen mix. TICK. Best keep this mix in case they had to leave in a hurry. TICK. Open the pressure door to the equipment room. TICK TICK TICK They could take the space suits off here and enter the ship without TICK TICK harming anyone inside. TICK TICK TICK TICK He put his hand to Payload’s helmet, just as she was about to release the seal.<br />
<br />
TICK TICK TICK TICK TICK TICK TICK TICK TICK TICK TICK TICK TICK TICK TICK<br />
<br />
Both their suit geiger counters were furiously warning them about the radiation levels in the inner airlock.<br />
<br />
“The reactor is fine.” They repeated the mantra to each other. “The reactor is fine.” If it wasn’t, they’d have seen red hot molten rock where the rear of the ship would have been and their hair would be already falling out in clumps and the hard radiation would be dancing in white flashes through their retinas.<br />
<br />
So where had the radiation come from?<br />
<br />
The air in the outer airlock came from bottled air reserves carried on the ship. It had been clean and radiation free until they’d open the inner airlock. The air in the inner airlock mixed with the ship, although they could control the pressure and oxygen content. The air in the inner airlock was filled with radioactive particles which as they decayed triggered the geiger counters. The ship was filled with isotopes. Spread around the corners of the ship intentionally. From the RTG. The crew had taken one of the cells out of the RTG and opened it up inside the ship and spread its contents everywhere.<br />
<br />
The radiation levels in the ship wouldn’t kill them. At least not for decades and only if they stayed around long enough. But swallowing some of the radioactive material would. It would stay inside them, and although the heavy metal poisoning would be bad, the radiation it would continue to emit would give them cancer and a horrible untreatable death.<br />
<br />
The ship was a trap.<div class="blogger-post-footer">---
This post is from <A HREF="http://roguelikedeveloper.blogspot.com">Ascii Dreams</A>.</div>Andrew Doullhttp://www.blogger.com/profile/11099404183952971291noreply@blogger.com1tag:blogger.com,1999:blog-2208890564265615027.post-44823203768698764762017-07-16T13:25:00.002+10:002017-07-16T13:25:43.519+10:00PLAN.BMichael Brough has just released an expansion to 868-HACK called PLAN.B and it's available on <a href="http://store.steampowered.com/app/646930/868HACK__PLANB/">Steam as DLC</a> and <a href="https://itunes.apple.com/au/app/868-hack/id635749911?mt=8">iOS as an in app purchase</a>. Much like his recent Ossuary expansion to Imbroglio, I consider it pretty essential but for different reasons. Ossuary made the early game more interesting by allowing for a much greater variety of deck builds which were not necessarily game winning but were a lot more fun to play. This was great for a player like myself who wasn't likely to get to the end game but was looking for a fulfilling experience.<br />
<br />
PLAN.B is instead for players with deep understanding of 868-HACK and who are looking for increased difficulty at the start, but more competitive long term play. Luckily, I also fall into this category so both releases have hit the sweet spot for my game skill. PLAN.B makes the game more difficult by having the deceptively named power ups occur from game one instead of appearing only after a few streak games. But at the same time it adds 8 new programs to give you more control. The cumulative effect is that while I feel like each run is harder (even just to survive) I've ended up playing longer streaks.<br />
<br />
The new abilities are good but not essential (with the exception of .QUIT which is situational but vital given the power up changes) but they do a good job of filling the middle ground between a bad build and a good build in part by decreasing the overall likelihood of finding the 'perfect combination' and partly by adding cheap and useful ways of killing things (and I have no idea what .SAVE does but I'm okay with that). All but one, .CULL which is situational and expensive and while it has synergies, they're also expensive. I haven't tested .ICE/.CULL but that would make this useful if it works (and be the kind of enemy clamping, screen clearing ability that the name suggests it should be).<br />
<br />
Of course, this wouldn't be a 'I love MichaelBrough's game' blog post without me trying to backseat design :)<br />
<br />
(My urge to back seat design is worse than this post appears. I had written a longer post exploring two additional abilities, but ultimately that felt incredibly self indulgent).<br />
<br />
I'm less sure PLAN.B is worth getting if you bounced on the original game, but if you managed at least a single streak score then this expansion is going to be a must have. The power ups fix many of the issues that single game score chasing scored by ramping up the difficulty enough to make high score chasing unpleasant and much more unpredictable and reducing the surprise of suddenly finding power ups affecting how you played (much in the same way that the jungle in Spelunky throws a difficulty curve ball).<div class="blogger-post-footer">---
This post is from <A HREF="http://roguelikedeveloper.blogspot.com">Ascii Dreams</A>.</div>Andrew Doullhttp://www.blogger.com/profile/11099404183952971291noreply@blogger.com0tag:blogger.com,1999:blog-2208890564265615027.post-23518720254048273762017-01-31T20:36:00.002+11:002017-01-31T20:36:11.988+11:00Unangband 0.6.5c releasedI would like to announce that Unangband 0.6.5c has been released by the new Unangband maintainer DGoldDragon28. DGoldDragon28 had been developing a variant based on Unangband, and now has my blessing to continue with the main Unangband releases as well.<br />
<br />
You can find the full details at <a href="https://dgolddragon28.github.io/Unangband/">https://dgolddragon28.github.io/Unangband/</a> which is also the new Unangband homepage. Please redirect your links.<div class="blogger-post-footer">---
This post is from <A HREF="http://roguelikedeveloper.blogspot.com">Ascii Dreams</A>.</div>Andrew Doullhttp://www.blogger.com/profile/11099404183952971291noreply@blogger.com2tag:blogger.com,1999:blog-2208890564265615027.post-36549389682356259612016-11-20T14:50:00.003+11:002016-11-20T14:51:40.751+11:004:40 amI started recording <a href="http://www.roguelikeradio.com/2016/11/episode-129-imbroglio.html">the latest Roguelike Radio podcast</a> (on Imbroglio) at 4:40 am in order to accomodate both UK and US based guests which is why I have such a slow start to the show.<br />
<br />
One point I touched on is how Imbroglio has the ingredients of a roguelike with a very different set of outcomes, which justifies Michael Brough's labelling of it as 'roguelike?'. This missing piece is close to the tactics versus strategy debate but it doesn't fall on the same axis. It's also close to a puzzle form but it isn't just procedural puzzle solving. I'd like to label it "improvisation" because it feels very much like improvisation (in theatre) or how I imagine musical improvisation plays out. Imbroglio has improvisation, but the core design discourages it in some of the ways we talked about (at the level I'm playing at).<br />
<br />
I don't think I've seen anyone write clearly about improvisation in depth in the context of game play (Feel free to point me to articles I may have missed) except perhaps relating to Far Cry 2. More significantly, I'm not sure if there are games which have improvisation as their primary mechanic (Spelunky?) and I'd be interested in hearing about whether there are any games which do so.<div class="blogger-post-footer">---
This post is from <A HREF="http://roguelikedeveloper.blogspot.com">Ascii Dreams</A>.</div>Andrew Doullhttp://www.blogger.com/profile/11099404183952971291noreply@blogger.com0tag:blogger.com,1999:blog-2208890564265615027.post-58956481248149691742016-10-11T13:25:00.004+11:002016-10-11T13:25:58.824+11:00Texclipse & LuaTex 2016Just some quick notes for fixing up Texclipse to use LuaTex 2016.<br />
<br />
1. Remove the --src-specials option from the Build options.<br />
2. Add the following 2 lines as early as you can in your document:<br />
"\usepackage{luatex85}<br />\def\pgfsysdriver{pgfsys-pdftex.def}"<br />
3. Font paths don't appear to be supported in Windows. Instead copy the fonts into the fonts directory.<div class="blogger-post-footer">---
This post is from <A HREF="http://roguelikedeveloper.blogspot.com">Ascii Dreams</A>.</div>Andrew Doullhttp://www.blogger.com/profile/11099404183952971291noreply@blogger.com0tag:blogger.com,1999:blog-2208890564265615027.post-31711093342008373792016-09-16T00:19:00.000+10:002016-09-16T00:19:30.407+10:00How High Frontier builds futures<div class="tr_bq">
I've been a little hesitant about talking about the design work going into the High Frontier RPG since the arguments of the politest naysayers to <a href="http://roguelikedeveloper.blogspot.com.au/2016/04/high-frontier-rpg-temporarily-on-hold.html">my first post about it </a> can be approximated by "I haven't been to Russia so it can't exist." There are far less polite responses on the High Frontier board game mailing list, so I appreciate the general tone of the arguments being made in the comments - I'm just not swayed by them because among other things, they miss the fundamental fact that the person whose post I linked to is not just a hysterical tumblr user, but someone who has actually won a landmark precedent setting court case on the exact thing I was talking about.</div>
<br />
Nonetheless, I'm also feeling guilty about a throwaway line I made <a href="http://roguelikedeveloper.blogspot.com.au/2016/09/gm-less-rpgs.html">in the last design post,</a> which I think needs clarification and expansion on:<br />
<blockquote class="tr_bq">
"Unlike virtually every other RPG on the market (sans Microscope), High Frontier RPG does not have a fixed game world"</blockquote>
This is, of course, nonsense as every single game master can attest to - the game world evolves as soon as players being to interact with it. The caveat I should have added at the time was "unlike virtually every other <b>published setting</b> on the market" and even then that is insufficient, as much like comics, RPG settings have to be torn asunder and rewritten to account for inevitable power creep and conflicts in the stories set in them.<br />
<br />
What I meant, is that the published setting for the High Frontier RPG consists of very few immutable rules: nuclear power in space, wet extra planetary locations, a new space race, and even then there's potential caveats and loop holes that may mean not even these are true - for instance, the data used to predict icy comets and Ceres, a frozen Mars and water in the clouds of Venus has turned out to be inaccurate but High Frontier relies so much on these places having useful amounts of water to keep the game balanced and interesting that it'd be a different game if these changes were made.<br />
<br />
The rest of the High Frontier RPG universe is not fixed: its random and chaotic and procedurally generated from the players actions directly (you can go out and set up factories and colonies yourself to increase the tech level you have available) and indirectly (the chosen Space Politics will directly impact how the social, political and technological milieu of the game evolves). Even then, I'm only attempting to stuff 60 years into the rules (the average time simulated by a High Frontier board game) and borrowing heavily from all sorts of science fiction tropes to try to guide what this looks like.<br />
<br />
At the heart of this system is trends: a trend determines what the next few impacts on the crew are - be it a technology they can begin using, or a change to the way they operate or the missions they get, or a new type of human they are forced to evolve into or are replaced by. I split the trends up into ones driven by Mission Control, ones driven by the political environment that Mission control works in, and wider social trends representing what long term trends are happening Earthside (as distinct from short term events).<br />
<br />
I'm going to quote from one person's experience of messing around with the trend system rather than an actual game session, to give you a feel for what this might play like:<br />
<br />
<blockquote class="tr_bq">
I generated the equivalent of Luftwaffe-in-Space: Red MCSU - Crew Nationality German. Not sure how to determine starting politics (always Purple?), but I simply rolled for it at the beginning and started on Red as well.</blockquote>
<blockquote>
In a fairly small number of turns:</blockquote>
<blockquote>
-Zipped out to Ceres with a VASIMR-Orion combo and planted a factory.<br />
<br />
-Performed an Orbital Bombardment Weapons Test at Deimos.<br />
<br />
-Got assigned another refinery mission out to Dione, but rolled snake eyes when crossing Saturn's rings, ending things rather prematurely.<br />
<br />
Other cool things that came up that would have been great for an RPG session:<br />
<br />
-En route to Dione the Germans received an additional mission to rescue a stranded Indian crew...on Dione. Didn't know if it is possible to take multiple missions if the destinations for both of them are the same, but I never got there to find out. The RPG possibilities for that encounter would have been fantastic. "We're here to rescue you. Also this is our factory now. You seem upset, why?"<br />
<br />
-Not sure if I was doing the Earthside trends correctly, but it was generally of an increasingly gruesome flavor thanks to the Red space politics. A whole lot of Ludditism, some Surveillance State, and by the time my Germans met their unlucky fate, someone down the well had built a tomb to Fearless Leader that was visible from space. Could see having to react to a parade of such things being really interesting (especially with a crew differing strongly from Earthside trends).<br />
<br />
-Rolling for Stresses, the Military Payload Specialist ended up with Pacifist. Lots of interesting RPG potential there, though I never encountered a combat situation.</blockquote>
<br />
The intuitive approach for building trends would be to go with a technology tree style structure. But I know from previous experience that tech trees are very expensive time wise to create and balance, and often feel restricting rather than enabling. So I've ended up going with a tech era system, with a random table in each era determining the trend for the era. And about midway through the era there should be a trend change which rolls 1D6 + big positive or small negative bias, instead of 2D6 + small positive or negative bias, effectively moving from a wide band of overlapping options, to a much narrower band of less overlapping and more individually likely options.<br />
<br />
And each subsequent era has the extremes going more, well extreme. The most authoritarian regimes start out merely performing Great Projects. They then move to being Big Brothers or Failed States, and then Homeward Hive or Forever Wars. And where they can end up? Well let's just say aggressive Grey Goo Berserker starships consuming everything in their path is only the second worst option.<br />
<br />
<br />
<br /><div class="blogger-post-footer">---
This post is from <A HREF="http://roguelikedeveloper.blogspot.com">Ascii Dreams</A>.</div>Andrew Doullhttp://www.blogger.com/profile/11099404183952971291noreply@blogger.com0tag:blogger.com,1999:blog-2208890564265615027.post-78772530305847172892016-09-15T14:52:00.001+10:002016-09-15T14:52:06.111+10:00Some long overdue administrationThis is only 3 years overdue.<br />
<br />
Every vote for the 2013 Ascii Dreams Roguelike of the Year poll is below. As for why I stopped? I kind of forgot about doing it the next year. Which is probably an indication that it stopped being fun to do. I wish someone a little more active in the community had picked up the idea and run with it, but apparently it wasn't important enough for someone else to feel the need to do so.<br />
<br />
<table border="1" cellpadding="0" cellspacing="0" dir="ltr" style="border-collapse: collapse; border: 1px solid #ccc; font-family: arial,sans,sans-serif; font-size: 13px; table-layout: fixed;"><colgroup><col width="289"></col><col width="100"></col></colgroup><tbody>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"_____rogue the space"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">_____rogue the space</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"@Star Wars"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">@Star Wars</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"10 Second Roguelike"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">10 Second Roguelike</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":3,"3":3}" style="padding: 2px 3px 2px 3px; text-align: right; vertical-align: bottom;">3</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":3,"3":3079}" style="padding: 2px 3px 2px 3px; text-align: right; vertical-align: bottom;">3079</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":3,"3":3089}" style="padding: 2px 3px 2px 3px; text-align: right; vertical-align: bottom;">3089</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"8.68-HACK"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">8.68-HACK</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"868-HACK"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">868-HACK</td><td data-sheets-value="{"1":2,"2":"2 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">2 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":3,"3":86856527}" style="padding: 2px 3px 2px 3px; text-align: right; vertical-align: bottom;">86856527</td><td data-sheets-value="{"1":2,"2":"1 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">1 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"88 Pages"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">88 Pages</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"A DAY @ THE ZOO"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">A DAY @ THE ZOO</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"A False Saint, An Honest Rogue"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">A False Saint, An Honest Rogue</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Ad Astra Per Aspera"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Ad Astra Per Aspera</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"ADOM"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">ADOM</td><td data-sheets-value="{"1":2,"2":"85 (25%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">85 (25%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"ADOM II"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">ADOM II</td><td data-sheets-value="{"1":2,"2":"22 (6%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">22 (6%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Adventure Dungeon"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Adventure Dungeon</td><td data-sheets-value="{"1":2,"2":"1 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">1 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Adventure Mall"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Adventure Mall</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Akamar"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Akamar</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Alchemy"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Alchemy</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"AlexandriaRL"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">AlexandriaRL</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Allure of the Stars"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Allure of the Stars</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Alternate Dimension Rogue Like"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Alternate Dimension Rogue Like</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Anarchial"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Anarchial</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Angry Troll versus Magic Bridge"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Angry Troll versus Magic Bridge</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Appeasing the God"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Appeasing the God</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Archmaster"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Archmaster</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Arcology Escape"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Arcology Escape</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"AscentRL"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">AscentRL</td><td data-sheets-value="{"1":2,"2":"1 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">1 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Asterogue"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Asterogue</td><td data-sheets-value="{"1":2,"2":"1 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">1 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Asylum Escape"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Asylum Escape</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Attack The Geth"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Attack The Geth</td><td data-sheets-value="{"1":2,"2":"1 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">1 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Aurora"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Aurora</td><td data-sheets-value="{"1":2,"2":"2 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">2 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Back up"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Back up</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Bardess"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Bardess</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Beltham's Lair"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Beltham's Lair</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Bionic Dues"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Bionic Dues</td><td data-sheets-value="{"1":2,"2":"1 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">1 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Black Mage Goes Rogue"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Black Mage Goes Rogue</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Bonfire"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Bonfire</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Borstal"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Borstal</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Brogue"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Brogue</td><td data-sheets-value="{"1":2,"2":"23 (6%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">23 (6%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Bronze and Faith"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Bronze and Faith</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"BRS-081"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">BRS-081</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Bughack"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Bughack</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Bump!"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Bump!</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Cataclysm: Dark Days Ahead"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Cataclysm: Dark Days Ahead</td><td data-sheets-value="{"1":2,"2":"55 (16%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">55 (16%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Caverns of Shrug"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Caverns of Shrug</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Chase Brannick: Space Mechanic"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Chase Brannick: Space Mechanic</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Chest Quest"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Chest Quest</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Chicken and Thyme"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Chicken and Thyme</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Cogs of Cronus"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Cogs of Cronus</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"ColdRL"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">ColdRL</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Comrade Pixel"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Comrade Pixel</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Consuming Shadow"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Consuming Shadow</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"CoreRL"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">CoreRL</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Cosmic Commando"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Cosmic Commando</td><td data-sheets-value="{"1":2,"2":"1 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">1 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Cosplay Mystery Dungeon"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Cosplay Mystery Dungeon</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Cutpurse Castle"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Cutpurse Castle</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"De Sade's Dungeon"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">De Sade's Dungeon</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Dead Man Walking"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Dead Man Walking</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Delusions of Grandeur"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Delusions of Grandeur</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Delver"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Delver</td><td data-sheets-value="{"1":2,"2":"2 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">2 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Depths of Tuzua"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Depths of Tuzua</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Desktop Dungeons"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Desktop Dungeons</td><td data-sheets-value="{"1":2,"2":"7 (2%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">7 (2%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Diablo, the Roguelike"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Diablo, the Roguelike</td><td data-sheets-value="{"1":2,"2":"4 (1%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">4 (1%)</td></tr>
<tr style="height: 21px;"><td style="padding: 2px 3px 2px 3px; vertical-align: bottom;"></td><td data-sheets-value="{"1":2,"2":"Disc RL"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Disc RL</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Disc RL"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Disc RL</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Distant Echoes of Ancient Lies"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Distant Echoes of Ancient Lies</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"DiveDive"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">DiveDive</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Don't Starve"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Don't Starve</td><td data-sheets-value="{"1":2,"2":"4 (1%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">4 (1%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Doom, the Roguelike"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Doom, the Roguelike</td><td data-sheets-value="{"1":2,"2":"24 (7%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">24 (7%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Double Rogue"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Double Rogue</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Down The Brain"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Down The Brain</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Dragon's Lair"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Dragon's Lair</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Dragons Hoard"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Dragons Hoard</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Dragonslayer"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Dragonslayer</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Drakefire Chasm"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Drakefire Chasm</td><td data-sheets-value="{"1":2,"2":"1 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">1 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Dungeon Crawl Stone Soup"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Dungeon Crawl Stone Soup</td><td data-sheets-value="{"1":2,"2":"37 (11%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">37 (11%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Dungeon Dashers"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Dungeon Dashers</td><td data-sheets-value="{"1":2,"2":"1 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">1 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Dungeon Fray"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Dungeon Fray</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Dungeon Ho!"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Dungeon Ho!</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Dungeon of the Endless"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Dungeon of the Endless</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Dungeon Penetrator"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Dungeon Penetrator</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Dungeon X: Flesh Wounds"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Dungeon X: Flesh Wounds</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Dungeon-Themed Starvation Simulator"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Dungeon-Themed Starvation Simulator</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Dungeonmans"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Dungeonmans</td><td data-sheets-value="{"1":2,"2":"7 (2%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">7 (2%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Dungeons of Dredmor"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Dungeons of Dredmor</td><td data-sheets-value="{"1":2,"2":"13 (3%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">13 (3%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Dungeons of Kong"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Dungeons of Kong</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Dying Embers"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Dying Embers</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"DynaHack"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">DynaHack</td><td data-sheets-value="{"1":2,"2":"1 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">1 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Eldritch"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Eldritch</td><td data-sheets-value="{"1":2,"2":"2 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">2 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Elite RL"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Elite RL</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Elona+"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Elona+</td><td data-sheets-value="{"1":2,"2":"11 (3%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">11 (3%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Ending"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Ending</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Enter the Roguelike Dimension (EtRD)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Enter the Roguelike Dimension (EtRD)</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Epilogue"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Epilogue</td><td data-sheets-value="{"1":2,"2":"1 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">1 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Equin: The Lantern"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Equin: The Lantern</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Eternal Cave"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Eternal Cave</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"EXCELent Rogue"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">EXCELent Rogue</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"fabu"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">fabu</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Faith in RL"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Faith in RL</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Famaze"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Famaze</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Fame"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Fame</td><td data-sheets-value="{"1":2,"2":"1 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">1 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Fancy Skulls"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Fancy Skulls</td><td data-sheets-value="{"1":2,"2":"1 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">1 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Farm rl"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Farm rl</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"FHRL"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">FHRL</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Firestorm City"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Firestorm City</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Fishtryoshka"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Fishtryoshka</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Fisticuffmanship"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Fisticuffmanship</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"FlatlineRL"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">FlatlineRL</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Fleeing the Fray"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Fleeing the Fray</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Forays into Norrendrin"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Forays into Norrendrin</td><td data-sheets-value="{"1":2,"2":"3 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">3 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Friendly Meddling"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Friendly Meddling</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"FunhouseRL"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">FunhouseRL</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Gatecrashers"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Gatecrashers</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Gelatinous"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Gelatinous</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Goblin Men"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Goblin Men</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"GUTS"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">GUTS</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Hack, Slash, Loot"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Hack, Slash, Loot</td><td data-sheets-value="{"1":2,"2":"2 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">2 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Han Yolo and the Mysterious Planet"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Han Yolo and the Mysterious Planet</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Hark!"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Hark!</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Herculeum"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Herculeum</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Heroes of Loot"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Heroes of Loot</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Hoplite"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Hoplite</td><td data-sheets-value="{"1":2,"2":"3 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">3 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"hproguelike"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">hproguelike</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"HumFullRL"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">HumFullRL</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Hunted"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Hunted</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Hush Little One"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Hush Little One</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Hydra Slayer"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Hydra Slayer</td><td data-sheets-value="{"1":2,"2":"1 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">1 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"HyperRogue"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">HyperRogue</td><td data-sheets-value="{"1":2,"2":"2 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">2 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Illuminascii"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Illuminascii</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Incavead: infinite cave adventure"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Incavead: infinite cave adventure</td><td data-sheets-value="{"1":2,"2":"3 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">3 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Infection"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Infection</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Infra Arcana"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Infra Arcana</td><td data-sheets-value="{"1":2,"2":"6 (1%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">6 (1%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Inside Out"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Inside Out</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Interloper"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Interloper</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Into the Labyrinth"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Into the Labyrinth</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"It Did Not End Well"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">It Did Not End Well</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Kali's Ladder"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Kali's Ladder</td><td data-sheets-value="{"1":2,"2":"1 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">1 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"KeeperRL"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">KeeperRL</td><td data-sheets-value="{"1":2,"2":"1 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">1 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Kerkerkruip"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Kerkerkruip</td><td data-sheets-value="{"1":2,"2":"1 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">1 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Khu-Phu-Ka"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Khu-Phu-Ka</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"KlingonRL"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">KlingonRL</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Kollum: The Pressure Valve"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Kollum: The Pressure Valve</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Krater"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Krater</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Kukulima"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Kukulima</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Legend of Dungeon"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Legend of Dungeon</td><td data-sheets-value="{"1":2,"2":"4 (1%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">4 (1%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Liberation of Yama"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Liberation of Yama</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Like a Rogue"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Like a Rogue</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Live as Long as Possible"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Live as Long as Possible</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Lost Crypts"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Lost Crypts</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Lost Labyrinth"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Lost Labyrinth</td><td data-sheets-value="{"1":2,"2":"1 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">1 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Lurk Under Wires"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Lurk Under Wires</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"MacRL"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">MacRL</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Magic Fountain"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Magic Fountain</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Malachite Dreams"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Malachite Dreams</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Man in a Maze"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Man in a Maze</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Mazmorra"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Mazmorra</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"MGRL"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">MGRL</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"MidBoss"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">MidBoss</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"MidsomerRL"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">MidsomerRL</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"MLP RL"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">MLP RL</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"mmoRL"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">mmoRL</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Mosaic"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Mosaic</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Moving@"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Moving@</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"MovingETA v0.07"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">MovingETA v0.07</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Mysterious Castle"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Mysterious Castle</td><td data-sheets-value="{"1":2,"2":"1 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">1 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"MythosRL"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">MythosRL</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Nebulaic Toaster"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Nebulaic Toaster</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"NEOScavenger"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">NEOScavenger</td><td data-sheets-value="{"1":2,"2":"2 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">2 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Nightmare Tyrant"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Nightmare Tyrant</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"NinjaRL"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">NinjaRL</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Not the Robots"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Not the Robots</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Now Hiring: Zookeepers"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Now Hiring: Zookeepers</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Noxico"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Noxico</td><td data-sheets-value="{"1":2,"2":"2 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">2 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"NPPAngband"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">NPPAngband</td><td data-sheets-value="{"1":2,"2":"4 (1%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">4 (1%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"NPPMoria"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">NPPMoria</td><td data-sheets-value="{"1":2,"2":"2 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">2 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Nuclear Throne"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Nuclear Throne</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Nya Quest"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Nya Quest</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Nyanko"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Nyanko</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Occult Chronicles"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Occult Chronicles</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"One Way Heroics"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">One Way Heroics</td><td data-sheets-value="{"1":2,"2":"3 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">3 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Paranautical Activity"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Paranautical Activity</td><td data-sheets-value="{"1":2,"2":"1 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">1 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Peli"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Peli</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Pitman"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Pitman</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Pixel Dungeon"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Pixel Dungeon</td><td data-sheets-value="{"1":2,"2":"6 (1%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">6 (1%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Pixel Piracy"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Pixel Piracy</td><td data-sheets-value="{"1":2,"2":"2 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">2 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"PonyRL"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">PonyRL</td><td data-sheets-value="{"1":2,"2":"2 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">2 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Possession: Escape from the Nether Regions"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Possession: Escape from the Nether Regions</td><td data-sheets-value="{"1":2,"2":"1 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">1 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Post Future Vagabond"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Post Future Vagabond</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Prehistorical Bean Climber"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Prehistorical Bean Climber</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"PRIME"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">PRIME</td><td data-sheets-value="{"1":2,"2":"2 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">2 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Prospector"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Prospector</td><td data-sheets-value="{"1":2,"2":"3 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">3 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Pugnacious Wizards"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Pugnacious Wizards</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Pugnacious Wizards 2"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Pugnacious Wizards 2</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"PurpRL"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">PurpRL</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Quadropus Rampage"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Quadropus Rampage</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"QuickHack"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">QuickHack</td><td data-sheets-value="{"1":2,"2":"1 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">1 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Rasatala"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Rasatala</td><td data-sheets-value="{"1":2,"2":"1 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">1 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Red Rogue"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Red Rogue</td><td data-sheets-value="{"1":2,"2":"3 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">3 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Return to the Dungeons of Doom"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Return to the Dungeons of Doom</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Rillaung"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Rillaung</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Risk of Rain"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Risk of Rain</td><td data-sheets-value="{"1":2,"2":"7 (2%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">7 (2%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Rodney"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Rodney</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"rogue (7DRL)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">rogue (7DRL)</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Rogue Break"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Rogue Break</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Rogue City Scavenger"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Rogue City Scavenger</td><td data-sheets-value="{"1":2,"2":"1 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">1 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Rogue Coder"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Rogue Coder</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Rogue Dream"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Rogue Dream</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Rogue Effect"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Rogue Effect</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Rogue Fleet"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Rogue Fleet</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Rogue in the Void"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Rogue in the Void</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Rogue Legacy"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Rogue Legacy</td><td data-sheets-value="{"1":2,"2":"15 (4%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">15 (4%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Rogue Shooter"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Rogue Shooter</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Rogue Valley"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Rogue Valley</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Rogue's Eye"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Rogue's Eye</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Rogue's Labyrinth"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Rogue's Labyrinth</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Rogue's Souls"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Rogue's Souls</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Rogue's Tale"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Rogue's Tale</td><td data-sheets-value="{"1":2,"2":"2 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">2 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Rogue3D"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Rogue3D</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Roguelike Runner"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Roguelike Runner</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"RogueMek"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">RogueMek</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Room Rogue"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Room Rogue</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"RRRSAncientBlade"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">RRRSAncientBlade</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"RuneMaster"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">RuneMaster</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Ruoeg, a minimalist roguelike"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Ruoeg, a minimalist roguelike</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"SanitasRL"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">SanitasRL</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Scrounger"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Scrounger</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Seduction Quest"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Seduction Quest</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"segfault"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">segfault</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Seven Days in Space"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Seven Days in Space</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"ShadowsofHumanity"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">ShadowsofHumanity</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Sil"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Sil</td><td data-sheets-value="{"1":2,"2":"7 (2%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">7 (2%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Skool Eskape"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Skool Eskape</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"SkullDorado"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">SkullDorado</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Slaughter"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Slaughter</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Smashing Bad"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Smashing Bad</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"So Many Jagged Shards"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">So Many Jagged Shards</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Sorcery Saga: The Curse of the Great Curry God"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Sorcery Saga: The Curse of the Great Curry God</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Spelunky HD"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Spelunky HD</td><td data-sheets-value="{"1":2,"2":"11 (3%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">11 (3%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Splitter"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Splitter</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Starship Rex"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Starship Rex</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Steam Marines"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Steam Marines</td><td data-sheets-value="{"1":2,"2":"5 (1%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">5 (1%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Stink Warrior"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Stink Warrior</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Sunk Coast"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Sunk Coast</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"SurviveRL"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">SurviveRL</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"SurvivorRL"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">SurvivorRL</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Swift Swurd"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Swift Swurd</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Sword of the Stars: The Pit"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Sword of the Stars: The Pit</td><td data-sheets-value="{"1":2,"2":"5 (1%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">5 (1%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"T.H.A.D. - 7DRL edition"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">T.H.A.D. - 7DRL edition</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"T.o.M.E. 4"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">T.o.M.E. 4</td><td data-sheets-value="{"1":2,"2":"139 (41%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">139 (41%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"T@XI"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">T@XI</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Teleglitch"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Teleglitch</td><td data-sheets-value="{"1":2,"2":"5 (1%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">5 (1%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Tetrogue"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Tetrogue</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"The Artifact"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">The Artifact</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"The Aurora Wager"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">The Aurora Wager</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"The Case of the Girl and the Red Dress"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">The Case of the Girl and the Red Dress</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"The Conception"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">The Conception</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"The Fourth Wall"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">The Fourth Wall</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"The Guided Fate Paradox"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">The Guided Fate Paradox</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"The Hunger Games"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">The Hunger Games</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"The Land"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">The Land</td><td data-sheets-value="{"1":2,"2":"2 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">2 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"The Monastery Garden"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">The Monastery Garden</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"The Power of Dreams"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">The Power of Dreams</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"The Reset Button"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">The Reset Button</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"The Royal Wedding"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">The Royal Wedding</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"The Veins of the Earth"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">The Veins of the Earth</td><td data-sheets-value="{"1":2,"2":"1 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">1 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"The Wizard's Lair"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">The Wizard's Lair</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"TomeNET"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">TomeNET</td><td data-sheets-value="{"1":2,"2":"2 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">2 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Tower of Guns"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Tower of Guns</td><td data-sheets-value="{"1":2,"2":"2 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">2 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Triangle Wizard"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Triangle Wizard</td><td data-sheets-value="{"1":2,"2":"5 (1%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">5 (1%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Ultima Ratio Regnum"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Ultima Ratio Regnum</td><td data-sheets-value="{"1":2,"2":"6 (1%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">6 (1%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"UnBrogue"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">UnBrogue</td><td data-sheets-value="{"1":2,"2":"1 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">1 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Underhall"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Underhall</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Unhappy Devil"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Unhappy Devil</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Unnamed RL"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Unnamed RL</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"UnReal World"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">UnReal World</td><td data-sheets-value="{"1":2,"2":"22 (6%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">22 (6%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Uushubud"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Uushubud</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Versus Time"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Versus Time</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Voyage to Farland"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Voyage to Farland</td><td data-sheets-value="{"1":2,"2":"2 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">2 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Warp Core Breach"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Warp Core Breach</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Wayward"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Wayward</td><td data-sheets-value="{"1":2,"2":"8 (2%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">8 (2%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"WazHack"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">WazHack</td><td data-sheets-value="{"1":2,"2":"6 (1%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">6 (1%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Web Raid Mobile"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Web Raid Mobile</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Weeping Angels"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Weeping Angels</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Witchaven the Roguelike"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Witchaven the Roguelike</td><td data-sheets-value="{"1":2,"2":"1 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">1 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"X@COM"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">X@COM</td><td data-sheets-value="{"1":2,"2":"3 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">3 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Zero-Player Game"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Zero-Player Game</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"ZomgRL"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">ZomgRL</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
<tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Zoo Base"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">Zoo Base</td><td data-sheets-value="{"1":2,"2":"0 (0%)"}" style="padding: 2px 3px 2px 3px; vertical-align: bottom;">0 (0%)</td></tr>
</tbody></table>
<div class="blogger-post-footer">---
This post is from <A HREF="http://roguelikedeveloper.blogspot.com">Ascii Dreams</A>.</div>Andrew Doullhttp://www.blogger.com/profile/11099404183952971291noreply@blogger.com0tag:blogger.com,1999:blog-2208890564265615027.post-81616974579335314042016-09-15T12:55:00.002+10:002016-09-15T12:57:29.053+10:00An open letter to anyone in media who wants to discuss the origin of the term 'roguelikes'Firstly I'd like to thank you in your discussion of what is a roguelike of neatly avoiding trying to describe what a roguelike is and isn't. Within the roguelike community, this topic elicits frequent and heated debate.<br />
<br />
The thing most people don't realise about the origin of the term roguelike is that it arose because Rogue was and is still a really good game: in fact an exemplary example of the genre. If you haven't had a chance to play it, I would strongly encourage you to try it. It's available for free in any browser at the Internet Archive: <a href="https://archive.org/details/msdos_Rogue_1983">https://archive.org/details/msdos_Rogue_1983</a><br />
<br />
The reason we now see so many games using the term roguelike is largely due to the popularity of the roguelike platformer Spelunky (released 2008), but also due to the roguelike community re-invogorating itself in the mid 2000s by starting one of the first ever game jams in 2005: the annual 7 day roguelike (7DRL) challenge where people attempt to write a roguelike in 168 hours. (Spelunky designer Derek Yu also did the tile design for DoomRL which is arguably the first ever 7DRL).<br />
<br />
"Coffee break" roguelikes like DoomRL made the genre far more accessible, and popular 7DRL games like 868-HACK and Hoplite have made the transition to mobile platforms and much wider audiences. The community also organises annual now regional International Roguelike Developer Conferences (IRDCs) and the first ever Roguelike Celebration for players of roguelikes September 17 this year.<br />
<br />
<br />
This is almost entirely done on a voluntary basis for games which are largely given away for free, source code included, driven by our shared love of a genre which in all probability wouldn't exist were it not for the original game Rogue.<div class="blogger-post-footer">---
This post is from <A HREF="http://roguelikedeveloper.blogspot.com">Ascii Dreams</A>.</div>Andrew Doullhttp://www.blogger.com/profile/11099404183952971291noreply@blogger.com0tag:blogger.com,1999:blog-2208890564265615027.post-17357004483509677812016-09-08T13:14:00.001+10:002016-09-15T23:52:42.360+10:00GM-less RPGsOne of the key challenges of the High Frontier RPG is making the game GM-less. At first this was almost included as a throwaway line with the thinking that it'd play just like a cooperative legacy board game like Pandemic: Legacy and those are really easy to make, right :)<br />
<br />
But what I hadn't initially envisioned as being an issue and what is increasingly becoming apparent is aside from scene setting, conflict resolution, rules arbitration and flavour - functions that the High Frontier RPG has answers for, the Game Master has another function which is far less easy to solve: maintaining the game state.<br />
<br />
What I mean by this, is the information that is preserved when the game is packed up and put away at the end of the game session. Legacy board games solve this by recording the game state using the game components: you open packets, write on the board, tear cards up and so on, which ordinarily would be considered big problems with board games and are the 'controversial' part of a legacy game, but in reality provide this function transparently and intuitively without anyone having to write anything down.<br />
<br />
The Game Master does this for RPGs: he's the storage engine of the game, the hard drive if you will to which any changes to the game supplements are recorded. But it's not the storage function that is important - because the player's have memories as well - so much as the integrity of this storage function: the game master is the final arbiter of truth in the game universe and what he or she remembers to be true is the ultimate truth modulo a player making a compelling argument otherwise.<br />
<br />
I could of course just make one player perform the 'secretary' function, but to me this feels like the bad parts of being a game master without any of the fun stuff. Instead I've made a set of assumptions that may or may not be true for any individual game:<br />
1. Information that is publicly shared to all the players is going to be remembered by the majority. This is a massive side step of the issue, but I'm going to develop some work sheets that'll help here - essentially a mission log, to allow players to record some of the random results so that the play events can be reconstructed. This mission log can be filled in by anyone, and should hopefully be easy to maintain.<br />
2. Information that is secret, is secret but verifiable.<br />
<br />
Secrets are going to be the really tricky part of the game. A lot of what constitutes secrets in most games are going to be replaced by random tables. Unlike virtually every other RPG on the market (sans Microscope), High Frontier RPG does not have a fixed game world - the game world dynamically evolves from the real world today into something unknown. So the fact that say the New Attica Secessionists are the result of, for instance, a massively multiplayer alternate reality game spiralling out of control, is a random number that is rolled on a table at the time you could potentially figure this piece of information out.<br />
<br />
But there are important secrets that are going to be part of the game. The three secrets that players will actually care about are:<br />
<br />
1. The psychological profile of the character.<br />
2. Whether a piece of equipment or person or faction that we're relying on is actually reliable (defect cards) and to a lesser extent, upcoming events (although events could just be replaced by a random card drawn without too much loss).<br />
3. For any published game scenario (one is planned so far): The origin and intentions of the scenario threat.<br />
<br />
To encode all of this information, I'm going to use packets of playing cards.<br />
<br />
Psychological profiles are encoded by turning two 1d6 rolls into two cards. Since crews have four players, there's a straight forward mapping of crew position to suit. And the encoding scheme is simply going to be the first card is the lowest roll, second card is the sum of the lowest plus highest roll. This is a incredibly weak cryptographic system, but I'm using this as an advantage in that showing another player one of your psychological profile cards is an incredibly important thing. More importantly, at the moment once your psychological profile is created, you don't get to hold the cards - they're dealt out to other crew members. And to verify this, the rest of the unused psychological profile cards are sealed back into the profile deck and signed by all players so if someone is accused of cheating, we can check the profile deck to see which cards are missing from each suit.<br />
<br />
Defect cards are associated with individual ship components, or parts of the High Frontier playing board. That's the big downside with defects - you have to have the High Frontier playing board, and you probably have to leave it set up somewhere between play sessions. Tracking defects are the weakest part of the game, easily manipulated and prone to cheating, which is why they are optional, but they are a very cool idea originally used in the <i>Leaving Earth</i> board game and I hope people find them interesting enough to respect the rules governing them.<br />
<br />
The origin and intentions cards for the game scenario has only just come up as I've started designing High Frontier RPG: Titan. I originally envisioned this as a solar system wide conflict simulator for people really into their military sci fi to play ultra-realistic space battles and campaigns. However at the same time I wanted to add a bit of mystery by having the actual nature of the big bad be randomly determined, and as it turns out, only two of the six planned origin stories are straight forward kill the bad guys - two of them are figure out the bad guys, and two of them are 'I didn't realise we were playing an RPG adaptation of <i>Naked Lunch/Edge of Tomorrow/Thirteenth Floor'</i>.<br />
<br />
This is a bold experiment, and if it doesn't work, I have a backup plan to allow a game master to run the game with all of the above resources available to them. But I'd like to see this 'in the wild', not just in controlled play tests to see whether it works and whether players can adapt to the challenge.<div class="blogger-post-footer">---
This post is from <A HREF="http://roguelikedeveloper.blogspot.com">Ascii Dreams</A>.</div>Andrew Doullhttp://www.blogger.com/profile/11099404183952971291noreply@blogger.com0tag:blogger.com,1999:blog-2208890564265615027.post-74243558949969872682016-05-30T09:09:00.001+10:002016-05-30T09:20:46.883+10:00A Short Essay on Why I St-advocated Person of Interest to Rob Zacny on Twitter<i>For background, listen to the Idle Weekend Podcast at https://www.idlethumbs.net/forums/topic/10935-idle-weekend-may-27-2016-weve-been-playing/ from about the 30 minute mark. I'll be posting this on the Idle Thumbs forums as well.</i><br />
<br />
So let’s talk Person of Interest. (Mild spoilers warning: I talk about thematic concerns, and divulge some character arc conclusions in general terms. More important warning: I make a lot of unsupported generalizations in this essay. I don’t necessarily want you to agree or disagree with them – I’m more trying to paint a picture of where my head space is at). <br />
<br />
I grew up a nerd, in a time where being a nerd was an isolating experience. I didn’t feel particularly isolated – there were plenty of people to play Dungeons & Dragons at school with, and I was onto the nascent Internet pretty early on, as my Dad ran a BBS for the local Commodore 64 user group. But I always had this sense of “otherness” – that what I was doing wasn’t part of the mainstream culture – but you could easily attribute this feeling of otherness to the process of being a child, then a teenager. <br />
<br />
It became clear to me as an adult, that there was a transformative social experiment going on with our lives facilitated by the twin new technologies of financial derivatives (for maths majors) and the Internet (for everyone else) – in short, the nerds were taking over. And with the advent of Facebook , it was equally clear to everyone else that the nerds had won. We were now the mainstream cultural force – modulo something about sports – and the last ten years has seen a complete takeover of film, and transformation of vast areas of television and literature. There’s another essay or even a book to be written about this (if there hasn’t been already), but let’s just say that “nerds now own narrative” and leave it at that for the moment. <br />
<br />
How does this relate to Person of Interest? Because as Jonathan Nolan and Greg Nolan have said this season the ultimate bad guys in PoI are Mark Zuckerburg and Isaac Asimov. That is to say, they are us. <br />
<br />
(If you don’t believe me, there’s a speech that Harold Finch makes at the end of the first episode of Season 2 where he lays his cards on the table of why he designed the machine the way he did. And it’s clear that the thing that actually terrifies him the most is himself. I just wish they hadn’t miscast the actor who plays Greer who comes across too Emperor Palpatine to make the counter-case effectively (although I loved his scene in the Fifth Element which is one of my top 5 sci fi scenes ever (man I need to re-watch the Fifth Element, it’s the sci fi Big Trouble in Little China))). <br />
<br />
But at the same time, Person of Interest is written for us. Mr Robot is the only other show on television that cares about the technology of computers as much as we think we do: Person of Interest has about as realistic cryptography, AI and hacking as makes sense to show on television, and if you start rolling your eyes at something particularly outlandish (especially in season 5), it is likely that you are wrong and the PoI writer’s room has been doing more research than you have. One of the real pleasures of watching Person of Interest in near real time is that they are often as close to or ahead of the bleeding edge technology concerns of the day than the mainstream media (my favorite is the buffer overflow exploit in If-Then-Else although there is an interrogation scene the next episode which under 30s will appreciate much more than I can). Person of Interest predicted Edward Snowden, not the other way around. <br />
<br />
The most unrealistic thing that Person of Interest portrays is the public actually caring about a massive state run surveillance program. And that’s where I think Person of Interest loses the nerd narrative: it cares about heroes in a way that we have been taught to distrust. It celebrates flawed individuals who genuinely want to redeem themselves – whereas we celebrate stories without heroes (Breaking Bad), or with selfish heroes who are more concerned with discovering who they are (Mr Robot). <br />
<br />
Person of Interest cares about redemption so much that up until season 4, every “big bad” also redeems themselves. And not just in the last minute quip or sacrificial act that PoI does so well, but in having a reason for doing what they are doing, and being ‘right’ about their reasons. Season 4 and 5’s biggest misstep is losing sight of this: there are at least 3 villains in these seasons who deserve a flashback story but don’t get it, which is doubly annoying in that 2 of them are thematic shadows of other characters rather than fully developed characters in their own right. If you have difficulty getting any of the season 4 villains, look around and try to figure out what else in the story their relationships are analogous to. <br />
<br />
That explains my love of the show in general terms and why I think we as nerds should be watching – what it doesn’t explain is why I was stalking/advocating (to explain the portmanteau) Rob Zacny about it. <br />
<br />
That’s a much more specific issue about how we as a community talk to each other – or whether we even exist as a community any more. To go back to back to the idea of “the nerds have won” – I don’t think that many of us feel like we’ve actually achieved this. Sure, we’ve bent culture to our will, but all that seems to have created is a huge sense of entitlement. What is missing from nerd-dom, and where I think we’ve damaged society and why we still feel isolated, is our general lack of civic engagement. I’m not talking about political engagement, but our roots in the wider community – volunteer work, club and community group membership, local political engagement. Criticize sports culture all you want but at the very least it forces you to be a team player. Because we’ve helped weaken the social bonds around us, we’ve helped the Baby Boomers get away with the lowest financial contribution to society of any modern generation, and those 10 years older than me drive women out of information technology, where they used to be the majority. <br />
<br />
The Internet has enabled some engagement, but over the last 10 years, this has gone from the transformative experience I was incredibly fortunate enough to be a part of, to the fractured cliques we see now. Most of this blame lies with mainstream media and advertising, which successfully killed blogging as a viable platform, and left podcasting as one of the few great places left to have a meaningful conversation with a wider audience, because you can’t metric the medium. <br />
<br />
Ten years ago, I wouldn’t have tried to get someone else to watch Person of Interest over social media. I would have written a blog post similar to this essay, and relied on an aggregator site like Slashdot to pick it up and amplify it. These days, I could slowly build an audience by podcasting (don’t get me started on how Patreon breaks things) and I know it’s possible because I’ve done so. But I’ve also discovered that it’s very difficult to get your audience to follow you – I’ve gone from game modder, to board game modder to hopefully boardgame and RPG designer, and most of the audience I’ve built are still only happy if I talk about roguelikes. So instead, I’ve gone to someone I hugely respect, and begged them to get them to experience and then talk about this thing I love from their slightly taller soap box. <br />
<br />
And I’ll be more than happy to do so again.<div class="blogger-post-footer">---
This post is from <A HREF="http://roguelikedeveloper.blogspot.com">Ascii Dreams</A>.</div>Andrew Doullhttp://www.blogger.com/profile/11099404183952971291noreply@blogger.com3tag:blogger.com,1999:blog-2208890564265615027.post-65197504241477359322016-04-04T14:56:00.003+10:002016-09-15T23:53:11.771+10:00High Frontier RPG temporarily on holdI'm temporarily removed all access to the High Frontier RPG Google doc I've been working in, in direct response to <a href="http://latining.tumblr.com/post/141567276944/tabletop-gaming-has-a-white-male-terrorism-problem" target="_blank">http://latining.tumblr.com/<wbr></wbr>post/141567276944/tabletop-<wbr></wbr>gaming-has-a-white-male-<wbr></wbr>terrorism-problem</a><br />
<br />
The
current design includes rules for a number of difficult topics which I
think the RPG is unavoidably going to raise. I was hoping the RPG
community would be mature enough to handle these appropriately, but
based on the experiences of the writer of the referenced article, I no
longer think that is the case and instead any attempts I make to reify
the types of topics that naturally arise when a 4 person crew is sent on
a 10 year mission without any other human contact will have a negative
outcome.<br />
<br />
<div>
This article has so badly shaken me, I'm now
second guessing the efforts I'm making to put a little more detail in
classic TV tropes such as a multi-ethnic crew.</div>
<div>
<br /></div>
To
people who've been waiting to play test this, I would like to
apologize. I'm going to have a long think about whether or not I want to
continue any efforts with this design and then how to approach or
censor the topics I want to handle.<div class="blogger-post-footer">---
This post is from <A HREF="http://roguelikedeveloper.blogspot.com">Ascii Dreams</A>.</div>Andrew Doullhttp://www.blogger.com/profile/11099404183952971291noreply@blogger.com7tag:blogger.com,1999:blog-2208890564265615027.post-83645834112958330572016-03-13T13:05:00.001+11:002016-03-13T13:13:08.519+11:00Dear friendsMuch like you, I have spent much of my life obsessed with the idea of the savory muffin - a food with a name that invokes so much possibility [1] but which inevitably ends in a dry oniony disappointment [2]. For several years now, I've been exploring the possibility of meat muffins but I've never been able to find what I've been looking for [3]<br />
<br />
Until now.<br />
<br />
A local cafe, hidden in an industrial zone near my daughter's ballet class, serves a risotto and chorizo timbale baked in a muffin tray and wrapped in baking paper [4]. I assumed that the word timbale completely described this heavenly dish, but a quick Google search reveals that there is an incredible world of shaped baked pasta and risottos that I was previous unaware of.<br />
<br />
I worry constantly that I'll die not knowing everything, and a discovery of this significance this late in life lends credence to my fears.<br />
<br />
[1] See also: Corn bread.<br />
[2] There's never enough cheese inside the muffin to be worth mentioning. Occasionally there's enough on top. <br />
[3] Potato top pies are the closest flavour analog I can find. <br />
[4] They also do an amazing prosciutto, egg and caramelized onion cheese cake with the prosciutto forming the base of the cake.<br />
<br />
<br /><div class="blogger-post-footer">---
This post is from <A HREF="http://roguelikedeveloper.blogspot.com">Ascii Dreams</A>.</div>Andrew Doullhttp://www.blogger.com/profile/11099404183952971291noreply@blogger.com1tag:blogger.com,1999:blog-2208890564265615027.post-67131157965252005962015-11-13T12:08:00.000+11:002015-11-13T12:08:09.911+11:00UnBrogue Correspondence<blockquote class="tr_bq">
"I just want to offer my thanks for making the variant of Brogue, UnBrogue.<br />
Brogue itself pales in comparison to UnBrogue. Brogue, to me, has become no longer enjoyable.<br />
<br />
The addition of the items with their new powers makes for a variety of
new situations, the sacrificial altars make for a good tradeoff, and the
shields, even when cursed, make for an entertaining run with
deflections and defense.<br />
<br />
I've also made it further in UnBrogue than I have in any other
roguelike, to floor 22 (jumping through to floor 23 made it crash, for
some reason), but even that run alone made for an interesting set of
stories - After a particularly grueling fight against a Lich, having
lost levels in my leather armour (-6 due to acids) I turned down a
corridor to see a Dragon. Each of its blasts of fire were deflected by
my tower shield, and I slew it with a +8 Cleaver.<br />
<br />
All to the tune of Elegia by New Order, it made for a fairly intense few moments.<br />
<br />
Or that time I was held by a Bog Monster and beaten and thrown darts at
by Centaurs until I died, while China Girl by David Bowie played made
for an entertaining end to a character.<br />
<br />
Long story short, it's a game that has rekindled my interest in games.<br />
<br />
Also, I used to follow your blog, ASCII Dreams for quite a bit, but due
to other circumstances haven't been keeping up with it too much.<br />
<br />
Thanks again for the game."</blockquote>
<br />
-- An UnBrogue player<br />
<br />
<blockquote class="tr_bq">
"Firstly: thanks for the great email.<br />
<br />
Secondly: apologies for any or all crashes and bugs.<br />
<br />
Thirdly: I hope I really haven't broken Brogue for you. UnBrogue was
designed in part as a crazy palate cleanser for people playing Brogue.
But I don't have the time to maintain it at the quality level Brogue is
at, so I'd hate to take you away from a high quality game for a largely
experimental mod.<br />
<br />
I'm glad you're enjoying yourself so much though."</blockquote>
<br />
-- An UnBrogue developer <div class="blogger-post-footer">---
This post is from <A HREF="http://roguelikedeveloper.blogspot.com">Ascii Dreams</A>.</div>Andrew Doullhttp://www.blogger.com/profile/11099404183952971291noreply@blogger.com3tag:blogger.com,1999:blog-2208890564265615027.post-73215355928042664452015-08-24T14:41:00.004+10:002015-08-24T14:41:43.801+10:00Unangband 0.6.4c releasedIt looks like I'm just going to have to bite the bullet and
acknowledge I'm unable to compile Unangband for OS/X. If anyone is
running an old enough version of OS/X to include the Quickdraw library
headers, I'd love to host a compiled version of this release.<br />
<br />
### Bug Fixes ###<br />
<br />
- Allow monsters to use their ranged attacks (Fix thanks to Alexis Scheuer).<br />
<br />
- Fix monster toughness descriptions (Fix thanks to Alexis Scheuer).<br />
<br />
- Prevent Witchblooms spell description crashing the game.<br />
<br />
- Allow Saruman to appear in ruined Hobbiton (Fix thanks to gold dragon).<br />
<br />
- Prevent friendly uniques from being invulnerable to enemy attacks (Reported by Ashkir).<br />
<br />
You can download the release over at <a href="https://unangband.blogspot.com/">the Unangband home page</a>.<div class="blogger-post-footer">---
This post is from <A HREF="http://roguelikedeveloper.blogspot.com">Ascii Dreams</A>.</div>Andrew Doullhttp://www.blogger.com/profile/11099404183952971291noreply@blogger.com3tag:blogger.com,1999:blog-2208890564265615027.post-27891641912388446232015-08-10T14:37:00.000+10:002015-08-10T14:43:46.765+10:00Review: Dungeon Hacks and One Week Dungeons<div class="MsoNormal">
There’s a subgenre of science writing – books like <i>the Hacker Crackdown</i> and <i>the Newtonian Casino</i> – which I dove into
during my early twenties, which told the human stories of the development of
the Internet and the communities that grew in and around it. In print form,
there would usually be an insert of coloured photos of white, bearded, earnest,
awkward looking men – because tragically by the mid 80s computer scientists are
almost always white and male - in brown corduroy flairs and tucked in yellow
buttoned breast pocket shirts standing around a computer or in a computer lab,
alongside the computer hardware itself; reading the same stories on the World
Wide Web you’d navigate through man pages, and pre-Geocities website designs to
marvel at the crazy lengths early programmers would go to to exploit the
hardware and operating systems of the time.</div>
<div class="MsoNormal">
<i><br /></i></div>
<div class="MsoNormal">
<i><span class="il">Dungeon</span> Hacks</i>
falls into this same subgenre, and while it is a capital-I Important writing
about the history of the development of roguelikes, it is never vital. David Craddock tells the stories of the creation of many foundational works of the genre, but he fails to bridge the gap between games over
twenty years old - for which he has sourced a broad range of developer interviews
and pieced together a highly readable story - and how these weird infinities coax their players to dedicate years, even decades to mastering them.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Mr. Craddock’s research is impressive, and he has taken full
advantage of the willingness of roguelike developers to talk about their games
to record numerous anecdotes as well as documenting the important relationship between <i>Rogue</i> and the Unix curses terminal. Unfortunately <i>Dungeon Hacks</i> doesn't make the case for why someone outside the roguelike community should
care about this history, simply pointing to procedural generation
and permadeath as if these explain all the elements which elevated this ghetto
genre to indie darlings.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
By placing the developers on a pedestal, <i>Dungeon Hacks</i> understates the
contributions of the wider community of players and fans who freely give their
time and energy towards the games – the communities formed around Hack and the
Angband development team being two notable exceptions. To take one example,
John Harris, whose words the book concludes with, is labelled as a historian.
This misstates John’s importance to the genre: he is a historian
insofar as any enthusiastic amateur who spends years writing about a topic as a
labour of love is a historian, but he is not a historian in the sense that he
has not received any academic recognition or financial compensation for the
work he does.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
If you are at all interested in the roguelike genre you need to buy <i>Dungeon Hacks</i> for insight into the early days of roguelike development. But sadly, that's the limit of my recommendation: it is not a cross-over work that will explain the genre's deep appeal to the outsider, and I am perhaps unfairly judging it on this criteria.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Where <i><span class="il">Dungeon</span> Hacks</i>
is scholarly and historically focused, its companion volume <i>One Week <span class="il">Dungeons</span></i> is journalistic (in the
literal sense that it forms a week’s diary of eight would be developers) and dramatic.
Originally written as a coda to <i><span class="il">Dungeon</span>
Hacks</i>, it has the vitality and relevance that <i><span class="il">Dungeon</span> Hacks </i>lacks, as it documents the frustrations and successes
of these idealistic attempts to write a complete roguelike from scratch in 168
hours. Each developer’s tale is deeply personal, satisfying and thrilling, and the
story of Joseph Bradshaw forms its unexpected human heart.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i>Dungeon Hacks</i> and <i>One Week Dungeon</i> are both available from Press Start Press. I was provided early drafts of both books and complementary copies as a part of this review.</div>
<div>
<a href="http://www.press-start-press.com/dungeon-hacks.html" target="_blank">http://www.<span class="il">press</span>-<span class="il">start</span>-<span class="il">press</span>.<wbr></wbr>com/dungeon-hacks.html</a></div>
<a href="http://www.press-start-press.com/one-week-dungeons.html" target="_blank">http://www.<span class="il">press</span>-<span class="il">start</span>-<span class="il">press</span>.<wbr></wbr>com/one-week-dungeons.html</a><div class="blogger-post-footer">---
This post is from <A HREF="http://roguelikedeveloper.blogspot.com">Ascii Dreams</A>.</div>Andrew Doullhttp://www.blogger.com/profile/11099404183952971291noreply@blogger.com3tag:blogger.com,1999:blog-2208890564265615027.post-17885125695562148702015-08-04T11:27:00.002+10:002015-08-04T11:28:10.183+10:00High Frontier Kickstarter complete<a href="https://www.kickstarter.com/projects/highfrontier/high-frontier-0?ref=nav_search">The High Frontier 3rd edition kickstarter has finished</a>, with a final tally of 2,244 backers pledging USD $180,942 to get a copy of the game.<br />
<br />
This means I'm going to be published with a board game developer credit for the 3rd edition of High Frontier Interstellar, a solitaire game which re-uses most of the High Frontier components, which funded as a $36,000 stretch goal.<br />
<br />
It is fair to say the Kickstarter campaign funding exceeded anyone's expectations. It is also generated a lot of only over a beer stories, as I was heavily involved both in front of and behind the scenes as self-elected community manager. If you're in Sydney, feel free to buy me a beer some time :)<br />
<br />
I'll continue blogging just as soon as I get some time to do so. There's some follow up work to the campaign that I'm busy on. <div class="blogger-post-footer">---
This post is from <A HREF="http://roguelikedeveloper.blogspot.com">Ascii Dreams</A>.</div>Andrew Doullhttp://www.blogger.com/profile/11099404183952971291noreply@blogger.com0tag:blogger.com,1999:blog-2208890564265615027.post-82343614920930784172015-06-26T22:40:00.001+10:002015-06-26T22:47:49.584+10:00 High Frontier Interstellar design notes - part 3 (Inspiration)(Start with parts <a href="http://roguelikedeveloper.blogspot.com.au/2015/06/high-frontier-interstellar-3rd-edition.html">one</a> and <a href="http://roguelikedeveloper.blogspot.com.au/2015/06/high-frontier-interstellar-design-notes.html">two</a>).<br />
<br />
I don't consider myself a game designer because there are two things I haven't done which are central to game design: a) come up with an original game concept, and b) iterated on a design based on feedback from play testers. Game developer feels like a better fit, because I've taken an existing design and tweaked it, and I'm happy with being able to do this for High Frontier Interstellar because as a solitaire game I can be the sole play tester and be confident the game works.<br />
<br />
Recruiting other play testers, especially for board games is a complex exercise and at the moment my 3rd edition Interstellar play testing components are a Frankenstein mess of the base game, 2nd edition expansion, a poster map ordered through Zazzle, a spreadsheet allowing substitution of unused 2nd edition cards for new 3rd edition cards, a hand drawn fuel strip, and a memorised list of changes to the poster map. Then I have to get other people to somehow play the game this way...<br />
<br />
So instead of play tester feedback, I'm relying on intuition. And this leads me to a complex idea I want to explore here: that there are ideas that are somehow inherently better than others - in fact, it is possible to find the best possible solution to solve a design problem.<br />
<br />
To be clear:- I'm not saying that the new edition of High Frontier Interstellar is the best possible game about crossing the unimaginably huge gulf between the stars. Instead, given the numerous small design problems I identified while playing, I attempted to find the 'local maxima' - the rule change that solved the problem with the minimum complexity and maximum thematic value. And it feels to me like I've been able to find these maxima - which makes me wonder why these exist at all.<br />
<br />
To take a concrete example: in the 2nd edition, Biotechs could only perform two operations - and each operation was exclusive to one of the two possible starship configurations in the game (Beehive and non-Beehive). Biotechs ended up feeling not very 'Biotech'-like - they lacked thematic punch and flexibility.<br />
<br />
I experimented with modifying the Biotech promote ability to allow them to (only) promote cards in the vats:- which ended up both too powerful and less interesting (it trivialized avoiding Alzheimer's). But this solution remained in my variant because it was the best I could up with, but ultimately unsatisfactory.<br />
<br />
I needed a better answer - something that fitted the idea of a powerful ability but with a significant drawback. And it's the process of finding that answer that intrigues me.<br />
<br />
During the hectic 'week of development' that resulted in 90% of the changes to the game (between the 2nd edition & variant rules to 3rd edition that emerged), I typically would confront each problem in sequence - either to develop a temporary patch (like the Biotech vat promotion idea) or to return to the problem plus temporary patch and find an ultimate solution. This would take roughly 20-30 minutes of examining the problem in my head, trying several other 'obvious' fixes and looking at why these wouldn't necessarily work. I'd end up focusing on one fix that I'd repeatedly try even as I'd forgot, then remembered why this fix wouldn't work. This would sometimes be followed by a sudden flash of insight which would reveal the 'local maxima' fix which would be somehow related to the solution I had fixated on, but addressed all the issues I'd thought about - if it was the first time I'd approached the problem, I would end up trailing off with the 'good enough for the moment' patch instead, and move onto another problem - perhaps documenting (via email or Google docs) why this solution was acceptable but didn't quite address the whole problem.<br />
<br />
The next time I develop a project like this, I'm going to keep a developer diary to track this sequence more closely - because often the interval between the temporary fix and the ultimate solution would involve a period of sleep or exercise, where my unconscious mind would have the opportunity to chew the problem over before regurgitating the need to look at the problem again. I say that because the second time examining possible solutions would still need a period of reflection before finding the answer and it is not clear to me in retrospect whether this unconscious process was delivering the answer to me in a hidden form or simply giving me more ways of approaching the problem.<br />
<br />
Not all problems took this form:- there is also a design process more akin to traditional brainstorming which feels like the unstopping of a dam to let the reservoir fill up the contours of an empty valley downstream. This occurs when I'm working on more of a blue sky or blank slate design space: such as the Extended Operations expansion to Interstellar I may release at some point where I came up 3 new professions and new operations for each existing profession in a relatively short space of time. There's also what feels like a line by line editing process, which usually correlates to a literal line by line editing of the rules, where a rule is expanded on, clarified and tuned to handle all the cases that could eventuate while playing.<br />
<br />
It's this 'line by line' edit process that is more likely to reveal problematic rules:- but also the most likely to create problematic rules in the first place. This is because this editing is local rather than holistic, so that errors can creep into the game where 1 section of the rules says one thing where another part of the rules is operating on a different set of assumptions.<br />
<br />
As for the inspired rules that just feel right, I'm not even able to always completely articulate why they are the correct rule. Take the final solution to the Biotech issue:- I ended up leaving them unchanged from the 2nd edition except to give them a new operation Wet Nano Lab with the text ‘Discard a Graveyard card from the game to perform a Science or Engineer Op’.<br />
<br />
I can't explain definitely why this is the best solution. It meets the criteria of powerful ability with a drawback, and the thematic crunchiness I was looking for. It has the great side effect of allowing a get out of jail operation from either of the two most powerful careers in the game, and the drawback is significant enough that it is going to be used sparingly except in desperation (the Graveyard is used as a resource counter to limit the number of children your starship may have). But why of all of the possible design space in the game, is this ability the right one? I can't answer that on any level other than instinct.<br />
<br />
(And my all time favourite game design technique worked perfectly again: if you ever have an equation that sort of does what you want, but isn't working, reverse the equality e.g < becomes >; or vice versa. Here it made fighting Hostile Goo a far more interesting proposition. I love it because it is so completely nonsensical but surprisingly effective).<br />
<br />
In the next part, I want to talk about the multiplayer Interstellar game.<div class="blogger-post-footer">---
This post is from <A HREF="http://roguelikedeveloper.blogspot.com">Ascii Dreams</A>.</div>Andrew Doullhttp://www.blogger.com/profile/11099404183952971291noreply@blogger.com1