Skip to content

Commit 17da9dd

Browse files
committed
minor fixes
1 parent 394964d commit 17da9dd

4 files changed

Lines changed: 12 additions & 12 deletions

File tree

website/assets/js/analysis.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -211,11 +211,11 @@ function initAct1() {
211211
const margin = { top: 20, right: 20, bottom: 40, left: 60 };
212212
const svgEl = document.getElementById("act1-chart");
213213
if (!svgEl) return;
214-
svgEl.setAttribute("height", "380");
214+
svgEl.setAttribute("height", "480");
215215
const W = svgEl.getBoundingClientRect().width;
216216
if (W === 0) return;
217217
const w = W - margin.left - margin.right;
218-
const h = 380 - margin.top - margin.bottom;
218+
const h = 480 - margin.top - margin.bottom;
219219

220220
const svg = d3.select(svgEl);
221221
svg.selectAll("*").remove();
@@ -342,7 +342,7 @@ function initAct2(filter) {
342342
let games;
343343
if (filter === "aaa")
344344
games = allGames.filter(
345-
(g) => g.archetype === "aaa" || g.archetype === "fading_aaa",
345+
(g) => g.archetype === "aaa" || g.archetype === "immortal",
346346
);
347347
else games = allGames;
348348

website/assets/js/constants.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ const FIELD_DESCRIPTIONS = {
145145
color_genre: "Each dot is tinted by its primary RAWG genre.",
146146
color_alive_ratio:
147147
"Red, orange and green gradient mapping current alive ratio.",
148-
color_year: "Viridis gradient from 2012 (dark purple) to 2025 (yellow).",
148+
color_year: "Viridis gradient from 2003 (dark purple) to 2025 (yellow).",
149149
};
150150

151151
const COLOR_LABELS = {

website/assets/js/data.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ async function loadGameData() {
131131

132132
const year =
133133
+row.release_year || (row.released ? +row.released.slice(0, 4) : null);
134-
if (!year) return;
134+
if (!year || year < 2003) return;
135135

136136
const parsedDate = new Date(row.released || "");
137137
const release_month = isNaN(parsedDate.getTime())

website/index.html

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@
5959
<div class="control-group">
6060
<label class="control-label">Time window</label>
6161
<div class="slider-wrap">
62-
<input type="range" id="time-slider-start" min="2012" max="2024" value="2012" step="1">
63-
<input type="range" id="time-slider-end" min="2012" max="2025" value="2018" step="1">
62+
<input type="range" id="time-slider-start" min="2003" max="2024" value="2012" step="1">
63+
<input type="range" id="time-slider-end" min="2003" max="2025" value="2018" step="1">
6464
<div class="slider-values">
6565
<span id="time-start">2018</span> - <span id="time-end">2021</span>
6666
</div>
@@ -309,19 +309,19 @@ <h2 class="act-title">The Graveyard</h2>
309309
<div class="act-label">§ 02</div>
310310
<h2 class="act-title">Time is not the verdict</h2>
311311
<p class="story-lead">Old games can be alive. New games can be dead.</p>
312-
<p>If decay were just entropy, every 2012 release would be a ghost. The scatter refuses that story. Survival spreads across every release year: age is a weak excuse for dying.</p>
312+
<p>If decay were just entropy, every 2010 release would be a ghost. The scatter refuses that story. Survival spreads across every release year: age is a weak excuse for dying.</p>
313313
<p class="story-thesis">Release year explains almost none of the variance in alive ratio. Something structural separates survivors from the rest.</p>
314314
</div>
315315
<div class="story-chart-wrap">
316316
<div class="story-chart"><svg id="act2-chart"></svg></div>
317317
<div class="act-chips" id="act2-chips">
318318
<button class="act-chip active" data-filter="all">All</button>
319-
<button class="act-chip" data-filter="aaa">AAA only</button>
319+
<button class="act-chip" data-filter="aaa">AAA and Immortals</button>
320320
</div>
321321
<p class="story-caption">Each dot is a game. Y = alive ratio. Size = sqrt(peak players). Color = alive ratio.</p>
322322
<div class="story-guide" id="act2-guide">
323323
<div class="guide-eyebrow">Try this</div>
324-
<p class="guide-instruction">Switch to "AAA only" to restrict to titles that mattered at launch.</p>
324+
<p class="guide-instruction">Switch to "AAA and Immortals" to restrict to titles that mattered, at launch or never stopped mattering.</p>
325325
<p class="guide-expected">The rolling median stays nearly flat across cohorts. Age is not destiny, even for the biggest releases.</p>
326326
</div>
327327
</div>
@@ -424,8 +424,8 @@ <h2 class="act-title">The slope after the peak</h2>
424424
<div class="story-prose">
425425
<div class="act-label">§ 08</div>
426426
<h2 class="act-title">Release month is a rounding error</h2>
427-
<p class="story-lead">November launches peak higher. The surviving share is the same.</p>
428-
<p>Q4 launches outperform in absolute player numbers at launch, the holiday window is real. Six years later, the retention percentage is indistinguishable. The calendar matters to marketing, not to memory.</p>
427+
<p class="story-lead">November and May launches peak higher. The surviving share is the same.</p>
428+
<p>Q2 and Q4 launches outperform in absolute player numbers at launch, the holiday window and the spring-sale spike are both real. Six years later, the retention percentage is indistinguishable. The calendar matters to marketing, not to memory.</p>
429429
<p class="story-thesis">Timing the launch is a launch-week optimization. It does not change the structural question of whether the game has a reason to persist.</p>
430430
</div>
431431
<div class="story-chart-wrap">

0 commit comments

Comments
 (0)