-
Notifications
You must be signed in to change notification settings - Fork 2
/
index.html
215 lines (176 loc) · 18.6 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Roguelike Universe: Visualising Influence</title>
<link rel="canonical" href="https://spaxe.github.io/roguelike-universe">
<meta property="og:url" content="https://spaxe.github.io/roguelike-universe">
<meta property="og:title" content="Roguelike Universe: Visualising Influence">
<meta property="og:description" name="description" content="Visualise connections and influences for roguelike games between 1975 — 2018.">
<meta property="og:image" content="https://spaxe.github.io/roguelike-universe/assets/influence-timeline.png">
<meta name="twitter:creator" content="@Xavier_Ho">
<meta name="twitter:card" content="summary_large_image">
<meta name="author" content="Xavier Ho">
<meta name="google-site-verification" content="LW3kIK0_DjpENh_S1YDJ86DZaJKUTcrFbSljQLjuSAc">
<link rel="shortcut icon" type="image/png" href="favicon.png">
<link rel="stylesheet" href="style.css">
</head>
<body>
<nav class="suggestion small">
<p>
<a class="highlight" href="#about"><span>About this page</span></a>
<a class="ml2 highlight" href="#update-entry"><span>Submit an update</span></a>
<span class="ml2 light small">version 2.2.1, <em>last updated 12 September 2018</em></span>
</p>
</nav>
<header>
<h1><a href="https://spaxe.github.io/roguelike-universe" class="no-link">Roguelike Universe: <em>Visualising Influence</em></a></h1>
<p class="small related"><em>Visualise connections and influences for roguelike games between 1975 — 2018</em></p>
<p class="smaller"><em>by <a href="https://twitter.com/Xavier_Ho" target="_blank">Xavier Ho</a></em></p>
</header>
<noscript><p class="highlight">Roguelike Universe requires JavaScript to run. We can't run JavaScript in your browser, so we have replaced diagrams with static images.</p></noscript>
<main class="mt2">
<section>
<p>
<a href="https://en.wikipedia.org/wiki/Roguelike" target="_blank">Roguelike games</a> have a long history as one of the earliest computer video games in the mid 1970's. <a href="https://web.stanford.edu/group/htgg/sts145papers/rhensley_2002_1.pdf" target="_blank">Distributed with Unix systems</a>, <em>Rogue</em> was created with curses, a programming library that allowed developers to display any ASCII characters anywhere on the terminal. It was unlike any other games that were available for home computers, which were more text-based adventure games. <em>Rogue</em> painted a world with letters and symbols, full of mystery and danger, and it quickly gained attention of many. The name, <a href="https://blog.roguetemple.com/history/" target="_blank">roguelike</a>, was adopted on Usenet since 1993 as we know it today.
</p>
<p>
What exactly makes a game <em>roguelike</em> was debated throughout the next decade. In 2008, the first International Roguelike Development Conference, held in Berlin, came to an <a href=" http://www.roguebasin.com/index.php?title=What_a_roguelike_is" target="_blank">agreement</a>: ASCII graphics, turn-based, grid-based dungeon crawl hack and slash, with randomly generated environments that changes at every level, and <em>permadeath</em>, you only get one life. Failure in a roguelike game means a shiny tombstone enshrined in your savefile, and a complete restart with a new, random dungeon level. To beat roguelike games, you die trying.
</p>
<p>
In the 2000s and 2010s, the games industry saw the rise of <a href="https://en.wikipedia.org/wiki/Indie_game" target="_blank">indie games</a>. With <em>Spelunky</em>, <em>The Binding of Isaac</em>, and many more again popularised random environment generation in mainstream games market. They deviated away from ASCII graphics and turn-based actions, and provided a more forgiving gameplay. They were not quite roguelikes, but <a href="https://www.hardcoregamer.com/2013/07/06/what-separates-a-roguelike-from-a-roguelite/47151/" target="_blank"><em>roguelites</em></a>. Other names such as <em>roguelike-like</em> also describe them, which we use in this webpage.
</p>
<p>
Roguelike games are important today not only because of their historical values, but also because they have the longest development and update release in modern games history. <em>NetHack</em>, more than 30 years later since its initial release in 1987, <a href="http://www.nethack.org/" target="_blank">still have updates</a> to the core distribution. This gargantuan life cycle has no match from other game genres. The runner up, <em>Ultima Online</em>, has so far only seen <a href="https://en.wikipedia.org/wiki/Ultima_Online" target="_blank">updates just over 20 years</a>. Roguelike and other roguelike-like games continue to influence game design with each new title release, and updates to existing beloved titles. This webpage is dedicated to enshrine their influence in the form of data visualisation, drawing a design history of over 40 years.
</p>
</section>
<section>
<h2>Visualising the Roguelike Influence</h2>
<p>
We collected data from <a href="http://roguebasin.roguelikedevelopment.org/" target="_blank">RogueBasin</a>, an editable wikipage mainly <a href="#update-entry">collaborated by roguelike game developers</a>. On each game entry, there is a field called <em>Influence</em> that documented sources of inspiration for these roguelike games. We refer to them as <strong>known influences</strong>, drawn with <span style="border-bottom: 3px solid rgb(79,74,138)">thick arcs</span>.
</p>
<p>
However, many entries are incomplete, and we have not seen any documentation on the influence of roguelike-like games. We saught after influence of more roguelike games by ways of web scraping, filtering websites via keywords and looked for articles about history, post-mortem, developer interviews, and player discussions around these games. Our algorithm counted the number of times two games were frequently mentioned together, and weighted them with a manually chosen cutoff. This derives the <strong>inferred influence</strong>, drawn with <span style="border-bottom: 0.5px solid rgb(79,74,138)">thin arcs</span>.
</p>
<div class="flex">
<div>
<p class="mt0">Arcs above the horizon are influences between two roguelike games, and arcs below the horizon are influences between a roguelike and a non-roguelike game.</p>
<p><label>You can choose a game to see its influence arcs: <select id="roguelike-arc-selection"></select></label></p>
<p class="highlight smaller"><em>Missing data? You can contribute to the "Influences" field on RogueBasin. Here is the <a href="#" target="_blank" id="roguelike-arc-contribute"></a>.</em></p>
</div>
<div id="roguelike-arc-infobox" class="infobox smaller flex-250">
<span class="m0" name="roguetemple"></span>
<span class="m0" name="project"></span>
<span class="m0" name="developer"></span>
<span class="m0" name="theme"></span>
<span class="m0" name="released"></span>
<span class="m0" name="updated"></span>
<span class="m0" name="count"></span>
</div>
</div>
<figure id="influence-arcs">
<div></div>
<p id="roguelike-arc-known" class="words smaller"></p>
<p id="roguelike-arc-inferred" class="words smaller"></p>
<noscript><img class="fullwidth" src="assets/influence-arcs.png"></noscript>
<figcaption><em>Figure 1: Roguelike influence arcs</em> | <a href="" id="roguelike-arc-share" title="Copy this link to share with others">Share link</a> | <a href="#about">Feedback</a> | <a id="roguelike-arc-data">Download data</a></figcaption>
</figure>
</section>
<section>
<h3>Which games are more representative or influential?</h3>
<div class="flex">
<div>
<p>
<em>Rogue</em>, <em>Moria</em>, and <em>Hack</em> have many influences into other games that came after them. We describe these games as <strong>influential</strong>. Other games, like <em>Slash'EM Extended</em> and <em>Darkfire RPG</em> are influenced from more games of their past. We call these games <strong>representative</strong> of their own kind. Relatively speaking, they borrowed more ideas than there are ideas that were borrowed from them.
</p>
<p>
We also make a distinction for influences connecting non-roguelike games. Games like <em>Shiny Gauntlet</em> have more inferred influences with non-roguelike games. The gameplay itself also shows the level of deviation from the traditional roguelike gameplay and feel. For instance, <span id="genre-influential-text"></span> We can use these connections to estimate the level of similarity between different games, and provide another venue of games discussion beyond genre labels.
</p>
</div>
<figure class="flex-250 ml1">
<img class="image" src="assets/Figure-genre-influential.png">
<figcaption><em>Figure 2: Genre-Influence Matrix<br>
<a href="#about">Feedback</a> | <a href="assets/Figure-genre-influential.png" download="roguelike-unversei_genre-influence-matrix.png">Download image</a></em></figcaption>
</figure>
</div>
</section>
<section>
<h3>Can we map out their influences by time and genre?</h3>
<p>We take each number of influences and draw a circle for each game. The further they are away from the origin, the more distinct their influences are. For instance, influences mostly in roguelike games will result in above the horizon line.</p>
<p>You can click on a circle to see which games are at that location.</p>
<figure id="influence-map">
<div></div>
<p id="roguelike-map-selected" class="words smaller"></p>
<noscript><img class="fullwidth" src="assets/influence-map.png"></noscript>
<figcaption><em>Figure 3: Roguelike Influence Map</em> | <a href="#about">Feedback</a> | <a id="roguelike-map-data">Download data</a></figcaption>
</figure>
</section>
<section>
<h3>Which games have influenced other games, exactly?</h3>
<div class="flex">
<div>
<p>This is where scatter plot comes in handy. We plot every roguelike, and roguelike-like games in our dataset. More will be added over time. Influences are drawn as links between the dots.</p>
<p>The horizontal axis is the release year (or the exact date as available), and the vertical, stacked axis is the total number of influences each game has to other games.</p>
</div>
<div id="roguelike-timeline-infobox" class="infobox smaller flex-250">
<span class="m0" name="roguetemple" class="right-link"></span>
<span class="m0" name="project" class="right-link"></span>
<span class="m0" name="developer" class="right-link"></span>
<span class="m0" name="theme" class="right-link"></span>
<span class="m0" name="released" class="right-link"></span>
<span class="m0" name="updated" class="right-link"></span>
<span class="m0" name="count" class="right-link"></span>
</div>
</div>
<figure id="influence-timeline">
<div></div>
<p id="roguelike-timeline-known" class="words smaller"></p>
<p id="roguelike-timeline-inferred" class="words smaller"></p>
<noscript><img class="fullwidth" src="assets/influence-timeline.png"></noscript>
<figcaption><em>Figure 4: Roguelike Influence Timeline</em> | <a href="" id="roguelike-timeline-share" title="Copy this link to share with others">Share link</a> | <a href="#about">Feedback</a> | <a id="roguelike-timeline-data">Download data</a></figcaption>
</figure>
<p class="words">Click on one of the <span class="list">known</span> or <span class="list">inferred</span> influences, and see where it leads you.</p>
<p><label>Or, select a game: <select id="roguelike-timeline-selection"></select></label></p>
<p class="highlight smaller" id="roguelike-timeline-contribute-toggle"><em>Missing data? You can contribute to the "Influences" field on RogueBasin. Here is the <a href="#" target="_blank" id="roguelike-timeline-contribute"></a>.</em></p>
</section>
</main>
<footer id="about" class="mt2 small">
<h2>About this page</h2>
<p><em>Roguelike Universe</em> is an ongoing project to visualise roguelike influences.
We are seeking <a href="https://docs.google.com/forms/d/e/1FAIpQLScvx2Ajw_34mPcHeA5bXF2JsPPAPSrvg1JxP1Fzo8IxbG4U4w/viewform" target="_blank">corrections, suggestions, and feedback</a>. Please don't hesitate to get in touch via the link. If you reference or use the data sets, or the data visualisation, we would love to hear from you!</p>
<h3>Method</h3>
<p>The list of roguelike games, and their known influences was collected through <a href="https://forums.roguetemple.com/irldb/" target="_blank">RogueTemple's International Roguelike Database</a>, with a <a href="https://docs.google.com/spreadsheets/d/1cUmwMHQQWkPTh-89L9QDVc25QOCAHqjvqZYOufzmQOk/edit#gid=0" target="_blank">hand-cleaned version</a> stored online. You are welcome to edit the data (and see <em>Contribute</em> below). The exact search used can be found in <a href="https://forums.roguetemple.com/irldb/index.php?i=47e013c" target="_blank">this link</a>.</p>
<p>Inferred influences were calculated by <a href="https://github.com/Spaxe/roguelike-universe/blob/master/data/Roguelike%20Universe%20-%20Web%20Scraping.ipynb" target="_blank">web scraping using Python</a>, gathering the first meaningful 10-30 links found via the <a href="https://duckduckgo.com/" target="_blank">DuckDuckGo</a> search engine. Websites were screened by keywords. Data was then <a href="https://github.com/Spaxe/roguelike-universe/blob/master/data/Roguelike%20Universe%20-%20Link%20Generation.ipynb" target="_blank">prepared and cleaned up</a>, with the final post-processing done in JavaScript in the browser. Figures are homemade and crafted in <a href="https://d3js.org/" target="_blank">D3.js</a> with care. We try to make the live computed dataset available, which can be downloaded below each figure.</p>
<p>For academic publications, we encourage you to cite the following paper:
<pre>
<strong>Finding Design Influence within Roguelike Games</strong> (p. 1-27) [<a href="https://static1.squarespace.com/static/51392274e4b0f86e34bbf68e/t/5b97d44e898583de756dfba7/1536676949928/Finding+Design+Influence+within+Roguelike+Games+v3.pdf" target="_blank">open access PDF</a>]
Xavier Ho, Martin Tomitsch, Tomasz Bednarz
Proceedings of the International Conference on Meaningful Play, East Lansing, 2016
Available at <a href="https://publications.csiro.au/rpr/pub?pid=csiro:EP166151">https://publications.csiro.au/rpr/pub?pid=csiro:EP166151</a></pre>
</p>
<h3 id="update-entry">Submit an update or correction</h3>
<p>If you would like to contribute, the best way is to review and edit the wikipages at <a href="http://roguebasin.roguelikedevelopment.org/index.php?title=Main_Page" target="_blank">RogueBasin</a>.</em> If you want to submit directly to this website, <em>or if the game is a roguelike-like</em>, <a href="https://docs.google.com/forms/d/e/1FAIpQLSdJb9BDWllNQmf-QgeQ2nXnRW1j8fwjLzgcRDXJcTFFJGQ5Wg/viewform?usp=sf_link" target="_blank">use this form to update a game entry</a>. In particular, if you are the author of the game, and you see errors in the dataset, go ahead and make the correction!
<!-- <h3 id="survey">Participate in the survey</h3>
<p>We currently have an open survey about this page, which you can participate anonymously! We invite your input about the data visualisations, and will ask you about your experience with game design. You are not tested on anything. Your answers will help improve the research on roguelike games, and the functionality and data visualisations for Roguelike Universe.</p>
<p>➡ <a href="https://docs.google.com/forms/d/e/1FAIpQLSeBZqMTlcrK41Izih87MLpcoK_woST7CdlomfV6N3DvsECO9Q/viewform?usp=sf_link" target="_blank"><em>Click here</em> to participate in the research survey.</a></p>
<p>If you have any questions about this research project, you can get in touch with the researcher Xavier Ho via email (contact@xavierho.com), or <a href="https://docs.google.com/forms/d/e/1FAIpQLScvx2Ajw_34mPcHeA5bXF2JsPPAPSrvg1JxP1Fzo8IxbG4U4w/viewform" target="_blank">leave us a message</a>. For frequently asked questions about the research project, we have prepared the <a href="research/PIS.pdf" target="_blank">participant information statement</a>.</p>-->
<h3>Discuss this page</h3>
<p>Darren Grey has kindly posted this on <a href="https://www.reddit.com/r/roguelikes/comments/96sjzz/a_visualisation_of_roguelike_ancestryinfluence/" target="_blank">Reddit</a>, so you can talk about it over there!</p>
<h3>License</h3>
<p>The data visualisations and the computed source are licensed under the <a href="https://creativecommons.org/licenses/by-nc/3.0/" target="_blank">Creative Commons Non-Commercial 3.0 license</a>. Individual games, descriptions, and collected data are owned by the respective authors listed on the wiki or webpage. If you have concerns regarding the license, or use of this data, <a href="https://docs.google.com/forms/d/e/1FAIpQLScvx2Ajw_34mPcHeA5bXF2JsPPAPSrvg1JxP1Fzo8IxbG4U4w/viewform" target="_blank">let us know</a>.</p>
<h3>Source Code</h3>
<p><em>Roguelike Universe</em> is an <a href="https://github.com/Spaxe/roguelike-universe" target="_blank">open source project</a>. If you want to make this project more accessible to more people, make more efficient programs, or just want to try your hand at contributing to open source, we welcome pull requests and patches of all kinds. You can find the current <a href="https://github.com/Spaxe/roguelike-universe/blob/master/README.md" target="_blank">roadmap</a> here.</p>
<h3>Credits</h3>
<p class="related">Author: <a href="https://jumptoglide.com/" target="_blank">Xavier Ho</a> (<a href="https://twitter.com/xavier_ho" target="_blank">twitter</a>)</p>
<p>Acknowledgement: <a href="https://forums.roguetemple.com/" target="_blank">RogueTemple</a> and <a href="http://roguebasin.roguelikedevelopment.org/index.php?title=Main_Page" target="_blank">RogueBasin contributors</a></p>
<h3>Previous versions</h3>
<p>Looking for previous versions? Go to <a href="versions/1.0.0/index.html">1.0.0</a></p>
<p class="mt2 small"><em>Roguelike Universe is crafted with care by Xavier Ho.</em></p>
</footer>
<script src="lib/d3.min.js"></script>
<script src="roguelike-utils.js"></script>
<script src="roguelike-influence-arcs.js"></script>
<script src="roguelike-influence-map.js"></script>
<script src="roguelike-influence-timeline.js"></script>
</body>
</html>