<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Roguelike Archives - Rogue Ranker</title>
	<atom:link href="https://rogueranker.com/category/roguelike/feed/" rel="self" type="application/rss+xml" />
	<link>https://rogueranker.com/category/roguelike/</link>
	<description>Roguelike Game Guides and Reviews</description>
	<lastBuildDate>Mon, 01 Jun 2026 18:58:49 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://rogueranker.com/wp-content/uploads/2025/09/cropped-Rogue-Ranker-Icon-32x32.png</url>
	<title>Roguelike Archives - Rogue Ranker</title>
	<link>https://rogueranker.com/category/roguelike/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>(Top 179) Best Roguelike Games &#8211; 5,512 Reddit Votes</title>
		<link>https://rogueranker.com/best-roguelike-games/</link>
		
		<dc:creator><![CDATA[Steven]]></dc:creator>
		<pubDate>Tue, 17 Mar 2026 23:41:43 +0000</pubDate>
				<category><![CDATA[Roguelike]]></category>
		<guid isPermaLink="false">https://rogueranker.com/?p=640</guid>

					<description><![CDATA[<p>I spent 20+ hours analyzing 20 Reddit threads, just to make an article about what the community thinks the best roguelike games are.&#160; In the end, 5,512 total upvotes formed a list of 179 games.&#160; Why did I do this? Well, it wasn’t my first time doing this. I started with a data-driven summary of [&#8230;]</p>
<p>The post <a href="https://rogueranker.com/best-roguelike-games/">(Top 179) Best Roguelike Games &#8211; 5,512 Reddit Votes</a> appeared first on <a href="https://rogueranker.com">Rogue Ranker</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">I spent 20+ hours analyzing 20 Reddit threads, just to make an article about what the community thinks the best roguelike games are.&nbsp;</p>



<p class="wp-block-paragraph">In the end, 5,512 total upvotes formed a list of 179 games.&nbsp;</p>



<p class="wp-block-paragraph">Why did I do this?</p>



<p class="wp-block-paragraph">Well, it wasn’t my first time doing this. I started with a data-driven summary of Games Like Brotato, then moved to Best Bullet Hell and Best Bullet Heaven.&nbsp;</p>



<p class="wp-block-paragraph">My background is in listicle blogging, but I&#8217;ve always questioned the authenticity of articles I read online because there’s usually a lack of transparency.&nbsp;</p>



<p class="wp-block-paragraph">Many writers say things like, “I play games. Trust me.”&nbsp;</p>



<p class="wp-block-paragraph">Yeah, ok (I hate that).&nbsp;</p>



<p class="wp-block-paragraph">So I set out to create a method backed by community data that shines a light on what people are actually saying when this topic is posed on Reddit.&nbsp;</p>



<p class="wp-block-paragraph">If you’re here just to find a game, feel free to use my quiz below.&nbsp;</p>



<p class="wp-block-paragraph">I took all the data and content from my article to create a way for people to quickly spot which game suits them.&nbsp;</p>



<p class="wp-block-paragraph">Hope you enjoy!</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>What Roguelike Game Should I Play Next?</title>
<link href="https://fonts.googleapis.com/css2?family=Cinzel:wght@600;800&family=Crimson+Pro:ital,wght@0,400;0,600;1,400&display=swap" rel="stylesheet">
<style>
  /* ── Scope everything to the quiz wrapper so it doesn't fight the blog ── */

  #quiz-root {
    --bg: #111318;
    --surface: #16161f;
    --surface-raised: #1e1e2a;
    --border: #32324a;
    --border-hover: #52527a;
    --accent: #FFBF00;
    --accent-dim: #b08800;
    --accent-glow: rgba(255,191,0,0.15);
    --text: #f2eedd;
    --text-body: #cbc4b0;
    --text-muted: #80786a;
    --text-dim: #3e3c36;

    background: #111318;
    color: #f2eedd;
    font-family: 'Crimson Pro', Georgia, serif;
    font-size: 18px;
    line-height: 1.6;
    width: 100%;
    max-width: 700px;
    margin: 32px auto;
    padding: 40px 28px 56px;
    position: relative;
    border-radius: 8px;
    border: 1px solid #22222e;
    box-shadow: 0 8px 48px rgba(0,0,0,0.45);
    overflow: hidden;
    box-sizing: border-box;
  }

  #quiz-root * {
    box-sizing: border-box;
    max-width: 100%;
  }

  #quiz-root *::before, #quiz-root *::after {
    box-sizing: border-box;
  }

  #quiz-root p, #quiz-root h1, #quiz-root h2, #quiz-root h3 {
    margin: 0;
    padding: 0;
  }

  #quiz-root button { font-family: inherit; }

  /* ── Header ── */
  .quiz-header {
    text-align: center;
    margin-bottom: 40px;
  }

  .quiz-eyebrow {
    font-family: 'Cinzel', serif;
    font-size: 10px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--accent);
    margin-bottom: 12px;
    display: block;
  }

  .quiz-title {
    font-family: 'Cinzel', serif;
    font-size: clamp(22px, 5vw, 34px);
    font-weight: 800;
    color: var(--text);
    line-height: 1.2;
    margin-bottom: 12px;
  }

  .quiz-subtitle {
    color: var(--text-muted);
    font-style: italic;
    font-size: 16px;
  }

  /* ── Progress ── */
  .progress-wrap {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 28px;
  }

  .progress-bar-bg {
    flex: 1;
    height: 5px;
    background: var(--border);
    border-radius: 3px;
    overflow: visible;
    position: relative;
  }

  .progress-bar-fill {
    height: 100%;
    background: linear-gradient(90deg, #FFBF00, #ffe566, #FFBF00);
    background-size: 200%;
    border-radius: 3px;
    transition: width 0.45s cubic-bezier(.4,0,.2,1);
    box-shadow: 0 0 8px rgba(255,191,0,0.5), 0 0 18px rgba(255,191,0,0.25);
    position: relative;
  }

  .progress-bar-fill.pulse {
    animation: progressPulse 0.6s ease forwards;
  }

  @keyframes progressPulse {
    0%   { box-shadow: 0 0 8px rgba(255,191,0,0.5), 0 0 18px rgba(255,191,0,0.25); }
    40%  { box-shadow: 0 0 16px rgba(255,191,0,0.95), 0 0 40px rgba(255,191,0,0.6), 0 0 70px rgba(255,191,0,0.2); }
    100% { box-shadow: 0 0 8px rgba(255,191,0,0.5), 0 0 18px rgba(255,191,0,0.25); }
  }

  .progress-label {
    font-family: 'Cinzel', serif;
    font-size: 11px;
    letter-spacing: 0.1em;
    color: var(--text-muted);
    white-space: nowrap;
    min-width: 60px;
    text-align: right;
  }

  /* ── Question card ── */
  .question-card {
    background: #16161f;
    border: 1px solid #32324a;
    border-radius: 6px;
    padding: 28px 24px 24px;
    animation: fadeSlideIn 0.3s ease forwards;
    width: 100%;
    box-sizing: border-box;
    overflow: hidden;
  }

  @keyframes fadeSlideIn {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: translateY(0); }
  }

  .question-number {
    font-family: 'Cinzel', serif;
    font-size: 10px;
    letter-spacing: 0.22em;
    color: var(--accent-dim);
    text-transform: uppercase;
    margin-bottom: 10px;
    display: block;
  }

  .question-text {
    font-family: 'Cinzel', serif;
    font-size: clamp(16px, 3vw, 20px);
    font-weight: 600;
    color: var(--text);
    line-height: 1.45;
    margin-bottom: 24px;
  }

  /* ── Options ── */
  .options-grid {
    display: grid;
    gap: 9px;
    width: 100%;
  }

  .option-btn {
    background: #1e1e2a;
    border: 1px solid #32324a;
    border-radius: 5px;
    padding: 14px 16px;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.18s, background 0.18s, box-shadow 0.18s;
    display: flex;
    align-items: center;
    gap: 12px;
    color: #cbc4b0;
    font-family: 'Crimson Pro', Georgia, serif;
    font-size: 17px;
    line-height: 1.5;
    width: 100%;
    box-sizing: border-box;
    user-select: none;
    -webkit-user-select: none;
  }

  .option-btn:hover {
    border-color: #52527a;
    color: #f2eedd;
    background: #252535;
    box-shadow: -3px 0 0 #b08800;
  }

  .option-btn.selected {
    border-color: #FFBF00;
    color: #f2eedd;
    background: #252530;
    box-shadow: -3px 0 0 #FFBF00;
  }

  .option-label {
    flex: 1;
    min-width: 0;
    word-wrap: break-word;
    overflow-wrap: break-word;
  }

  .option-marker {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    min-width: 28px;
    max-width: 28px;
    border: 1px solid #52524a;
    border-radius: 50%;
    font-family: 'Cinzel', Georgia, serif;
    font-size: 11px;
    font-weight: 600;
    color: #80786a;
    flex-shrink: 0;
    background: transparent;
    box-sizing: border-box;
    line-height: 1;
  }

  .option-btn.selected .option-marker {
    background: #FFBF00;
    border-color: #FFBF00;
    color: #0d0d0f;
    font-size: 14px;
  }

  /* ── Nav buttons ── */
  .nav-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 28px;
    gap: 12px;
  }

  .btn-back {
    background: transparent;
    border: 1px solid var(--border);
    border-radius: 4px;
    padding: 10px 20px;
    color: var(--text-muted);
    font-family: 'Cinzel', serif;
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    cursor: pointer;
    transition: border-color 0.2s, color 0.2s;
  }

  .btn-back:hover {
    border-color: var(--border-hover);
    color: var(--text);
  }

  .btn-next {
    background: #FFBF00 !important;
    border: 2px solid #FFBF00 !important;
    border-radius: 4px;
    padding: 13px 30px;
    color: #0d0d0f !important;
    font-family: 'Cinzel', serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    cursor: pointer;
    transition: opacity 0.2s, transform 0.15s, box-shadow 0.2s;
    margin-left: auto;
  }

  .btn-next:disabled {
    opacity: 0.25;
    cursor: not-allowed;
    transform: none;
  }

  .btn-next:not(:disabled):hover {
    background: #ffd03a !important;
    border-color: #ffd03a !important;
    color: #0d0d0f !important;
    opacity: 1;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(255,191,0,0.35);
  }

  /* ════════════════════════════════════
     RESULTS
  ════════════════════════════════════ */

  .results-section {
    animation: fadeSlideIn 0.4s ease forwards;
  }

  .results-reveal {
    text-align: center;
    padding: 32px 0 36px;
    position: relative;
  }

  .results-reveal-line {
    width: 60px;
    height: 1px;
    background: var(--accent);
    margin: 0 auto 20px;
    opacity: 0;
    animation: expandLine 0.6s ease 0.1s forwards;
  }

  @keyframes expandLine {
    from { width: 0; opacity: 0; }
    to   { width: 60px; opacity: 1; }
  }

  .results-eyebrow {
    font-family: 'Cinzel', serif;
    font-size: 10px;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--accent);
    display: block;
    margin-bottom: 10px;
    opacity: 0;
    animation: fadeUp 0.5s ease 0.25s forwards;
  }

  .results-title {
    font-family: 'Cinzel', serif;
    font-size: clamp(22px, 4.5vw, 32px);
    font-weight: 800;
    color: var(--text);
    margin-bottom: 10px;
    opacity: 0;
    animation: fadeUp 0.5s ease 0.35s forwards;
  }

  .results-sub {
    color: var(--text-muted);
    font-style: italic;
    font-size: 16px;
    opacity: 0;
    animation: fadeUp 0.5s ease 0.45s forwards;
  }

  @keyframes fadeUp {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
  }

  .result-cards {
    display: grid;
    gap: 14px;
  }

  .result-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 0;
    position: relative;
    overflow: hidden;
    opacity: 0;
    transform: translateY(16px);
    transition: border-color 0.2s, box-shadow 0.2s;
  }

  .result-card.visible {
    animation: cardReveal 0.5s cubic-bezier(.2,.8,.3,1) forwards;
  }

  @keyframes cardReveal {
    to { opacity: 1; transform: translateY(0); }
  }

  .result-card:hover {
    border-color: var(--border-hover);
    box-shadow: 0 4px 24px rgba(0,0,0,0.4);
  }

  .result-card.rank-1 {
    border-color: var(--accent);
  }

  .result-card.rank-1:hover {
    box-shadow: 0 4px 32px rgba(255,191,0,0.15);
  }

  .result-card-topbar {
    height: 3px;
    background: var(--border);
  }

  .result-card.rank-1 .result-card-topbar {
    background: linear-gradient(90deg, #FFBF00, #ffe566, #FFBF00);
    background-size: 300%;
    animation: shimmer 3s linear infinite;
  }

  @keyframes shimmer {
    0%   { background-position: 0% center; }
    100% { background-position: 200% center; }
  }

  .result-card-body {
    padding: 22px 26px 24px;
  }

  .result-rank-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
  }

  .result-rank-pip {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 1px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Cinzel', serif;
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    flex-shrink: 0;
  }

  .result-card.rank-1 .result-rank-pip {
    background: var(--accent);
    border-color: var(--accent);
    color: #0d0d0f;
  }

  .result-rank-label {
    font-family: 'Cinzel', serif;
    font-size: 11px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--text-muted);
  }

  .result-card.rank-1 .result-rank-label { color: var(--accent); }

  .result-game-name {
    font-family: 'Cinzel', serif;
    font-size: clamp(20px, 4vw, 26px);
    font-weight: 700;
    color: var(--text);
    line-height: 1.2;
    margin-bottom: 12px;
  }

  .result-why {
    color: #cbc4b0;
    font-size: clamp(16px, 2.2vw, 18px);
    line-height: 1.65;
    margin-bottom: 0;
  }

  /* ── Stat blocks ── */
  .result-meta {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-top: 28px;
    margin-bottom: 24px;
  }

  .meta-pill {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 12px 10px;
    border-radius: 6px;
    background: #1a1a26;
    border: 1px solid #32324a;
    text-align: center;
  }

  .meta-pill-icon { font-size: 15px; line-height: 1; }

  .meta-pill-value {
    font-family: 'Cinzel', serif;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1;
  }

  .meta-pill-label {
    font-family: 'Cinzel', serif;
    font-size: 9px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #80786a;
    line-height: 1;
  }

  .meta-pill.pill-price  { border-color: #7a6000; background: #1e1800; }
  .meta-pill.pill-price  .meta-pill-value { color: #FFBF00; }
  .meta-pill.pill-price  .meta-pill-icon  { color: #FFBF00; }

  .meta-pill.pill-time   { border-color: #2a3a50; background: #121a24; }
  .meta-pill.pill-time   .meta-pill-value { color: #7ab8e8; }
  .meta-pill.pill-time   .meta-pill-icon  { color: #7ab8e8; }

  .meta-pill.pill-votes  { border-color: #2a3a2a; background: #121a12; }
  .meta-pill.pill-votes  .meta-pill-value { color: #7ac87a; }
  .meta-pill.pill-votes  .meta-pill-icon  { color: #7ac87a; }

  /* Match score */
  .match-score-row {
    display: flex;
    align-items: center;
    gap: 12px;
  }

  .match-label {
    font-family: 'Cinzel', serif;
    font-size: clamp(10px, 1.6vw, 11px);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-muted);
    white-space: nowrap;
    min-width: 75px;
  }

  .score-bar-bg {
    flex: 1;
    height: 6px;
    background: var(--border);
    border-radius: 3px;
    overflow: hidden;
  }

  .score-bar-fill {
    height: 100%;
    background: linear-gradient(90deg, #FFBF00, #ffe566, #FFBF00);
    background-size: 200%;
    border-radius: 3px;
    width: 0%;
    transition: width 1s cubic-bezier(.2,.8,.3,1);
  }

  .result-card.rank-2 .score-bar-fill,
  .result-card.rank-3 .score-bar-fill {
    background: linear-gradient(90deg, #6a6a80, #9090aa);
  }

  .score-pct {
    font-family: 'Cinzel', serif;
    font-size: clamp(14px, 2vw, 16px);
    font-weight: 700;
    color: var(--accent);
    min-width: 48px;
    text-align: right;
    letter-spacing: 0.02em;
  }

  .result-card.rank-2 .score-pct,
  .result-card.rank-3 .score-pct { color: #9090b8; }

  /* ── Restart ── */
  .restart-row {
    text-align: center;
    margin-top: 36px;
    padding-top: 28px;
    border-top: 1px solid var(--border);
  }

  .restart-label {
    display: block;
    font-style: italic;
    color: var(--text-muted);
    font-size: 16px;
    margin-bottom: 14px;
  }

  .btn-restart {
    background: transparent;
    border: 1px solid var(--border);
    border-radius: 4px;
    padding: 13px 32px;
    color: var(--text-muted);
    font-family: 'Cinzel', serif;
    font-size: 12px;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    cursor: pointer;
    transition: border-color 0.2s, color 0.2s;
  }

  .btn-restart:hover {
    border-color: var(--border-hover);
    color: var(--text);
  }

  /* ── Mobile ── */
  @media (max-width: 600px) {
    #quiz-root { padding: 24px 16px 36px; }
    .question-card { padding: 20px 16px 18px; }
    .options-grid { gap: 8px; }
    .option-btn { padding: 12px 12px; font-size: 15px; gap: 10px; }
    .option-marker { width: 24px; height: 24px; min-width: 24px; max-width: 24px; font-size: 10px; }
    .result-card-body { padding: 18px 14px 20px; }
    .result-rank-pip { width: 30px; height: 30px; font-size: 12px; }
    .result-rank-label { font-size: 11px; }
    .result-game-name { font-size: 20px; margin-bottom: 10px; }
    .result-why { font-size: 15px; }
    .result-meta { grid-template-columns: repeat(3, 1fr); gap: 7px; }
    .meta-pill { padding: 10px 6px; }
    .meta-pill-value { font-size: 13px; }
    .meta-pill-label { font-size: 8px; }
    .meta-pill-icon { font-size: 13px; }
    .match-label { font-size: 10px; min-width: 60px; }
    .score-pct { font-size: 14px; }
    .results-title { font-size: 24px; }
    .results-sub { font-size: 14px; }
    .nav-row { margin-top: 20px; }
  }

  @media (max-width: 380px) {
    .result-game-name { font-size: 19px; }
    .match-score-row { flex-wrap: wrap; gap: 8px; }
    .match-label { min-width: auto; }
    .score-pct { min-width: auto; }
  }
</style>
</head>
<body>
<div id="quiz-root">
  <div class="quiz-header">
    <span class="quiz-eyebrow">Rogue Ranker · 179 Games Analyzed</span>
    <h2 class="quiz-title">What Roguelike Game Should I Play Next?</h2>
    <p class="quiz-subtitle">10 questions. Matched to 179 community-ranked games.</p>
  </div>
  <div id="quiz-body"></div>
</div>

<script>
// ─────────────────────────────────────────────
//  QUIZ DATA
// ─────────────────────────────────────────────

const questions = [
  {
    id: "q1",
    text: "What kind of roguelike experience are you looking for?",
    options: [
      { label: "A deep, complex game I can sink hundreds of hours into", tags: ["deep_systems", "high_complexity", "long_runs"] },
      { label: "Action-focused with tight real-time combat and fast runs", tags: ["action", "fast_paced", "short_runs"] },
      { label: "A deck-builder or strategy game   I want to think, not just react", tags: ["deck_builder", "strategy", "turn_based"] },
      { label: "Something accessible that eases me into the genre", tags: ["accessible", "roguelite", "mid_price"] }
    ]
  },
  {
    id: "q2",
    text: "How do you feel about complexity and learning curves?",
    options: [
      { label: "Bring it on   I want wikis, emergent systems, and 200-hour mastery", tags: ["high_complexity", "deep_systems", "traditional_rl"] },
      { label: "Medium   meaningful choices without needing a PhD to enjoy it", tags: ["medium_complexity", "roguelite", "accessible"] },
      { label: "Low   I want to pick up and play without studying first", tags: ["accessible", "short_runs", "roguelite"] },
      { label: "I love theory-crafting builds and breaking game systems", tags: ["build_depth", "synergies", "deck_builder"] }
    ]
  },
  {
    id: "q3",
    text: "What's your preferred combat style?",
    options: [
      { label: "Turn-based   I want to think through every move", tags: ["turn_based", "strategy", "traditional_rl"] },
      { label: "Real-time action   fast movement, dodging, reflexes", tags: ["action", "fast_paced", "roguelite"] },
      { label: "Card or dice mechanics   build a hand, execute a strategy", tags: ["deck_builder", "card_game", "strategy"] },
      { label: "Exploration-first   combat matters less than discovery", tags: ["exploration", "deep_systems", "high_complexity"] }
    ]
  },
  {
    id: "q4",
    text: "How long do you want a typical run to last?",
    options: [
      { label: "Short   under 30 minutes, quick to restart", tags: ["short_runs", "fast_paced", "accessible"] },
      { label: "Medium   1 to 2 hours per run", tags: ["medium_runs", "roguelite", "action"] },
      { label: "Long   I want a run that feels like an epic journey", tags: ["long_runs", "deep_systems", "high_complexity"] },
      { label: "I don't care   just make it absorbing", tags: ["build_depth", "strategy", "turn_based"] }
    ]
  },
  {
    id: "q5",
    text: "What's your budget?",
    options: [
      { label: "Free   show me what's available at no cost", tags: ["free"] },
      { label: "Budget   under $10", tags: ["budget"] },
      { label: "Mid-range   $10 to $20", tags: ["mid_price"] },
      { label: "Whatever   I'll pay for quality", tags: ["any_price"] }
    ]
  },
  {
    id: "q6",
    text: "What setting or theme appeals to you most?",
    options: [
      { label: "Fantasy / dungeon   swords, magic, deep underground", tags: ["fantasy", "dungeon", "traditional_rl"] },
      { label: "Sci-fi   robots, space stations, post-human worlds", tags: ["scifi", "exploration", "deep_systems"] },
      { label: "Mythology / story-driven   I want atmosphere and narrative", tags: ["story", "action", "roguelite"] },
      { label: "Abstract or unusual   I'm open to anything weird and original", tags: ["card_game", "deck_builder", "synergies"] }
    ]
  },
  {
    id: "q7",
    text: "How do you feel about permadeath and starting over?",
    options: [
      { label: "I love it   every death teaches me something, restarts feel earned", tags: ["traditional_rl", "high_complexity", "deep_systems"] },
      { label: "Fine with it as long as runs are short enough", tags: ["short_runs", "fast_paced", "accessible"] },
      { label: "Tolerable if there's meta progression I keep between runs", tags: ["roguelite", "accessible", "mid_price"] },
      { label: "I want it to feel punishing but meaningful   not just random", tags: ["strategy", "turn_based", "build_depth"] }
    ]
  },
  {
    id: "q8",
    text: "How much do you value build variety and synergies?",
    options: [
      { label: "Everything   I want every run to feel like a different game", tags: ["build_depth", "synergies", "deck_builder"] },
      { label: "A lot   meaningful choices matter, but I don't need to break the game", tags: ["medium_complexity", "strategy", "turn_based"] },
      { label: "Some   I want upgrades but not an overwhelming number of options", tags: ["accessible", "roguelite", "short_runs"] },
      { label: "Deep world simulation over build systems   emergent stories beat broken builds", tags: ["exploration", "deep_systems", "high_complexity"] }
    ]
  },
  {
    id: "q9",
    text: "What matters most to you in a roguelike?",
    options: [
      { label: "Replayability   I want hundreds of hours before it gets stale", tags: ["long_runs", "deep_systems", "traditional_rl"] },
      { label: "Game feel   movement, combat, and feedback that just feels right", tags: ["action", "fast_paced", "roguelite"] },
      { label: "Story and atmosphere   I want to feel like I'm inside a world", tags: ["story", "exploration", "fantasy"] },
      { label: "Puzzle-like depth   every decision cascades into the next", tags: ["deck_builder", "strategy", "card_game"] }
    ]
  },
  {
    id: "q10",
    text: "Which description sounds most like you?",
    options: [
      { label: "I want the game Reddit considers the gold standard of the genre", tags: ["deck_builder", "accessible", "mid_price"] },
      { label: "I want a deep, underplayed classic that true fans recommend", tags: ["traditional_rl", "high_complexity", "deep_systems"] },
      { label: "I want a modern action roguelite with polish and great combat", tags: ["action", "roguelite", "story"] },
      { label: "I want something free or nearly free so I can test the waters", tags: ["free", "budget", "accessible"] }
    ]
  }
];

// ─────────────────────────────────────────────
//  GAME DATABASE
// ─────────────────────────────────────────────

const games = [
  {
    name: "Slay the Spire",
    tags: ["deck_builder","card_game","synergies","build_depth","medium_complexity","accessible","mid_price","any_price","medium_runs","strategy","turn_based"],
    price: "$15",
    playtime: "23.8 hrs",
    votes: 315,
    why: "The genre-defining deck builder and the most recommended roguelike on Reddit   315 votes across 14 of 20 threads. Every run is a masterclass in synergy-hunting."
  },
  {
    name: "Caves of Qud",
    tags: ["deep_systems","high_complexity","traditional_rl","exploration","scifi","fantasy","long_runs","any_price","mid_price","story","build_depth"],
    price: "$16",
    playtime: "4.7 hrs",
    votes: 273,
    why: "The community's pick for sheer depth   273 votes and regularly called the most complex game on this entire list. A sci-fi/fantasy world simulator with emergent stories that write themselves."
  },
  {
    name: "Cogmind",
    tags: ["scifi","deep_systems","high_complexity","traditional_rl","exploration","long_runs","mid_price","any_price","build_depth","strategy","turn_based"],
    price: "$17",
    playtime: "3.1 hrs",
    votes: 229,
    why: "229 votes and widely cited as the most underplayed gem in the genre. A deep sci-fi roguelike where you are a robot rebuilding yourself part by part inside a hostile machine complex."
  },
  {
    name: "FTL: Faster Than Light",
    tags: ["scifi","strategy","medium_complexity","short_runs","budget","mid_price","any_price","accessible","synergies","build_depth","turn_based"],
    price: "$6",
    playtime: "10.2 hrs",
    votes: 200,
    why: "200 votes across 15 threads. You manage a spaceship crew through crises, fires, and alien boarders   every decision matters and runs are tight enough to play again immediately after death."
  },
  {
    name: "Noita",
    tags: ["deep_systems","high_complexity","exploration","fantasy","long_runs","mid_price","any_price","build_depth","synergies","action"],
    price: "$13",
    playtime: "5.1 hrs",
    votes: 188,
    why: "188 votes and a cult classic known for total physics-based chaos. Every pixel is simulated, wand-building creates absurd emergent power, and the secrets go deeper than almost any game on this list."
  },
  {
    name: "Hades",
    tags: ["action","roguelite","story","fast_paced","medium_runs","mid_price","any_price","accessible","build_depth","fantasy","synergies"],
    price: "$17",
    playtime: "16.3 hrs",
    votes: 182,
    why: "182 votes and the best-in-class action roguelite. Flawless combat, a story that unfolds across hundreds of runs, and build variety that keeps every escape attempt feeling fresh."
  },
  {
    name: "Balatro",
    tags: ["deck_builder","card_game","synergies","build_depth","medium_complexity","mid_price","any_price","medium_runs","strategy","accessible"],
    price: "$12",
    playtime: "18.6 hrs",
    votes: 179,
    why: "179 votes and one of the most hypnotic games in the genre. A poker-inspired deck builder where chasing impossible synergies becomes genuinely addictive."
  },
  {
    name: "The Binding of Isaac",
    tags: ["dungeon","fantasy","action","build_depth","synergies","short_runs","budget","mid_price","any_price","high_complexity","fast_paced","accessible"],
    price: "$3",
    playtime: "4.4 hrs",
    votes: 170,
    why: "170 votes across 10 threads and one of the deepest item synergy systems in any roguelike. Endlessly replayable, dark, and still the benchmark for build variety in the genre."
  },
  {
    name: "Rift Wizard",
    tags: ["fantasy","turn_based","strategy","deep_systems","high_complexity","build_depth","synergies","mid_price","any_price","traditional_rl","long_runs"],
    price: "$11",
    playtime: "1.3 hrs",
    votes: 170,
    why: "170 votes concentrated in threads asking for hardcore recommendations. A spell-stacking wizard roguelike with extraordinary build depth and a devoted niche following."
  },
  {
    name: "ADOM",
    tags: ["traditional_rl","fantasy","dungeon","high_complexity","deep_systems","long_runs","mid_price","any_price","exploration","turn_based","story"],
    price: "$11",
    playtime: "2.7 hrs",
    votes: 130,
    why: "130 votes and a titan of the traditional roguelike   one of the most feature-rich classic roguelikes ever made, with a full narrative structure that most games in the genre don't attempt."
  },
  {
    name: "Dead Cells",
    tags: ["action","fast_paced","roguelite","short_runs","medium_runs","mid_price","any_price","accessible","build_depth","dungeon","fantasy"],
    price: "$16",
    playtime: "14.9 hrs",
    votes: 129,
    why: "129 votes and the gold standard for action roguelite feel. Movement and combat are among the best in any genre   fast, fluid, and deeply satisfying."
  },
  {
    name: "Nethack",
    tags: ["traditional_rl","free","budget","high_complexity","deep_systems","dungeon","fantasy","long_runs","turn_based","exploration"],
    price: "Free",
    playtime: "0.4 hrs",
    votes: 124,
    why: "124 votes and a living piece of roguelike history. Brutally complex, entirely free, and the closest thing to an infinitely deep system   if you want the genre's roots, start here."
  },
  {
    name: "Dungeon Crawl Stone Soup",
    tags: ["traditional_rl","free","budget","high_complexity","dungeon","fantasy","long_runs","turn_based","deep_systems","exploration"],
    price: "Free",
    playtime: "N/A",
    votes: 117,
    why: "117 votes and completely free. The most polished traditional roguelike available at no cost   DCSS strips the genre to its essence and executes it beautifully."
  },
  {
    name: "Risk of Rain 2",
    tags: ["action","fast_paced","roguelite","scifi","medium_runs","mid_price","any_price","build_depth","synergies","accessible","story"],
    price: "$16",
    playtime: "18.3 hrs",
    votes: 100,
    why: "100 votes and a benchmark for 3D action roguelites. The item stacking system creates ludicrously fun power curves, and the variety of characters keeps runs feeling meaningfully different."
  },
  {
    name: "Inscryption",
    tags: ["deck_builder","card_game","story","medium_complexity","mid_price","any_price","medium_runs","strategy","accessible","synergies"],
    price: "$14",
    playtime: "10.7 hrs",
    votes: 83,
    why: "83 votes and unlike anything else on this list. A deck-builder wrapped in a dark narrative puzzle   the genre-mixing is so deliberate it feels like a magic trick."
  },
  {
    name: "Returnal",
    tags: ["action","fast_paced","roguelite","scifi","story","any_price","medium_runs","build_depth","accessible","exploration"],
    price: "$44",
    playtime: "8.6 hrs",
    votes: 81,
    why: "81 votes and the highest-production roguelite on this list. Third-person bullet hell combat with a haunting time-loop narrative   nothing else here looks or feels like this."
  },
  {
    name: "Tiny Rogues",
    tags: ["dungeon","fantasy","action","build_depth","synergies","budget","mid_price","any_price","medium_runs","accessible","fast_paced"],
    price: "$6",
    playtime: "12.2 hrs",
    votes: 81,
    why: "81 votes and a budget gem consistently praised for deep build synergies. Room-by-room dungeon structure with the kind of broken combos that players spend hours chasing."
  },
  {
    name: "Enter the Gungeon",
    tags: ["action","fast_paced","dungeon","synergies","build_depth","mid_price","any_price","short_runs","accessible","roguelite","strategy"],
    price: "$10",
    playtime: "6.2 hrs",
    votes: 63,
    why: "63 votes and the top-down twin-stick standard. Gun theming so committed it's genuinely funny, item depth that sustains hundreds of hours, and co-op that changes everything."
  },
  {
    name: "Slice & Dice",
    tags: ["strategy","card_game","deck_builder","synergies","medium_complexity","budget","mid_price","any_price","medium_runs","turn_based","build_depth"],
    price: "$7",
    playtime: "8.4 hrs",
    votes: 84,
    why: "84 votes for a dice-and-card tactical roguelike that punches well above its price. Deep strategic decisions per turn, genuine build variety, and no filler   pure decision-making."
  },
  {
    name: "Peglin",
    tags: ["deck_builder","synergies","accessible","mid_price","any_price","medium_runs","strategy","build_depth","card_game","fantasy"],
    price: "$14",
    playtime: "11.2 hrs",
    votes: 43,
    why: "43 votes for a Peggle-meets-roguelike mash-up that's surprisingly deep. Orb-bouncing mechanics create emergent synergies and the approachable premise hides real strategic depth."
  }
];

// ─────────────────────────────────────────────
//  SCORING ENGINE
// ─────────────────────────────────────────────

function scoreGames(answers) {
  return games.map(game => {
    let score = 0;
    answers.forEach(answerTags => {
      answerTags.forEach(tag => {
        if (game.tags.includes(tag)) score++;
      });
    });
    // Bonus weight for top-voted games (slight nudge, not dominant)
    score += (game.votes / 315) * 0.5;
    return { ...game, score };
  }).sort((a, b) => b.score - a.score);
}

// ─────────────────────────────────────────────
//  STATE
// ─────────────────────────────────────────────

let currentQ = 0;
let answers = [];

// ─────────────────────────────────────────────
//  RENDER
// ─────────────────────────────────────────────

function render() {
  const body = document.getElementById('quiz-body');
  if (currentQ >= questions.length) { renderResults(body); return; }
  renderQuestion(body);
}

function renderQuestion(body) {
  const q = questions[currentQ];
  const progress = (currentQ / questions.length) * 100;

  body.innerHTML = `
    <div class="progress-wrap">
      <div class="progress-bar-bg">
        <div class="progress-bar-fill" style="width:${progress}%"></div>
      </div>
      <span class="progress-label">${currentQ + 1} / ${questions.length}</span>
    </div>
    <div class="question-card">
      <span class="question-number">Question ${currentQ + 1}</span>
      <div class="question-text">${q.text}</div>
      <div class="options-grid">
        ${q.options.map((opt, i) => `
          <div class="option-btn ${answers[currentQ] === i ? 'selected' : ''}"
               onclick="selectOption(${i})"
               role="button" tabindex="0"
               onkeydown="if(event.key==='Enter'||event.key===' ')selectOption(${i})">
            <div class="option-marker">${answers[currentQ] === i ? '✓' : String.fromCharCode(65+i)}</div>
            <div class="option-label">${opt.label}</div>
          </div>
        `).join('')}
      </div>
      <div class="nav-row">
        ${currentQ > 0 ? `<button class="btn-back" onclick="goBack()">← Back</button>` : '<span></span>'}
        <button class="btn-next" id="btn-next" onclick="goNext()" ${answers[currentQ] == null ? 'disabled' : ''}>
          ${currentQ === questions.length - 1 ? 'See My Results →' : 'Next →'}
        </button>
      </div>
    </div>
  `;
}

function selectOption(i) {
  answers[currentQ] = i;
  document.querySelectorAll('.option-btn').forEach((el, idx) => {
    const marker = el.querySelector('.option-marker');
    if (idx === i) {
      el.classList.add('selected');
      if (marker) marker.textContent = '✓';
    } else {
      el.classList.remove('selected');
      if (marker) marker.textContent = String.fromCharCode(65 + idx);
    }
  });
  const btn = document.getElementById('btn-next');
  if (btn) btn.disabled = false;
}

function goNext() {
  if (answers[currentQ] == null) return;
  currentQ++;
  render();
  requestAnimationFrame(() => {
    const fill = document.querySelector('.progress-bar-fill');
    if (fill) {
      fill.classList.remove('pulse');
      void fill.offsetWidth;
      fill.classList.add('pulse');
    }
  });
  document.getElementById('quiz-root').scrollIntoView({ behavior: 'smooth', block: 'start' });
}

function goBack() {
  if (currentQ > 0) {
    currentQ--;
    render();
    document.getElementById('quiz-root').scrollIntoView({ behavior: 'smooth', block: 'start' });
  }
}

function renderResults(body) {
  const tagSets = answers.map((optIdx, qIdx) => questions[qIdx].options[optIdx].tags);
  const ranked = scoreGames(tagSets);
  const top3 = ranked.slice(0, 3);
  const maxScore = top3[0].score;

  const rankNums   = ["1", "2", "3"];
  const rankLabels = ["Best Match", "Runner-Up", "Also Great"];
  const rankClasses = ["rank-1", "rank-2", "rank-3"];

  body.innerHTML = `
    <div class="results-section">
      <div class="results-reveal">
        <div class="results-reveal-line"></div>
        <span class="results-eyebrow">Your Results</span>
        <h2 class="results-title">Your Top 3 Picks</h2>
        <p class="results-sub">Matched across 179 community-ranked roguelike games.</p>
      </div>
      <div class="result-cards">
        ${top3.map((game, i) => {
          const pct = Math.round((game.score / maxScore) * 100);
          return `
            <div class="result-card ${rankClasses[i]}" data-pct="${pct}">
              <div class="result-card-topbar"></div>
              <div class="result-card-body">
                <div class="result-rank-row">
                  <div class="result-rank-pip">${rankNums[i]}</div>
                  <span class="result-rank-label">${rankLabels[i]}</span>
                </div>
                <div class="result-game-name">${game.name}</div>
                <p class="result-why">${game.why}</p>
                <div class="result-meta">
                  <div class="meta-pill pill-price">
                    <span class="meta-pill-icon">&#x1f4b0;</span>
                    <span class="meta-pill-value">${game.price}</span>
                    <span class="meta-pill-label">Price</span>
                  </div>
                  <div class="meta-pill pill-time">
                    <span class="meta-pill-icon">&#x23f1;</span>
                    <span class="meta-pill-value">${game.playtime}</span>
                    <span class="meta-pill-label">Median Play</span>
                  </div>
                  <div class="meta-pill pill-votes">
                    <span class="meta-pill-icon">▲</span>
                    <span class="meta-pill-value">${game.votes}</span>
                    <span class="meta-pill-label">Reddit Votes</span>
                  </div>
                </div>
                <div class="match-score-row">
                  <span class="match-label">Your Match</span>
                  <div class="score-bar-bg">
                    <div class="score-bar-fill" style="width:0%"></div>
                  </div>
                  <span class="score-pct">${pct}%</span>
                </div>
              </div>
            </div>
          `;
        }).join('')}
      </div>
      <div class="restart-row">
        <span class="restart-label">Not quite right?</span>
        <button class="btn-restart" onclick="restartQuiz()">↺ Retake the Quiz</button>
      </div>
    </div>
  `;

  const cards = body.querySelectorAll('.result-card');
  cards.forEach((card, i) => {
    setTimeout(() => {
      card.style.animationDelay = '0ms';
      card.classList.add('visible');
      setTimeout(() => {
        const bar = card.querySelector('.score-bar-fill');
        if (bar) bar.style.width = card.dataset.pct + '%';
      }, 200);
    }, i * 160);
  });
}

function restartQuiz() {
  currentQ = 0;
  answers = [];
  render();
  document.getElementById('quiz-root').scrollIntoView({ behavior: 'smooth', block: 'start' });
}

render();
</script>
</body>
</html>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">TL;DR &#8211; Best Roguelike Games From 5,512 Upvotes</h2>



<p class="wp-block-paragraph">Below are the top 10 best roguelike games based on real Reddit votes.&nbsp;</p>



<p class="wp-block-paragraph">It’s worth noting that The Binding of Isaac and Rift Wizard tied. Also, this short list does not include three honorable mentions, which I highlight in the full write-up below.</p>



<p class="wp-block-paragraph">The links below will take you to Steam <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<h3 class="wp-block-heading"><strong>Top Roguelike Games</strong></h3>



<ol class="wp-block-list">
<li><a href="https://store.steampowered.com/app/646570/Slay_the_Spire/">Slay the Spire</a> (315 votes)</li>



<li><a href="https://store.steampowered.com/app/333640/Caves_of_Qud/">Caves of Qud</a> (273 votes)</li>



<li><a href="https://store.steampowered.com/app/722730/Cogmind/">Cogmind</a> (229 votes)</li>



<li><a href="https://store.steampowered.com/app/212680/FTL_Faster_Than_Light/">FTL: Faster Than Light</a> (200 votes)</li>



<li><a href="https://store.steampowered.com/app/881100/Noita/">Noita</a> (188 votes)</li>



<li><a href="https://store.steampowered.com/app/1145360/Hades/">Hades</a> (182 votes)</li>



<li><a href="https://store.steampowered.com/app/2379780/Balatro/">Balatro</a> (179 votes)&nbsp;</li>



<li><strong>TIE:</strong> <a href="https://store.steampowered.com/app/113200/The_Binding_of_Isaac/">The Binding of Isaac</a> / <a href="https://store.steampowered.com/app/1271280/Rift_Wizard/">Rift Wizard</a> (170 votes each)</li>



<li><a href="https://store.steampowered.com/app/333300/ADOM_Ancient_Domains_Of_Mystery/">ADOM</a> (130 votes)</li>



<li><a href="https://store.steampowered.com/app/588650/Dead_Cells/">Dead Cells</a> (129 votes)</li>
</ol>



<p class="wp-block-paragraph"><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Quick Stats</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Cinzel:wght@600;700;800&family=Crimson+Pro:ital,wght@0,400;0,600;1,400&display=swap" rel="stylesheet">
<style>
  #rr-quickstats {
    font-family: 'Crimson Pro', Georgia, serif;
    background: #111318;
    color: #f2eedd;
    width: 100%;
    max-width: 700px;
    margin: 32px auto;
    border-radius: 8px;
    border: 1px solid #22222e;
    box-shadow: 0 8px 48px rgba(0,0,0,0.45);
    overflow: hidden;
    box-sizing: border-box;
  }

  #rr-quickstats * { box-sizing: border-box; }

  .qs-topbar {
    height: 3px;
    background: linear-gradient(90deg, transparent, #FFBF00 40%, #FFBF00 60%, transparent);
  }

  .qs-header {
    background: #16161f;
    border-bottom: 1px solid #32324a;
    padding: 22px 28px 20px;
    text-align: center;
  }

  .qs-eyebrow {
    font-family: 'Cinzel', serif;
    font-size: 10px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: #FFBF00;
    display: block;
    margin-bottom: 7px;
  }

  .qs-title {
    font-family: 'Cinzel', serif;
    font-size: clamp(17px, 3.5vw, 22px);
    font-weight: 800;
    color: #f2eedd;
    margin: 0 0 6px;
    line-height: 1.2;
  }

  .qs-subtitle {
    font-size: 16px;
    color: #80786a;
    font-style: italic;
  }

  .qs-col-headers {
    display: grid;
    grid-template-columns: 110px 1fr 1fr;
    background: #16161f;
    border-bottom: 1px solid #32324a;
  }

  .qs-col-header {
    padding: 11px 16px;
    font-family: 'Cinzel', serif;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #e8e4d8;
  }

  .qs-col-header:not(:last-child) { border-right: 1px solid #32324a; }
  .qs-col-header:last-child { text-align: right; }

  .qs-section {
    grid-column: 1 / -1;
    padding: 9px 16px;
    font-family: 'Cinzel', serif;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #FFBF00;
    background: #16161f;
    border-bottom: 1px solid #32324a;
  }

  .qs-row {
    display: grid;
    grid-template-columns: 110px 1fr 1fr;
    border-bottom: 1px solid #1e1e2a;
    transition: background 0.15s;
  }

  .qs-row:last-child { border-bottom: none; }
  .qs-row:hover { background: #16161f; }

  .qs-cat {
    background: #16161f;
    border-right: 1px solid #32324a;
    padding: 14px 12px;
    font-family: 'Cinzel', serif;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #e8e4d8;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    line-height: 1.4;
  }

  .qs-stat {
    padding: 14px 16px;
    font-size: 16px;
    color: #a09888;
    border-right: 1px solid #1e1e2a;
    line-height: 1.45;
    display: flex;
    align-items: center;
  }

  .qs-val {
    padding: 14px 16px;
    font-size: 16px;
    font-weight: 600;
    color: #f2eedd;
    text-align: right;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    line-height: 1.45;
  }

  .qs-val.gold { color: #FFBF00; }
  .qs-val.blue { color: #7ab8e8; }
  .qs-val.green { color: #7ac87a; }

  .qs-note-row {
    border-bottom: 1px solid #1e1e2a;
    padding: 13px 20px;
    font-size: 16px;
    color: #80786a;
    font-style: italic;
    line-height: 1.55;
    display: flex;
    gap: 10px;
    align-items: flex-start;
    transition: background 0.15s;
  }

  .qs-note-row:last-child { border-bottom: none; }
  .qs-note-row:hover { background: #16161f; }

  .qs-note-icon {
    color: #FFBF00;
    font-style: normal;
    flex-shrink: 0;
    font-size: 13px;
    margin-top: 2px;
  }

  .qs-footer {
    background: #16161f;
    border-top: 1px solid #32324a;
    padding: 13px 20px;
    font-size: 16px;
    color: #80786a;
    font-style: italic;
    text-align: center;
  }

  @media (max-width: 560px) {
    .qs-header { padding: 18px 16px 16px; }
    .qs-col-headers { grid-template-columns: 72px 1fr 1fr; }
    .qs-row { grid-template-columns: 72px 1fr 1fr; }
    .qs-col-header { padding: 9px 10px; font-size: 9px; }
    .qs-cat { font-size: 8px; padding: 12px 6px; }
    .qs-stat { font-size: 13px; padding: 12px 10px; }
    .qs-val { font-size: 13px; padding: 12px 8px; }
    .qs-note-row { font-size: 13px; padding: 11px 14px; }
    .qs-section { font-size: 9px; }
    .qs-footer { font-size: 12px; padding: 11px 14px; }
  }
</style>
</head>
<body>

<div id="rr-quickstats">
  <div class="qs-topbar"></div>

  <div class="qs-header">
    <span class="qs-eyebrow">Rogue Ranker · Data Snapshot</span>
    <h2 class="qs-title">Quick Stats — Best Roguelike Games</h2>
    <div class="qs-subtitle">Based on 20 Reddit threads and 179 games analyzed</div>
  </div>

  <div class="qs-col-headers">
    <div class="qs-col-header">Category</div>
    <div class="qs-col-header">Stat</div>
    <div class="qs-col-header">Value</div>
  </div>

  <div class="qs-body">

    <div class="qs-row"><div class="qs-section">By The Numbers</div></div>

    <div class="qs-row">
      <div class="qs-cat">Votes</div>
      <div class="qs-stat">Total votes collected</div>
      <div class="qs-val gold">5,512</div>
    </div>

    <div class="qs-row">
      <div class="qs-cat">Threads</div>
      <div class="qs-stat">Total threads analyzed</div>
      <div class="qs-val">20</div>
    </div>

    <div class="qs-row">
      <div class="qs-cat">Games</div>
      <div class="qs-stat">Total games mentioned</div>
      <div class="qs-val">179</div>
    </div>

    <div class="qs-row"><div class="qs-section">Notable Races</div></div>

    <div class="qs-row">
      <div class="qs-cat">Closest Race</div>
      <div class="qs-stat">ADOM vs. Ded Cells</div>
      <div class="qs-val gold">1 vote apart</div>
    </div>

    <div class="qs-row">
      <div class="qs-cat">Biggest Gap</div>
      <div class="qs-stat">Slay the Spire vs. Caves of Qud</div>
      <div class="qs-val">42 votes</div>
    </div>

    <div class="qs-row"><div class="qs-section">Records</div></div>

    <div class="qs-row">
      <div class="qs-cat">Most Threads</div>
      <div class="qs-stat">Slay the Spire appeared in</div>
      <div class="qs-val gold">14 of 20 threads</div>
    </div>

    <div class="qs-row">
      <div class="qs-cat">Highest Playtime</div>
      <div class="qs-stat">Slay the Spire median playtime</div>
      <div class="qs-val blue">27.3 hours</div>
    </div>

    <div class="qs-row">
      <div class="qs-cat">Lowest Playtime</div>
      <div class="qs-stat">Kill the Crows median playtime</div>
      <div class="qs-val">1.7 hours</div>
    </div>

    <div class="qs-row">
      <div class="qs-cat">Best Value</div>
      <div class="qs-stat">Dungeon Crawl Stone Soup</div>
      <div class="qs-val green">Free to Play</div>
    </div>

    <div class="qs-row">
      <div class="qs-cat">Highest Grossing</div>
      <div class="qs-stat">Hades gross revenue</div>
      <div class="qs-val gold">$144.5M</div>
    </div>

    <div class="qs-row"><div class="qs-section">Notes</div></div>

    <div class="qs-note-row">
      <span class="qs-note-icon">★</span>
      Free to play: Nethack, Dungeon Crawl Stone Soup, and Cogmind (free version available).
    </div>

    <div class="qs-note-row">
      <span class="qs-note-icon">★</span>
      Genre flag: Hades, Balatro, Dead Cells, and Risk of Rain 2 ranked despite being roguelites, not traditional roguelikes. Called out in their individual reviews below.
    </div>

  </div>

  <div class="qs-footer">
    Data sourced from 20 Reddit threads · 5,512 total community votes
  </div>

</div>

</body>
</html></p>



<h2 class="wp-block-heading"><strong>Best Roguelikes By Category</strong></h2>



<p class="wp-block-paragraph">Below is a breakdown by popular categories:</p>



<p class="wp-block-paragraph"><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Category Winners</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Cinzel:wght@600;700;800&family=Crimson+Pro:ital,wght@0,400;0,600;1,400&display=swap" rel="stylesheet">
<style>
  #rr-catwinners {
    font-family: 'Crimson Pro', Georgia, serif;
    background: #111318;
    color: #f2eedd;
    width: 100%;
    max-width: 700px;
    margin: 32px auto;
    border-radius: 8px;
    border: 1px solid #22222e;
    box-shadow: 0 8px 48px rgba(0,0,0,0.45);
    overflow: hidden;
    box-sizing: border-box;
  }

  #rr-catwinners * { box-sizing: border-box; }

  .cw-topbar {
    height: 3px;
    background: linear-gradient(90deg, transparent, #FFBF00 40%, #FFBF00 60%, transparent);
  }

  .cw-header {
    background: #16161f;
    border-bottom: 1px solid #32324a;
    padding: 30px 28px 26px;
    text-align: center;
  }

  .cw-eyebrow {
    font-family: 'Cinzel', serif;
    font-size: 10px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: #FFBF00;
    display: block;
    margin-bottom: 10px;
  }

  .cw-title {
    font-family: 'Cinzel', serif;
    font-size: clamp(17px, 3.5vw, 22px);
    font-weight: 800;
    color: #f2eedd;
    margin: 0 0 6px;
    line-height: 1.2;
  }

  .cw-subtitle {
    font-size: 16px;
    color: #80786a;
    font-style: italic;
  }

  /* Column headers */
  .cw-col-headers {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #16161f;
    border-bottom: 1px solid #32324a;
  }

  .cw-col-header {
    padding: 11px 20px;
    font-family: 'Cinzel', serif;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #e8e4d8;
  }

  .cw-col-header:first-child { border-right: 1px solid #32324a; }

  /* Section label */
  .cw-section {
    grid-column: 1 / -1;
    padding: 9px 20px;
    font-family: 'Cinzel', serif;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #FFBF00;
    background: #16161f;
    border-bottom: 1px solid #32324a;
  }

  /* Rows */
  .cw-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border-bottom: 1px solid #1e1e2a;
    transition: background 0.15s;
  }

  .cw-row:last-child { border-bottom: none; }
  .cw-row:hover { background: #16161f; }

  .cw-category {
    padding: 14px 20px;
    border-right: 1px solid #1e1e2a;
  }

  .cw-cat-label {
    margin: 0;
    font-family: 'Cinzel', serif;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: #e8e4d8;
    margin-bottom: 3px;
  }

  .cw-cat-note {
    font-size: 13px;
    color: #80786a;
    font-style: italic;
    line-height: 1.4;
  }

  .cw-winner {
    padding: 14px 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
  }

  .cw-game-name {
    margin: 0;
    font-family: 'Cinzel', serif;
    font-size: 14px;
    font-weight: 700;
    color: #FFBF00;
    letter-spacing: 0.04em;
  }

  .cw-game-note {
    font-size: 13px;
    color: #80786a;
    font-style: italic;
    line-height: 1.4;
  }

  /* Runner-up tag */
  .cw-runner {
    font-family: 'Cinzel', serif;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #80786a;
    background: #1e1e2a;
    border: 1px solid #32324a;
    padding: 2px 7px;
    border-radius: 3px;
    display: inline-block;
    margin-top: 2px;
  }

  .cw-runner span {
    color: #c8bfa0;
  }

  /* Footer */
  .cw-footer {
    background: #16161f;
    border-top: 1px solid #32324a;
    padding: 13px 20px;
    font-size: 13px;
    color: #80786a;
    font-style: italic;
    text-align: center;
  }

  /* Mobile */
  @media (max-width: 560px) {
    .cw-header { padding: 18px 16px 16px; }
    .cw-col-headers { grid-template-columns: 1fr 1fr; }
    .cw-row { grid-template-columns: 1fr 1fr; }
    .cw-col-header { padding: 9px 12px; font-size: 11px; }
    .cw-category { padding: 12px 12px; }
    .cw-winner { padding: 12px 12px; }
    .cw-cat-label {
    margin: 0; font-size: 12px; }
    .cw-game-name {
    margin: 0; font-size: 12px; }
    .cw-cat-note, .cw-game-note { font-size: 12px; }
    .cw-section { font-size: 11px; padding: 8px 12px; }
    .cw-footer { font-size: 12px; padding: 11px 14px; }
  }
</style>
</head>
<body>

<div id="rr-catwinners">
  <div class="cw-topbar"></div>

  <div class="cw-header">
    <span class="cw-eyebrow">Rogue Ranker · Category Winners</span>
    <p class="cw-title">Best Roguelike By Category</p>
    <div style="font-family: 'Crimson Pro', Georgia, serif; font-size: 13px; color: #FFBF00; margin-top: 8px; letter-spacing: 0.05em;">Based on 20 Reddit threads · 5,512 total votes</div>
  </div>

  <div class="cw-col-headers">
    <div class="cw-col-header">Category</div>
    <div class="cw-col-header">Winner</div>
  </div>

  <div class="cw-body">

    <div class="cw-row"><div class="cw-section">Platform</div></div>

    <div class="cw-row">
      <div class="cw-category">
        <h3 class="cw-cat-label">Best Roguelike on Switch</h3>
        <div class="cw-cat-note">Top-voted games available on Nintendo Switch</div>
      </div>
      <div class="cw-winner">
        <h4 class="cw-game-name">Slay the Spire</h4>
        <div class="cw-game-note">315 votes · available on Switch</div>
        <div class="cw-runner">Runner-up <span>Dead Cells</span></div>
      </div>
    </div>

    <div class="cw-row">
      <div class="cw-category">
        <h3 class="cw-cat-label">Best PS5 Roguelike</h3>
        <div class="cw-cat-note">Top-voted games available on PlayStation 5</div>
      </div>
      <div class="cw-winner">
        <h4 class="cw-game-name">Returnal</h4>
        <div class="cw-game-note">81 votes · PS5 exclusive</div>
        <div class="cw-runner">Runner-up <span>Hades</span></div>
      </div>
    </div>

    <div class="cw-row">
      <div class="cw-category">
        <h3 class="cw-cat-label">Best Roguelike on Xbox</h3>
        <div class="cw-cat-note">Top-voted games available on Xbox</div>
      </div>
      <div class="cw-winner">
        <h4 class="cw-game-name">Slay the Spire</h4>
        <div class="cw-game-note">315 votes · available on Xbox</div>
        <div class="cw-runner">Runner-up <span>Hades</span></div>
      </div>
    </div>

    <div class="cw-row">
      <div class="cw-category">
        <h3 class="cw-cat-label">Best Roguelike Game on Android</h3>
        <div class="cw-cat-note">Top-voted games available on Android</div>
      </div>
      <div class="cw-winner">
        <h4 class="cw-game-name">Shattered Pixel Dungeon</h4>
        <div class="cw-game-note">23 votes · Android-native roguelike</div>
        <div class="cw-runner">Runner-up <span>Brotato</span></div>
      </div>
    </div>

    <div class="cw-row">
      <div class="cw-category">
        <h3 class="cw-cat-label">Best Roguelike Game on iOS</h3>
        <div class="cw-cat-note">Top-voted games available on iPhone</div>
      </div>
      <div class="cw-winner">
        <h4 class="cw-game-name">Slay the Spire</h4>
        <div class="cw-game-note">315 votes · available on iOS</div>
        <div class="cw-runner">Runner-up <span>Shattered Pixel Dungeon</span></div>
      </div>
    </div>

    <div class="cw-row"><div class="cw-section">Genre &amp; Style</div></div>

    <div class="cw-row">
      <div class="cw-category">
        <h3 class="cw-cat-label">Best Deck Builder Roguelike</h3>
        <div class="cw-cat-note">Card and deck-building roguelikes</div>
      </div>
      <div class="cw-winner">
        <h4 class="cw-game-name">Slay the Spire</h4>
        <div class="cw-game-note">315 votes · the genre-defining deck builder</div>
        <div class="cw-runner">Runner-up <span>Balatro</span></div>
      </div>
    </div>

    <div class="cw-row">
      <div class="cw-category">
        <h3 class="cw-cat-label">Best Turn-Based Roguelike</h3>
        <div class="cw-cat-note">Best slow and methodical roguelikes</div>
      </div>
      <div class="cw-winner">
        <h4 class="cw-game-name">Caves of Qud</h4>
        <div class="cw-game-note">273 votes · deep turn-based systems</div>
        <div class="cw-runner">Runner-up <span>ADOM</span></div>
      </div>
    </div>

    <div class="cw-row">
      <div class="cw-category">
        <h3 class="cw-cat-label">Best 2D Roguelike</h3>
        <div class="cw-cat-note">Best 2D roguelikes across all styles</div>
      </div>
      <div class="cw-winner">
        <h4 class="cw-game-name">The Binding of Isaac</h4>
        <div class="cw-game-note">170 votes · the iconic 2D roguelike</div>
        <div class="cw-runner">Runner-up <span>Dead Cells</span></div>
      </div>
    </div>

    <div class="cw-row">
      <div class="cw-category">
        <h3 class="cw-cat-label">Best Action Roguelike</h3>
        <div class="cw-cat-note">Fast-paced, real-time combat roguelikes</div>
      </div>
      <div class="cw-winner">
        <h4 class="cw-game-name">Hades</h4>
        <div class="cw-game-note">182 votes · best-in-class action combat</div>
        <div class="cw-runner">Runner-up <span>Dead Cells</span></div>
      </div>
    </div>

    <div class="cw-row">
      <div class="cw-category">
        <h3 class="cw-cat-label">Best Top-Down Roguelike</h3>
        <div class="cw-cat-note">Best overhead perspective roguelikes</div>
      </div>
      <div class="cw-winner">
        <h4 class="cw-game-name">Enter the Gungeon</h4>
        <div class="cw-game-note">63 votes · top-down twin-stick shooter</div>
        <div class="cw-runner">Runner-up <span>Nuclear Throne</span></div>
      </div>
    </div>

    <div class="cw-row">
      <div class="cw-category">
        <h3 class="cw-cat-label">Best FPS Roguelike</h3>
        <div class="cw-cat-note">First-person roguelike shooter</div>
      </div>
      <div class="cw-winner">
        <h4 class="cw-game-name">Roboquest</h4>
        <div class="cw-game-note">34 votes · best FPS roguelite in the list</div>
        <div class="cw-runner">Runner-up <span>Jupiter Hell</span></div>
      </div>
    </div>

    <div class="cw-row">
      <div class="cw-category">
        <h3 class="cw-cat-label">Best Horror Roguelike</h3>
        <div class="cw-cat-note">Best horror-themed roguelikes</div>
      </div>
      <div class="cw-winner">
        <h4 class="cw-game-name">World of Horror</h4>
        <div class="cw-game-note">6 votes · cosmic horror roguelike</div>
        <div class="cw-runner">Runner-up <span>Fear and Hunger</span></div>
      </div>
    </div>

    <div class="cw-row">
      <div class="cw-category">
        <h3 class="cw-cat-label">Best Sci-Fi Roguelike</h3>
        <div class="cw-cat-note">Best science fiction roguelikes</div>
      </div>
      <div class="cw-winner">
        <h4 class="cw-game-name">Cogmind</h4>
        <div class="cw-game-note">229 votes · deep sci-fi roguelike</div>
        <div class="cw-runner">Runner-up <span>FTL</span></div>
      </div>
    </div>

    <div class="cw-row"><div class="cw-section">Accessibility &amp; Misc</div></div>

    <div class="cw-row">
      <div class="cw-category">
        <h3 class="cw-cat-label">Best Free Roguelike</h3>
        <div class="cw-cat-note">Best roguelikes available free to play</div>
      </div>
      <div class="cw-winner">
        <h4 class="cw-game-name">Dungeon Crawl Stone Soup</h4>
        <div class="cw-game-note">117 votes · completely free to play</div>
        <div class="cw-runner">Runner-up <span>Nethack</span></div>
      </div>
    </div>

    <div class="cw-row">
      <div class="cw-category">
        <h3 class="cw-cat-label">Best Browser Roguelike</h3>
        <div class="cw-cat-note">Best roguelikes playable in browser</div>
      </div>
      <div class="cw-winner">
        <h4 class="cw-game-name">Nethack</h4>
        <div class="cw-game-note">124 votes · browser-playable classic</div>
        <div class="cw-runner">Runner-up <span>DCSS</span></div>
      </div>
    </div>

    <div class="cw-row">
      <div class="cw-category">
        <h3 class="cw-cat-label">Best Multiplayer Roguelike</h3>
        <div class="cw-cat-note">Best roguelikes with co-op or multiplayer</div>
      </div>
      <div class="cw-winner">
        <h4 class="cw-game-name">Ravenswatch</h4>
        <div class="cw-game-note">63 votes · built around co-op play</div>
        <div class="cw-runner">Runner-up <span>Streets of Rogue</span></div>
      </div>
    </div>

    <div class="cw-row">
      <div class="cw-category">
        <h3 class="cw-cat-label">Hardest Roguelike</h3>
        <div class="cw-cat-note">Most punishing and demanding roguelikes</div>
      </div>
      <div class="cw-winner">
        <h4 class="cw-game-name">Caves of Qud</h4>
        <div class="cw-game-note">273 votes · notoriously brutal</div>
        <div class="cw-runner">Runner-up <span>Noita</span></div>
      </div>
    </div>

    <div class="cw-row">
      <div class="cw-category">
        <h3 class="cw-cat-label">Best Underrated Roguelike</h3>
        <div class="cw-cat-note">Hidden gems with strong community backing</div>
      </div>
      <div class="cw-winner">
        <h4 class="cw-game-name">Cogmind</h4>
        <div class="cw-game-note">229 votes · widely underplayed gem</div>
        <div class="cw-runner">Runner-up <span>Rift Wizard</span></div>
      </div>
    </div>

  </div>

  <div class="cw-footer">
    Roguelike categories ranked by Rogue Ranker
  </div>

</div>

</body>
</html></p>



<h2 class="wp-block-heading"><strong>Top Roguelike Games Based on Reddit Votes</strong></h2>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>


<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700&family=Barlow:wght@400;500;600&display=swap" rel="stylesheet" />
<!-- Chart.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.4.1/chart.umd.min.js"></script>
<style>
  .rrl-votes-wrap {
    background: #fff;
    border: 1px solid #e0dded;
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
    padding: 24px 20px 32px;
    max-width: 780px;
    margin: 0 auto;
    font-family: 'Barlow', sans-serif;
  }
  .rrl-votes-header { text-align: center; margin-bottom: 1.4rem; }
  .rrl-votes-header p.rrl-votes-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.85rem, 2.5vw, 1.3rem);
    color: #b8892a;
    letter-spacing: 0.04em;
    margin: 0;
  }
  .rrl-votes-container { position: relative; width: 100%; }
</style>

<div class="rrl-votes-wrap">
  <div class="rrl-votes-header">
    <p class="rrl-votes-title">Most Recommended Roguelike Games</p>
  </div>
  <div class="rrl-votes-container">
    <canvas id="rrlChartVotes"></canvas>
  </div>
</div>

<script>
(function() {
  const votesData = [
    ["Slay the Spire", 315],
    ["Caves of Qud", 273],
    ["Cogmind", 229],
    ["FTL: Faster Than Light", 200],
    ["Noita", 188],
    ["Hades", 182],
    ["Balatro", 179],
    ["The Binding of Isaac", 170],
    ["Rift Wizard", 170],
    ["ADOM", 130],
    ["Dead Cells", 129],
    ["Nethack", 124],
    ["Dungeon Crawl Stone Soup", 117],
    ["Tales of Maj'Eyal", 106],
    ["Risk of Rain 2", 100],
    ["Zorbus", 97],
    ["Slice & Dice", 84],
    ["Inscryption", 83],
    ["Returnal", 81],
    ["Tiny Rogues", 81],
    ["Barony", 79],
    ["Cataclysm: Dark Days Ahead", 79],
    ["Brogue", 73],
    ["Brotato", 70],
    ["StarVaders", 68],
  ].sort((a, b) => b[1] - a[1]);

  const colors = votesData.map((d, i) =>
    i === 0 ? "#b8892a" : "#1a1a24"
  );

  new Chart(document.getElementById("rrlChartVotes"), {
    type: "bar",
    data: {
      labels: votesData.map(d => d[0]),
      datasets: [{
        data: votesData.map(d => d[1]),
        backgroundColor: colors,
        borderRadius: 3,
      }]
    },
    options: {
      indexAxis: "y",
      responsive: true,
      plugins: {
        legend: { display: false },
        tooltip: {
          callbacks: { label: ctx => ` ${ctx.parsed.x} votes` },
          backgroundColor: "#1a1a24",
          titleFont: { family: "'Barlow', sans-serif", size: 12 },
          bodyFont:  { family: "'Barlow', sans-serif", size: 12 },
          titleColor: "#e8b94f",
          bodyColor:  "#e8e4dc",
          borderColor: "#c0392b",
          borderWidth: 1,
          padding: 10,
        }
      },
      scales: {
        x: {
          title: { display: true, text: "Total Reddit Votes", font: { family: "'Barlow', sans-serif", size: 12 }, color: "#888699" },
          grid: { color: "#e0dded" },
          ticks: { font: { family: "'Barlow', sans-serif", size: 11 }, color: "#555466" }
        },
        y: {
          grid: { display: false },
          ticks: { font: { family: "'Barlow', sans-serif", size: 11 }, color: "#555466" }
        }
      }
    }
  });
})();
</script>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>Top Value Roguelike Games (Median Playtime per Dollar Spent)</strong></h2>



<p class="wp-block-paragraph">This chart only includes games where we had reliable pricing and playtime data from VGN Insights. Free-to-play titles and games with incomplete Steam data were excluded.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>


<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700&family=Barlow:wght@400;500;600&display=swap" rel="stylesheet" />
<!-- Chart.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.4.1/chart.umd.min.js"></script>
<style>
  .rrl-value-wrap {
    background: #fff;
    border: 1px solid #e0dded;
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
    padding: 24px 20px 32px;
    max-width: 780px;
    margin: 0 auto;
    font-family: 'Barlow', sans-serif;
  }
  .rrl-value-header { text-align: center; margin-bottom: 1.4rem; }
  .rrl-value-header p.rrl-value-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.85rem, 2.5vw, 1.3rem);
    color: #b8892a;
    letter-spacing: 0.04em;
    margin: 0;
  }
  .rrl-value-container { position: relative; width: 100%; }
</style>

<div class="rrl-value-wrap">
  <div class="rrl-value-header">
    <p class="rrl-value-title">Top Value Roguelike Games — Median Playtime per Dollar Spent</p>
  </div>
  <div class="rrl-value-container">
    <canvas id="rrlChartValue"></canvas>
  </div>
</div>

<script>
(function() {
  const valueData = [
    ["Vampire Survivors", 6.10],
    ["Brotato", 3.23],
    ["Halls of Torment", 3.02],
    ["Death Must Die", 2.12],
    ["Tiny Rogues", 2.03],
    ["Gunfire Reborn", 2.00],
    ["FTL: Faster Than Light", 1.70],
    ["Warm Snow", 1.65],
    ["Slay the Spire", 1.59],
    ["Balatro", 1.55],
    ["The Binding of Isaac", 1.47],
    ["Dungeons of Dredmor", 1.23],
    ["Slice & Dice", 1.20],
    ["Risk of Rain 2", 1.14],
    ["Hades 2", 1.12],
  ].sort((a, b) => b[1] - a[1]);

  const colors = valueData.map((d, i) =>
    i === 0 ? "#b8892a" : "#1a1a24"
  );

  new Chart(document.getElementById("rrlChartValue"), {
    type: "bar",
    data: {
      labels: valueData.map(d => d[0]),
      datasets: [{
        data: valueData.map(d => d[1]),
        backgroundColor: colors,
        borderRadius: 3,
      }]
    },
    options: {
      indexAxis: "y",
      responsive: true,
      plugins: {
        legend: { display: false },
        tooltip: {
          callbacks: { label: ctx => ` ${ctx.parsed.x.toFixed(2)} hrs per $1` },
          backgroundColor: "#1a1a24",
          titleFont: { family: "'Barlow', sans-serif", size: 12 },
          bodyFont:  { family: "'Barlow', sans-serif", size: 12 },
          titleColor: "#e8b94f",
          bodyColor:  "#e8e4dc",
          borderColor: "#c0392b",
          borderWidth: 1,
          padding: 10,
        }
      },
      scales: {
        x: {
          title: { display: true, text: "Hours of Playtime per $1 Spent", font: { family: "'Barlow', sans-serif", size: 12 }, color: "#888699" },
          grid: { color: "#e0dded" },
          ticks: { font: { family: "'Barlow', sans-serif", size: 11 }, color: "#555466" }
        },
        y: {
          grid: { display: false },
          ticks: { font: { family: "'Barlow', sans-serif", size: 11 }, color: "#555466" }
        }
      }
    }
  });
})();
</script>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>Distribution of Median Playtime Among Roguelike Games</strong></h2>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>


<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700&family=Barlow:wght@400;500;600&display=swap" rel="stylesheet" />
<!-- Chart.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.4.1/chart.umd.min.js"></script>
<style>
  .rrl-hist-wrap {
    background: #fff;
    border: 1px solid #e0dded;
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
    padding: 24px 20px 32px;
    max-width: 780px;
    margin: 0 auto;
    font-family: 'Barlow', sans-serif;
  }
  .rrl-hist-header { text-align: center; margin-bottom: 1.4rem; }
  .rrl-hist-header p.rrl-hist-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.85rem, 2.5vw, 1.3rem);
    color: #b8892a;
    letter-spacing: 0.04em;
    margin: 0;
  }
  .rrl-hist-container { position: relative; width: 100%; }
</style>

<div class="rrl-hist-wrap">
  <div class="rrl-hist-header">
    <p class="rrl-hist-title">Distribution of Median Playtime — Roguelike Games</p>
  </div>
  <div class="rrl-hist-container">
    <canvas id="rrlChartHistogram"></canvas>
  </div>
</div>

<script>
(function() {
  const playtimes = [
    23.8, 4.7, 3.1, 10.2, 5.1, 16.3, 18.6, 4.4, 1.3, 2.7,
    14.9, 0.4, 5.0, 18.3, 1.0, 8.4, 10.7, 8.6, 12.2, 5.8,
    10.8, 4.0, 12.9, 5.5, 6.2, 9.4, 4.0, 22.0, 4.9, 2.0,
    5.4, 4.9, 1.7, 3.7, 11.2, 10.7, 12.1, 2.8, 5.6, 10.6,
    3.4, 16.8, 5.1, 11.8, 10.5, 25.7, 4.9, 3.3, 18.3, 6.0,
    16.2, 6.1, 2.1, 6.4, 3.0, 10.4, 6.8, 7.7, 2.6, 1.1,
    7.9, 4.9, 1.8, 21.5, 4.9, 3.9, 12.5, 3.0, 8.9, 12.4,
    6.3, 1.8, 5.9, 3.7, 3.0, 12.8, 4.6, 13.3, 2.9, 13.3,
    5.2, 6.4, 2.9
  ];

  const binSize = 2;
  const maxVal = Math.ceil(Math.max(...playtimes));
  const bins = [], binLabels = [];
  for (let i = 0; i < maxVal; i += binSize) {
    binLabels.push(`${i}–${i + binSize}`);
    bins.push(playtimes.filter(v => v >= i && v < i + binSize).length);
  }

  const maxCount = Math.max(...bins);
  const colors = bins.map(v => v === maxCount ? "#b8892a" : "#1a1a24");

  new Chart(document.getElementById("rrlChartHistogram"), {
    type: "bar",
    data: {
      labels: binLabels,
      datasets: [{
        data: bins,
        backgroundColor: colors,
        borderRadius: 3,
        barPercentage: 1.0,
        categoryPercentage: 1.0,
      }]
    },
    options: {
      responsive: true,
      plugins: {
        legend: { display: false },
        tooltip: {
          callbacks: { label: ctx => ` ${ctx.parsed.y} game${ctx.parsed.y !== 1 ? "s" : ""}` },
          backgroundColor: "#1a1a24",
          titleFont: { family: "'Barlow', sans-serif", size: 12 },
          bodyFont:  { family: "'Barlow', sans-serif", size: 12 },
          titleColor: "#e8b94f",
          bodyColor:  "#e8e4dc",
          borderColor: "#c0392b",
          borderWidth: 1,
          padding: 10,
        }
      },
      scales: {
        x: {
          title: { display: true, text: "Median Playtime (Hours)", font: { family: "'Barlow', sans-serif", size: 12 }, color: "#888699" },
          grid: { display: false },
          ticks: { font: { family: "'Barlow', sans-serif", size: 11 }, color: "#555466" }
        },
        y: {
          title: { display: true, text: "Number of Games", font: { family: "'Barlow', sans-serif", size: 12 }, color: "#888699" },
          grid: { color: "#e0dded" },
          ticks: { font: { family: "'Barlow', sans-serif", size: 11 }, color: "#555466", stepSize: 1 }
        }
      }
    }
  });
})();
</script>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>The Data Collection Process</strong></h2>



<p class="wp-block-paragraph">If you’ve read any of my other articles, this process will look familiar.&nbsp;</p>



<p class="wp-block-paragraph">The short version: I searched for threads from folks looking for the best roguelike games, collected the top 20, tallied the upvotes, and then pulled VGN Insights data.&nbsp;</p>



<h3 class="wp-block-heading"><strong>How I Chose Reddit Threads</strong></h3>



<p class="wp-block-paragraph">I started with a Google search for &#8220;best roguelike games,&#8221; collecting Reddit threads that ranked organically, then went directly to Reddit and ran the same search there to catch anything Google missed.</p>



<p class="wp-block-paragraph">In other guides I’ve written, such as:</p>



<ul class="wp-block-list">
<li><a href="https://rogueranker.com/games-like-brotato/">Games Like Brotato</a></li>



<li><a href="https://rogueranker.com/best-bullet-hell-games/">Best Bullet Hell Games</a></li>



<li><a href="https://rogueranker.com/best-bullet-heaven-games/">Best Bullet Heaven Games</a></li>
</ul>



<p class="wp-block-paragraph">I chose 15 threads, but given the size/popularity of Roguelikes, 20 seemed well-rounded.</p>



<p class="wp-block-paragraph">From there, I filtered out threads that were too narrow to be useful:</p>



<ul class="wp-block-list">
<li>Threads asking specifically for mobile-only recommendations</li>



<li>Threads asking for console-only or handheld-only suggestions</li>
</ul>



<p class="wp-block-paragraph">That left me with 20 threads pulled from r/roguelikes, r/roguelites, r/gaming, r/gamedesign, r/gamingsuggestions, r/videogames, and r/iosgaming (to name a few).</p>



<h3 class="wp-block-heading"><strong>How I Chose Games</strong></h3>



<p class="wp-block-paragraph">If a game was suggested repeatedly across threads, it made the list.&nbsp;</p>



<p class="wp-block-paragraph">If it only appeared once but had strong upvote support, the upvotes were also counted.</p>



<p class="wp-block-paragraph">A few edge cases are worth calling out:</p>



<ul class="wp-block-list">
<li>Some games sparked debate in threads: Comments like &#8220;that&#8217;s not really a roguelike&#8221; followed by &#8220;yeah, but if they like roguelikes they&#8217;ll probably like this.&#8221;&nbsp;</li>



<li>I only removed a game if another community member explicitly called it out as off-topic.&nbsp;</li>



<li>I also excluded any &#8220;shameless self-promo&#8221; comments that plugged someone&#8217;s own game.&nbsp;</li>
</ul>



<h3 class="wp-block-heading"><strong>How I Ranked Games</strong></h3>



<p class="wp-block-paragraph">Ranking was based entirely on upvotes, not my opinion.&nbsp;</p>



<p class="wp-block-paragraph">After adding a game to the list, the vote count was calculated as the sum of all upvotes across every comment mentioning that game, including duplicate suggestions and replies in support of it.</p>



<p class="wp-block-paragraph">So if three people across different threads all suggested the same game with 8, 12, and 5 upvotes respectively, that game gets 25 total votes.&nbsp;</p>



<p class="wp-block-paragraph">TL;DR: Every mention counts and community support was noted.</p>



<h3 class="wp-block-heading"><strong>Nuances and Notes of the Data</strong></h3>



<p class="wp-block-paragraph">A few things worth flagging before we get too far.</p>



<h4 class="wp-block-heading"><strong>Roguelites in a Roguelike List</strong></h4>



<p class="wp-block-paragraph">Hades, Balatro, Dead Cells, and Risk of Rain 2 all ranked inside or just outside the top 10 despite being roguelites by most definitions.&nbsp;</p>



<p class="wp-block-paragraph">This wasn&#8217;t a mistake in data collection; it reflects how the community actually talks about these games.&nbsp;</p>



<p class="wp-block-paragraph">From what I saw, Reddit users didn’t always draw a hard line between roguelike and roguelite, despite being asked specifically for the top roguelike games.</p>



<h4 class="wp-block-heading"><strong>The Binding of Isaac / Rift Wizard tie</strong></h4>



<p class="wp-block-paragraph">Surprisingly, both landed at 170 votes, but Isaac appeared across 10 threads and Rift Wizard&#8217;s votes came almost entirely from a single thread.&nbsp;</p>



<p class="wp-block-paragraph">Just wanted to note this because that&#8217;s a meaningful difference in how each game is discussed, but they are very different games.</p>



<h4 class="wp-block-heading"><strong>TOME vs. TOME 4</strong></h4>



<p class="wp-block-paragraph">These appeared as separate entries in the data. They&#8217;re the same game in different versions, so I treated them as one combined entry.</p>



<h2 class="wp-block-heading"><strong>Business Data From VGN Insights</strong></h2>



<p class="wp-block-paragraph">After the Reddit ranking was complete, I layered in business data from VGN Insights to give a fuller picture of how each game has actually performed commercially.</p>



<p class="wp-block-paragraph">The four data points collected for each game:</p>



<ul class="wp-block-list">
<li><strong>Units Sold</strong></li>



<li><strong>Average Cost</strong></li>



<li><strong>Gross Revenue</strong></li>



<li><strong>Median Playtime</strong></li>
</ul>



<p class="wp-block-paragraph">A few caveats worth calling out: free-to-play titles like Dungeon Crawl Stone Soup and Nethack don&#8217;t have meaningful revenue data, and a handful of smaller or older games had incomplete or missing Steam data on VGN Insights. Those gaps are reflected in the table below with placeholder values. If you have better data for any of the missing entries, drop a comment and I&#8217;ll update it.</p>



<h3 class="wp-block-heading"><strong>Average Business Stats (Top 10 Roguelike Games):</strong></h3>



<ul class="wp-block-list">
<li>Units Sold = 3,510,000</li>



<li>Average Cost = $12</li>



<li>Gross Revenue = $39,200,000</li>



<li>Median Playtime = 8.8 Hours</li>
</ul>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>


<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700&family=Barlow:wght@400;500;600&display=swap" rel="stylesheet" />
<!-- Chart.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.4.1/chart.umd.min.js"></script>
<style>
  .rrl-rev-wrap {
    background: #fff;
    border: 1px solid #e0dded;
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
    padding: 24px 20px 32px;
    max-width: 780px;
    margin: 0 auto;
    font-family: 'Barlow', sans-serif;
  }
  .rrl-rev-header { text-align: center; margin-bottom: 1.4rem; }
  .rrl-rev-header p.rrl-rev-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.85rem, 2.5vw, 1.3rem);
    color: #b8892a;
    letter-spacing: 0.04em;
    margin: 0;
  }
  .rrl-rev-container { position: relative; width: 100%; }
</style>
<div class="rrl-rev-wrap">
  <div class="rrl-rev-header">
    <p class="rrl-rev-title">Roguelike Games — Gross Revenue</p>
  </div>
  <div class="rrl-rev-container">
    <canvas id="rrlChartRevenue"></canvas>
  </div>
</div>
<script>
(function() {
  const data = [
    ["Slay the Spire", 52700000],
    ["Caves of Qud", 8600000],
    ["Cogmind", 1600000],
    ["FTL: Faster Than Light", 23300000],
    ["Noita", 34400000],
    ["Hades", 137900000],
    ["Balatro", 64800000],
    ["The Binding of Isaac", 28100000],
    ["Rift Wizard", 332000],
    ["ADOM", 629000],
    ["Dead Cells", 39300000],
    ["Nethack", 6592],
    ["Tales of Maj'Eyal", 2100000],
    ["Risk of Rain 2", 147300000],
    ["Zorbus", 42930],
    ["Slice & Dice", 941000],
    ["Inscryption", 37500000],
    ["Returnal", 13000000],
    ["Tiny Rogues", 2000000],
    ["Barony", 8500000],
    ["Cataclysm: Dark Days Ahead", 236000],
    ["Brotato", 11600000],
    ["StarVaders", 2900000],
    ["Enter the Gungeon", 39100000],
    ["Ravenswatch", 9700000],
    ["Star of Providence", 438000],
    ["Gunfire Reborn", 34000000],
    ["Shogun Showdown", 1900000],
    ["Streets of Rogue", 6100000],
    ["Astral Ascent", 4300000],
    ["Jupiter Hell", 1000000],
    ["Dungeons of Dredmor", 2100000],
    ["Peglin", 9800000],
    ["BlazBlue Entropy Effect", 15100000],
    ["Halls of Torment", 3600000],
    ["Spelunky", 12400000],
    ["Ring of Pain", 2100000],
    ["Roboquest", 11500000],
    ["Curse of the Dead Gods", 3100000],
    ["Mewgenics", 41300000],
    ["Nuclear Throne", 6800000],
    ["Monster Train", 11300000],
    ["Darkest Dungeon", 69700000],
    ["Hades 2", 79500000],
    ["Shattered Pixel Dungeon", 428000],
    ["Spiritfall", 756000],
    ["Vampire Survivors", 23600000],
    ["Into the Breach", 5800000],
    ["Shape of Dreams", 22200000],
    ["Brutal Orchestra", 847000],
    ["UnReal World", 449000],
    ["Spelunky 2", 9200000],
    ["Kingsway", 646000],
    ["Ember Knights", 2600000],
    ["Nova Drift", 3500000],
    ["Absolum", 6700000],
    ["Tangledeep", 1100000],
    ["Cobalt Core", 1800000],
    ["Cult of the Lamb", 62700000],
    ["Against the Storm", 24000000],
    ["Chrono Ark", 6200000],
    ["Stoneshard", 14300000],
    ["Warm Snow", 15400000],
    ["Wizard of Legend", 16300000],
    ["Darkest Dungeon", 69700000],
    ["Skul: The Hero Slayer", 21900000],
    ["For the King", 23400000],
  ].sort((a, b) => b[1] - a[1]);

  const colors = data.map((d, i) => i === 0 ? "#b8892a" : "#1a1a24");

  new Chart(document.getElementById("rrlChartRevenue"), {
    type: "bar",
    data: {
      labels: data.map(d => d[0]),
      datasets: [{
        data: data.map(d => d[1]),
        backgroundColor: colors,
        borderRadius: 3,
      }]
    },
    options: {
      indexAxis: "y",
      responsive: true,
      plugins: {
        legend: { display: false },
        tooltip: {
          callbacks: { label: ctx => ` $${ctx.parsed.x.toLocaleString()}` },
          backgroundColor: "#1a1a24",
          titleFont: { family: "'Barlow', sans-serif", size: 12 },
          bodyFont:  { family: "'Barlow', sans-serif", size: 12 },
          titleColor: "#e8b94f",
          bodyColor:  "#e8e4dc",
          borderColor: "#c0392b",
          borderWidth: 1,
          padding: 10,
        }
      },
      scales: {
        x: {
          title: { display: true, text: "Gross Revenue (USD)", font: { family: "'Barlow', sans-serif", size: 12 }, color: "#888699" },
          grid: { color: "#e0dded" },
          ticks: {
            font: { family: "'Barlow', sans-serif", size: 11 },
            color: "#555466",
            callback: val => "$" + (val >= 1000000 ? (val/1000000).toFixed(1) + "M" : (val/1000).toFixed(0) + "K")
          }
        },
        y: {
          grid: { display: false },
          ticks: { font: { family: "'Barlow', sans-serif", size: 11 }, color: "#555466" }
        }
      }
    }
  });
})();
</script>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>


<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700&family=Barlow:wght@400;500;600&display=swap" rel="stylesheet" />
<!-- Chart.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.4.1/chart.umd.min.js"></script>
<style>
  .rrl-units-wrap {
    background: #fff;
    border: 1px solid #e0dded;
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
    padding: 24px 20px 32px;
    max-width: 780px;
    margin: 0 auto;
    font-family: 'Barlow', sans-serif;
  }
  .rrl-units-header { text-align: center; margin-bottom: 1.4rem; }
  .rrl-units-header p.rrl-units-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.85rem, 2.5vw, 1.3rem);
    color: #b8892a;
    letter-spacing: 0.04em;
    margin: 0;
  }
  .rrl-units-container { position: relative; width: 100%; }
</style>
<div class="rrl-units-wrap">
  <div class="rrl-units-header">
    <p class="rrl-units-title">Roguelike Games — Units Sold</p>
  </div>
  <div class="rrl-units-container">
    <canvas id="rrlChartUnits"></canvas>
  </div>
</div>
<script>
(function() {
  const data = [
    ["Slay the Spire", 3600000],
    ["Caves of Qud", 547000],
    ["Cogmind", 96606],
    ["FTL: Faster Than Light", 3900000],
    ["Noita", 2600000],
    ["Hades", 8200000],
    ["Balatro", 5600000],
    ["The Binding of Isaac", 8500000],
    ["Rift Wizard", 31380],
    ["ADOM", 57125],
    ["Dead Cells", 2500000],
    ["Nethack", 1462],
    ["Tales of Maj'Eyal", 460000],
    ["Risk of Rain 2", 9500000],
    ["Zorbus", 10800],
    ["Slice & Dice", 131000],
    ["Inscryption", 2700000],
    ["Returnal", 295000],
    ["Tiny Rogues", 313000],
    ["Barony", 730000],
    ["Cataclysm: Dark Days Ahead", 14820],
    ["Brotato", 3300000],
    ["StarVaders", 169000],
    ["Enter the Gungeon", 4000000],
    ["Ravenswatch", 616000],
    ["Star of Providence", 55722],
    ["Gunfire Reborn", 3100000],
    ["Shogun Showdown", 196000],
    ["Streets of Rogue", 521000],
    ["Astral Ascent", 240000],
    ["Jupiter Hell", 61440],
    ["Dungeons of Dredmor", 642000],
    ["Peglin", 686000],
    ["BlazBlue Entropy Effect", 1000000],
    ["Halls of Torment", 934000],
    ["Spelunky", 1400000],
    ["Ring of Pain", 150000],
    ["Roboquest", 710000],
    ["Curse of the Dead Gods", 269000],
    ["Mewgenics", 1900000],
    ["Nuclear Throne", 722000],
    ["Monster Train", 681000],
    ["Darkest Dungeon", 4700000],
    ["Hades 2", 3400000],
    ["Shattered Pixel Dungeon", 59340],
    ["Spiritfall", 56160],
    ["Vampire Survivors", 7800000],
    ["Into the Breach", 543000],
    ["Shape of Dreams", 1300000],
    ["Brutal Orchestra", 59910],
    ["UnReal World", 55604],
    ["Spelunky 2", 644000],
    ["Kingsway", 90795],
    ["Ember Knights", 201000],
    ["Nova Drift", 338000],
    ["Absolum", 390000],
    ["Tangledeep", 108000],
    ["Cobalt Core", 123000],
    ["Cult of the Lamb", 3600000],
    ["Against the Storm", 1400000],
    ["Chrono Ark", 398000],
    ["Stoneshard", 966000],
    ["Warm Snow", 1200000],
    ["Wizard of Legend", 1500000],
    ["Skul: The Hero Slayer", 1700000],
    ["For the King", 2000000],
  ].sort((a, b) => b[1] - a[1]);

  const colors = data.map((d, i) => i === 0 ? "#b8892a" : "#1a1a24");

  new Chart(document.getElementById("rrlChartUnits"), {
    type: "bar",
    data: {
      labels: data.map(d => d[0]),
      datasets: [{
        data: data.map(d => d[1]),
        backgroundColor: colors,
        borderRadius: 3,
      }]
    },
    options: {
      indexAxis: "y",
      responsive: true,
      plugins: {
        legend: { display: false },
        tooltip: {
          callbacks: { label: ctx => ` ${ctx.parsed.x.toLocaleString()} units` },
          backgroundColor: "#1a1a24",
          titleFont: { family: "'Barlow', sans-serif", size: 12 },
          bodyFont:  { family: "'Barlow', sans-serif", size: 12 },
          titleColor: "#e8b94f",
          bodyColor:  "#e8e4dc",
          borderColor: "#c0392b",
          borderWidth: 1,
          padding: 10,
        }
      },
      scales: {
        x: {
          title: { display: true, text: "Units Sold", font: { family: "'Barlow', sans-serif", size: 12 }, color: "#888699" },
          grid: { color: "#e0dded" },
          ticks: {
            font: { family: "'Barlow', sans-serif", size: 11 },
            color: "#555466",
            callback: val => val >= 1000000 ? (val/1000000).toFixed(1) + "M" : (val/1000).toFixed(0) + "K"
          }
        },
        y: {
          grid: { display: false },
          ticks: { font: { family: "'Barlow', sans-serif", size: 11 }, color: "#555466" }
        }
      }
    }
  });
})();
</script>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>


<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700&family=Barlow:wght@400;500;600&display=swap" rel="stylesheet" />
<!-- Chart.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.4.1/chart.umd.min.js"></script>
<style>
  .rrl-scatter-wrap {
    background: #fff;
    border: 1px solid #e0dded;
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
    padding: 24px 20px 32px;
    max-width: 780px;
    margin: 0 auto;
    font-family: 'Barlow', sans-serif;
  }
  .rrl-scatter-header { text-align: center; margin-bottom: 1.4rem; }
  .rrl-scatter-header p.rrl-scatter-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.85rem, 2.5vw, 1.3rem);
    color: #b8892a;
    letter-spacing: 0.04em;
    margin: 0;
  }
  .rrl-scatter-container { position: relative; width: 100%; }
</style>
<div class="rrl-scatter-wrap">
  <div class="rrl-scatter-header">
    <p class="rrl-scatter-title">Reddit Votes vs Gross Revenue — Roguelike Games</p>
  </div>
  <div class="rrl-scatter-container">
    <canvas id="rrlChartScatter"></canvas>
  </div>
</div>
<script>
(function() {
  const games = [
    { game: "Slay the Spire",            votes: 315, revenue: 52700000 },
    { game: "Caves of Qud",              votes: 273, revenue: 8600000 },
    { game: "Cogmind",                   votes: 229, revenue: 1600000 },
    { game: "FTL: Faster Than Light",    votes: 200, revenue: 23300000 },
    { game: "Noita",                     votes: 188, revenue: 34400000 },
    { game: "Hades",                     votes: 182, revenue: 137900000 },
    { game: "Balatro",                   votes: 179, revenue: 64800000 },
    { game: "The Binding of Isaac",      votes: 170, revenue: 28100000 },
    { game: "Rift Wizard",               votes: 170, revenue: 332000 },
    { game: "ADOM",                      votes: 130, revenue: 629000 },
    { game: "Dead Cells",                votes: 129, revenue: 39300000 },
    { game: "Nethack",                   votes: 124, revenue: 6592 },
    { game: "Tales of Maj'Eyal",         votes: 106, revenue: 2100000 },
    { game: "Risk of Rain 2",            votes: 100, revenue: 147300000 },
    { game: "Zorbus",                    votes: 97,  revenue: 42930 },
    { game: "Slice & Dice",              votes: 84,  revenue: 941000 },
    { game: "Inscryption",               votes: 83,  revenue: 37500000 },
    { game: "Returnal",                  votes: 81,  revenue: 13000000 },
    { game: "Tiny Rogues",               votes: 81,  revenue: 2000000 },
    { game: "Barony",                    votes: 79,  revenue: 8500000 },
    { game: "Cataclysm: Dark Days Ahead",votes: 79,  revenue: 236000 },
    { game: "Brotato",                   votes: 70,  revenue: 11600000 },
    { game: "StarVaders",                votes: 68,  revenue: 2900000 },
    { game: "Enter the Gungeon",         votes: 63,  revenue: 39100000 },
    { game: "Ravenswatch",               votes: 63,  revenue: 9700000 },
    { game: "Star of Providence",        votes: 63,  revenue: 438000 },
    { game: "Gunfire Reborn",            votes: 57,  revenue: 34000000 },
    { game: "Shogun Showdown",           votes: 57,  revenue: 1900000 },
    { game: "Streets of Rogue",          votes: 51,  revenue: 6100000 },
    { game: "Astral Ascent",             votes: 50,  revenue: 4300000 },
    { game: "Jupiter Hell",              votes: 48,  revenue: 1000000 },
    { game: "Dungeons of Dredmor",       votes: 44,  revenue: 2100000 },
    { game: "Peglin",                    votes: 43,  revenue: 9800000 },
    { game: "BlazBlue Entropy Effect",   votes: 41,  revenue: 15100000 },
    { game: "Halls of Torment",          votes: 40,  revenue: 3600000 },
    { game: "Spelunky",                  votes: 39,  revenue: 12400000 },
    { game: "Ring of Pain",              votes: 37,  revenue: 2100000 },
    { game: "Roboquest",                 votes: 34,  revenue: 11500000 },
    { game: "Curse of the Dead Gods",    votes: 33,  revenue: 3100000 },
    { game: "Mewgenics",                 votes: 32,  revenue: 41300000 },
    { game: "Nuclear Throne",            votes: 32,  revenue: 6800000 },
    { game: "Monster Train",             votes: 26,  revenue: 11300000 },
    { game: "Darkest Dungeon",           votes: 24,  revenue: 69700000 },
    { game: "Hades 2",                   votes: 23,  revenue: 79500000 },
    { game: "Vampire Survivors",         votes: 22,  revenue: 23600000 },
    { game: "Into the Breach",           votes: 21,  revenue: 5800000 },
    { game: "Shape of Dreams",           votes: 20,  revenue: 22200000 },
    { game: "Cult of the Lamb",          votes: 12,  revenue: 62700000 },
    { game: "Against the Storm",         votes: 11,  revenue: 24000000 },
    { game: "Warm Snow",                 votes: 14,  revenue: 15400000 },
    { game: "Skul: The Hero Slayer",     votes: 7,   revenue: 21900000 },
    { game: "For the King",              votes: 7,   revenue: 23400000 },
  ];

  new Chart(document.getElementById("rrlChartScatter"), {
    type: "scatter",
    data: {
      datasets: [{
        data: games.map(d => ({ x: d.votes, y: d.revenue, game: d.game })),
        backgroundColor: games.map(d => d.game === "Slay the Spire" ? "#b8892a" : "rgba(26,26,36,0.7)"),
        pointRadius: 6,
        pointHoverRadius: 8,
      }]
    },
    options: {
      responsive: true,
      plugins: {
        legend: { display: false },
        tooltip: {
          callbacks: {
            label: ctx => ` ${ctx.raw.game} — ${ctx.raw.x} votes · $${ctx.raw.y.toLocaleString()}`
          },
          backgroundColor: "#1a1a24",
          titleFont: { family: "'Barlow', sans-serif", size: 12 },
          bodyFont:  { family: "'Barlow', sans-serif", size: 12 },
          titleColor: "#e8b94f",
          bodyColor:  "#e8e4dc",
          borderColor: "#c0392b",
          borderWidth: 1,
          padding: 10,
          displayColors: false,
        }
      },
      scales: {
        x: {
          title: { display: true, text: "Reddit Votes", font: { family: "'Barlow', sans-serif", size: 12 }, color: "#888699" },
          grid: { color: "#e0dded" },
          ticks: { font: { family: "'Barlow', sans-serif", size: 11 }, color: "#555466" }
        },
        y: {
          title: { display: true, text: "Gross Revenue (USD)", font: { family: "'Barlow', sans-serif", size: 12 }, color: "#888699" },
          grid: { color: "#e0dded" },
          ticks: {
            font: { family: "'Barlow', sans-serif", size: 11 },
            color: "#555466",
            callback: val => "$" + (val >= 1000000 ? (val/1000000).toFixed(0) + "M" : (val/1000).toFixed(0) + "K")
          }
        }
      }
    }
  });
})();
</script>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>Top 10 Roguelike Games From 5,512 Real Votes</strong></h2>



<p class="wp-block-paragraph">Below is a breakdown of the top 10 best roguelike games, compiled from reading 20 Reddit threads and adding up a total of 5,512 votes.&nbsp;</p>



<p class="wp-block-paragraph">The result that surprised me most wasn&#8217;t who won, but more so how dominant Slay the Spire was relative to everything else: 315 votes, 14 of 20 threads, and a 42-vote gap over the #2 game.&nbsp;</p>



<p class="wp-block-paragraph">The other thing worth noting before diving in: Hades, Balatro, Dead Cells, and Risk of Rain 2 all cracked or came close to the top 10 despite being roguelites by most definitions.&nbsp;</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>


<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700&family=Barlow:wght@400;500;600&display=swap" rel="stylesheet" />

<style>
  :root {
    --rrl-accent:  #c0392b;
    --rrl-gold:    #b8892a;
    --rrl-text:    #1a1a24;
    --rrl-muted:   #888699;
    --rrl-border:  #e0dded;
    --rrl-stripe:  #f7f6fb;
    --rrl-head-bg: #1a1a24;
  }

  .rrl-top10-wrap {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    overflow-x: auto;
    border: 1px solid var(--rrl-border);
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
  }

  .rrl-top10-wrap table {
    width: 100%;
    border-collapse: collapse;
    min-width: 480px;
    background: #fff;
    font-family: 'Barlow', sans-serif;
    font-size: 14px;
  }

  .rrl-top10-wrap thead tr {
    background: var(--rrl-head-bg) !important;
    border-bottom: 2px solid var(--rrl-accent);
  }
  .rrl-top10-wrap thead th {
    padding: 0.75rem 1rem;
    text-align: left;
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.6rem;
    letter-spacing: 0.09em;
    color: #e8b94f;
    text-transform: uppercase;
    white-space: nowrap;
  }
  .rrl-top10-wrap thead th.num { text-align: right; }

  .rrl-top10-wrap tbody tr {
    border-bottom: 1px solid var(--rrl-border);
    transition: background 0.12s;
  }
  .rrl-top10-wrap tbody tr:last-child { border-bottom: none; }
  .rrl-top10-wrap tbody tr:nth-child(even) { background: var(--rrl-stripe) !important; }
  .rrl-top10-wrap tbody tr:hover { background: #f0eef8 !important; }

  .rrl-top10-wrap tbody tr.rrl-top { background: #fffbf0 !important; }
  .rrl-top10-wrap tbody tr.rrl-top:hover { background: #fff5d6 !important; }
  .rrl-top10-wrap tbody tr.rrl-top .rrl-game { color: var(--rrl-gold); font-weight: 700; }

  .rrl-top10-wrap td {
    padding: 0.7rem 1rem;
    vertical-align: middle;
    color: var(--rrl-text);
  }

  .rrl-rank { font-weight: 700; color: var(--rrl-muted); text-align: center; width: 36px; }
  .rrl-game { font-weight: 600; }
  .rrl-num  { text-align: right; font-weight: 600; white-space: nowrap; }
  .rrl-desc { color: #555466; font-style: italic; font-size: 0.88rem; }

  @media (max-width: 560px) {
    .rrl-top10-wrap thead th,
    .rrl-top10-wrap td { padding: 0.55rem 0.65rem; font-size: 0.78rem; }
    .rrl-top10-wrap thead th { font-size: 0.52rem; }
    .rrl-desc { font-size: 0.78rem; }
  }
</style>

<div class="rrl-top10-wrap">
  <table>
    <colgroup>
      <col style="width:36px">
      <col style="width:175px">
      <col style="width:60px">
      <col style="width:60px">
      <col>
    </colgroup>
    <thead>
      <tr>
        <th scope="col">#</th>
        <th scope="col">Game</th>
        <th scope="col" class="num">Votes</th>
        <th scope="col" class="num">Threads</th>
        <th scope="col">What's It Like?</th>
      </tr>
    </thead>
    <tbody>
      <tr class="rrl-top">
        <td class="rrl-rank">1</td>
        <td class="rrl-game">Slay the Spire</td>
        <td class="rrl-num">315</td>
        <td class="rrl-num">14</td>
        <td class="rrl-desc">The deck-builder that defined a genre. Deep, replayable, and endlessly discussed.</td>
      </tr>
      <tr>
        <td class="rrl-rank">2</td>
        <td class="rrl-game">Caves of Qud</td>
        <td class="rrl-num">273</td>
        <td class="rrl-num">10</td>
        <td class="rrl-desc">Open-world sci-fantasy roguelike. One of the most ambitious ever made.</td>
      </tr>
      <tr>
        <td class="rrl-rank">3</td>
        <td class="rrl-game">Cogmind</td>
        <td class="rrl-num">229</td>
        <td class="rrl-num">3</td>
        <td class="rrl-desc">Deep sci-fi roguelike where you play as a robot. Criminally underplayed.</td>
      </tr>
      <tr>
        <td class="rrl-rank">4</td>
        <td class="rrl-game">FTL: Faster Than Light</td>
        <td class="rrl-num">200</td>
        <td class="rrl-num">15</td>
        <td class="rrl-desc">Spaceship management roguelike. Brutal, strategic, and wildly replayable.</td>
      </tr>
      <tr>
        <td class="rrl-rank">5</td>
        <td class="rrl-game">Noita</td>
        <td class="rrl-num">188</td>
        <td class="rrl-num">9</td>
        <td class="rrl-desc">Every pixel is simulated. Wand-crafting chaos that rewards curiosity.</td>
      </tr>
      <tr>
        <td class="rrl-rank">6</td>
        <td class="rrl-game">Hades</td>
        <td class="rrl-num">182</td>
        <td class="rrl-num">10</td>
        <td class="rrl-desc">Roguelite by definition, but the community keeps recommending it. Best-in-class combat and story.</td>
      </tr>
      <tr>
        <td class="rrl-rank">7</td>
        <td class="rrl-game">Balatro</td>
        <td class="rrl-num">179</td>
        <td class="rrl-num">9</td>
        <td class="rrl-desc">Poker-based deck-builder that hooked millions overnight. Runs are short, strategies are endless.</td>
      </tr>
      <tr>
        <td class="rrl-rank">8</td>
        <td class="rrl-game">The Binding of Isaac</td>
        <td class="rrl-num">170</td>
        <td class="rrl-num">10</td>
        <td class="rrl-desc">One of the genre's defining games. Dark, weird, and impossibly replayable.</td>
      </tr>
      <tr>
        <td class="rrl-rank">8</td>
        <td class="rrl-game">Rift Wizard</td>
        <td class="rrl-num">170</td>
        <td class="rrl-num">2</td>
        <td class="rrl-desc">Tied with Isaac. Most votes from one thread — a hidden gem for roguelike purists.</td>
      </tr>
      <tr>
        <td class="rrl-rank">9</td>
        <td class="rrl-game">ADOM</td>
        <td class="rrl-num">130</td>
        <td class="rrl-num">4</td>
        <td class="rrl-desc">Ancient Domains of Mystery. Traditional roguelike with deep lore and punishing complexity.</td>
      </tr>
      <tr>
        <td class="rrl-rank">10</td>
        <td class="rrl-game">Dead Cells</td>
        <td class="rrl-num">129</td>
        <td class="rrl-num">10</td>
        <td class="rrl-desc">Tight action-platformer roguelite. The one that plays like a dream.</td>
      </tr>
    </tbody>
  </table>
</div>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><strong>1. Slay the Spire</strong></h3>



<figure class="wp-block-image aligncenter size-full"><img fetchpriority="high" decoding="async" width="700" height="327" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Slay-the-Spire.png" alt="Slay the Spire logo showing a warrior with cards swirling in a fiery vortex - best roguelike deck builder game with 315 Reddit votes" class="wp-image-695" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Slay-the-Spire.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Slay-the-Spire-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<p class="wp-block-paragraph">At 315 votes across 14 of 20 threads, Slay the Spire took the cake, no questions asked.&nbsp;</p>



<p class="wp-block-paragraph">The next closest game, Caves of Qud, came in at 273 (that&#8217;s a 42-vote gap at the top, which is bigger than the entire vote count of some games further down the list).</p>



<p class="wp-block-paragraph">The reason it keeps coming up is pretty simple: it made roguelike deck-building feel like a genre worth taking seriously. Every run is self-contained, permadeath is always in play, and the card combinations get deep enough that you can sink hundreds of hours in without feeling like you&#8217;ve seen everything.</p>



<p class="wp-block-paragraph">It&#8217;s also one of the few games that sits comfortably in both the traditional roguelike crowd and the more casual roguelite crowd, which explains why it showed up in nearly every thread regardless of how the original question was framed.</p>



<p class="wp-block-paragraph"><strong>Available</strong></p>



<ul class="wp-block-list">
<li>PC (Steam, Epic Games Store)</li>



<li>Nintendo Switch</li>



<li>PlayStation 4</li>



<li>Xbox One</li>



<li>iOS / Android</li>
</ul>



<p class="wp-block-paragraph"><strong>What Works Well</strong></p>



<ul class="wp-block-list">
<li>Deck-building synergies that reward both experimentation and deep theory-crafting</li>



<li>Each of the four characters plays completely differently, adding serious replayability</li>



<li>Runs clock in around 45-60 minutes; long enough to feel satisfying, short enough to do another</li>



<li>Ascension levels give you a difficulty ladder that keeps the game challenging well past the &#8220;win&#8221; screen</li>
</ul>



<figure class="wp-block-image aligncenter size-full"><img decoding="async" width="700" height="327" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Slay-the-Spire-2.png" alt="Slay the Spire gameplay showing The Defect using a lightning card on the 11th floor - ranked 1st best roguelike game with 315 Reddit votes" class="wp-image-694" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Slay-the-Spire-2.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Slay-the-Spire-2-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<p class="wp-block-paragraph"><strong>Common Criticisms</strong></p>



<ul class="wp-block-list">
<li>Some players find the RNG punishing in ways that feel less skill-based than they&#8217;d like</li>



<li>The art style is divisive and functional, but not exactly stunning</li>



<li>Late ascension levels can feel more frustrating than fun for players who aren&#8217;t deep into the meta</li>



<li>The modding scene exists, but the base game&#8217;s content can start to feel finite after a few hundred hours</li>
</ul>



<p class="wp-block-paragraph"><strong>Quotes from the Threads</strong></p>



<p class="wp-block-paragraph">&#8220;Slay the Spire is probably the best roguelike ever made. The replayability is insane. It might take a second to get accustomed to the different mechanics but once you&#8217;re in, it&#8217;s the most addicting thing out there.&#8221; — u/ACABincludingYourDad</p>



<p class="wp-block-paragraph">&#8220;This is my favorite Roguelike and maybe my favorite game ever. I&#8217;ve played thousands of hours. It&#8217;s easy to learn and hard to master.&#8221; — u/Wookie_Nipple</p>



<p class="wp-block-paragraph">&#8220;Slay the Spire. It is the epitome of deck builders and nothing really comes close&#8230; The game just has incredible depth while maintaining simplicity in terms of mechanics. It&#8217;s the only game I have over 1000 hours in.&#8221; — u/LiveMango418</p>



<h3 class="wp-block-heading"><strong>2. Caves of Qud</strong></h3>



<figure class="wp-block-image aligncenter size-full"><img decoding="async" width="700" height="327" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Gaes-Caves-of-Qud.png" alt="Caves of Qud 1.0 Out Now logo - science fantasy open world traditional roguelike ranked 2nd best roguelike game" class="wp-image-671" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Gaes-Caves-of-Qud.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Gaes-Caves-of-Qud-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<p class="wp-block-paragraph">Caves of Qud got 273 votes and 2nd place, just 42 votes behind Slay the Spire, which sounds close until you realize the next game after Caves of Qud drops to 229.</p>



<p class="wp-block-paragraph">Caves of Qud is one of the most ambitious traditional roguelikes ever made. It&#8217;s an open-world, science fantasy RPG set in a far-future Earth where you&#8217;re navigating mutant factions, ancient ruins, and procedurally generated histories.&nbsp;</p>



<p class="wp-block-paragraph">Runs are long, deaths are permanent, and the skill ceiling is genuinely steep, but people kept recommending it because nothing else really does what it does.</p>



<p class="wp-block-paragraph">It&#8217;s also still in active development, which is worth noting. The 1.0 release landed in December 2024 after over a decade in early access, so the version people are playing now is more polished than what many of the thread recommendations were based on.</p>



<p class="wp-block-paragraph"><strong>Available</strong></p>



<ul class="wp-block-list">
<li>PC (Steam)</li>
</ul>



<p class="wp-block-paragraph"><strong>What Works Well</strong></p>



<ul class="wp-block-list">
<li>Depth of world-building and lore that most roguelikes don&#8217;t come close to</li>



<li>Mutation and skill system gives you genuinely unique characters every run</li>



<li>Procedurally generated histories mean the world feels alive and different each time</li>



<li>One of the few roguelikes where exploration feels as rewarding as combat</li>
</ul>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="700" height="327" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Gaes-Caves-of-Qud-2.png" alt="Caves of Qud open world traditional roguelike gameplay screenshot - ranked 2nd best roguelike game with 273 Reddit votes" class="wp-image-670" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Gaes-Caves-of-Qud-2.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Gaes-Caves-of-Qud-2-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<p class="wp-block-paragraph"><strong>Common Criticisms</strong></p>



<ul class="wp-block-list">
<li>Steep learning curve that can feel impenetrable to new players</li>



<li>UI and presentation aren&#8217;t beginner-friendly</li>



<li>Runs can end abruptly in ways that feel unfair until you understand the systems deeply</li>



<li>PC only, which limits the audience compared to most other games on this list</li>
</ul>



<p class="wp-block-paragraph"><strong>Quotes from the Threads</strong></p>



<p class="wp-block-paragraph">&#8220;Caves of Qud is an open world traditional roguelike with so much variety, things to do, weird shit, etc. that it is physically impossible to get bored.&#8221; — u/no-enjoyment</p>



<p class="wp-block-paragraph">&#8220;Yes, definitely something you can sink days into. It doesn&#8217;t look like much graphically, but it&#8217;s a fun game.&#8221; — u/reality_bytes_</p>



<h3 class="wp-block-heading"><strong>3. Cogmind</strong></h3>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="700" height="327" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Cogmind.png" alt="Cogmind logo - sci-fi traditional roguelike ranked 3rd best roguelike game with 229 Reddit votes" class="wp-image-677" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Cogmind.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Cogmind-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<p class="wp-block-paragraph">Cogmind lands at 229 votes, 44 votes behind Caves of Qud and 86 ahead of number 5.&nbsp;</p>



<p class="wp-block-paragraph">In Cogmind, you play as a robot building yourself from parts you scavenge from enemies. You can swap out legs, arms, weapons, and utilities on the fly as your build evolves (or falls apart) run by run. It&#8217;s one of the most mechanically distinct games on this entire list and people recommended it specifically because it’s so unique.</p>



<p class="wp-block-paragraph">It&#8217;s also worth noting that Cogmind has a free version, which significantly lowers the barrier to entry for a game that can look intimidating from the outside.</p>



<p class="wp-block-paragraph"><strong>Available</strong></p>



<ul class="wp-block-list">
<li>PC (itch.io &#8211; free version)</li>



<li>PC (Steam &#8211; full version)</li>
</ul>



<p class="wp-block-paragraph"><strong>What Works Well</strong></p>



<ul class="wp-block-list">
<li>The part-scavenging mechanic creates emergent builds that feel earned rather than prescribed</li>



<li>Incredible depth of systems that rewards players who invest time in learning them</li>



<li>ASCII-style presentation with strong visual clarity once you&#8217;re past the initial adjustment</li>



<li>Developer has been actively updating and refining the game for years</li>
</ul>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="327" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Cogmind-2.png" alt="Cogmind sci-fi roguelike gameplay showing robot part management and ASCII tactical combat - ranked 3rd best roguelike game with 229 Reddit votes" class="wp-image-676" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Cogmind-2.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Cogmind-2-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<p class="wp-block-paragraph"><strong>Common Criticisms</strong></p>



<ul class="wp-block-list">
<li>Presentation is a hard sell for players who aren&#8217;t already comfortable with traditional roguelikes</li>



<li>Learning curve is punishing even by roguelike standards</li>



<li>Limited mainstream visibility means fewer guides and community resources than bigger titles</li>
</ul>



<p class="wp-block-paragraph"><strong>Quotes from the Threads</strong></p>



<p class="wp-block-paragraph">&#8220;Cogmind is amazing.&#8221; — u/No-Forever7576</p>



<p class="wp-block-paragraph">&#8220;I have heard some great things about Cogmind. It&#8217;s like DDA without the tedious elements.&#8221; — u/arg_seeker</p>



<h3 class="wp-block-heading"><strong>4. FTL: Faster Than Light</strong></h3>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="700" height="327" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-FTL-Faster-Than-Light.png" alt="FTL Faster Than Light logo - best roguelike space strategy game ranked 4th with 200 Reddit votes" class="wp-image-683" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-FTL-Faster-Than-Light.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-FTL-Faster-Than-Light-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<p class="wp-block-paragraph">FTL sits at 200 votes, 29 behind Cogmind and 12 ahead of Noita.&nbsp;</p>



<p class="wp-block-paragraph">FTL is the game that introduced many people to roguelikes without them realizing it.&nbsp;</p>



<p class="wp-block-paragraph">You&#8217;re managing a spaceship crew across a procedurally generated galaxy, making decisions that ripple through every encounter. Every run is different, every death teaches you something, and the &#8220;one more run&#8221; pull is as strong now as it was at launch in 2012.</p>



<p class="wp-block-paragraph">Fun fact: my wife loves this game <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> It&#8217;s one of the oldest games on this list and still ranks 4th.</p>



<p class="wp-block-paragraph"><strong>Available</strong></p>



<ul class="wp-block-list">
<li>PC (Steam, GOG, Humble Bundle)</li>



<li>iPad (iOS)</li>
</ul>



<p class="wp-block-paragraph"><strong>What Works Well</strong></p>



<ul class="wp-block-list">
<li>Tight decision-making loop that makes every choice feel meaningful</li>



<li>Ship and crew variety gives runs genuinely different feels</li>



<li>Short enough runs (60-90 minutes) to make repeated attempts feel accessible</li>



<li>One of the best soundtracks in the genre</li>
</ul>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="700" height="327" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-FTL-Faster-Than-Light-2.png" alt="FTL Faster Than Light spaceship crew management gameplay showing combat against a pirate interceptor - ranked 4th best roguelike game with 200 Reddit votes" class="wp-image-682" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-FTL-Faster-Than-Light-2.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-FTL-Faster-Than-Light-2-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<p class="wp-block-paragraph"><strong>Common Criticisms</strong></p>



<ul class="wp-block-list">
<li>RNG can feel brutal in the early game, particularly on harder difficulties</li>



<li>Limited content compared to newer entries on this list</li>



<li>No Android version, and the iOS version hasn&#8217;t been updated in years</li>



<li>Some players find the late-game difficulty spike frustrating rather than satisfying</li>
</ul>



<p class="wp-block-paragraph"><strong>Quotes from the Threads</strong></p>



<p class="wp-block-paragraph">&#8220;FTL still slaps. That game gives me actual stress and I love it.&#8221; — u/lerox-fz</p>



<p class="wp-block-paragraph">&#8220;I love FTL. Definitely in my top 10 of all time.&#8221; — u/ForeignObject_</p>



<p class="wp-block-paragraph">&#8220;FTL is the one I return to the most and I&#8217;ve been playing it for years and years.&#8221; — u/nebthenarwhal</p>



<h3 class="wp-block-heading"><strong>5. Noita</strong></h3>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="700" height="327" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Noita.png" alt="Noita pixel art logo - magical action roguelike where every pixel is simulated, ranked 5th best roguelike game with 188 Reddit votes" class="wp-image-689" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Noita.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Noita-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<p class="wp-block-paragraph">Noita, at 188 votes, just 12 behind FTL, is the closest gap between any two consecutive games in the top 5.</p>



<p class="wp-block-paragraph">Noita is a physics-based roguelite where every pixel is simulated. Yes, it’s a roguelite, but again, we followed the votes and tried our best to let the community guide the conversation and voting system.</p>



<p class="wp-block-paragraph">It&#8217;s one of the most technically impressive games on this list and also one of the most punishing. The community loves it specifically because mastering it feels like solving a puzzle that keeps changing.</p>



<p class="wp-block-paragraph">It&#8217;s also genuinely one of the hardest roguelikes here. If your tolerance for dying repeatedly while slowly piecing together how everything works is low, Noita will test that.</p>



<p class="wp-block-paragraph"><strong>Available</strong></p>



<ul class="wp-block-list">
<li>PC (Steam)</li>
</ul>



<p class="wp-block-paragraph"><strong>What Works Well</strong></p>



<ul class="wp-block-list">
<li>Pixel simulation creates emergent moments that no other game can replicate</li>



<li>Wand-building system has a depth ceiling that players are still uncovering years after launch</li>



<li>World is packed with secrets, lore, and hidden mechanics that reward exploration</li>



<li>Each run can feel wildly different depending on early wand finds</li>
</ul>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="700" height="327" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Noita-2.png" alt="Noita pixel physics roguelike gameplay showing wand combat in a procedurally generated cave - ranked 5th best roguelike game with 188 Reddit votes" class="wp-image-688" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Noita-2.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Noita-2-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<p class="wp-block-paragraph"><strong>Common Criticisms</strong></p>



<ul class="wp-block-list">
<li>One of the steeper learning curves on this list and early deaths can feel completely random until the systems click</li>



<li>The wand system is genuinely complex and poorly explained in-game</li>



<li>Performance can struggle on lower-end machines given the pixel simulation load</li>



<li>Can feel lonely and opaque without leaning on community resources</li>
</ul>



<p class="wp-block-paragraph"><strong>Quotes from the Threads</strong></p>



<p class="wp-block-paragraph">&#8220;Noita: I have several hundred hours in this game and it&#8217;s one of the most challenging yet exciting roguelikes I&#8217;ve ever played. There&#8217;s also a huge amount of secret content, so much so that the community refers to beating the final boss as &#8216;completing the tutorial&#8217;.&#8221; — deleted user (r/gamedesign thread)</p>



<p class="wp-block-paragraph">&#8220;Noita is a physics-based roguelite where every pixel is simulated&#8230; If you liked nearly breaking the game in RoR2, Noita offers that ten-fold.&#8221; — u/TypographySnob</p>



<h3 class="wp-block-heading"><strong>6. Hades</strong></h3>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="700" height="327" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Hades.png" alt="Hades logo showing Zagreus wielding a sword in the Underworld - best action roguelike game ranked 6th with 182 Reddit votes" class="wp-image-685" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Hades.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Hades-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<p class="wp-block-paragraph">182 votes and 6th place, and the first game on this list that&#8217;s a roguelite, not a traditional roguelike.&nbsp;</p>



<p class="wp-block-paragraph">Something worth calling out directly: Hades has meta-progression, a persistent story, and permanent unlocks between runs. So by strict <a href="https://www.roguebasin.com/index.php/Berlin_Interpretation">Berlin Interpretation</a> standards, it doesn&#8217;t belong in a roguelike list, but the community kept recommending it anyway.</p>



<p class="wp-block-paragraph">The reason it shows up in these threads is that the combat, build variety, and run structure scratch the same itch for a lot of players. It&#8217;s also probably the most polished game on this entire list, which doesn&#8217;t hurt.</p>



<p class="wp-block-paragraph"><strong>Available</strong></p>



<ul class="wp-block-list">
<li>PC (Steam, Epic Games Store)</li>



<li>Nintendo Switch</li>



<li>PlayStation 4 / 5</li>



<li>Xbox One / Series X|S</li>



<li>iOS (Apple Arcade)</li>
</ul>



<p class="wp-block-paragraph"><strong>What Works Well</strong></p>



<ul class="wp-block-list">
<li>Combat is tight, responsive, and satisfying in a way most roguelikes aren&#8217;t</li>



<li>Boon system creates enormous build variety across weapons and god combinations</li>



<li>Narrative actually progresses with each run, which is rare and genuinely well executed</li>



<li>One of the most accessible entry points into the genre for players coming from action games</li>
</ul>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="700" height="327" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Hades-2.png" alt="Hades gameplay screenshot showing explosive Underworld combat - ranked 6th best roguelike game with 182 Reddit votes" class="wp-image-684" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Hades-2.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Hades-2-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<p class="wp-block-paragraph"><strong>Common Criticisms</strong></p>



<ul class="wp-block-list">
<li>Roguelite, not roguelike; Meta-progression and persistent story soften the punishment significantly</li>



<li>Some players find the narrative focus distracting in a genre they play for mechanical depth</li>



<li>Late-game heat levels can feel like a grind rather than a skill test</li>



<li>Less replayability than traditional roguelikes once the story is complete</li>
</ul>



<p class="wp-block-paragraph"><strong>Quotes from the Threads</strong></p>



<p class="wp-block-paragraph">&#8220;Hades by a wide margin. Nothing else has come close to it yet.&#8221; — u/AguyNamedKyle</p>



<p class="wp-block-paragraph">&#8220;I think it&#8217;s because it has an actual story and a reason for the whole &#8216;doing the same stuff again and again&#8217;. You want to keep playing because you want to know where the story goes.&#8221; — u/photomotto</p>



<h3 class="wp-block-heading"><strong>7. Balatro</strong></h3>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="700" height="327" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Balatro.png" alt="Balatro logo - roguelike poker deck builder ranked 7th best roguelike game with 179 Reddit votes" class="wp-image-675" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Balatro.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Balatro-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<p class="wp-block-paragraph">Balatro had 179 votes and came in 7th, just 3 votes behind Hades, the closest race on this entire list.&nbsp;</p>



<p class="wp-block-paragraph">It also has the same genre caveat: Balatro is a roguelike deck-builder like Slay the Spire, but it&#8217;s not a traditional roguelike by strict definition. Permadeath is present, runs are self-contained, and the synergy depth is real. The game is built around poker hands, not dungeon crawling, and there&#8217;s no procedural world to navigate.</p>



<p class="wp-block-paragraph">It ranked because the community that plays roguelikes tends to also play Balatro, and the recommendation threads reflect that overlap.</p>



<p class="wp-block-paragraph">&nbsp;It&#8217;s an outstanding game; it just sits in its own category.</p>



<p class="wp-block-paragraph"><strong>Available</strong></p>



<ul class="wp-block-list">
<li>PC (Steam, GOG)</li>



<li>Nintendo Switch</li>



<li>PlayStation 4 / 5</li>



<li>Xbox One / Series X|S</li>



<li>iOS / Android</li>
</ul>



<p class="wp-block-paragraph"><strong>What Works Well</strong></p>



<ul class="wp-block-list">
<li>Joker synergies create build combinations that feel genuinely broken in the best way</li>



<li>Extremely easy to pick up, extremely hard to master at higher stakes</li>



<li>Runs are short enough to make repeated attempts feel low-commitment</li>



<li>One of the most talked-about indie releases in recent memory (and for good reason)</li>
</ul>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="700" height="327" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Balatro-2.png" alt="Balatro gameplay showing high-scoring poker hand with joker synergies and multipliers - ranked 7th best roguelike game with 179 Reddit votes" class="wp-image-674" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Balatro-2.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Balatro-2-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<p class="wp-block-paragraph"><strong>Common Criticisms</strong></p>



<ul class="wp-block-list">
<li>Not a traditional roguelike. Players looking for dungeon crawling or exploration won&#8217;t find it here</li>



<li>The poker framing is a barrier for players who don&#8217;t have any feel for card game mechanics</li>



<li>Less mechanical depth than the top traditional roguelikes on this list once the synergies are mapped out</li>



<li>Some players find the difficulty scaling on higher stakes more punishing than fun</li>
</ul>



<p class="wp-block-paragraph"><strong>Quotes from the Threads</strong></p>



<p class="wp-block-paragraph">&#8220;Balatro. So quick and easy to do a quick run, with lots of variety.&#8221; — u/QuietPenguinGaming</p>



<p class="wp-block-paragraph">&#8220;Just played Balatro for 6 hours straight on this flight.&#8221; — u/PhilsPhoreskin</p>



<h3 class="wp-block-heading"><strong>8. The Binding of Isaac / Rift Wizard</strong></h3>



<p class="wp-block-paragraph">Surprisingly, both games received 170 votes, resulting in a dead tie.&nbsp;</p>



<p class="wp-block-paragraph">The difference is in how that number was built.&nbsp;</p>



<p class="wp-block-paragraph">Isaac appeared across 10 of the 20 threads, whereas Rift Wizard&#8217;s 170 votes came almost entirely from a single thread. That&#8217;s worth keeping in mind when reading these two together.</p>



<h4 class="wp-block-heading"><strong>The Binding of Isaac</strong></h4>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="700" height="327" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-The-Binding-of-Isaac.png" alt="The Binding of Isaac logo showing Isaac surrounded by grotesque enemies - iconic 2D roguelike tied 8th with 170 Reddit votes" class="wp-image-693" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-The-Binding-of-Isaac.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-The-Binding-of-Isaac-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<p class="wp-block-paragraph">Isaac is one of the most influential roguelikes ever made, with twin-stick combat, procedurally generated floors, permadeath, and an item pool so deep that players with hundreds of hours still stumble across combinations they haven&#8217;t seen.&nbsp;</p>



<p class="wp-block-paragraph">It has meta-unlocks, which pushes it toward roguelite territory by some definitions, but the core loop is punishing enough that most of the community treats it as a roguelike.</p>



<p class="wp-block-paragraph"><strong>Available</strong></p>



<ul class="wp-block-list">
<li>PC (Steam)</li>



<li>Nintendo Switch</li>



<li>PlayStation 4 / 5</li>



<li>Xbox One / Series X|S</li>
</ul>



<p class="wp-block-paragraph"><strong>What Works Well</strong></p>



<ul class="wp-block-list">
<li>Item synergies create some of the most chaotic and satisfying build moments in the genre</li>



<li>Enormous content depth, especially with DLC, with hundreds of items, characters, and challenges</li>



<li>Each run feels genuinely different thanks to procedural floors and item pool variance</li>



<li>Strong modding community that keeps the game fresh years after release</li>
</ul>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="700" height="327" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-The-Binding-of-Isaac-2.png" alt="The Binding of Isaac Depths dungeon gameplay showing permadeath roguelike combat with enemies and a treasure chest - tied 8th best roguelike game with 170 Reddit votes" class="wp-image-692" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-The-Binding-of-Isaac-2.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-The-Binding-of-Isaac-2-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<p class="wp-block-paragraph"><strong>Common Criticisms</strong></p>



<ul class="wp-block-list">
<li>RNG can produce runs that feel unwinnable regardless of skill</li>



<li>Dark, religious theming isn&#8217;t for everyone</li>



<li>Steep learning curve for new players, given the sheer volume of items and interactions</li>



<li>Performance and visual clarity can feel dated compared to newer entries</li>
</ul>



<p class="wp-block-paragraph"><strong>Quotes from the Threads</strong></p>



<p class="wp-block-paragraph">&#8220;The Binding of Isaac. I have sunk so many hours into that game.&#8221; — u/kurokitsune91</p>



<p class="wp-block-paragraph">&#8220;My girlfriend has played the Binding of Isaac literally every day for the last 3 years and still has tons of content to unlock. Bonus: It&#8217;s a really damn good game.&#8221; — u/smurf_herder</p>



<h4 class="wp-block-heading"><strong>Rift Wizard</strong></h4>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="700" height="327" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Rift-Wizard.png" alt="Rift Wizard logo showing retro pixel art enemies - underrated traditional roguelike tied 8th best roguelike game with 170 Reddit votes" class="wp-image-691" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Rift-Wizard.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Rift-Wizard-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<p class="wp-block-paragraph">Rift Wizard is a traditional turn-based roguelike built around spell-crafting. You pick a starting spell, build out a kit across procedurally generated floors, and the depth of the spell combination system is what keeps the community coming back.&nbsp;</p>



<p class="wp-block-paragraph">It&#8217;s less well-known than Isaac by a significant margin, which makes its 170 votes notable, with almost all of them concentrated in one thread where it was clearly strong-armed by a small group of players who know it well.</p>



<p class="wp-block-paragraph">This is one of the more underrated games on the entire list. If you&#8217;ve never heard of it, that&#8217;s the point.&nbsp;</p>



<p class="wp-block-paragraph"><strong>Available</strong></p>



<ul class="wp-block-list">
<li>PC (Steam, itch.io)</li>
</ul>



<p class="wp-block-paragraph"><strong>What Works Well</strong></p>



<ul class="wp-block-list">
<li>Spell combination system has a depth ceiling that rivals the best traditional roguelikes</li>



<li>Runs are shorter than most traditional roguelikes, making it more approachable</li>



<li><a href="https://nerdculture.com/play-video-games/">Strong community of dedicated players</a> who have mapped the meta thoroughly</li>



<li>Genuinely underrated relative to its quality, low visibility, and high ceiling</li>
</ul>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="700" height="327" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Rift-Wizard-2.png" alt="Rift Wizard turn-based roguelike gameplay showing Nightmare Aura spell on a procedurally generated dungeon floor - tied 8th best roguelike with 170 Reddit votes" class="wp-image-690" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Rift-Wizard-2.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Rift-Wizard-2-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<p class="wp-block-paragraph"><strong>Common Criticisms</strong></p>



<ul class="wp-block-list">
<li>Minimal presentation; this is a pure systems game with no visual spectacle</li>



<li>Almost all of its Reddit votes came from one thread, which suggests limited mainstream awareness</li>



<li>Sparse documentation and community resources compared to most games on this list</li>



<li>Hard to recommend to anyone not already comfortable with traditional roguelike conventions</li>
</ul>



<p class="wp-block-paragraph"><strong>Quotes from the Threads</strong></p>



<p class="wp-block-paragraph">&#8220;Rift Wizard is surprisingly great. Don&#8217;t let the old-school graphics fool you — this is an absolute keeper.&#8221; — u/Blood_Bowl</p>



<h3 class="wp-block-heading"><strong>9. ADOM</strong></h3>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="700" height="327" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-ADOM.png" alt="ADOM Ancient Domains of Mystery logo - classic traditional roguelike ranked 9th best roguelike game with 130 Reddit votes" class="wp-image-673" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-ADOM.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-ADOM-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<p class="wp-block-paragraph">ADOM (Ancient Domains of Mystery) closes out the top 10 with 130 votes, 40 votes behind the #8/9 tie and 1 vote ahead of Dead Cells, our first honorable mention below.</p>



<p class="wp-block-paragraph">ADOM is one of the oldest and most traditional games on this list. It’s a tile-based dungeon crawler that predates most of what people think of when they hear &#8220;roguelike.&#8221;&nbsp;</p>



<p class="wp-block-paragraph">It has a persistent world with multiple regions, a real narrative, and a difficulty that punishes carelessness without mercy. It also got a significant modernization pass via the ADOM Steam release, which brought a graphical tile set and quality-of-life improvements without gutting the core experience.</p>



<p class="wp-block-paragraph"><strong>Available</strong></p>



<ul class="wp-block-list">
<li>PC (Steam, paid)</li>



<li>PC (shareware version, free)</li>
</ul>



<p class="wp-block-paragraph"><strong>What Works Well</strong></p>



<ul class="wp-block-list">
<li>One of the deepest traditional roguelikes ever made, with a world that rewards exploration and experimentation</li>



<li>Multiple races, classes, and playstyles create enormous replayability</li>



<li>Steam version modernizes the presentation without compromising the classic feel</li>



<li>Strong historical significance; playing ADOM is playing a piece of roguelike history</li>
</ul>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="700" height="327" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-ADOM-2.png" alt="ADOM Ancient Domains of Mystery tutorial dungeon gameplay showing tile-based traditional roguelike combat - ranked 9th best roguelike game with 130 Reddit votes" class="wp-image-672" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-ADOM-2.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-ADOM-2-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<p class="wp-block-paragraph"><strong>Common Criticisms</strong></p>



<ul class="wp-block-list">
<li>Age shows in some of the design and certain mechanics feel archaic even with the Steam modernization</li>



<li>Extremely steep learning curve with limited in-game guidance</li>



<li>Less active development than newer entries on this list</li>



<li>Niche audience; this is a game for players who already love traditional roguelikes, not a gateway title</li>
</ul>



<p class="wp-block-paragraph"><strong>Quotes from the Threads</strong></p>



<p class="wp-block-paragraph">&#8220;ADOM is awesome and massive!&#8221; — u/Intrepid_Ad_7042</p>



<p class="wp-block-paragraph">&#8220;I always go to ADOM. Always the best one for me.&#8221; — u/andysaxton</p>



<h3 class="wp-block-heading"><strong>10. Dead Cells</strong></h3>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="700" height="327" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Dead-Cells.png" alt="Dead Cells logo showing the Beheaded protagonist with a castle in the background - honorable mention with 129 Reddit votes" class="wp-image-679" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Dead-Cells.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Dead-Cells-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<p class="wp-block-paragraph">Dead Cells finished at 129 votes, one vote behind ADOM at 130.&nbsp;</p>



<p class="wp-block-paragraph">It also came up in 5 separate threads, which tells you the community genuinely enjoys it.</p>



<p class="wp-block-paragraph">It&#8217;s also worth flagging: Dead Cells is a roguelite, not a traditional roguelike.&nbsp;</p>



<p class="wp-block-paragraph">Permadeath and procedural levels are present, but weapons and upgrades carry over between runs. Same genre flag as Hades and Balatro above. It ranked because the communities asking &#8220;what are the best roguelikes?&#8221; consistently include it, definitions aside.</p>



<p class="wp-block-paragraph">If you&#8217;re coming from the action side of the genre and haven&#8217;t played it yet, check it out.</p>



<p class="wp-block-paragraph"><strong>Available</strong></p>



<ul class="wp-block-list">
<li>PC (Steam)</li>



<li>Nintendo Switch</li>



<li>PlayStation 4 / 5</li>



<li>Xbox One / Series X|S</li>



<li>iOS / Android</li>
</ul>



<p class="wp-block-paragraph"><strong>What Works Well</strong></p>



<ul class="wp-block-list">
<li>Combat is fluid and responsive in a way that holds up against anything in the genre</li>



<li>Weapon variety is enormous, and each weapon genuinely changes how a run plays</li>



<li>Biome design keeps exploration fresh across hundreds of runs</li>



<li>Motion Twin&#8217;s post-launch support added years of content that makes the base game feel like a starting point, not the whole thing</li>
</ul>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="700" height="327" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Dead-Cells-2.png" alt="Dead Cells roguelite gameplay showing fluid sword combat against an armored enemy in a dark pixel art environment - honorable mention best roguelike games list" class="wp-image-678" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Dead-Cells-2.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Dead-Cells-2-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<p class="wp-block-paragraph"><strong>Common Criticisms</strong></p>



<ul class="wp-block-list">
<li>Roguelite, not roguelike, and carries progress between runs, which is a dealbreaker for strict roguelike purists</li>



<li>Some players feel the late-game difficulty ceiling plateaus once you&#8217;ve mastered the movement</li>



<li>DLC fatigue is real; there&#8217;s a lot of it, and the costs add up fast</li>



<li>Doesn&#8217;t have the build depth of something like Slay the Spire or Binding of Isaac</li>
</ul>



<p class="wp-block-paragraph"><strong>Quotes from the Threads</strong></p>



<p class="wp-block-paragraph">&#8220;Dead Cells has perfect controls and just feels so good to play. Also love the art design.&#8221; — u/Carrotzzzzzzz</p>



<p class="wp-block-paragraph">&#8220;Dead Cells is my absolute favorite roguelike of all time.&#8221; — u/richhomiechef</p>



<h3 class="wp-block-heading"><strong>Honorable Mention 1: NetHack</strong></h3>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="700" height="327" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Nethack.png" alt="Nethack Legacy logo - free classic traditional roguelike and honorable mention in best roguelike games list with 124 Reddit votes" class="wp-image-687" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Nethack.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Nethack-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<p class="wp-block-paragraph">NetHack sits at 124 votes across 7 threads, which sounds modest until you realize this game came out in 1987, is free, has no marketing budget, and most of the people recommending it were doing so to a crowd that had never heard of it.&nbsp;</p>



<p class="wp-block-paragraph">On a votes-per-year basis, it probably beats everything else on this list <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p class="wp-block-paragraph">It earned a spot here for a different reason than Dead Cells: this is the game that the r/roguelikes purists pointed to every single time someone asked what a real roguelike was.&nbsp;</p>



<p class="wp-block-paragraph">If you want to understand where the genre actually came from, NetHack is the answer (aside from <a href="https://store.steampowered.com/app/1443430/Rogue/">Rogue</a>, of course).</p>



<p class="wp-block-paragraph"><strong>Available</strong></p>



<ul class="wp-block-list">
<li>PC (Steam — Nethack Vulture&#8217;s Eye)</li>



<li>PC (free download at nethack.org)</li>



<li>Various fan ports across platforms</li>
</ul>



<p class="wp-block-paragraph"><strong>What Works Well</strong></p>



<ul class="wp-block-list">
<li>Depth of item interaction and systems that no modern game has come close to matching</li>



<li>Free, which removes all barriers to entry</li>



<li>Active community with decades of documentation, variants, and spoilers if you want them</li>



<li>Every death teaches you something, even after hundreds of hours</li>
</ul>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="700" height="327" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Nethack-2.png" alt="Nethack ASCII dungeon gameplay screenshot showing classic terminal-style traditional roguelike - free roguelike honorable mention with 124 Reddit votes" class="wp-image-686" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Nethack-2.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Nethack-2-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<p class="wp-block-paragraph"><strong>Common Criticisms</strong></p>



<ul class="wp-block-list">
<li>Presentation is about as far from modern gaming as it gets: ASCII graphics, no hand-holding, no tutorials</li>



<li>The learning curve doesn&#8217;t just have a steep slope; it has a vertical wall</li>



<li>Can take years of play before winning a single run, which is either the point or a dealbreaker, depending on who you are</li>



<li>Item identification systems are so deep they require external resources to fully understand (u/Polisskolan6 wrote a genuinely legendary breakdown of this in one of the threads — go find it if you want a taste of what you&#8217;re getting into)</li>
</ul>



<p class="wp-block-paragraph"><strong>Quotes from the Threads</strong></p>



<p class="wp-block-paragraph">&#8220;NetHack on the other hand&#8230; My thoughts exactly. NetHack is a strict upgrade of Rogue, and while young people may struggle with the ASCII graphics, it&#8217;s still the most Roguelike of Roguelikes. I&#8217;ve yet to find a Roguelike that comes close to it in terms of gameplay depth.&#8221; — u/Polisskolan6</p>



<p class="wp-block-paragraph">&#8220;I&#8217;m old-school but my favourite one is NetHack.&#8221; — u/Azulare</p>



<h3 class="wp-block-heading"><strong>Honorable Mention 2: Dungeon Crawl Stone Soup</strong></h3>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="700" height="327" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Dungeon-Crawl-Stone-Soup.png" alt="Dungeon Crawl Stone Soup free roguelike honorable mention - best free traditional roguelike with 117 Reddit votes" class="wp-image-681" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Dungeon-Crawl-Stone-Soup.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Dungeon-Crawl-Stone-Soup-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<p class="wp-block-paragraph">DCSS lands at 117 votes and 5 threads, which puts it just outside the top 10 and makes it one of the more consistent traditional roguelike recommendations across every thread it appeared in.&nbsp;</p>



<p class="wp-block-paragraph">It also came up repeatedly in the r/roguelikes threads specifically, where the standards for what counts as a real roguelike are considerably stricter than everywhere else.</p>



<p class="wp-block-paragraph">It&#8217;s free, it&#8217;s on Steam, and it&#8217;s the game the traditional roguelike community most often points to when someone asks where to start. That combination makes it a must-mention regardless of the vote count.</p>



<p class="wp-block-paragraph"><strong>Available</strong></p>



<ul class="wp-block-list">
<li>PC (Steam and free)</li>



<li>Browser (free at crawl.develz.org)</li>
</ul>



<p class="wp-block-paragraph"><strong>What Works Well</strong></p>



<ul class="wp-block-list">
<li>Considered the most beginner-friendly traditional roguelike by a significant margin, relative to its peers, anyway</li>



<li>Quality-of-life features like autoexplore and dungeon-wide search that most traditional roguelikes don&#8217;t have</li>



<li>Free, which makes it the easiest recommendation to make without qualification</li>



<li>Enormous race and class variety that creates genuinely different runs without requiring years of investment to appreciate</li>
</ul>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="327" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Dungeon-Crawl-Stone-Soup-2.png" alt="Dungeon Crawl Stone Soup free roguelike gameplay showing tile-based dungeon combat - best free traditional roguelike honorable mention with 117 Reddit votes" class="wp-image-680" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Dungeon-Crawl-Stone-Soup-2.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Roguelike-Games-Dungeon-Crawl-Stone-Soup-2-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<p class="wp-block-paragraph"><strong>Common Criticisms</strong></p>



<ul class="wp-block-list">
<li>&#8220;Beginner-friendly&#8221; is relative. This is still a punishing traditional roguelike with a real learning curve</li>



<li>Presentation is dated even by roguelike standards, which turns off players who haven&#8217;t already bought into the genre</li>



<li>Less depth than Nethack by the admission of its own community</li>



<li>Limited mainstream visibility means fewer guides and entry points for new players than games half its quality deserve</li>
</ul>



<p class="wp-block-paragraph"><strong>Quotes from the Threads</strong></p>



<p class="wp-block-paragraph">&#8220;If you want to try a traditional roguelike, the best in the genre is Dungeon Crawl Stone Soup. It&#8217;s also my favorite roguelike. It has a learning curve, but once you get the hang of it, its QoL features are second-to-none in the genre. Furthermore, it&#8217;s free, so there&#8217;s no cost to trying it.&#8221; — u/beamer159</p>



<p class="wp-block-paragraph">&#8220;DCSS is the best starter. It can seem a bit much at first, but it&#8217;s very good at presenting all the required information to you and avoiding completely unfair deaths.&#8221; — u/AudaxDreik</p>



<h2 class="wp-block-heading"><strong>All Games Ranked by Reddit With Sales Data</strong></h2>



<p class="wp-block-paragraph">The table below combines the full Reddit ranking with VGN Insights business data. Games are sorted by total Reddit votes. </p>



<p class="wp-block-paragraph">Where VGN data wasn&#8217;t available, entries are left blank. Not every game on this list has a robust Steam presence, and a few predate modern sales tracking entirely.</p>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>


<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700&family=Barlow:wght@400;500;600&display=swap" rel="stylesheet" />

<style>
  .rrl-mega-wrap {
    width: 100%;
    max-width: 800px;
    margin: 0 auto;
    font-family: 'Barlow', sans-serif;
    font-size: 13px;
  }
  .rrl-mega-note {
    font-size: 0.82rem;
    color: #888699;
    font-style: italic;
    margin: 0 0 1.2rem;
  }
  .rrl-mega-table-wrap {
    overflow-x: auto;
    border: 1px solid #e0dded;
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
  }
  .rrl-mega-table-wrap table {
    width: 100%;
    border-collapse: collapse;
    min-width: 600px;
    background: #fff;
  }
  .rrl-mega-table-wrap thead tr {
    background: #1a1a24 !important;
    border-bottom: 2px solid #c0392b;
  }
  .rrl-mega-table-wrap thead th {
    padding: 0.65rem 0.75rem;
    text-align: left;
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.58rem;
    letter-spacing: 0.09em;
    color: #e8b94f;
    text-transform: uppercase;
    white-space: nowrap;
    cursor: pointer;
    user-select: none;
  }
  .rrl-mega-table-wrap thead th.num { text-align: right; }
  .rrl-mega-table-wrap thead th.sortable::after {
    content: '\21C5';
    margin-left: 4px;
    opacity: 0.4;
    font-size: 0.6rem;
  }
  .rrl-mega-table-wrap thead th.sort-asc::after { content: '\2191'; opacity: 1; }
  .rrl-mega-table-wrap thead th.sort-desc::after { content: '\2193'; opacity: 1; }
  .rrl-mega-table-wrap tbody tr {
    border-bottom: 1px solid #e0dded;
    transition: background 0.12s;
  }
  .rrl-mega-table-wrap tbody tr:last-child { border-bottom: none; }
  .rrl-mega-table-wrap tbody tr:nth-child(even) { background: #f7f6fb !important; }
  .rrl-mega-table-wrap tbody tr:hover { background: #f0eef8 !important; }
  .rrl-mega-table-wrap tbody tr.rrl-top { background: #fffbf0 !important; }
  .rrl-mega-table-wrap tbody tr.rrl-top:hover { background: #fff5d6 !important; }
  .rrl-mega-table-wrap tbody tr.rrl-top .rrl-mg-game { color: #b8892a; font-weight: 700; }
  .rrl-mega-table-wrap td { padding: 0.55rem 0.75rem; vertical-align: middle; color: #1a1a24; }
  .rrl-mg-rank { font-weight: 700; color: #888699; text-align: center; width: 36px; }
  .rrl-mg-game { font-weight: 500; white-space: nowrap; }
  .rrl-mg-num  { text-align: right; font-weight: 600; white-space: nowrap; width: 90px; color: #333; }
  .rrl-mg-na   { text-align: right; color: #bbb; font-style: italic; font-size: 0.8rem; white-space: nowrap; width: 90px; }
  @media (max-width: 560px) {
    .rrl-mega-table-wrap thead th,
    .rrl-mega-table-wrap td { padding: 0.5rem 0.6rem; font-size: 0.75rem; }
    .rrl-mega-table-wrap thead th { font-size: 0.5rem; }
  }
</style>

<div class="rrl-mega-wrap">
  <p class="rrl-mega-note">Gross revenue and units sold are estimates sourced from VGN Insights and are not official figures. Games marked N/A had no data available. Median playtime reflects how long players actually stick with a game.</p>
  <div class="rrl-mega-table-wrap">
    <table>
      <colgroup>
        <col style="width:36px">
        <col style="width:200px">
        <col style="width:60px">
        <col style="width:120px">
        <col style="width:100px">
        <col style="width:80px">
      </colgroup>
      <thead>
        <tr>
          <th class="sortable" data-col="0">Rank</th>
          <th>Game</th>
          <th class="num sortable" data-col="2">Votes</th>
          <th class="num sortable" data-col="4">Gross Revenue</th>
          <th class="num sortable" data-col="5">Units Sold</th>
          <th class="num sortable" data-col="6">Avg Cost</th>
        </tr>
      </thead>
      <tbody>
        <tr class="rrl-top"><td class="rrl-mg-rank">1</td><td class="rrl-mg-game">Slay the Spire</td><td class="rrl-mg-num">315</td><td class="rrl-mg-num">$52,700,000</td><td class="rrl-mg-num">3,600,000</td><td class="rrl-mg-num">$15</td></tr>
        <tr><td class="rrl-mg-rank">2</td><td class="rrl-mg-game">Caves of Qud</td><td class="rrl-mg-num">273</td><td class="rrl-mg-num">$8,600,000</td><td class="rrl-mg-num">547,000</td><td class="rrl-mg-num">$16</td></tr>
        <tr><td class="rrl-mg-rank">3</td><td class="rrl-mg-game">Cogmind</td><td class="rrl-mg-num">229</td><td class="rrl-mg-num">$1,600,000</td><td class="rrl-mg-num">96,606</td><td class="rrl-mg-num">$17</td></tr>
        <tr><td class="rrl-mg-rank">4</td><td class="rrl-mg-game">FTL: Faster Than Light</td><td class="rrl-mg-num">200</td><td class="rrl-mg-num">$23,300,000</td><td class="rrl-mg-num">3,900,000</td><td class="rrl-mg-num">$6</td></tr>
        <tr><td class="rrl-mg-rank">5</td><td class="rrl-mg-game">Noita</td><td class="rrl-mg-num">188</td><td class="rrl-mg-num">$34,400,000</td><td class="rrl-mg-num">2,600,000</td><td class="rrl-mg-num">$13</td></tr>
        <tr><td class="rrl-mg-rank">6</td><td class="rrl-mg-game">Hades</td><td class="rrl-mg-num">182</td><td class="rrl-mg-num">$137,900,000</td><td class="rrl-mg-num">8,200,000</td><td class="rrl-mg-num">$17</td></tr>
        <tr><td class="rrl-mg-rank">7</td><td class="rrl-mg-game">Balatro</td><td class="rrl-mg-num">179</td><td class="rrl-mg-num">$64,800,000</td><td class="rrl-mg-num">5,600,000</td><td class="rrl-mg-num">$12</td></tr>
        <tr><td class="rrl-mg-rank">8</td><td class="rrl-mg-game">The Binding of Isaac</td><td class="rrl-mg-num">170</td><td class="rrl-mg-num">$28,100,000</td><td class="rrl-mg-num">8,500,000</td><td class="rrl-mg-num">$3</td></tr>
        <tr><td class="rrl-mg-rank">8</td><td class="rrl-mg-game">Rift Wizard</td><td class="rrl-mg-num">170</td><td class="rrl-mg-num">$332,000</td><td class="rrl-mg-num">31,380</td><td class="rrl-mg-num">$11</td></tr>
        <tr><td class="rrl-mg-rank">9</td><td class="rrl-mg-game">ADOM</td><td class="rrl-mg-num">130</td><td class="rrl-mg-num">$629,000</td><td class="rrl-mg-num">57,125</td><td class="rrl-mg-num">$11</td></tr>
        <tr><td class="rrl-mg-rank">10</td><td class="rrl-mg-game">Dead Cells</td><td class="rrl-mg-num">129</td><td class="rrl-mg-num">$39,300,000</td><td class="rrl-mg-num">2,500,000</td><td class="rrl-mg-num">$16</td></tr>
        <tr><td class="rrl-mg-rank">11</td><td class="rrl-mg-game">Nethack</td><td class="rrl-mg-num">124</td><td class="rrl-mg-num">$6,592</td><td class="rrl-mg-num">1,462</td><td class="rrl-mg-num">$5</td></tr>
        <tr><td class="rrl-mg-rank">12</td><td class="rrl-mg-game">Dungeon Crawl Stone Soup</td><td class="rrl-mg-num">117</td><td class="rrl-mg-num">Free</td><td class="rrl-mg-na">N/A</td><td class="rrl-mg-num">$0</td></tr>
        <tr><td class="rrl-mg-rank">13</td><td class="rrl-mg-game">Tales of Maj'Eyal</td><td class="rrl-mg-num">106</td><td class="rrl-mg-num">$2,100,000</td><td class="rrl-mg-num">460,000</td><td class="rrl-mg-num">$5</td></tr>
        <tr><td class="rrl-mg-rank">14</td><td class="rrl-mg-game">Risk of Rain 2</td><td class="rrl-mg-num">100</td><td class="rrl-mg-num">$147,300,000</td><td class="rrl-mg-num">9,500,000</td><td class="rrl-mg-num">$16</td></tr>
        <tr><td class="rrl-mg-rank">15</td><td class="rrl-mg-game">Zorbus</td><td class="rrl-mg-num">97</td><td class="rrl-mg-num">$42,930</td><td class="rrl-mg-num">10,800</td><td class="rrl-mg-num">$4</td></tr>
        <tr><td class="rrl-mg-rank">16</td><td class="rrl-mg-game">TOME / TOME 4</td><td class="rrl-mg-num">168</td><td class="rrl-mg-num">Free</td><td class="rrl-mg-na">N/A</td><td class="rrl-mg-num">$0</td></tr>
        <tr><td class="rrl-mg-rank">17</td><td class="rrl-mg-game">Slice &amp; Dice</td><td class="rrl-mg-num">84</td><td class="rrl-mg-num">$941,000</td><td class="rrl-mg-num">131,000</td><td class="rrl-mg-num">$7</td></tr>
        <tr><td class="rrl-mg-rank">18</td><td class="rrl-mg-game">Inscryption</td><td class="rrl-mg-num">83</td><td class="rrl-mg-num">$37,500,000</td><td class="rrl-mg-num">2,700,000</td><td class="rrl-mg-num">$14</td></tr>
        <tr><td class="rrl-mg-rank">19</td><td class="rrl-mg-game">Returnal</td><td class="rrl-mg-num">81</td><td class="rrl-mg-num">$13,000,000</td><td class="rrl-mg-num">295,000</td><td class="rrl-mg-num">$44</td></tr>
        <tr><td class="rrl-mg-rank">19</td><td class="rrl-mg-game">Tiny Rogues</td><td class="rrl-mg-num">81</td><td class="rrl-mg-num">$2,000,000</td><td class="rrl-mg-num">313,000</td><td class="rrl-mg-num">$6</td></tr>
        <tr><td class="rrl-mg-rank">20</td><td class="rrl-mg-game">Barony</td><td class="rrl-mg-num">79</td><td class="rrl-mg-num">$8,500,000</td><td class="rrl-mg-num">730,000</td><td class="rrl-mg-num">$12</td></tr>
        <tr><td class="rrl-mg-rank">20</td><td class="rrl-mg-game">Cataclysm: Dark Days Ahead</td><td class="rrl-mg-num">79</td><td class="rrl-mg-num">$236,000</td><td class="rrl-mg-num">14,820</td><td class="rrl-mg-num">$16</td></tr>
        <tr><td class="rrl-mg-rank">21</td><td class="rrl-mg-game">Brogue</td><td class="rrl-mg-num">73</td><td class="rrl-mg-num">Free</td><td class="rrl-mg-na">N/A</td><td class="rrl-mg-num">$0</td></tr>
        <tr><td class="rrl-mg-rank">22</td><td class="rrl-mg-game">Brotato</td><td class="rrl-mg-num">70</td><td class="rrl-mg-num">$11,600,000</td><td class="rrl-mg-num">3,300,000</td><td class="rrl-mg-num">$4</td></tr>
        <tr><td class="rrl-mg-rank">23</td><td class="rrl-mg-game">StarVaders</td><td class="rrl-mg-num">68</td><td class="rrl-mg-num">$2,900,000</td><td class="rrl-mg-num">169,000</td><td class="rrl-mg-num">$17</td></tr>
        <tr><td class="rrl-mg-rank">24</td><td class="rrl-mg-game">Enter the Gungeon</td><td class="rrl-mg-num">63</td><td class="rrl-mg-num">$39,100,000</td><td class="rrl-mg-num">4,000,000</td><td class="rrl-mg-num">$10</td></tr>
        <tr><td class="rrl-mg-rank">24</td><td class="rrl-mg-game">Ravenswatch</td><td class="rrl-mg-num">63</td><td class="rrl-mg-num">$9,700,000</td><td class="rrl-mg-num">616,000</td><td class="rrl-mg-num">$16</td></tr>
        <tr><td class="rrl-mg-rank">24</td><td class="rrl-mg-game">Star of Providence</td><td class="rrl-mg-num">63</td><td class="rrl-mg-num">$438,000</td><td class="rrl-mg-num">55,722</td><td class="rrl-mg-num">$8</td></tr>
        <tr><td class="rrl-mg-rank">25</td><td class="rrl-mg-game">Angband</td><td class="rrl-mg-num">57</td><td class="rrl-mg-num">Free</td><td class="rrl-mg-na">N/A</td><td class="rrl-mg-num">$0</td></tr>
        <tr><td class="rrl-mg-rank">25</td><td class="rrl-mg-game">Gunfire Reborn</td><td class="rrl-mg-num">57</td><td class="rrl-mg-num">$34,000,000</td><td class="rrl-mg-num">3,100,000</td><td class="rrl-mg-num">$11</td></tr>
        <tr><td class="rrl-mg-rank">25</td><td class="rrl-mg-game">Shogun Showdown</td><td class="rrl-mg-num">57</td><td class="rrl-mg-num">$1,900,000</td><td class="rrl-mg-num">196,000</td><td class="rrl-mg-num">$10</td></tr>
        <tr><td class="rrl-mg-rank">26</td><td class="rrl-mg-game">The Ground Gives Way</td><td class="rrl-mg-num">54</td><td class="rrl-mg-num">Free</td><td class="rrl-mg-na">N/A</td><td class="rrl-mg-num">$0</td></tr>
        <tr><td class="rrl-mg-rank">27</td><td class="rrl-mg-game">Streets of Rogue</td><td class="rrl-mg-num">51</td><td class="rrl-mg-num">$6,100,000</td><td class="rrl-mg-num">521,000</td><td class="rrl-mg-num">$12</td></tr>
        <tr><td class="rrl-mg-rank">28</td><td class="rrl-mg-game">Astral Ascent</td><td class="rrl-mg-num">50</td><td class="rrl-mg-num">$4,300,000</td><td class="rrl-mg-num">240,000</td><td class="rrl-mg-num">$18</td></tr>
        <tr><td class="rrl-mg-rank">29</td><td class="rrl-mg-game">Jupiter Hell</td><td class="rrl-mg-num">48</td><td class="rrl-mg-num">$1,000,000</td><td class="rrl-mg-num">61,440</td><td class="rrl-mg-num">$16</td></tr>
        <tr><td class="rrl-mg-rank">30</td><td class="rrl-mg-game">Dungeons of Dredmor</td><td class="rrl-mg-num">44</td><td class="rrl-mg-num">$2,100,000</td><td class="rrl-mg-num">642,000</td><td class="rrl-mg-num">$3</td></tr>
        <tr><td class="rrl-mg-rank">31</td><td class="rrl-mg-game">Peglin</td><td class="rrl-mg-num">43</td><td class="rrl-mg-num">$9,800,000</td><td class="rrl-mg-num">686,000</td><td class="rrl-mg-num">$14</td></tr>
        <tr><td class="rrl-mg-rank">32</td><td class="rrl-mg-game">BlazBlue Entropy Effect</td><td class="rrl-mg-num">41</td><td class="rrl-mg-num">$15,100,000</td><td class="rrl-mg-num">1,000,000</td><td class="rrl-mg-num">$15</td></tr>
        <tr><td class="rrl-mg-rank">33</td><td class="rrl-mg-game">Halls of Torment</td><td class="rrl-mg-num">40</td><td class="rrl-mg-num">$3,600,000</td><td class="rrl-mg-num">934,000</td><td class="rrl-mg-num">$4</td></tr>
        <tr><td class="rrl-mg-rank">34</td><td class="rrl-mg-game">Spelunky</td><td class="rrl-mg-num">39</td><td class="rrl-mg-num">$12,400,000</td><td class="rrl-mg-num">1,400,000</td><td class="rrl-mg-num">$9</td></tr>
        <tr><td class="rrl-mg-rank">35</td><td class="rrl-mg-game">Ring of Pain</td><td class="rrl-mg-num">37</td><td class="rrl-mg-num">$2,100,000</td><td class="rrl-mg-num">150,000</td><td class="rrl-mg-num">$14</td></tr>
        <tr><td class="rrl-mg-rank">36</td><td class="rrl-mg-game">Roboquest</td><td class="rrl-mg-num">34</td><td class="rrl-mg-num">$11,500,000</td><td class="rrl-mg-num">710,000</td><td class="rrl-mg-num">$16</td></tr>
        <tr><td class="rrl-mg-rank">37</td><td class="rrl-mg-game">Curse of the Dead Gods</td><td class="rrl-mg-num">33</td><td class="rrl-mg-num">$3,100,000</td><td class="rrl-mg-num">269,000</td><td class="rrl-mg-num">$12</td></tr>
        <tr><td class="rrl-mg-rank">38</td><td class="rrl-mg-game">Mewgenics</td><td class="rrl-mg-num">32</td><td class="rrl-mg-num">$41,300,000</td><td class="rrl-mg-num">1,900,000</td><td class="rrl-mg-num">$22</td></tr>
        <tr><td class="rrl-mg-rank">38</td><td class="rrl-mg-game">Nuclear Throne</td><td class="rrl-mg-num">32</td><td class="rrl-mg-num">$6,800,000</td><td class="rrl-mg-num">722,000</td><td class="rrl-mg-num">$9</td></tr>
        <tr><td class="rrl-mg-rank">39</td><td class="rrl-mg-game">Monster Train</td><td class="rrl-mg-num">26</td><td class="rrl-mg-num">$11,300,000</td><td class="rrl-mg-num">681,000</td><td class="rrl-mg-num">$17</td></tr>
        <tr><td class="rrl-mg-rank">40</td><td class="rrl-mg-game">Darkest Dungeon</td><td class="rrl-mg-num">24</td><td class="rrl-mg-num">$69,700,000</td><td class="rrl-mg-num">4,700,000</td><td class="rrl-mg-num">$15</td></tr>
        <tr><td class="rrl-mg-rank">41</td><td class="rrl-mg-game">Hades 2</td><td class="rrl-mg-num">23</td><td class="rrl-mg-num">$79,500,000</td><td class="rrl-mg-num">3,400,000</td><td class="rrl-mg-num">$23</td></tr>
        <tr><td class="rrl-mg-rank">41</td><td class="rrl-mg-game">Shattered Pixel Dungeon</td><td class="rrl-mg-num">23</td><td class="rrl-mg-num">$428,000</td><td class="rrl-mg-num">59,340</td><td class="rrl-mg-num">$7</td></tr>
        <tr><td class="rrl-mg-rank">41</td><td class="rrl-mg-game">Spiritfall</td><td class="rrl-mg-num">23</td><td class="rrl-mg-num">$756,000</td><td class="rrl-mg-num">56,160</td><td class="rrl-mg-num">$13</td></tr>
        <tr><td class="rrl-mg-rank">42</td><td class="rrl-mg-game">Frogcomposband</td><td class="rrl-mg-num">22</td><td class="rrl-mg-num">Free</td><td class="rrl-mg-na">N/A</td><td class="rrl-mg-num">$0</td></tr>
        <tr><td class="rrl-mg-rank">42</td><td class="rrl-mg-game">Vampire Survivors</td><td class="rrl-mg-num">22</td><td class="rrl-mg-num">$23,600,000</td><td class="rrl-mg-num">7,800,000</td><td class="rrl-mg-num">$3</td></tr>
        <tr><td class="rrl-mg-rank">43</td><td class="rrl-mg-game">Into the Breach</td><td class="rrl-mg-num">21</td><td class="rrl-mg-num">$5,800,000</td><td class="rrl-mg-num">543,000</td><td class="rrl-mg-num">$11</td></tr>
        <tr><td class="rrl-mg-rank">44</td><td class="rrl-mg-game">Shape of Dreams</td><td class="rrl-mg-num">20</td><td class="rrl-mg-num">$22,200,000</td><td class="rrl-mg-num">1,300,000</td><td class="rrl-mg-num">$17</td></tr>
        <tr><td class="rrl-mg-rank">45</td><td class="rrl-mg-game">Brutal Orchestra</td><td class="rrl-mg-num">19</td><td class="rrl-mg-num">$847,000</td><td class="rrl-mg-num">59,910</td><td class="rrl-mg-num">$14</td></tr>
        <tr><td class="rrl-mg-rank">45</td><td class="rrl-mg-game">UnReal World</td><td class="rrl-mg-num">19</td><td class="rrl-mg-num">$449,000</td><td class="rrl-mg-num">55,604</td><td class="rrl-mg-num">$8</td></tr>
        <tr><td class="rrl-mg-rank">46</td><td class="rrl-mg-game">Spelunky 2</td><td class="rrl-mg-num">18</td><td class="rrl-mg-num">$9,200,000</td><td class="rrl-mg-num">644,000</td><td class="rrl-mg-num">$14</td></tr>
        <tr><td class="rrl-mg-rank">47</td><td class="rrl-mg-game">Kingsway</td><td class="rrl-mg-num">17</td><td class="rrl-mg-num">$646,000</td><td class="rrl-mg-num">90,795</td><td class="rrl-mg-num">$7</td></tr>
        <tr><td class="rrl-mg-rank">48</td><td class="rrl-mg-game">Ember Knights</td><td class="rrl-mg-num">16</td><td class="rrl-mg-num">$2,600,000</td><td class="rrl-mg-num">201,000</td><td class="rrl-mg-num">$13</td></tr>
        <tr><td class="rrl-mg-rank">48</td><td class="rrl-mg-game">Nova Drift</td><td class="rrl-mg-num">16</td><td class="rrl-mg-num">$3,500,000</td><td class="rrl-mg-num">338,000</td><td class="rrl-mg-num">$10</td></tr>
        <tr><td class="rrl-mg-rank">49</td><td class="rrl-mg-game">Absolum</td><td class="rrl-mg-num">15</td><td class="rrl-mg-num">$6,700,000</td><td class="rrl-mg-num">390,000</td><td class="rrl-mg-num">$17</td></tr>
        <tr><td class="rrl-mg-rank">49</td><td class="rrl-mg-game">Tangledeep</td><td class="rrl-mg-num">15</td><td class="rrl-mg-num">$1,100,000</td><td class="rrl-mg-num">108,000</td><td class="rrl-mg-num">$10</td></tr>
        <tr><td class="rrl-mg-rank">50</td><td class="rrl-mg-game">Below</td><td class="rrl-mg-num">14</td><td class="rrl-mg-num">$575,000</td><td class="rrl-mg-num">32,672</td><td class="rrl-mg-num">$18</td></tr>
        <tr><td class="rrl-mg-rank">50</td><td class="rrl-mg-game">Cobalt Core</td><td class="rrl-mg-num">14</td><td class="rrl-mg-num">$1,800,000</td><td class="rrl-mg-num">123,000</td><td class="rrl-mg-num">$15</td></tr>
        <tr><td class="rrl-mg-rank">50</td><td class="rrl-mg-game">Rogue Empire</td><td class="rrl-mg-num">14</td><td class="rrl-mg-num">$145,000</td><td class="rrl-mg-num">14,531</td><td class="rrl-mg-num">$10</td></tr>
        <tr><td class="rrl-mg-rank">50</td><td class="rrl-mg-game">The Flame in the Flood</td><td class="rrl-mg-num">14</td><td class="rrl-mg-num">$10,300,000</td><td class="rrl-mg-num">952,000</td><td class="rrl-mg-num">$11</td></tr>
        <tr><td class="rrl-mg-rank">50</td><td class="rrl-mg-game">Warm Snow</td><td class="rrl-mg-num">14</td><td class="rrl-mg-num">$15,400,000</td><td class="rrl-mg-num">1,200,000</td><td class="rrl-mg-num">$13</td></tr>
        <tr><td class="rrl-mg-rank">51</td><td class="rrl-mg-game">Dungeonmans</td><td class="rrl-mg-num">13</td><td class="rrl-mg-num">$582,000</td><td class="rrl-mg-num">56,934</td><td class="rrl-mg-num">$10</td></tr>
        <tr><td class="rrl-mg-rank">51</td><td class="rrl-mg-game">Wizard of Legend</td><td class="rrl-mg-num">13</td><td class="rrl-mg-num">$16,300,000</td><td class="rrl-mg-num">1,500,000</td><td class="rrl-mg-num">$11</td></tr>
        <tr><td class="rrl-mg-rank">52</td><td class="rrl-mg-game">Cult of the Lamb</td><td class="rrl-mg-num">12</td><td class="rrl-mg-num">$62,700,000</td><td class="rrl-mg-num">3,600,000</td><td class="rrl-mg-num">$17</td></tr>
        <tr><td class="rrl-mg-rank">52</td><td class="rrl-mg-game">Wayward</td><td class="rrl-mg-num">12</td><td class="rrl-mg-num">$452,000</td><td class="rrl-mg-num">75,357</td><td class="rrl-mg-num">$6</td></tr>
        <tr><td class="rrl-mg-rank">53</td><td class="rrl-mg-game">Against the Storm</td><td class="rrl-mg-num">11</td><td class="rrl-mg-num">$24,000,000</td><td class="rrl-mg-num">1,400,000</td><td class="rrl-mg-num">$17</td></tr>
        <tr><td class="rrl-mg-rank">54</td><td class="rrl-mg-game">Chrono Ark</td><td class="rrl-mg-num">10</td><td class="rrl-mg-num">$6,200,000</td><td class="rrl-mg-num">398,000</td><td class="rrl-mg-num">$16</td></tr>
        <tr><td class="rrl-mg-rank">54</td><td class="rrl-mg-game">Stoneshard</td><td class="rrl-mg-num">10</td><td class="rrl-mg-num">$14,300,000</td><td class="rrl-mg-num">966,000</td><td class="rrl-mg-num">$15</td></tr>
        <tr><td class="rrl-mg-rank">55</td><td class="rrl-mg-game">Aethermancer</td><td class="rrl-mg-num">9</td><td class="rrl-mg-num">$1,800,000</td><td class="rrl-mg-num">112,000</td><td class="rrl-mg-num">$16</td></tr>
        <tr><td class="rrl-mg-rank">55</td><td class="rrl-mg-game">Galactic Glitch</td><td class="rrl-mg-num">9</td><td class="rrl-mg-num">$368,000</td><td class="rrl-mg-num">44,014</td><td class="rrl-mg-num">$8</td></tr>
        <tr><td class="rrl-mg-rank">55</td><td class="rrl-mg-game">The Void Rains Upon Her Heart</td><td class="rrl-mg-num">9</td><td class="rrl-mg-num">$38,331</td><td class="rrl-mg-num">4,146</td><td class="rrl-mg-num">$9</td></tr>
        <tr><td class="rrl-mg-rank">56</td><td class="rrl-mg-game">Atomicrops</td><td class="rrl-mg-num">8</td><td class="rrl-mg-num">$1,600,000</td><td class="rrl-mg-num">184,000</td><td class="rrl-mg-num">$9</td></tr>
        <tr><td class="rrl-mg-rank">57</td><td class="rrl-mg-game">Across the Obelisk</td><td class="rrl-mg-num">7</td><td class="rrl-mg-num">$5,300,000</td><td class="rrl-mg-num">382,000</td><td class="rrl-mg-num">$14</td></tr>
        <tr><td class="rrl-mg-rank">57</td><td class="rrl-mg-game">Deadlink</td><td class="rrl-mg-num">7</td><td class="rrl-mg-num">$1,600,000</td><td class="rrl-mg-num">108,000</td><td class="rrl-mg-num">$15</td></tr>
        <tr><td class="rrl-mg-rank">57</td><td class="rrl-mg-game">For the King</td><td class="rrl-mg-num">7</td><td class="rrl-mg-num">$23,400,000</td><td class="rrl-mg-num">2,000,000</td><td class="rrl-mg-num">$12</td></tr>
        <tr><td class="rrl-mg-rank">57</td><td class="rrl-mg-game">Revita</td><td class="rrl-mg-num">7</td><td class="rrl-mg-num">$817,000</td><td class="rrl-mg-num">71,580</td><td class="rrl-mg-num">$11</td></tr>
        <tr><td class="rrl-mg-rank">57</td><td class="rrl-mg-game">Skul: The Hero Slayer</td><td class="rrl-mg-num">7</td><td class="rrl-mg-num">$21,900,000</td><td class="rrl-mg-num">1,700,000</td><td class="rrl-mg-num">$13</td></tr>
        <tr><td class="rrl-mg-rank">58</td><td class="rrl-mg-game">Blue Prince</td><td class="rrl-mg-num">6</td><td class="rrl-mg-num">$14,000,000</td><td class="rrl-mg-num">664,000</td><td class="rrl-mg-num">$21</td></tr>
        <tr><td class="rrl-mg-rank">58</td><td class="rrl-mg-game">Dome Keeper</td><td class="rrl-mg-num">6</td><td class="rrl-mg-num">$6,600,000</td><td class="rrl-mg-num">570,000</td><td class="rrl-mg-num">$12</td></tr>
        <tr><td class="rrl-mg-rank">58</td><td class="rrl-mg-game">Magicraft</td><td class="rrl-mg-num">6</td><td class="rrl-mg-num">$4,800,000</td><td class="rrl-mg-num">476,000</td><td class="rrl-mg-num">$10</td></tr>
        <tr><td class="rrl-mg-rank">58</td><td class="rrl-mg-game">Path of Achra</td><td class="rrl-mg-num">6</td><td class="rrl-mg-num">$663,000</td><td class="rrl-mg-num">91,440</td><td class="rrl-mg-num">$7</td></tr>
        <tr><td class="rrl-mg-rank">58</td><td class="rrl-mg-game">World of Horror</td><td class="rrl-mg-num">6</td><td class="rrl-mg-num">$3,700,000</td><td class="rrl-mg-num">292,000</td><td class="rrl-mg-num">$13</td></tr>
      </tbody>
    </table>
  </div>
</div>

<script>
(function() {
  const wrap = document.querySelector('.rrl-mega-table-wrap');
  const tbody = wrap.querySelector('tbody');
  const headers = wrap.querySelectorAll('th.sortable');
  let sortCol = -1, sortDir = -1;

  function parseVal(cell) {
    let t = cell.textContent.trim();
    if (t === 'N/A' || t === '') return -Infinity;
    if (t === 'Free') return 0;
    t = t.replace(/\$|,|\s*hrs/g, '');
    if (t.endsWith('M')) return parseFloat(t) * 1e6;
    if (t.endsWith('K')) return parseFloat(t) * 1e3;
    return parseFloat(t) || -Infinity;
  }

  headers.forEach(th => {
    th.addEventListener('click', () => {
      const col = parseInt(th.dataset.col);
      sortDir = (sortCol === col) ? sortDir * -1 : -1;
      sortCol = col;
      headers.forEach(h => h.classList.remove('sort-asc', 'sort-desc'));
      th.classList.add(sortDir === -1 ? 'sort-desc' : 'sort-asc');
      const rows = Array.from(tbody.querySelectorAll('tr'));
      rows.sort((a, b) => {
        const aVal = parseVal(a.querySelectorAll('td')[col]);
        const bVal = parseVal(b.querySelectorAll('td')[col]);
        return (aVal - bVal) * sortDir;
      });
      rows.forEach(r => tbody.appendChild(r));
    });
  });
})();
</script>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>Frequently Asked Questions</strong></h2>



<p class="wp-block-paragraph">Below are some frequently asked questions:&nbsp;</p>



<h3 class="wp-block-heading"><strong>What is a Roguelike?</strong></h3>



<p class="wp-block-paragraph">At its strictest definition, a roguelike has no meta-progression: when you die, you start completely fresh.&nbsp;</p>



<p class="wp-block-paragraph">In practice, the term gets applied broadly to any game that borrows these elements, even partially, which is why you&#8217;ll see roguelites like Hades and Dead Cells described as roguelikes in casual conversation.</p>



<h3 class="wp-block-heading">What Was the First Roguelike Game?</h3>



<p class="wp-block-paragraph">A roguelike is a genre of game descended from <a href="https://en.wikipedia.org/wiki/Rogue_(video_game)">Rogue (1980)</a> that typically features permadeath, procedurally generated levels, and turn-based or real-time gameplay, with each run self-contained.&nbsp;</p>



<h3 class="wp-block-heading"><strong>Roguelike vs. Roguelite</strong></h3>



<p class="wp-block-paragraph">The short version: roguelikes are strict &#8220;start from zero&#8221; experiences, while roguelites let you carry some progress between runs. For the full breakdown, check out my <a href="https://rogueranker.com/roguelike-vs-roguelite/">Roguelike vs. Roguelite</a> guide.</p>



<h3 class="wp-block-heading"><strong>Is [Game] a Roguelike?</strong></h3>



<p class="wp-block-paragraph">In my research, I noticed a lot of people asking, &#8220;Is {Game} a Roguelike?&#8221; so I compiled the most popular ones and clarified things once and for all.</p>



<p class="wp-block-paragraph"><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Is This Game a Roguelike?</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Cinzel:wght@600;700;800&family=Crimson+Pro:ital,wght@0,400;0,600;1,400&display=swap" rel="stylesheet">
<style>
  #rr-gametable {
    font-family: 'Crimson Pro', Georgia, serif;
    background: #111318;
    color: #f2eedd;
    width: 100%;
    max-width: 700px;
    margin: 32px auto;
    border-radius: 8px;
    border: 1px solid #22222e;
    box-shadow: 0 8px 48px rgba(0,0,0,0.45);
    overflow: hidden;
    box-sizing: border-box;
  }

  #rr-gametable * { box-sizing: border-box; }

  .gt-topbar {
    height: 3px;
    background: linear-gradient(90deg, transparent, #FFBF00 40%, #FFBF00 60%, transparent);
  }

  /* ── Header ── */
  .gt-header {
    background: #16161f;
    border-bottom: 1px solid #32324a;
    padding: 22px 28px 20px;
    text-align: center;
  }

  .gt-eyebrow {
    font-family: 'Cinzel', serif;
    font-size: 10px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: #FFBF00;
    display: block;
    margin-bottom: 7px;
  }

  .gt-title {
    font-family: 'Cinzel', serif;
    font-size: clamp(17px, 3.5vw, 22px);
    font-weight: 800;
    color: #f2eedd;
    margin: 0 0 6px;
    line-height: 1.2;
  }

  .gt-subtitle {
    font-size: 14px;
    color: #80786a;
    font-style: italic;
  }

  /* ── Column headers ── */
  .gt-col-headers {
    display: grid;
    grid-template-columns: 1fr 160px;
    background: #16161f;
    border-bottom: 1px solid #32324a;
  }

  .gt-col-header {
    padding: 12px 20px;
    font-family: 'Cinzel', serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #c8bfa0;
  }

  .gt-col-header:last-child {
    border-left: 1px solid #32324a;
    text-align: center;
  }

  /* ── Rows ── */
  .gt-row {
    display: grid;
    grid-template-columns: 1fr 160px;
    border-bottom: 1px solid #1e1e2a;
    transition: background 0.15s;
  }

  .gt-row:last-child { border-bottom: none; }
  .gt-row:hover { background: #16161f; }

  .gt-game-cell {
    padding: 14px 20px;
    border-right: 1px solid #1e1e2a;
  }

  .gt-game-name {
    font-family: 'Cinzel', serif;
    font-size: 13px;
    font-weight: 700;
    color: #f2eedd;
    margin-bottom: 4px;
    letter-spacing: 0.04em;
  }

  .gt-game-note {
    font-size: 14px;
    color: #a09888;
    line-height: 1.45;
    font-style: italic;
  }

  /* ── Verdict cell ── */
  .gt-verdict-cell {
    padding: 14px 16px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .gt-badge {
    font-family: 'Cinzel', serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 5px 10px;
    border-radius: 4px;
    text-align: center;
    line-height: 1.4;
  }

  /* Verdict color variants */
  .badge-roguelike {
    background: #0e1520;
    border: 1px solid #2a3a50;
    color: #7ab8e8;
  }

  .badge-roguelite {
    background: #1e1800;
    border: 1px solid #5a4a00;
    color: #FFBF00;
  }

  .badge-neither {
    background: #200e0e;
    border: 1px solid #5a2020;
    color: #e87a7a;
  }

  .badge-hybrid {
    background: #1a1020;
    border: 1px solid #4a2a5a;
    color: #c87ae8;
  }

  .badge-adjacent {
    background: #1a1510;
    border: 1px solid #4a3a20;
    color: #c8a07a;
  }

  /* ── Footer ── */
  .gt-footer {
    background: #16161f;
    border-top: 1px solid #32324a;
    padding: 13px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
  }

  .gt-footer-text {
    font-size: 13px;
    color: #80786a;
    font-style: italic;
  }

  /* Legend */
  .gt-legend {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
  }

  .gt-legend-item {
    display: flex;
    align-items: center;
    gap: 5px;
    font-family: 'Cinzel', serif;
    font-size: 8px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  .gt-legend-dot {
    width: 8px;
    height: 8px;
    border-radius: 2px;
    flex-shrink: 0;
  }

  /* ── Mobile ── */
  @media (max-width: 560px) {
    .gt-header { padding: 18px 16px 16px; }
    .gt-col-headers { grid-template-columns: 1fr 110px; }
    .gt-row { grid-template-columns: 1fr 110px; }
    .gt-game-cell { padding: 12px 12px; }
    .gt-game-name { font-size: 11px; }
    .gt-game-note { font-size: 12px; }
    .gt-verdict-cell { padding: 12px 8px; }
    .gt-badge { font-size: 8px; padding: 4px 7px; }
    .gt-col-header { padding: 10px 12px; font-size: 9px; }
    .gt-footer { padding: 11px 14px; }
    .gt-footer-text { font-size: 12px; }
  }
</style>
</head>
<body>

<div id="rr-gametable">
  <div class="gt-topbar"></div>

  <div class="gt-header">
    <span class="gt-eyebrow">Rogue Ranker · Quick Reference</span>
    <h2 class="gt-title">Is This Game a Roguelike?</h2>
    <div class="gt-subtitle">26 popular games rated and explained</div>
    <div class="gt-legend" style="justify-content:center; margin-top:14px;">
      <div class="gt-legend-item"><div class="gt-legend-dot" style="background:#7ab8e8;"></div><span style="color:#7ab8e8;">Roguelike</span></div>
      <div class="gt-legend-item"><div class="gt-legend-dot" style="background:#FFBF00;"></div><span style="color:#FFBF00;">Roguelite</span></div>
      <div class="gt-legend-item"><div class="gt-legend-dot" style="background:#c87ae8;"></div><span style="color:#c87ae8;">Hybrid</span></div>
      <div class="gt-legend-item"><div class="gt-legend-dot" style="background:#c8a07a;"></div><span style="color:#c8a07a;">Adjacent</span></div>
      <div class="gt-legend-item"><div class="gt-legend-dot" style="background:#e87a7a;"></div><span style="color:#e87a7a;">Neither</span></div>
    </div>
  </div>

  <div class="gt-col-headers">
    <div class="gt-col-header">Game + Notes</div>
    <div class="gt-col-header" id="gt-sort-btn" style="cursor:pointer; user-select:none;">
      Verdict <span id="gt-sort-icon" style="font-size:10px; margin-left:4px; opacity:0.6;">⇅</span>
    </div>
  </div>

  <div class="gt-row" data-verdict="roguelike">
    <div class="gt-game-cell">
      <div class="gt-game-name">Balatro</div>
      <div class="gt-game-note">Permadeath, self-contained runs, deep synergies. Card and joker unlocks are content gates, not power progression.</div>
    </div>
    <div class="gt-verdict-cell"><span class="gt-badge badge-roguelike">Roguelike</span></div>
  </div>
  <div class="gt-row" data-verdict="neither">
    <div class="gt-game-cell">
      <div class="gt-game-name">Bastion</div>
      <div class="gt-game-note">Story-driven action RPG with handcrafted levels and no permadeath.</div>
    </div>
    <div class="gt-verdict-cell"><span class="gt-badge badge-neither">Neither</span></div>
  </div>
  <div class="gt-row" data-verdict="roguelike">
    <div class="gt-game-cell">
      <div class="gt-game-name">The Binding of Isaac</div>
      <div class="gt-game-note">Permadeath, procedural floors, no persistent power. Meta-unlock systems blur the line for some.</div>
    </div>
    <div class="gt-verdict-cell"><span class="gt-badge badge-roguelike">Roguelike*</span></div>
  </div>
  <div class="gt-row" data-verdict="roguelike">
    <div class="gt-game-cell">
      <div class="gt-game-name">Blue Prince</div>
      <div class="gt-game-note">Procedural mansion layouts, permadeath, and the house resets every day.</div>
    </div>
    <div class="gt-verdict-cell"><span class="gt-badge badge-roguelike">Roguelike</span></div>
  </div>
  <div class="gt-row" data-verdict="roguelite">
    <div class="gt-game-cell">
      <div class="gt-game-name">Cult of the Lamb</div>
      <div class="gt-game-note">Dungeon crawling has permadeath, but your base and followers carry over between runs.</div>
    </div>
    <div class="gt-verdict-cell"><span class="gt-badge badge-roguelite">Roguelite</span></div>
  </div>
  <div class="gt-row" data-verdict="roguelike">
    <div class="gt-game-cell">
      <div class="gt-game-name">Darkest Dungeon</div>
      <div class="gt-game-note">Officially described as one. Permadeath and procedural elements are core, though the hamlet system adds persistence.</div>
    </div>
    <div class="gt-verdict-cell"><span class="gt-badge badge-roguelike">Roguelike RPG</span></div>
  </div>
  <div class="gt-row" data-verdict="roguelite">
    <div class="gt-game-cell">
      <div class="gt-game-name">Dead Cells</div>
      <div class="gt-game-note">Permadeath and procedural levels present, but weapons and upgrades carry over.</div>
    </div>
    <div class="gt-verdict-cell"><span class="gt-badge badge-roguelite">Roguelite</span></div>
  </div>
  <div class="gt-row" data-verdict="neither">
    <div class="gt-game-cell">
      <div class="gt-game-name">Death's Door</div>
      <div class="gt-game-note">Fixed-world action-adventure with handcrafted environments and story progression.</div>
    </div>
    <div class="gt-verdict-cell"><span class="gt-badge badge-neither">Neither</span></div>
  </div>
  <div class="gt-row" data-verdict="neither">
    <div class="gt-game-cell">
      <div class="gt-game-name">Deathloop</div>
      <div class="gt-game-note">Loop mechanic tied to story and immersive sim design, not roguelike systems.</div>
    </div>
    <div class="gt-verdict-cell"><span class="gt-badge badge-neither">Neither</span></div>
  </div>
  <div class="gt-row" data-verdict="neither">
    <div class="gt-game-cell">
      <div class="gt-game-name">Diablo</div>
      <div class="gt-game-note">Action RPG with fixed progression. Draws dungeon-crawling inspiration from roguelikes but is not one.</div>
    </div>
    <div class="gt-verdict-cell"><span class="gt-badge badge-neither">Neither</span></div>
  </div>
  <div class="gt-row" data-verdict="adjacent">
    <div class="gt-game-cell">
      <div class="gt-game-name">Fear and Hunger</div>
      <div class="gt-game-note">Brutal survival horror that borrows roguelike elements, but is not a traditional roguelike.</div>
    </div>
    <div class="gt-verdict-cell"><span class="gt-badge badge-adjacent">Adjacent</span></div>
  </div>
  <div class="gt-row" data-verdict="hybrid">
    <div class="gt-game-cell">
      <div class="gt-game-name">Inscryption</div>
      <div class="gt-game-note">Uses roguelike deck-building in parts, but the overall experience is more puzzle and horror than roguelike.</div>
    </div>
    <div class="gt-verdict-cell"><span class="gt-badge badge-hybrid">Hybrid</span></div>
  </div>
  <div class="gt-row" data-verdict="neither">
    <div class="gt-game-cell">
      <div class="gt-game-name">Lethal Company</div>
      <div class="gt-game-note">Cooperative horror with procedurally generated maps, but no permadeath.</div>
    </div>
    <div class="gt-verdict-cell"><span class="gt-badge badge-neither">Neither</span></div>
  </div>
  <div class="gt-row" data-verdict="neither">
    <div class="gt-game-cell">
      <div class="gt-game-name">NieR: Automata</div>
      <div class="gt-game-note">Fixed story and progression. No procedural runs or permadeath.</div>
    </div>
    <div class="gt-verdict-cell"><span class="gt-badge badge-neither">Neither</span></div>
  </div>
  <div class="gt-row" data-verdict="neither">
    <div class="gt-game-cell">
      <div class="gt-game-name">Nightreign</div>
      <div class="gt-game-note">Standalone Elden Ring entry. Not positioned as a roguelike or roguelite.</div>
    </div>
    <div class="gt-verdict-cell"><span class="gt-badge badge-neither">Neither</span></div>
  </div>
  <div class="gt-row" data-verdict="roguelike">
    <div class="gt-game-cell">
      <div class="gt-game-name">Noita</div>
      <div class="gt-game-note">Procedural generation, permadeath, no persistent power. Its physics simulation puts it in a category of its own.</div>
    </div>
    <div class="gt-verdict-cell"><span class="gt-badge badge-roguelike">Roguelike</span></div>
  </div>
  <div class="gt-row" data-verdict="roguelite">
    <div class="gt-game-cell">
      <div class="gt-game-name">Pacific Drive</div>
      <div class="gt-game-note">Procedural runs, permadeath, and long-term progression between expeditions.</div>
    </div>
    <div class="gt-verdict-cell"><span class="gt-badge badge-roguelite">Roguelite</span></div>
  </div>
  <div class="gt-row" data-verdict="roguelike">
    <div class="gt-game-cell">
      <div class="gt-game-name">Pokémon Mystery Dungeon</div>
      <div class="gt-game-note">Procedural dungeons, permadeath, grid-based movement, and turn-based actions.</div>
    </div>
    <div class="gt-verdict-cell"><span class="gt-badge badge-roguelike">Roguelike</span></div>
  </div>
  <div class="gt-row" data-verdict="neither">
    <div class="gt-game-cell">
      <div class="gt-game-name">R.E.P.O.</div>
      <div class="gt-game-note">Cooperative horror where you complete jobs. Roguelike elements are surface-level at best.</div>
    </div>
    <div class="gt-verdict-cell"><span class="gt-badge badge-neither">Neither</span></div>
  </div>
  <div class="gt-row" data-verdict="roguelite">
    <div class="gt-game-cell">
      <div class="gt-game-name">Risk of Rain (original)</div>
      <div class="gt-game-note">Procedural levels and permadeath, plus meta-progression that carries across runs.</div>
    </div>
    <div class="gt-verdict-cell"><span class="gt-badge badge-roguelite">Roguelite</span></div>
  </div>
  <div class="gt-row" data-verdict="roguelite">
    <div class="gt-game-cell">
      <div class="gt-game-name">Risk of Rain 2</div>
      <div class="gt-game-note">Procedural runs and permadeath, but unlockable survivors and items carry over.</div>
    </div>
    <div class="gt-verdict-cell"><span class="gt-badge badge-roguelite">Roguelite</span></div>
  </div>
  <div class="gt-row" data-verdict="neither">
    <div class="gt-game-cell">
      <div class="gt-game-name">Sifu</div>
      <div class="gt-game-note">Action brawler with aging mechanics. No procedural levels or permadeath-driven design.</div>
    </div>
    <div class="gt-verdict-cell"><span class="gt-badge badge-neither">Neither</span></div>
  </div>
  <div class="gt-row" data-verdict="roguelike">
    <div class="gt-game-cell">
      <div class="gt-game-name">Spelunky</div>
      <div class="gt-game-note">Procedural levels, permadeath, and grid-influenced platforming. The archetypal roguelike platformer.</div>
    </div>
    <div class="gt-verdict-cell"><span class="gt-badge badge-roguelike">Roguelike</span></div>
  </div>
  <div class="gt-row" data-verdict="roguelite">
    <div class="gt-game-cell">
      <div class="gt-game-name">Splatoon 3: Side Order</div>
      <div class="gt-game-note">Randomized runs and upgrade mechanics, but not a traditional roguelike.</div>
    </div>
    <div class="gt-verdict-cell"><span class="gt-badge badge-roguelite">Roguelite</span></div>
  </div>
  <div class="gt-row" data-verdict="roguelite">
    <div class="gt-game-cell">
      <div class="gt-game-name">Vampire Survivors</div>
      <div class="gt-game-note">Procedural runs and permadeath, but permanent gold-based upgrades across runs.</div>
    </div>
    <div class="gt-verdict-cell"><span class="gt-badge badge-roguelite">Roguelite</span></div>
  </div>
  <div class="gt-row" data-verdict="roguelite">
    <div class="gt-game-cell">
      <div class="gt-game-name">Witchfire</div>
      <div class="gt-game-note">Procedural runs, permadeath, and progression systems that extend beyond a single run.</div>
    </div>
    <div class="gt-verdict-cell"><span class="gt-badge badge-roguelite">Roguelite</span></div>
  </div>

  <div class="gt-footer">
    <div class="gt-footer-text">* Debated by the community</div>
  </div>

</div>


<script>
  const rows = Array.from(document.querySelectorAll('.gt-row'));
  const container = rows[0].parentElement;
  const sortBtn = document.getElementById('gt-sort-btn');
  const sortIcon = document.getElementById('gt-sort-icon');

  const order = ['roguelike', 'roguelite', 'hybrid', 'adjacent', 'neither'];
  let sortIndex = -1; // -1 = alphabetical (default)

  sortBtn.addEventListener('click', () => {
    sortIndex = (sortIndex + 1) % (order.length + 1);

    const allRows = Array.from(document.querySelectorAll('.gt-row'));

    if (sortIndex === order.length) {
      // Back to alphabetical
      allRows.sort((a, b) => {
        const nameA = a.querySelector('.gt-game-name').textContent.replace(/^The\s+/i, '').toLowerCase();
        const nameB = b.querySelector('.gt-game-name').textContent.replace(/^The\s+/i, '').toLowerCase();
        return nameA.localeCompare(nameB);
      });
      sortIcon.textContent = '⇅';
      sortIcon.style.opacity = '0.6';
      sortBtn.title = '';
    } else {
      const current = order[sortIndex];
      allRows.sort((a, b) => {
        const va = a.dataset.verdict;
        const vb = b.dataset.verdict;
        if (va === current && vb !== current) return -1;
        if (va !== current && vb === current) return 1;
        // Secondary: alphabetical
        const nameA = a.querySelector('.gt-game-name').textContent.toLowerCase();
        const nameB = b.querySelector('.gt-game-name').textContent.toLowerCase();
        return nameA.localeCompare(nameB);
      });

      const labels = {
        roguelike: 'Roguelike', roguelite: 'Roguelite',
        hybrid: 'Hybrid', adjacent: 'Adjacent', neither: 'Neither'
      };
      sortIcon.textContent = '↓';
      sortIcon.style.opacity = '1';
      sortBtn.title = `Sorted by: ${labels[current]}`;
    }

    allRows.forEach(r => container.appendChild(r));
  });
</script>
</body>
</html></p>



<h2 class="wp-block-heading"><strong>Wrapping Up</strong></h2>



<p class="wp-block-paragraph">If you made it this far, thanks for sticking with it.&nbsp;</p>



<p class="wp-block-paragraph">This one took a while to put together, and I hope the data was actually useful rather than just another list dressed up as research.</p>



<p class="wp-block-paragraph">The community consensus was pretty clear at the top: Slay the Spire is the one everyone agrees on. Everything after that is where opinions start to diverge, which is exactly what makes this genre worth writing about.</p>



<p class="wp-block-paragraph">If you find a game on this list that clicks for you, let me know. And if you think something got robbed, the comments are right there.</p>



<p class="wp-block-paragraph">Take care and talk soon <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>The post <a href="https://rogueranker.com/best-roguelike-games/">(Top 179) Best Roguelike Games &#8211; 5,512 Reddit Votes</a> appeared first on <a href="https://rogueranker.com">Rogue Ranker</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>(Quick Answer) Roguelike vs. Roguelite &#8211; What’s the Difference?</title>
		<link>https://rogueranker.com/roguelike-vs-roguelite/</link>
					<comments>https://rogueranker.com/roguelike-vs-roguelite/#respond</comments>
		
		<dc:creator><![CDATA[Steven]]></dc:creator>
		<pubDate>Thu, 18 Sep 2025 00:15:13 +0000</pubDate>
				<category><![CDATA[Roguelike]]></category>
		<category><![CDATA[Roguelite]]></category>
		<guid isPermaLink="false">https://rogueranker.com/?p=287</guid>

					<description><![CDATA[<p>When I discovered rogue games, it took me a minute to wrap my head around the concept of like vs. lite. Now, in hindsight, I should have just played Rogue on day 1 to understand the origin story, but I didn’t.&#160; I saw ‘like’ and ‘lite’ thrown around and wasn’t sure if it was roguelite [&#8230;]</p>
<p>The post <a href="https://rogueranker.com/roguelike-vs-roguelite/">(Quick Answer) Roguelike vs. Roguelite &#8211; What’s the Difference?</a> appeared first on <a href="https://rogueranker.com">Rogue Ranker</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">When I discovered rogue games, it took me a minute to wrap my head around the concept of like vs. lite.</p>



<p class="wp-block-paragraph">Now, in hindsight, I should have just played <a href="https://store.steampowered.com/app/1443430/Rogue/">Rogue</a> on day 1 to understand the origin story, but I didn’t.&nbsp;</p>



<p class="wp-block-paragraph">I saw ‘like’ and ‘lite’ thrown around and wasn’t sure if it was roguelite or roguelike.&nbsp;</p>



<p class="wp-block-paragraph">Admittedly, I just thought people were saying the same thing at times, but then I went down the rabbit hole.</p>



<p class="wp-block-paragraph">During my original deep dive to define roguelike and the differences between roguelike and roguelite, information was scattered.&nbsp;</p>



<p class="wp-block-paragraph">Don’t get me wrong, there were tons of YouTube videos, Reddit threads, and the like, but I wanted a central guide (hence why we are here).</p>



<p class="wp-block-paragraph">So now I’m creating the easiest-to-understand guide on roguelike vs. roguelite for any who might follow in those footsteps.</p>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Roguelike vs Roguelite Table</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Cinzel:wght@600;800&family=Crimson+Pro:ital,wght@0,400;0,600;1,400&display=swap" rel="stylesheet">
<style>
  #rr-table-root {
    font-family: 'Crimson Pro', Georgia, serif;
    font-size: 17px;
    line-height: 1.6;
    background: #111318;
    color: #f2eedd;
    width: 100%;
    max-width: 700px;
    margin: 32px auto;
    border-radius: 8px;
    border: 1px solid #22222e;
    box-shadow: 0 8px 48px rgba(0,0,0,0.45);
    overflow: hidden;
    box-sizing: border-box;
  }

  #rr-table-root * {
    box-sizing: border-box;
    max-width: 100%;
  }

  /* ── Header ── */
  .rrt-header {
    background: #16161f;
    border-bottom: 1px solid #32324a;
    padding: 24px 28px 20px;
    text-align: center;
    position: relative;
  }

  .rrt-header::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, transparent, #FFBF00, transparent);
  }

  .rrt-eyebrow {
    font-family: 'Cinzel', serif;
    font-size: 10px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: #FFBF00;
    display: block;
    margin-bottom: 8px;
  }

  .rrt-title {
    font-family: 'Cinzel', serif;
    font-size: clamp(18px, 4vw, 24px);
    font-weight: 800;
    color: #f2eedd;
    margin: 0;
    line-height: 1.2;
  }

  /* ── Column headers ── */
  .rrt-col-headers {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    background: #16161f;
    border-bottom: 1px solid #32324a;
  }

  .rrt-col-header {
    padding: 14px 16px;
    font-family: 'Cinzel', serif;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-align: center;
    color: #80786a;
  }

  .rrt-col-header.roguelike {
    color: #7ab8e8;
    border-right: 1px solid #32324a;
  }

  .rrt-col-header.category {
    color: #c8bfa0;
    border-right: 1px solid #32324a;
    background: #1e1e2a;
  }

  .rrt-col-header.roguelite {
    color: #FFBF00;
  }

  /* ── Rows ── */
  .rrt-row {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    border-bottom: 1px solid #32324a;
    transition: background 0.15s;
  }

  .rrt-row:last-child {
    border-bottom: none;
  }

  .rrt-row:hover {
    background: #16161f;
  }

  .rrt-cell {
    padding: 16px 16px;
    font-size: 15px;
    line-height: 1.5;
    color: #cbc4b0;
    vertical-align: top;
    border-right: 1px solid #32324a;
  }

  .rrt-cell:last-child {
    border-right: none;
  }

  /* Category cell — center column */
  .rrt-cell.cat {
    font-family: 'Cinzel', serif;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #c8bfa0;
    text-align: center;
    background: #1e1e2a;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  /* Roguelike cell — blue tint */
  .rrt-cell.rl {
    color: #c8dff0;
    background: #0e1520;
  }

  /* Roguelite cell — gold tint */
  .rrt-cell.rlt {
    color: #f0e8c8;
    background: #191400;
  }

  /* ── Checkmark / X indicators ── */
  .rrt-yes {
    color: #7ac87a;
    font-weight: 700;
  }

  .rrt-no {
    color: #c87a7a;
    font-weight: 700;
  }

  /* ── Section divider rows ── */
  .rrt-section-label {
    grid-column: 1 / -1;
    padding: 10px 16px;
    font-family: 'Cinzel', serif;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #FFBF00;
    background: #16161f;
    border-bottom: 1px solid #32324a;
  }

  /* ── Example games tags ── */
  .rrt-games {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 14px 14px;
  }

  .rrt-game-tag {
    font-family: 'Cinzel', serif;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 4px 10px;
    border-radius: 3px;
    white-space: nowrap;
  }

  .rrt-game-tag.rl {
    background: #0e1a28;
    border: 1px solid #2a3a50;
    color: #7ab8e8;
  }

  .rrt-game-tag.rlt {
    background: #1e1600;
    border: 1px solid #5a4a00;
    color: #FFBF00;
  }

  .rrt-games-row {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    border-bottom: 1px solid #32324a;
  }

  .rrt-games-row .rrt-cell.cat {
    font-family: 'Cinzel', serif;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #c8bfa0;
    text-align: center;
    background: #1e1e2a;
    display: flex;
    align-items: center;
    justify-content: center;
    border-right: 1px solid #32324a;
    padding: 16px;
  }

  /* ── Footer ── */
  .rrt-footer {
    background: #16161f;
    border-top: 1px solid #32324a;
    padding: 14px 20px;
    text-align: center;
    font-style: italic;
    font-size: 13px;
    color: #80786a;
  }

  /* ── Mobile ── */
  @media (max-width: 560px) {
    #rr-table-root { margin: 16px auto; border-radius: 6px; }

    /* Hide the 3-col header, show nothing — rows self-label */
    .rrt-col-headers { display: none; }

    /* Each row stacks vertically: Feature label on top, then two columns */
    .rrt-row {
      grid-template-columns: 1fr 1fr;
      grid-template-rows: auto auto;
    }

    /* Feature label spans full width at top of each row */
    .rrt-cell.cat {
      grid-column: 1 / -1;
      grid-row: 1;
      text-align: center;
      background: #16161f;
      border-right: none;
      border-bottom: 1px solid #32324a;
      padding: 8px 12px;
      font-size: 9px;
      letter-spacing: 0.18em;
      color: #FFBF00;
    }

    /* Roguelike cell — left, second row */
    .rrt-cell.rl {
      grid-column: 1;
      grid-row: 2;
      border-right: 1px solid #32324a;
      font-size: 13px;
      padding: 10px 10px;
      position: relative;
      padding-top: 24px;
    }

    /* Roguelite cell — right, second row */
    .rrt-cell.rlt {
      grid-column: 2;
      grid-row: 2;
      font-size: 13px;
      padding: 10px 10px;
      position: relative;
      padding-top: 24px;
    }

    /* Mini labels above each cell on mobile */
    .rrt-cell.rl::before {
      content: 'ROGUELIKE';
      position: absolute;
      top: 8px; left: 10px;
      font-family: 'Cinzel', serif;
      font-size: 7px;
      letter-spacing: 0.14em;
      color: #7ab8e8;
      font-weight: 600;
    }

    .rrt-cell.rlt::before {
      content: 'ROGUELITE';
      position: absolute;
      top: 8px; left: 10px;
      font-family: 'Cinzel', serif;
      font-size: 7px;
      letter-spacing: 0.14em;
      color: #FFBF00;
      font-weight: 600;
    }

    /* Section label spans full width */
    .rrt-section-label {
      font-size: 8px;
      letter-spacing: 0.18em;
    }

    /* Games row stacks same way */
    .rrt-games-row {
      grid-template-columns: 1fr 1fr;
      grid-template-rows: auto auto;
    }

    .rrt-games-row .rrt-cell.cat {
      grid-column: 1 / -1;
      grid-row: 1;
      border-right: none;
      border-bottom: 1px solid #32324a;
      padding: 8px 12px;
      font-size: 9px;
      color: #FFBF00;
    }

    .rrt-games-row .rrt-games:first-child {
      grid-column: 1;
      grid-row: 2;
    }

    .rrt-games-row .rrt-games:last-child {
      grid-column: 2;
      grid-row: 2;
    }

    .rrt-game-tag { font-size: 8px; padding: 3px 7px; }
    .rrt-games { gap: 5px; padding: 10px 8px; }
    .rrt-title { font-size: 17px; }
    .rrt-header { padding: 18px 16px 16px; }
    .rrt-footer { font-size: 12px; padding: 12px 16px; }
  }
</style>
</head>
<body>

<div id="rr-table-root">

  <!-- Header -->
  <div class="rrt-header">
    <span class="rrt-eyebrow">Rogue Ranker · Quick Reference</span>
    <h2 class="rrt-title">Roguelike vs. Roguelite</h2>
  </div>

  <!-- Column headers -->
  <div class="rrt-col-headers">
    <div class="rrt-col-header roguelike">Roguelike</div>
    <div class="rrt-col-header category">Feature</div>
    <div class="rrt-col-header roguelite">Roguelite</div>
  </div>

  <!-- Section: Core Definition -->
  <div class="rrt-row">
    <div class="rrt-section-label">Core Definition</div>
  </div>

  <div class="rrt-row">
    <div class="rrt-cell rl">Strictly modeled after Rogue. Every run is self-contained, brutal, and starts from zero.</div>
    <div class="rrt-cell cat">Definition</div>
    <div class="rrt-cell rlt">Inspired by roguelikes but more forgiving. Death resets the run, not your overall progress.</div>
  </div>

  <!-- Section: Key Features -->
  <div class="rrt-row">
    <div class="rrt-section-label">Key Features</div>
  </div>

  <div class="rrt-row">
    <div class="rrt-cell rl"><span class="rrt-yes">✓</span> Permanent. Die and you restart from absolute zero.</div>
    <div class="rrt-cell cat">Permadeath</div>
    <div class="rrt-cell rlt"><span class="rrt-yes">✓</span> Present but softened. You keep some items, skills, or unlocks.</div>
  </div>

  <div class="rrt-row">
    <div class="rrt-cell rl"><span class="rrt-yes">✓</span> Levels, enemies, and loot are randomized every run.</div>
    <div class="rrt-cell cat">Procedural Generation</div>
    <div class="rrt-cell rlt"><span class="rrt-yes">✓</span> Same. Randomized runs are core to the experience.</div>
  </div>

  <div class="rrt-row">
    <div class="rrt-cell rl"><span class="rrt-no">✗</span> None. Every run starts completely fresh with no carry-over.</div>
    <div class="rrt-cell cat">Meta Progression</div>
    <div class="rrt-cell rlt"><span class="rrt-yes">✓</span> Yes. Persistent upgrades, unlocks, and story progress carry between runs.</div>
  </div>

  <div class="rrt-row">
    <div class="rrt-cell rl"><span class="rrt-no">✗</span> None. No saves, no checkpoints, no second chances.</div>
    <div class="rrt-cell cat">Save System</div>
    <div class="rrt-cell rlt"><span class="rrt-yes">✓</span> Often includes save points or mid-run checkpoints.</div>
  </div>

  <div class="rrt-row">
    <div class="rrt-cell rl">Turn-based or grid-based. Slow, methodical, and punishing.</div>
    <div class="rrt-cell cat">Gameplay Style</div>
    <div class="rrt-cell rlt">Usually real-time. Faster, flashier, and more action-oriented.</div>
  </div>

  <div class="rrt-row">
    <div class="rrt-cell rl">Very high. Progress is almost entirely proportional to skill, not time played.</div>
    <div class="rrt-cell cat">Skill Requirement</div>
    <div class="rrt-cell rlt">Moderate. Skill matters but time investment and meta upgrades lower the barrier.</div>
  </div>

  <div class="rrt-row">
    <div class="rrt-cell rl">Extremely high. Complexity, builds, and RNG create near-infinite variety.</div>
    <div class="rrt-cell cat">Replayability</div>
    <div class="rrt-cell rlt">High. Procedural runs plus meta progression keep every session feeling different.</div>
  </div>

  <div class="rrt-row">
    <div class="rrt-cell rl">Steep. Expect to lose a lot before you understand the systems.</div>
    <div class="rrt-cell cat">Learning Curve</div>
    <div class="rrt-cell rlt">Gentler. Meta progression and carry-over rewards help new players find their footing.</div>
  </div>

  <!-- Section: Example Games -->
  <div class="rrt-row">
    <div class="rrt-section-label">Example Games</div>
  </div>

  <div class="rrt-games-row">
    <div class="rrt-games" style="background:#0e1520; border-right: 1px solid #32324a;">
      <span class="rrt-game-tag rl">ADOM</span>
      <span class="rrt-game-tag rl">Caves of Qud</span>
      <span class="rrt-game-tag rl">Dungeon Crawl Stone Soup</span>
      <span class="rrt-game-tag rl">Path of Achra</span>
      <span class="rrt-game-tag rl">Tales of Maj'Eyal</span>
      <span class="rrt-game-tag rl">Shiren the Wanderer</span>
    </div>
    <div class="rrt-cell cat" style="border-right: 1px solid #32324a;">Games</div>
    <div class="rrt-games" style="background:#191400;">
      <span class="rrt-game-tag rlt">Brotato</span>
      <span class="rrt-game-tag rlt">Hades</span>
      <span class="rrt-game-tag rlt">Dead Cells</span>
      <span class="rrt-game-tag rlt">Vampire Survivors</span>
      <span class="rrt-game-tag rlt">Slay the Spire</span>
      <span class="rrt-game-tag rlt">Balatro</span>
      <span class="rrt-game-tag rlt">FTL</span>
    </div>
  </div>

  <!-- Footer -->
  <div class="rrt-footer">
    Every roguelike can be called a roguelite. But not every roguelite is a roguelike.
  </div>

</div>

</body>
</html>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">TL;DR (Too Long; Didn’t Read)</h2>



<ul class="wp-block-list">
<li><strong>Roguelikes vs. Roguelites</strong>: Roguelikes are strict “start over from scratch” games, while roguelites let you carry some progress between runs.</li>



<li><strong>Roguelike traits</strong>: Permadeath, procedural generation,&nbsp; impactful RNG, no permanent upgrades and no game saves.</li>



<li><strong>Roguelite traits</strong>: Permadeath and procedural levels, but softened with persistent upgrades, unlocks, or story progression.</li>



<li><strong>Overlap</strong>: Every roguelike can be called a roguelite (since it shares the core DNA), but not every roguelite can be called a roguelike.</li>



<li><strong>Examples</strong>: Roguelike: <em>ADOM, Caves of Qud, Dungeon Crawl Stone Soup.</em> Roguelite: <em>Hades, Dead Cells, Vampire Survivors, Brotato.</em></li>



<li><strong>Other genres</strong>: Bullet Hell = dodge everything (<em>Enter the Gungeon</em>). Bullet Heaven = you <em>are</em> the storm (<em>Vampire Survivors, Brotato</em>).</li>



<li><strong>Like these games?</strong> You&#8217;ll love our guide on the <a href="https://rogueranker.com/best-roguelike-games/">best roguelikes</a></li>
</ul>



<div style="height:19px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">What Was The First Roguelike Game?</h2>



<p class="wp-block-paragraph">Subtly linked above is <a href="https://en.wikipedia.org/wiki/Rogue_(video_game)">Rogue</a>, the game that started it all.&nbsp;</p>



<p class="wp-block-paragraph">To understand the roguelike genre, we need to start there.</p>



<p class="wp-block-paragraph">Also known as <em>Rogue: Exploring the Dungeons of Doom</em>, this turn-based dungeon crawler welcomes players to a punishing playstyle with arms wide open (I’ll resist the urge to add a meme below).</p>



<p class="wp-block-paragraph">What’s so punishing?&nbsp;</p>



<p class="wp-block-paragraph">Permadeath and procedurally generated playthroughs.&nbsp;</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="460" height="215" src="https://rogueranker.com/wp-content/uploads/2025/09/What-Was-The-First-Roguelike-Game-Rogue.jpg" alt="Cover art for &quot;Rogue,&quot; recognized as Game of the Year, showcasing vibrant graphics and the game's title prominently displayed." class="wp-image-301" srcset="https://rogueranker.com/wp-content/uploads/2025/09/What-Was-The-First-Roguelike-Game-Rogue.jpg 460w, https://rogueranker.com/wp-content/uploads/2025/09/What-Was-The-First-Roguelike-Game-Rogue-300x140.jpg 300w" sizes="(max-width: 460px) 100vw, 460px" /></figure>



<p class="wp-block-paragraph"><em>What does that all mean?</em></p>



<p class="wp-block-paragraph"><strong>Turn-based: </strong>Everything in the game is defined by “turns,” such as your character’s next move, attack, item usage, etc.&nbsp;</p>



<p class="wp-block-paragraph"><strong>Dungeon Crawler: </strong>A style of game where players have to navigate a dungeon, fight off monsters, avoid traps, solve puzzles, and collect treasure.</p>



<p class="wp-block-paragraph"><strong>Permadeath:</strong> You play, die, and restart from the beginning with zero offensive or defensive items and weapons you might have collected along the way.&nbsp;&nbsp;</p>



<p class="wp-block-paragraph"><strong>Procedurally generated playthroughs:</strong> Monsters, maps, and treasures are randomized, and just because you achieved X at Y point of the game, it does not mean you will reencounter it.</p>



<p class="wp-block-paragraph">Now, although Rouge wasn’t the first game to have these features, its popularity grew and soon became a reference to other games that carried similar mechanics.</p>



<h2 class="wp-block-heading">What Are Roguelike Games?</h2>



<p class="wp-block-paragraph">Before we proceed, we must give credit where credit is due.&nbsp;</p>



<p class="wp-block-paragraph">Thanks to the International Roguelike Development Conference in 2008, a group of developers helped define roguelike via the &#8220;Berlin Interpretation,&#8221; an outline of ‘how roguelike a game is.’</p>



<p class="wp-block-paragraph">While it is essential to note its origin, the historical depths and nuances are not critical to our conversation. If you would like to learn more, there’s an entire <a href="https://www.roguebasin.com/index.php?title=Berlin_Interpretation">Wikipedia page dedicated to the Berlin Interpretation.</a></p>



<p class="wp-block-paragraph"><em>So wait, what is a roguelike game?</em></p>



<p class="wp-block-paragraph">&nbsp;At its core, a roguelike video game embodies:</p>



<ol class="wp-block-list">
<li><strong>Complexity</strong>: Tons of mechanics, items, builds, and strategies.</li>



<li><strong>Restricted-Movement</strong>: You can expect grids, arenas, and dungeons.</li>



<li><strong>No Meta Progression</strong>: Each run is self-contained; no permanent unlocks.</li>



<li><strong>Permadeath</strong>: When you die, your run is over and you restart from scratch.</li>



<li><strong>Procedural Generation</strong>: Levels, items, and enemies are different each time.</li>



<li><strong>Skill-Based</strong>: Progress is almost always proportionate to skill level, not play time.</li>



<li><strong>Non-modal:</strong> All actions (such as combat and movement) happen in the same &#8220;mode.&#8221;</li>
</ol>



<div style="height:19px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph">But as mentioned above, a game does not need to have all of these mechanics to be considered roguelike.&nbsp;</p>



<p class="wp-block-paragraph">Also, a special shoutout to <a href="https://www.reddit.com/r/roguelikes/comments/68h41r/anyone_else_tired_of_explaining/">Synaptics in this Reddit post</a> for providing a clear explanation of non-modal, which I used in this context.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Roguelike Traits</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Cinzel:wght@600;700;800&family=Crimson+Pro:ital,wght@0,400;0,600;1,400&display=swap" rel="stylesheet">
<style>
  #rr-traits {
    font-family: 'Crimson Pro', Georgia, serif;
    background: #111318;
    color: #f2eedd;
    width: 100%;
    max-width: 700px;
    margin: 32px auto;
    border-radius: 8px;
    border: 1px solid #22222e;
    box-shadow: 0 8px 48px rgba(0,0,0,0.45);
    overflow: hidden;
    box-sizing: border-box;
  }

  #rr-traits * { box-sizing: border-box; }

  .tr-topbar {
    height: 3px;
    background: linear-gradient(90deg, transparent, #FFBF00 40%, #FFBF00 60%, transparent);
  }

  /* ── Header ── */
  .tr-header {
    background: #16161f;
    border-bottom: 1px solid #32324a;
    padding: 22px 28px 20px;
    text-align: center;
  }

  .tr-eyebrow {
    font-family: 'Cinzel', serif;
    font-size: 10px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: #FFBF00;
    display: block;
    margin-bottom: 7px;
  }

  .tr-title {
    font-family: 'Cinzel', serif;
    font-size: clamp(17px, 3.5vw, 22px);
    font-weight: 800;
    color: #f2eedd;
    margin: 0 0 6px;
    line-height: 1.2;
  }

  .tr-subtitle {
    font-size: 14px;
    color: #80786a;
    font-style: italic;
  }

  /* ── Grid ── */
  .tr-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1px;
    background: #22222e;
    border-top: 1px solid #22222e;
  }

  /* Last card spans full width if odd number */
  .tr-card:last-child:nth-child(odd) {
    grid-column: 1 / -1;
    text-align: center;
  }

  .tr-card {
    background: #111318;
    padding: 22px 22px 20px;
    position: relative;
    overflow: hidden;
    transition: background 0.2s;
    cursor: default;
  }

  .tr-card:hover {
    background: #16161f;
  }

  /* Subtle gold accent line on hover */
  .tr-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 2px;
    background: #FFBF00;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s ease;
  }

  .tr-card:hover::before {
    transform: scaleX(1);
  }

  /* Large background number */
  .tr-bg-num {
    position: absolute;
    bottom: -10px;
    right: 10px;
    font-family: 'Cinzel', serif;
    font-size: 72px;
    font-weight: 800;
    color: rgba(255,191,0,0.04);
    line-height: 1;
    pointer-events: none;
    user-select: none;
  }

  .tr-card-name {
    font-family: 'Cinzel', serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #FFBF00;
    margin-bottom: 8px;
    position: relative;
  }

  .tr-card-desc {
    font-size: 15px;
    line-height: 1.55;
    color: #cbc4b0;
    margin: 0;
    position: relative;
  }

  /* ── Footer ── */
  .tr-footer {
    background: #16161f;
    border-top: 1px solid #32324a;
    padding: 13px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }

  .tr-footer-text {
    font-size: 13px;
    color: #80786a;
    font-style: italic;
  }

  .tr-footer-text a {
    color: #FFBF00;
    text-decoration: none;
    border-bottom: 1px solid rgba(255,191,0,0.3);
  }

  .tr-footer-text a:hover { border-bottom-color: #FFBF00; }

  .tr-footer-tag {
    font-family: 'Cinzel', serif;
    font-size: 9px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #FFBF00;
    background: #1e1800;
    border: 1px solid #5a4a00;
    padding: 4px 10px;
    border-radius: 3px;
    white-space: nowrap;
    flex-shrink: 0;
  }

  /* ── Animate in ── */
  .tr-card {
    opacity: 0;
    transform: translateY(12px);
    transition: opacity 0.4s ease, transform 0.4s ease, background 0.2s;
  }

  .tr-card.visible {
    opacity: 1;
    transform: translateY(0);
  }

  /* ── Mobile ── */
  @media (max-width: 480px) {
    .tr-grid { grid-template-columns: 1fr; }
    .tr-card:last-child:nth-child(odd) { grid-column: auto; }
    .tr-card { padding: 18px 18px 16px; }
    .tr-card-name { font-size: 11px; }
    .tr-card-desc { font-size: 14px; }
    .tr-card-name { word-break: break-word; }
    #rr-traits { overflow-x: hidden; }
    .tr-bg-num { font-size: 56px; }
    .tr-header { padding: 18px 16px 16px; }
    .tr-footer { padding: 11px 16px; flex-wrap: wrap; }
  }
</style>
</head>
<body>

<div id="rr-traits">
  <div class="tr-topbar"></div>

  <div class="tr-header">
    <span class="tr-eyebrow">Rogue Ranker · Berlin Interpretation</span>
    <h2 class="tr-title">What Makes a Game Roguelike?</h2>
    <div class="tr-subtitle">A game does not need all 7 traits — but more means more "roguelike"</div>
  </div>

  <div class="tr-grid">

    <div class="tr-card">
      <div class="tr-bg-num">1</div>
      <div class="tr-card-name">Complexity</div>
      <p class="tr-card-desc">Tons of mechanics, items, builds, and strategies. Every run presents new decisions with real consequences.</p>
    </div>

    <div class="tr-card">
      <div class="tr-bg-num">2</div>
      <div class="tr-card-name">Restricted Movement</div>
      <p class="tr-card-desc">Navigation is constrained by grids, arenas, or dungeons. You move deliberately, not freely.</p>
    </div>

    <div class="tr-card">
      <div class="tr-bg-num">3</div>
      <div class="tr-card-name">No Meta Progression</div>
      <p class="tr-card-desc">Each run is completely self-contained. No permanent unlocks or carry-over upgrades between attempts.</p>
    </div>

    <div class="tr-card">
      <div class="tr-bg-num">4</div>
      <div class="tr-card-name">Permadeath</div>
      <p class="tr-card-desc">When you die, your run ends. You restart from scratch. No saves, no checkpoints, no second chances.</p>
    </div>

    <div class="tr-card">
      <div class="tr-bg-num">5</div>
      <div class="tr-card-name">Procedural Generation</div>
      <p class="tr-card-desc">Levels, items, and enemies are randomized every run. No two playthroughs are identical.</p>
    </div>

    <div class="tr-card">
      <div class="tr-bg-num">6</div>
      <div class="tr-card-name">Skill-Based</div>
      <p class="tr-card-desc">Progress is proportionate to skill, not time played. Grinding does not substitute for mastery.</p>
    </div>

    <div class="tr-card">
      <div class="tr-bg-num">7</div>
      <div class="tr-card-name">Non-Modal</div>
      <p class="tr-card-desc">All actions — combat, movement, item use — happen in the same mode. No separate screens for different actions.</p>
    </div>

  </div>

</div>

<script>
  const cards = document.querySelectorAll('.tr-card');
  const observer = new IntersectionObserver((entries) => {
    entries.forEach(entry => {
      if (entry.isIntersecting) {
        const idx = Array.from(cards).indexOf(entry.target);
        setTimeout(() => entry.target.classList.add('visible'), idx * 70);
        observer.unobserve(entry.target);
      }
    });
  }, { threshold: 0.1 });
  cards.forEach(c => observer.observe(c));
</script>

</body>
</html>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">Why is it Called Roguelike?</h3>



<p class="wp-block-paragraph">A game is called roguelike because it has some (but not all) of the core features of Rogue. Features can include, but are not limited to, permadeath, procedural generation, turn-based, no meta progression, etc.&nbsp;</p>



<p class="wp-block-paragraph">However, a common pitfall of the term roguelike is that people hear it and have never heard of the game, Rogue. When really, it’s the combination of Rogue (the game) and ‘like.’</p>



<p class="wp-block-paragraph">Said differently, “this game is like Rogue”.</p>



<h3 class="wp-block-heading">Examples of Roguelike Games</h3>



<p class="wp-block-paragraph">I’ll keep this section pretty short, but I thought it might be helpful to list a few roguelike examples (in alphabetical order) and link to their Steam pages.</p>



<p class="wp-block-paragraph">Now, before you come for me, I know this is not a complete list <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" />&nbsp;</p>



<ol class="wp-block-list">
<li><a href="https://store.steampowered.com/app/333300/ADOM_Ancient_Domains_Of_Mystery/">ADOM (Ancient Domains of Mystery)</a></li>



<li><a href="https://store.steampowered.com/app/333640/Caves_of_Qud/">Caves of Qud</a></li>



<li><a href="https://crawl.develz.org/">Dungeon Crawl Stone Soup (DCSS)</a></li>



<li><a href="https://store.steampowered.com/app/2334730/Death_Must_Die/">Death Must Die</a></li>



<li><a href="https://store.steampowered.com/app/2128270/Path_of_Achra/">Path of Achra</a></li>



<li><a href="https://store.steampowered.com/app/1178790/Shiren_the_Wanderer_The_Tower_of_Fortune_and_the_Dice_of_Fate/">Shiren the Wanderer</a></li>



<li><a href="https://store.steampowered.com/app/259680/Tales_of_MajEyal/">Tales of Maj&#8217;Eyal</a></li>
</ol>



<div style="height:19px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph">Adding a few of the big names for quick reference.</p>



<h2 class="wp-block-heading">What is a Roguelite?</h2>



<p class="wp-block-paragraph">A roguelite borrows elements from roguelikes like procedural generation and permadeath, to name a few, but softens the punishment by granting meta progression across runs.</p>



<p class="wp-block-paragraph">For me, the roguelite meaning clicked when I realized that you can still make progress in the game after dying (AKA, you get to keep items, positions in-level, or powerups).</p>



<p class="wp-block-paragraph">Some popular roguelites are below:&nbsp;</p>



<h3 class="wp-block-heading">Roguelite examples</h3>



<ol class="wp-block-list">
<li><a href="https://store.steampowered.com/app/1336490/Against_the_Storm/">Against the Storm</a></li>



<li><a href="https://store.steampowered.com/app/2379780/Balatro/">Balatro</a></li>



<li><a href="https://store.steampowered.com/app/1942280/Brotato/">Brotato</a></li>



<li><a href="https://store.steampowered.com/app/262060/Darkest_Dungeon/">Darkest Dungeon</a></li>



<li><a href="https://store.steampowered.com/app/212680/FTL_Faster_Than_Light/">FTL: Faster Than Light</a></li>



<li><a href="https://store.steampowered.com/app/646570/Slay_the_Spire/">Slay the Spire</a></li>



<li><a href="https://store.steampowered.com/app/418530/Spelunky_2/">Spelunky 2</a></li>



<li><a href="https://store.steampowered.com/app/1794680/Vampire_Survivors/">Vampire Survivors</a></li>
</ol>



<div style="height:19px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="683" src="https://rogueranker.com/wp-content/uploads/2025/09/What-is-a-Roguelite-Section-1024x683.png" alt="A hooded man clutches a paper, appearing thoughtful, surrounded by a softly lit, mysterious atmosphere." class="wp-image-303" srcset="https://rogueranker.com/wp-content/uploads/2025/09/What-is-a-Roguelite-Section-1024x683.png 1024w, https://rogueranker.com/wp-content/uploads/2025/09/What-is-a-Roguelite-Section-300x200.png 300w, https://rogueranker.com/wp-content/uploads/2025/09/What-is-a-Roguelite-Section-768x512.png 768w, https://rogueranker.com/wp-content/uploads/2025/09/What-is-a-Roguelite-Section.png 1536w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">What is the Difference Between Roguelike and Roguelite?</h2>



<p class="wp-block-paragraph">To recamp, here’s a quick breakdown of roguelike vs. roguelite:</p>



<p class="wp-block-paragraph">
<table id="tablepress-4" class="tablepress tablepress-id-4">
<thead>
<tr class="row-1">
	<th class="column-1">Category</th><th class="column-2">Roguelike</th><th class="column-3">Roguelite</th>
</tr>
</thead>
<tbody class="row-striping row-hover">
<tr class="row-2">
	<td class="column-1">Definition</td><td class="column-2">Strictly modeled after Rogue; includes permadeath, RNG, and skill based mechanics.</td><td class="column-3">Inspired by roguelikes, but way more forgiving. Death resets the run, but you keep some progress.</td>
</tr>
<tr class="row-3">
	<td class="column-1">Permadeath</td><td class="column-2">No doubt, this is the most brutal style of gameplay. You die, you’re done. Time to start over.</td><td class="column-3">Far less punishing. If you die, you get to keep weapons, skills, or perks for the next attempt.</td>
</tr>
<tr class="row-4">
	<td class="column-1">Progression</td><td class="column-2">There is none. If you die, you restart the playthrough fresh.</td><td class="column-3">Players get persistent upgrades and meta-progression across runs.</td>
</tr>
<tr class="row-5">
	<td class="column-1">Gameplay Style</td><td class="column-2">Even the little wins feel massive. These are not idle games, expect to give it your all just to survive. Slow methodic play is encouraged.</td><td class="column-3">Usually real-time. Faster, flashier, and more accessible.</td>
</tr>
<tr class="row-6">
	<td class="column-1">Learning Curve</td><td class="column-2">These games are hard. You only get better by playing more and learning the nuances of the game.</td><td class="column-3">Easy to learn, hard to master. Players can get stronger over time, but skill is still a factor.</td>
</tr>
<tr class="row-7">
	<td class="column-1">Replayability</td><td class="column-2">Endless variety through procedural generation and player mastery.</td><td class="column-3">Still has variety, but with the satisfaction of steady progression and unlocks.</td>
</tr>
<tr class="row-8">
	<td class="column-1">Examples</td><td class="column-2">ADOM, Caves of Qud, Dungeon Crawl Stone Soup, NetHack.</td><td class="column-3">Hades, Dead Cells, Slay the Spire, Vampire Survivors.</td>
</tr>
<tr class="row-9">
	<td class="column-1">Design Philosophy</td><td class="column-2">“When you die, you start over.”</td><td class="column-3">“Before you die, you might grow a little stronger for the next game.”</td>
</tr>
</tbody>
</table>
<!-- #tablepress-4 from cache --></p>



<h2 class="wp-block-heading">So is it Roguelike or Roguelite?</h2>



<p class="wp-block-paragraph">It’s both, but not always.&nbsp;</p>



<p class="wp-block-paragraph">Let me explain.&nbsp;</p>



<p class="wp-block-paragraph">A roguelike can be called a roguelite because it still has permadeath and procedurally generated gameplay, which is the core.</p>



<p class="wp-block-paragraph">But a roguelite cannot always be called a roguelike because it usually breaks one or more “strict” rules, like no meta-progression.</p>



<p class="wp-block-paragraph">That said, some games straddle the line.&nbsp;</p>



<p class="wp-block-paragraph">They keep most roguelike elements and sneak in one or two roguelite traits.</p>



<p class="wp-block-paragraph">Let’s take two of my favorite games, for example:&nbsp;</p>



<p class="wp-block-paragraph"><strong>Brotato: </strong>You have procedural waves, permadeath, and runs that force tough build choices, which are fundamental <em>roguelike</em> traits. However, it also gives permanent unlocks and character variety between runs, which are <em>roguelite</em> traits.</p>



<p class="wp-block-paragraph">Side note: we have a pretty in-depth write up if you&#8217;re on the hunt for <a href="https://rogueranker.com/games-like-brotato/">games similar to Brotato</a>. </p>



<p class="wp-block-paragraph"><strong>Vampire Survivors:</strong> Thanks to procedural enemy swarms and permadeath, every run is different, but the gold-based meta progression puts the game in roguelite territory.</p>



<p class="wp-block-paragraph">So even though both games borrow from roguelikes, their persistent upgrade systems keep them firmly in the roguelite camp.</p>



<p class="wp-block-paragraph">It’s very similar to how not every rectangle is a square, but every square is a rectangle.</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="683" src="https://rogueranker.com/wp-content/uploads/2025/09/Roguelike-vs-Roguelite-Comparison-1024x683.png" alt="" class="wp-image-304" srcset="https://rogueranker.com/wp-content/uploads/2025/09/Roguelike-vs-Roguelite-Comparison-1024x683.png 1024w, https://rogueranker.com/wp-content/uploads/2025/09/Roguelike-vs-Roguelite-Comparison-300x200.png 300w, https://rogueranker.com/wp-content/uploads/2025/09/Roguelike-vs-Roguelite-Comparison-768x512.png 768w, https://rogueranker.com/wp-content/uploads/2025/09/Roguelike-vs-Roguelite-Comparison.png 1536w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">What About Bullet Hell and Bullet Heaven Games?</h2>



<p class="wp-block-paragraph">I also wanted to touch on <a href="https://rogueranker.com/bullet-heaven-vs-bullet-hell/">bullet hell and bullet heaven</a> since these are often thrown into the mix with these games.&nbsp;</p>



<p class="wp-block-paragraph"><strong>Bullet Hell games</strong> like <a href="https://enterthegungeon.com/">Enter the Gungeon</a> or <a href="https://store.steampowered.com/app/2150660/Touhou_New_World/">Touhou</a> are all about dodging insane patterns of projectiles. Bullet hell games often overlap with roguelites because they use permadeath and procedural runs, but the focus is on reflexes and dodging rather than grid-based tactics. If you&#8217;re interested, we have a guide on the <a href="https://rogueranker.com/best-bullet-hell-games/">best bullet hell games</a>.</p>



<p class="wp-block-paragraph"><strong>Bullet Heaven games</strong> like Vampire Survivors or Brotato flip the script (read <a href="https://rogueranker.com/brotato-review/">our review of Brotato</a>). Instead of weaving through enemy fire, you become the storm. Most of the time, your screen fills with enemies, and your character auto-attacks while you focus on movement and survival. We also have a guide on the <a href="https://rogueranker.com/best-bullet-heaven-games/">best bullet heaven games</a>.</p>



<p class="wp-block-paragraph">These genres borrow roguelite mechanics but aren’t roguelikes themselves.</p>



<h2 class="wp-block-heading">Roguelike FAQ: Is [Game] a Roguelike?</h2>



<p class="wp-block-paragraph">Here are some frequently asked questions surrounding certain games and whether they are roguelike or roguelite.</p>



<h3 class="wp-block-heading">Is Cult of the Lamb a Roguelike?</h3>



<p class="wp-block-paragraph">Cult of the Lamb is a Roguelite. The dungeon crawling has permadeath, but you return to your base where progression, upgrades, and followers carry over.</p>



<h3 class="wp-block-heading">Is Balatro a Roguelike?</h3>



<p class="wp-block-paragraph">Balatro is often called a roguelike deck-builder. Each run is unique, permadeath is always present, and the combination creates wildly different outcomes. However, there is some progression in the cards that you unlock throughout your playthroughs.&nbsp;</p>



<h3 class="wp-block-heading">Is Nightreign a Roguelike?</h3>



<p class="wp-block-paragraph">Nightreign is a standalone Elden Ring entry and isn’t positioned as a roguelike or roguelite.</p>



<h3 class="wp-block-heading">Is Fear and Hunger a Roguelike?</h3>



<p class="wp-block-paragraph">Fear and Hunger is a survival horror that borrows from roguelikes. It is brutal, permadeath exists, and runs can end quickly, but it is not a traditional roguelike.</p>



<h3 class="wp-block-heading">Is Blue Prince a Roguelike?</h3>



<p class="wp-block-paragraph">Blue Prince plays closer to a roguelike because it uses procedural mansion layouts, permadeath, and the house resets every day.</p>



<h3 class="wp-block-heading">Is Noita a Roguelike?</h3>



<p class="wp-block-paragraph">Noita is a roguelite action game. Runs are procedural and death is permanent, but unlocks move it away from a strict roguelike.</p>



<h3 class="wp-block-heading">Is Lethal Company a Roguelike?</h3>



<p class="wp-block-paragraph">Lethal Company is not a roguelike. It is a cooperative horror game with procedurally generated maps, but it doesn’t feature permadeath.</p>



<h3 class="wp-block-heading">Is Risk of Rain 2 a Roguelike?</h3>



<p class="wp-block-paragraph">Risk of Rain 2 is a self proclaimed action roguelike, but does feature a lot of progression. You unlock new items and playable survivors.</p>



<h3 class="wp-block-heading">Is Sifu a Roguelike?</h3>



<p class="wp-block-paragraph">Sifu is not a roguelike. It is an action brawler with aging mechanics rather than procedural levels or permadeath-driven design.</p>



<h3 class="wp-block-heading">Is Death’s Door a Roguelike?</h3>



<p class="wp-block-paragraph">Death’s Door is not a roguelike. It is a souls-like game. This is a fixed-world action-adventure with handcrafted environments and story progression.</p>



<h3 class="wp-block-heading">Is Pokémon Mystery Dungeon a Roguelike?</h3>



<p class="wp-block-paragraph">Pokémon Mystery Dungeon is a roguelike. It includes procedural dungeons, permadeath, grid-based movement, and turn-based actions.</p>



<h3 class="wp-block-heading">Is R.E.P.O. a Roguelike?</h3>



<p class="wp-block-paragraph">R.E.P.O&nbsp; is not a roguelike. It is a cooperative horror game where you complete jobs to satisfy your creator, much like the Corporation in Lethal Company.</p>



<h3 class="wp-block-heading">Is Inscryption a Roguelike?</h3>



<p class="wp-block-paragraph">Inscryption uses roguelike deckbuilding in parts of the game, but overall, it is more of a hybrid puzzle and horror experience.</p>



<h3 class="wp-block-heading">Is Spelunky a Roguelike?</h3>



<p class="wp-block-paragraph">Spelunky is a roguelike platformer. Community docs explicitly note it isn’t “pure,” but it is the archetypal roguelike-platformer..</p>



<h3 class="wp-block-heading">Is Darkest Dungeon a Roguelike?</h3>



<p class="wp-block-paragraph">Officially described as a roguelike RPG..</p>



<h3 class="wp-block-heading">Is Risk of Rain a Roguelike?</h3>



<p class="wp-block-paragraph">The original Risk of Rain is a roguelite. Like its sequel, it features procedural levels and permadeath, as well as progression systems that carry over across playthroughs.</p>



<h3 class="wp-block-heading">Is Nier: Automata a Roguelike?</h3>



<p class="wp-block-paragraph">Nier: Automata is not a roguelike. It is an action RPG with a fixed story and progression rather than procedural runs.</p>



<h3 class="wp-block-heading">Is Witchfire a Roguelike?</h3>



<p class="wp-block-paragraph">Witchfire is a roguelite FPS. It has procedural runs, permadeath, and progression systems that extend beyond a single playthrough.</p>



<h3 class="wp-block-heading">Is Vampire Survivors a Roguelike?</h3>



<p class="wp-block-paragraph">Vampire Survivors is a roguelite, often called a bullet heaven. Runs are procedural, and death ends the attempt, but permanent upgrades are unlocked with gold.</p>



<h3 class="wp-block-heading">Is The Binding of Isaac a Roguelike?</h3>



<p class="wp-block-paragraph">The Binding of Isaac is commonly labeled a roguelike action-adventure, but it does have meta-unlock systems, which is why people debate it.</p>



<h3 class="wp-block-heading">Is Dead Cells a Roguelike?</h3>



<p class="wp-block-paragraph">Dead Cells is a roguelite. Permadeath and procedural levels are present, but weapons and upgrades carry over across runs.</p>



<h3 class="wp-block-heading">Is Diablo a Roguelike?</h3>



<p class="wp-block-paragraph">Diablo is not a roguelike. It is an action RPG. While it draws inspiration from dungeon-crawling roguelikes, it is defined by fixed progression.</p>



<h3 class="wp-block-heading">Is Pacific Drive a Roguelike?</h3>



<p class="wp-block-paragraph">Pacific Drive is a survival roguelite. It features procedural runs, permadeath, and long-term progression between expeditions.</p>



<h3 class="wp-block-heading">Is Side Order a Roguelike?</h3>



<p class="wp-block-paragraph">Splatoon 3: Side Order is a roguelite expansion. It uses randomized runs, upgrades, and progression mechanics, but it is not a traditional roguelike.</p>



<h3 class="wp-block-heading">Is Deathloop a Roguelike?</h3>



<p class="wp-block-paragraph">Deathloop is not a roguelike. Its loop mechanic is tied to story and immersive sim design rather than roguelike systems.</p>



<h3 class="wp-block-heading">Is Bastion a Roguelike?</h3>



<p class="wp-block-paragraph">Bastion is not a roguelike. It is a story-driven action RPG with handcrafted levels and no permadeath.</p>



<h2 class="wp-block-heading">Wrapping Things Up</h2>



<p class="wp-block-paragraph">Roguelikes, not to be confused with roguelites, are a fun and challenging game that will leave you pissed and wanting more all in the same playthrough.&nbsp;</p>



<p class="wp-block-paragraph">As mentioned, when I first started my journey, the -like and -lite overlap sent me spiraling.</p>



<p class="wp-block-paragraph">I hope this guide clarifies things for others in a similar situation and makes everything less confusing.&nbsp;</p>



<p class="wp-block-paragraph">Take care and talk soon.</p>
<p>The post <a href="https://rogueranker.com/roguelike-vs-roguelite/">(Quick Answer) Roguelike vs. Roguelite &#8211; What’s the Difference?</a> appeared first on <a href="https://rogueranker.com">Rogue Ranker</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://rogueranker.com/roguelike-vs-roguelite/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced 

Served from: rogueranker.com @ 2026-06-20 19:35:27 by W3 Total Cache
-->