<?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>Rogue Ranker</title>
	<atom:link href="https://rogueranker.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://rogueranker.com/</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.1.1</generator>

<image>
	<url>https://rogueranker.com/wp-content/uploads/2025/09/cropped-Rogue-Ranker-Icon-32x32.png</url>
	<title>Rogue Ranker</title>
	<link>https://rogueranker.com/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Indie Game Music: Styles, Composers, and the Sound Behind the Scenes</title>
		<link>https://rogueranker.com/indie-game-music/</link>
		
		<dc:creator><![CDATA[Steven]]></dc:creator>
		<pubDate>Mon, 20 Apr 2026 21:55:35 +0000</pubDate>
				<category><![CDATA[Indie Games]]></category>
		<guid isPermaLink="false">https://rogueranker.com/?p=3579</guid>

					<description><![CDATA[<p>Indie Games Game Music 15 min read Updated April 2026 There&#8217;s a moment a lot of us have had mid-boss-fight, controller in hand, where the music finally lands right. Maybe it&#8217;s the Hades theme swelling over a final run, or the Risk of Rain 2 guitar loop kicking in on stage one. Whatever the game, [&#8230;]</p>
<p>The post <a href="https://rogueranker.com/indie-game-music/">Indie Game Music: Styles, Composers, and the Sound Behind the Scenes</a> appeared first on <a href="https://rogueranker.com">Rogue Ranker</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<!-- ============================================================
RogueRanker - Indie Game Music
WordPress Custom HTML Block - paste entire file contents
Light mode · White surface · Zero JS
Font exception: Cinzel Decorative 700 for H2 only
Fully crawlable · Mobile-first
============================================================ -->

<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+Decorative:wght@700&#038;display=swap" rel="stylesheet">

<style>.rr-post *{box-sizing:border-box;margin:0;padding:0;}.rr-post{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;color:#555466;line-height:1.75;font-size:16px;}.rr-post p{margin-bottom:1rem;color:#555466;}.rr-post ul{margin:0 0 1rem 0;padding:0;list-style:none;}.rr-post ul li{padding-left:22px;position:relative;color:#555466;margin-bottom:6px;}.rr-post ul li::before{content:"";position:absolute;left:0;top:9px;width:7px;height:7px;border-radius:50%;background:#FFBF00;}.rr-post h2{font-family:'Cinzel Decorative',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;font-size:clamp(24px,3.2vw,32px);font-weight:700;color:#111111;margin:2.75rem 0 1rem;line-height:1.25;letter-spacing:0.01em;}.rr-post h3{font-size:18px;font-weight:700;color:#111111;margin:1.75rem 0 0.5rem;line-height:1.3;}.rr-post a{color:#C99A00;text-decoration:underline;font-weight:600;}.rr-post a:hover{color:#A37B00;}.rr-post strong{font-weight:700;color:#111111;}.rr-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:1.25rem;}.rr-tag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:0.07em;text-transform:uppercase;background:#FFF8E1;color:#8B6A00;border:1px solid #FFBF00;padding:3px 10px;border-radius:99px;}.rr-meta-info{font-size:12px;color:#6B7280;}.rr-updated{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:#6B7280;background:#FAFAFA;border:1px solid #E5E7EB;padding:4px 10px;border-radius:99px;letter-spacing:0.04em;}.rr-updated-dot{width:6px;height:6px;border-radius:50%;background:#22C55E;}.rr-tldr{background:#FFFBEB;border-left:4px solid #FFBF00;border-radius:0 10px 10px 0;padding:18px 20px;margin:1.5rem 0 2rem;}.rr-tldr ul li{color:#3F3E4F;}.rr-tldr ul li::before{background:#FFBF00;}.rr-def{background:#FAFAFA;border:1px solid #E5E7EB;border-left:3px solid #FFBF00;border-radius:0 10px 10px 0;padding:16px 20px;margin:1.25rem 0;}.rr-def-term{font-size:13px;font-weight:800;color:#8B6A00;letter-spacing:0.04em;text-transform:uppercase;margin-bottom:6px;display:block;}.rr-def-desc{font-size:16px;color:#3F3E4F;line-height:1.75;}.rr-def-desc strong{color:#111111;}.rr-feat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:1.5rem 0;}.rr-feat-grid .rr-feat-card:last-child:nth-child(odd){grid-column:1 / -1;}.rr-feat-card{background:#FAFAFA;border:1px solid #E5E7EB;border-radius:10px;padding:18px;}.rr-feat-icon{width:36px;height:36px;background:#FFBF00;color:#111111;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;margin-bottom:10px;}.rr-feat-card .rr-feat-title{font-size:16px;font-weight:700;color:#111111;margin-bottom:8px;}.rr-feat-card p{font-size:16px;color:#555466;line-height:1.75;margin:0;}.rr-rank-card{background:#FFFFFF;border:1px solid #E5E7EB;border-radius:12px;padding:20px;margin-bottom:16px;display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:start;box-shadow:0 1px 2px rgba(0,0,0,0.04);}.rr-rank-num{width:48px;height:48px;background:#FFBF00;color:#111111;font-size:22px;font-weight:800;display:flex;align-items:center;justify-content:center;border-radius:10px;flex-shrink:0;}.rr-rank-body .rr-rank-title{font-size:16px;font-weight:700;color:#111111;margin:0 0 6px;}.rr-rank-body p{font-size:16px;color:#555466;margin-bottom:8px;line-height:1.75;}.rr-rank-body p:last-child{margin-bottom:0;}.rr-table-wrap{margin:1rem 0 1.5rem;}.rr-table{width:100%;border-collapse:collapse;font-size:14px;border:1.5px solid #E5E7EB;border-radius:10px;overflow:hidden;}.rr-table thead th{padding:12px 15px;text-align:left;font-size:14px;font-weight:700;color:#111111;background:#F8FAFC;border-bottom:1.5px solid #E5E7EB;letter-spacing:0.02em;text-transform:uppercase;}.rr-table thead th:first-child{border-left:3px solid #FFBF00;}.rr-table tbody tr:nth-child(even){background:#F8FAFC;}.rr-table tbody tr{background:#FFFFFF;}.rr-table tbody td{padding:12px 15px;color:#555466;border-bottom:1px solid #E5E7EB;vertical-align:top;font-size:16px;line-height:1.6;}.rr-table tbody tr:last-child td{border-bottom:none;}.rr-table tbody td:first-child{font-weight:600;color:#111111;border-left:3px solid transparent;}.rr-post .rr-stacked{display:none !important;}.rr-s-card{border:1.5px solid #E5E7EB;border-radius:10px;margin-bottom:8px;overflow:hidden;background:#FFFFFF;}.rr-s-head{background:#F8FAFC;padding:12px 14px;font-size:16px;font-weight:700;color:#111111;border-bottom:1.5px solid #E5E7EB;border-left:3px solid #FFBF00;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px;}.rr-s-row{display:flex;border-bottom:1px solid #F1F5F9;}.rr-s-row:last-child{border-bottom:none;}.rr-s-lbl{background:#FAFAFA;padding:11px 13px;font-size:13px;font-weight:600;color:#6B7280;min-width:130px;max-width:130px;border-right:1px solid #F1F5F9;line-height:1.4;}.rr-s-val{padding:11px 13px;color:#555466;font-size:16px;flex:1;line-height:1.6;}@media only screen and (max-width:640px){.rr-post .rr-table{display:none !important;}.rr-post .rr-stacked{display:block !important;}.rr-rank-card{grid-template-columns:1fr;gap:12px;}.rr-rank-num{width:40px;height:40px;font-size:18px;}.rr-feat-grid{grid-template-columns:1fr;}}</style>

<article class="rr-post">

<!-- ═══════════ META ═══════════ -->
<div class="rr-meta">
<span class="rr-tag">Indie Games</span>
<span class="rr-tag">Game Music</span>
<span class="rr-meta-info">15 min read</span>
<span class="rr-updated"><span class="rr-updated-dot"></span>Updated April 2026</span>
</div>

<!-- ═══════════ INTRO ═══════════ -->
<p>There&#8217;s a moment a lot of us have had mid-boss-fight, controller in hand, where the music finally lands right. Maybe it&#8217;s the Hades theme swelling over a final run, or the Risk of Rain 2 guitar loop kicking in on stage one. Whatever the game, the soundtrack stops feeling like background and starts feeling like the game is talking to you directly.</p>

<p>That&#8217;s the test a great score passes, and more indie games are passing it than ever. Undertale, Hollow Knight, Stardew Valley, Hades: the list keeps getting longer.</p>

<p>I&#8217;ve stacked plenty of hours in indie roguelikes (200+ in Brotato, 100+ in Vampire Survivors, plenty more in Risk of Rain 2), which means I&#8217;ve lived with a fair number of these soundtracks in the background for a long time. The pattern I keep noticing is the same: the indie scene is quietly outproducing most AAA studios on music that actually sticks.</p>

<p>I wanted to put this together because the story of why indie game music keeps outclassing AAA tends to get told in bits and pieces.</p>

<p>Below, you&#8217;ll find what the term actually means, the soundtracks worth knowing, the main styles, the composers behind them, and where to keep listening once the credits roll.</p>

<!-- ═══════════ TL;DR ═══════════ -->
<h2>TL;DR: What Makes Indie Game Music Hit So Hard</h2>

<p>Here is a quick overview before we get into the details.</p>

<div class="rr-tldr">
<ul>
<li>Indie game music is the original score or soundtrack written for independently developed games, usually by one composer working alongside the dev team.</li>
<li>Smaller budgets and no corporate approval chain lead to riskier, weirder, more memorable work than most AAA releases.</li>
<li>The dominant styles are chiptune, synthwave, orchestral indie, folk, ambient, and jazz, picked to match the game&#8217;s tone rather than an industry template.</li>
<li>Must-hear soundtracks include Hades, Celeste, Undertale, Hollow Knight, Risk of Rain 2, Cuphead, and Stardew Valley.</li>
<li>Spotify and YouTube work for passive listening, but Bandcamp is where your money actually reaches the composer.</li>
</ul>
</div>

<!-- ═══════════ SECTION: WHAT INDIE GAME MUSIC ACTUALLY MEANS ═══════════ -->
<h2>What Indie Game Music Actually Means</h2>

<p>Quick definitions before we get into the fun stuff.</p>

<div class="rr-def">
<span class="rr-def-term">Indie Game Music</span>
<div class="rr-def-desc">Any original score or soundtrack composed for an independently developed video game. That usually means one composer or a very small team working directly with the developer, writing music that fits the game rather than fitting a template. There is no publisher review committee and no AAA orchestra on retainer, just a laptop, a DAW, and a direct line to the person designing the boss fight.</div>
</div>

<p>The word &#8220;indie&#8221; trips people up.</p>

<p>In games, it refers to a development model rather than a musical style. An indie game is one made without a big publisher&#8217;s money behind it, which is a business definition, not a creative one.</p>

<p>So why is indie music called indie in the first place?</p>

<p>The label started in music, applied to bands released on independent labels, and later crossed over into film and games to describe the same small-team, self-funded setup. The definition of an indie game today is more or less identical: made independently, usually without a major publisher.</p>

<p>What that means in practice is that indie game music is not a genre. You can have chiptune indie, orchestral indie, synthwave indie, jazz indie, folk indie, and ambient indie, all linked by how the music was made, not by any shared sound.</p>

<p>Roguelikes are a subset of indie games with the strongest reputation for memorable scores, which I get into further down. If you want the fuller genre context first, my <a href="https://rogueranker.com/roguelike-vs-roguelite/">roguelike vs. roguelite breakdown</a> covers it.</p>

<!-- ═══════════ SECTION: 5 REASONS ═══════════ -->
<h2>5 Reasons Indie Game Soundtracks Outperform AAA Scores</h2>

<p>A handful of structural reasons explain why the indie scene keeps producing music that sticks.</p>

<div class="rr-feat-grid">

<div class="rr-feat-card">
<div class="rr-feat-icon">01</div>
<div class="rr-feat-title">One Composer, One Vision</div>
<p>Most indie soundtracks are written by a single person who owns every note. That single-perspective cohesion is why <a href="https://en.wikipedia.org/wiki/Darren_Korb" rel="noopener noreferrer">Darren Korb&#8217;s</a> Hades OST feels like one continuous piece of art rather than a playlist. In AAA, scores are frequently divided across three or four composers with a music director stitching it together, and you can hear it.</p>
</div>

<div class="rr-feat-card">
<div class="rr-feat-icon">02</div>
<div class="rr-feat-title">Composers Are Embedded With the Dev Team</div>
<p>The music side shows up early in indie projects, not as a final polish step. When a composer shares a Discord with the designer and the animator, they can rewrite a boss theme in response to a gameplay tweak the same day. Big-studio scores rarely benefit from that tight feedback loop because music typically gets brought in late in development.</p>
</div>

<div class="rr-feat-card">
<div class="rr-feat-icon">03</div>
<div class="rr-feat-title">Creative Constraints Force Distinctive Choices</div>
<p>A composer with no money for a live orchestra has to make the limitation sound like a feature. Whether the workaround is chiptune, solo piano, or a single synth, the constraint is usually what gives the score its identity. Jake Kaufman turned Shovel Knight&#8217;s budget into the game&#8217;s entire sonic signature, and that 8-bit aesthetic has aged better than most AAA sample libraries from the same era.</p>
</div>

<div class="rr-feat-card">
<div class="rr-feat-icon">04</div>
<div class="rr-feat-title">No Approval Pipeline Means Weirder Music Wins</div>
<p>AAA composers routinely have risky ideas nerfed in review. Indie composers answer to the developer, full stop, which is how you end up with a prog rock album backing a roguelike (Risk of Rain 2) or a big-band jazz score fronting a cartoon platformer (Cuphead). Neither would survive a corporate music department.</p>
</div>

<div class="rr-feat-card">
<div class="rr-feat-icon">05</div>
<div class="rr-feat-title">Indie Soundtracks Are Treated as Standalone Albums</div>
<p>Most of them are released on Bandcamp and Spotify as real records, not background stems. When composers know the score has to survive outside the game, they write accordingly. The best of these soundtracks double as music for indie games and as listenable records on their own.</p>
</div>

</div>

<!-- ═══════════ SECTION: 7 ICONIC SOUNDTRACKS ═══════════ -->
<h2>7 Iconic Indie Game Soundtracks Every Player Should Hear</h2>

<p>Here are the indie soundtracks worth spending real time with, whether you&#8217;ve played the games or not.</p>

<div class="rr-rank-card">
<div class="rr-rank-num">1</div>
<div class="rr-rank-body">
<div class="rr-rank-title">Hades: The Folk Rock Roguelike Score That Broke Through</div>
<p>Darren Korb&#8217;s Hades score is the moment the roguelike genre realized music could do heavy narrative lifting.</p>
<p>The headliners are &#8220;Good Riddance,&#8221; &#8220;In the Blood,&#8221; and &#8220;God of the Dead,&#8221; but the trick is not any single track. Korb layered vocals (with longtime collaborator Ashley Barrett) over folk-rock instrumentation and wove recurring melodies across the soundtrack, so every time you meet a new chamber or boss, you feel echoes of something you have already heard.</p>
<p>For an isometric roguelike, that level of cohesive scoring felt cinematic in a way the genre had not earned before. If you want the rest of the genre&#8217;s heavyweights for context, my <a href="https://rogueranker.com/best-roguelike-games/">best roguelike games roundup</a> has the full list.</p>
</div>
</div>

<div class="rr-rank-card">
<div class="rr-rank-num">2</div>
<div class="rr-rank-body">
<div class="rr-rank-title">Celeste: A Chiptune Masterclass With Emotional Weight</div>
<p><a href="https://en.wikipedia.org/wiki/Lena_Raine" rel="noopener noreferrer">Lena Raine&#8217;s</a> Celeste score is what happens when chiptune grows up and gets therapy.</p>
<p>The standout is &#8220;Resurrections,&#8221; one of the most emotionally loaded tracks on the whole album, but the full soundtrack moves in sync with Madeline&#8217;s mental health arc. There is a lightness in the early chapters that slowly gets heavier, more dissonant, more weighed down, then resolves. The B-sides add chip-infused remixes that feel like the same songs viewed from underwater.</p>
<p>For a game explicitly about anxiety and depression, the music never softens the subject. That emotional honesty is what made Raine a household name in indie scoring almost overnight.</p>
</div>
</div>

<div class="rr-rank-card">
<div class="rr-rank-num">3</div>
<div class="rr-rank-body">
<div class="rr-rank-title">Undertale: The Leitmotif Experiment That Changed Indie Scoring</div>
<p><a href="https://en.wikipedia.org/wiki/Toby_Fox" rel="noopener noreferrer">Toby Fox&#8217;s</a> Undertale soundtrack is a small miracle of musical recycling.</p>
<p>The same handful of melodies keep reappearing in different contexts, arranged for different characters and moods, until by the end of the game every scene carries the weight of every earlier one. &#8220;Megalovania,&#8221; &#8220;Hopes and Dreams,&#8221; and &#8220;Dogsong&#8221; are the obvious picks, but the real trick is how themes like &#8220;Once Upon a Time&#8221; show up remixed across dozens of other tracks.</p>
<p>Every indie composer after Undertale who leans on leitmotifs is working inside a template Fox built almost single-handedly. The <a href="https://en.wikipedia.org/wiki/Undertale_Soundtrack" rel="noopener noreferrer">Undertale soundtrack</a> was composed entirely in FL Studio by a self-taught musician, which puts it somewhere on the spectrum between impressive and absurd depending on how you look at it.</p>
</div>
</div>

<div class="rr-rank-card">
<div class="rr-rank-num">4</div>
<div class="rr-rank-body">
<div class="rr-rank-title">Hollow Knight: Orchestral Indie at Its Peak</div>
<p>Christopher Larkin composed the entire Hollow Knight soundtrack solo, and it sounds like a full orchestra recorded it over six months.</p>
<p>Larkin pulls mournful strings, dense brass swells, and delicate piano moments out of virtual instruments that would make most AAA scoring teams nervous about their jobs. &#8220;City of Tears&#8221; is the track most people lock onto first, and you can hear exactly why within the opening fifteen seconds.</p>
<p>The Hollow Knight OST is probably the cleanest living argument for what one composer working with total creative ownership can produce on an indie budget.</p>
</div>
</div>

<div class="rr-rank-card">
<div class="rr-rank-num">5</div>
<div class="rr-rank-body">
<div class="rr-rank-title">Risk of Rain 2: Progressive Rock in a Roguelike</div>
<p><a href="https://chrischristodoulou.bandcamp.com/" rel="noopener noreferrer">Chris Christodoulou&#8217;s</a> Risk of Rain 2 score is a progressive rock album that happens to also be a video game soundtrack.</p>
<p>Every stage has its own musical identity, and tracks like &#8220;The Rain Formerly Known As Purple&#8221; have become standalone favorites in fan playlists. The album cuts are long, layered, and clearly built to be listened to independently of the gameplay. I have personally put this album on driving playlists, so no judgment from me if you do too.</p>
<p>There are people who have never played Risk of Rain 2 but own the soundtrack, which tells you everything about where this composer sits in the genre.</p>
</div>
</div>

<div class="rr-rank-card">
<div class="rr-rank-num">6</div>
<div class="rr-rank-body">
<div class="rr-rank-title">Cuphead: Big-Band Jazz Built From Scratch</div>
<p>Kristofer Maddigan recorded Cuphead&#8217;s big-band jazz score with live musicians, which is borderline unheard of at indie budgets.</p>
<p>The 1930s animation aesthetic does not work without sonic authenticity, and synth brass would have killed it in ten seconds. Maddigan brought in session players, arranged for actual horns and rhythm sections, and built something that could have shared a radio block with Cab Calloway in 1936. I am not exaggerating.</p>
<p>The Cuphead OST earned attention well beyond the gaming press, which is not something indie game music usually pulls off.</p>
</div>
</div>

<div class="rr-rank-card">
<div class="rr-rank-num">7</div>
<div class="rr-rank-body">
<div class="rr-rank-title">Stardew Valley: Folk Pastoral Comfort Music</div>
<p>ConcernedApe (Eric Barone) composed the entire Stardew Valley soundtrack himself, in addition to writing, programming, and illustrating the game.</p>
<p>The seasonal themes do most of the heavy lifting. &#8220;Spring (It&#8217;s a Big World Outside)&#8221; hits differently than &#8220;Winter (Nocturne of Ice),&#8221; and the cumulative effect across an in-game year is one of the most memorable rhythms in farming sim history. Folk-flavored nostalgia with layered flute, strings, and acoustic guitar carries the mood of every town interaction.</p>
<p>Stardew Valley is the textbook case of how a one-person dev team can turn a hobby into a career by accident. Barone never intended to be a composer. Somehow, that makes the soundtrack more impressive.</p>
</div>
</div>

<!-- ═══════════ SECTION: 6 CORE STYLES ═══════════ -->
<h2>6 Core Styles That Define Indie Game Music</h2>

<p>The umbrella covers a lot of ground, so here are the six musical styles that keep showing up more than any others.</p>

<h3>1. Chiptune</h3>

<p>The 8-bit and 16-bit sound you associate with the Game Boy and SNES era, pushed into modern production.</p>

<p>Shovel Knight is the textbook example, and the Celeste B-sides lean into chiptune too. Plenty of bullet heaven games use retro and chiptune palettes for the same reason Shovel Knight does: the constraint produces the hook. For the genre&#8217;s full lineup, my <a href="https://rogueranker.com/games-like-vampire-survivors/">games like Vampire Survivors list</a> has the roundup.</p>

<h3>2. Synthwave</h3>

<p>Propulsive, often dark, usually built around analog-style synths pulled straight from 1980s retro-neon aesthetics.</p>

<p>Hotline Miami is the poster child. Katana Zero and Furi make the same case in more recent releases, and the style pairs especially well with stylish action games where momentum drives the score.</p>

<h3>3. Orchestral Indie</h3>

<p>Cinematic scoring built out of sample libraries and restraint rather than a full orchestra.</p>

<p>Hollow Knight, Ori and the Blind Forest, and Hades all fit here, each taking a slightly different approach to the same impossible mandate. The sample quality in modern virtual instruments has gotten good enough that a single composer can produce something that feels like a summer blockbuster.</p>

<h3>4. Ambient Atmosphere</h3>

<p>Minimalist, spatial scoring that leans into mood over melody.</p>

<p>Gris and Inside both use ambient atmospheric music to striking effect. The music is doing mood work rather than melody work, which sounds boring on paper and is extraordinary in practice.</p>

<h3>5. Jazz and Big Band</h3>

<p>Rare in indie but spectacular when it shows up.</p>

<p>Cuphead is the obvious reference, and it set a very high bar for anyone else trying to follow. A handful of indies borrow jazz elements for noir and neo-noir flavor without going full 1930s radio, which is usually the right call unless you can afford live players.</p>

<h3>6. Folk and Acoustic</h3>

<p>Warm, hand-crafted instrumentation that carries most of the emotional weight of the indie scene.</p>

<p>Stardew Valley, Night in the Woods, and Chicory all use folk and acoustic scoring to shape the tone of every scene. This is the style where a single composer with a guitar and a decent microphone can still outpace a studio with a full session budget.</p>

<!-- STYLES TABLE -->
<div class="rr-table-wrap">
<table class="rr-table">
<thead>
<tr>
<th scope="col">Style</th>
<th scope="col">Example Games</th>
<th scope="col">Sonic Vibe</th>
</tr>
</thead>
<tbody>
<tr><td>Chiptune</td><td>Shovel Knight, Undertale, Celeste (B-sides)</td><td>8-bit and 16-bit nostalgia, punchy and melodic</td></tr>
<tr><td>Synthwave</td><td>Hotline Miami, Katana Zero, Furi</td><td>Retro neon, propulsive, often dark</td></tr>
<tr><td>Orchestral Indie</td><td>Hollow Knight, Ori and the Blind Forest, Hades</td><td>Cinematic sweep without the AAA budget</td></tr>
<tr><td>Ambient Atmosphere</td><td>Gris, Inside, Journey-adjacent indies</td><td>Minimalist, emotional, spatial</td></tr>
<tr><td>Jazz and Big Band</td><td>Cuphead, Jet Set Radio (indie-adjacent)</td><td>Era-authentic live instrumentation</td></tr>
<tr><td>Folk and Acoustic</td><td>Stardew Valley, Night in the Woods, Chicory</td><td>Warm, pastoral, hand-crafted</td></tr>
</tbody>
</table>
<div class="rr-stacked">
<div class="rr-s-card">
<div class="rr-s-head">Chiptune</div>
<div class="rr-s-row"><div class="rr-s-lbl">Example Games</div><div class="rr-s-val">Shovel Knight, Undertale, Celeste (B-sides)</div></div>
<div class="rr-s-row"><div class="rr-s-lbl">Sonic Vibe</div><div class="rr-s-val">8-bit and 16-bit nostalgia, punchy and melodic</div></div>
</div>
<div class="rr-s-card">
<div class="rr-s-head">Synthwave</div>
<div class="rr-s-row"><div class="rr-s-lbl">Example Games</div><div class="rr-s-val">Hotline Miami, Katana Zero, Furi</div></div>
<div class="rr-s-row"><div class="rr-s-lbl">Sonic Vibe</div><div class="rr-s-val">Retro neon, propulsive, often dark</div></div>
</div>
<div class="rr-s-card">
<div class="rr-s-head">Orchestral Indie</div>
<div class="rr-s-row"><div class="rr-s-lbl">Example Games</div><div class="rr-s-val">Hollow Knight, Ori and the Blind Forest, Hades</div></div>
<div class="rr-s-row"><div class="rr-s-lbl">Sonic Vibe</div><div class="rr-s-val">Cinematic sweep without the AAA budget</div></div>
</div>
<div class="rr-s-card">
<div class="rr-s-head">Ambient Atmosphere</div>
<div class="rr-s-row"><div class="rr-s-lbl">Example Games</div><div class="rr-s-val">Gris, Inside, Journey-adjacent indies</div></div>
<div class="rr-s-row"><div class="rr-s-lbl">Sonic Vibe</div><div class="rr-s-val">Minimalist, emotional, spatial</div></div>
</div>
<div class="rr-s-card">
<div class="rr-s-head">Jazz and Big Band</div>
<div class="rr-s-row"><div class="rr-s-lbl">Example Games</div><div class="rr-s-val">Cuphead, Jet Set Radio (indie-adjacent)</div></div>
<div class="rr-s-row"><div class="rr-s-lbl">Sonic Vibe</div><div class="rr-s-val">Era-authentic live instrumentation</div></div>
</div>
<div class="rr-s-card">
<div class="rr-s-head">Folk and Acoustic</div>
<div class="rr-s-row"><div class="rr-s-lbl">Example Games</div><div class="rr-s-val">Stardew Valley, Night in the Woods, Chicory</div></div>
<div class="rr-s-row"><div class="rr-s-lbl">Sonic Vibe</div><div class="rr-s-val">Warm, pastoral, hand-crafted</div></div>
</div>
</div>
</div>

<p>Some indie games skip commissioning original scores entirely and license tracks from real indie music bands instead. Life is Strange is the clearest example, with Alt-J, Mogwai, Bright Eyes, and Sparklehorse carrying a lot of the game&#8217;s emotional weight. The Tony Hawk-adjacent skating revival games lean on the same model.</p>

<p>If you are wondering what indie music actually sounds like inside a game, those licensed soundtracks are the indie music examples worth listening to first. The line between indie music and indie game music intentionally blurs in cases like these, and the games usually come out stronger for it.</p>

<!-- ═══════════ SECTION: COMPOSERS ═══════════ -->
<h2>Composers Who Shaped Modern Indie Game Music</h2>

<p>A short spotlight on the indie game music composers who have done more to shape the sound of the scene than any studio ever could.</p>

<p>One composer working with complete creative ownership leaves a louder fingerprint than a team of five working within constraints. The names below are attached to most of the soundtracks I covered above, and to most of the soundtracks that will show up on lists like this one for the next decade.</p>

<!-- COMPOSERS TABLE -->
<div class="rr-table-wrap">
<table class="rr-table">
<thead>
<tr>
<th scope="col">Composer</th>
<th scope="col">Notable Games</th>
<th scope="col">Signature Style</th>
</tr>
</thead>
<tbody>
<tr><td>Darren Korb</td><td>Bastion, Transistor, Hades</td><td>Folk rock layered with electronica and live vocals</td></tr>
<tr><td>Chris Christodoulou</td><td>Risk of Rain, Risk of Rain 2, Deadbolt</td><td>Progressive rock and metal with jazz fusion</td></tr>
<tr><td>Toby Fox</td><td>Undertale, Deltarune</td><td>Leitmotif-heavy chiptune with orchestral payoffs</td></tr>
<tr><td>Lena Raine</td><td>Celeste, Chicory, Minecraft (Caves and Cliffs)</td><td>Emotional piano, chiptune, and ambient electronic</td></tr>
<tr><td>Christopher Larkin</td><td>Hollow Knight</td><td>Solo orchestral and piano compositions</td></tr>
<tr><td>Gareth Coker</td><td>Ori and the Blind Forest, Ori and the Will of the Wisps</td><td>Cinematic orchestral scoring</td></tr>
<tr><td>Kristofer Maddigan</td><td>Cuphead</td><td>1930s big-band jazz with live players</td></tr>
<tr><td>ConcernedApe (Eric Barone)</td><td>Stardew Valley</td><td>Folk, pastoral, seasonally themed</td></tr>
</tbody>
</table>
<div class="rr-stacked">
<div class="rr-s-card">
<div class="rr-s-head">Darren Korb</div>
<div class="rr-s-row"><div class="rr-s-lbl">Notable Games</div><div class="rr-s-val">Bastion, Transistor, Hades</div></div>
<div class="rr-s-row"><div class="rr-s-lbl">Signature Style</div><div class="rr-s-val">Folk rock layered with electronica and live vocals</div></div>
</div>
<div class="rr-s-card">
<div class="rr-s-head">Chris Christodoulou</div>
<div class="rr-s-row"><div class="rr-s-lbl">Notable Games</div><div class="rr-s-val">Risk of Rain, Risk of Rain 2, Deadbolt</div></div>
<div class="rr-s-row"><div class="rr-s-lbl">Signature Style</div><div class="rr-s-val">Progressive rock and metal with jazz fusion</div></div>
</div>
<div class="rr-s-card">
<div class="rr-s-head">Toby Fox</div>
<div class="rr-s-row"><div class="rr-s-lbl">Notable Games</div><div class="rr-s-val">Undertale, Deltarune</div></div>
<div class="rr-s-row"><div class="rr-s-lbl">Signature Style</div><div class="rr-s-val">Leitmotif-heavy chiptune with orchestral payoffs</div></div>
</div>
<div class="rr-s-card">
<div class="rr-s-head">Lena Raine</div>
<div class="rr-s-row"><div class="rr-s-lbl">Notable Games</div><div class="rr-s-val">Celeste, Chicory, Minecraft (Caves and Cliffs)</div></div>
<div class="rr-s-row"><div class="rr-s-lbl">Signature Style</div><div class="rr-s-val">Emotional piano, chiptune, and ambient electronic</div></div>
</div>
<div class="rr-s-card">
<div class="rr-s-head">Christopher Larkin</div>
<div class="rr-s-row"><div class="rr-s-lbl">Notable Games</div><div class="rr-s-val">Hollow Knight</div></div>
<div class="rr-s-row"><div class="rr-s-lbl">Signature Style</div><div class="rr-s-val">Solo orchestral and piano compositions</div></div>
</div>
<div class="rr-s-card">
<div class="rr-s-head">Gareth Coker</div>
<div class="rr-s-row"><div class="rr-s-lbl">Notable Games</div><div class="rr-s-val">Ori and the Blind Forest, Ori and the Will of the Wisps</div></div>
<div class="rr-s-row"><div class="rr-s-lbl">Signature Style</div><div class="rr-s-val">Cinematic orchestral scoring</div></div>
</div>
<div class="rr-s-card">
<div class="rr-s-head">Kristofer Maddigan</div>
<div class="rr-s-row"><div class="rr-s-lbl">Notable Games</div><div class="rr-s-val">Cuphead</div></div>
<div class="rr-s-row"><div class="rr-s-lbl">Signature Style</div><div class="rr-s-val">1930s big-band jazz with live players</div></div>
</div>
<div class="rr-s-card">
<div class="rr-s-head">ConcernedApe (Eric Barone)</div>
<div class="rr-s-row"><div class="rr-s-lbl">Notable Games</div><div class="rr-s-val">Stardew Valley</div></div>
<div class="rr-s-row"><div class="rr-s-lbl">Signature Style</div><div class="rr-s-val">Folk, pastoral, seasonally themed</div></div>
</div>
</div>
</div>

<p>Most of these composers have released their soundtracks as standalone albums on Bandcamp and Spotify, which is where the next section picks up.</p>

<!-- ═══════════ SECTION: TOOLS ═══════════ -->
<h2>What Tools Power Indie Game Soundtracks</h2>

<p>A quick look at the software actually behind these soundtracks, since indie composers tend to work with far more accessible tool kits than AAA teams.</p>

<p>Indie composers do not have Hans Zimmer&#8217;s rig. They do not have a Hollywood session budget. They have a laptop, a DAW, and however much time they can steal from their day jobs. That constraint is part of why the music for indie games tends to feel more personal than the average tentpole score.</p>

<p>Here is the landscape of what indie composers actually reach for:</p>

<!-- TOOLS TABLE -->
<div class="rr-table-wrap">
<table class="rr-table">
<thead>
<tr>
<th scope="col">Tool Type</th>
<th scope="col">Examples</th>
<th scope="col">Best For</th>
</tr>
</thead>
<tbody>
<tr><td>Paid DAWs</td><td>FL Studio, Ableton Live, Logic Pro, Reaper</td><td>Full-scale composition, industry-standard workflow</td></tr>
<tr><td>Free Desktop DAWs</td><td>LMMS, Cakewalk, GarageBand</td><td>Beginners on a budget, Windows and Mac users</td></tr>
<tr><td>Browser-Based DAWs</td><td>8-bit Studio by Unblockedgame</td><td>Chiptune and retro composition on any OS, no install</td></tr>
<tr><td>Chiptune Trackers</td><td>FamiTracker, DefleMask, SunVox</td><td>Authentic 8-bit and 16-bit sound design</td></tr>
<tr><td>Live Recording</td><td>Any DAW plus quality microphones</td><td>Jazz, folk, and orchestral indie scoring</td></tr>
</tbody>
</table>
<div class="rr-stacked">
<div class="rr-s-card">
<div class="rr-s-head">Paid DAWs</div>
<div class="rr-s-row"><div class="rr-s-lbl">Examples</div><div class="rr-s-val">FL Studio, Ableton Live, Logic Pro, Reaper</div></div>
<div class="rr-s-row"><div class="rr-s-lbl">Best For</div><div class="rr-s-val">Full-scale composition, industry-standard workflow</div></div>
</div>
<div class="rr-s-card">
<div class="rr-s-head">Free Desktop DAWs</div>
<div class="rr-s-row"><div class="rr-s-lbl">Examples</div><div class="rr-s-val">LMMS, Cakewalk, GarageBand</div></div>
<div class="rr-s-row"><div class="rr-s-lbl">Best For</div><div class="rr-s-val">Beginners on a budget, Windows and Mac users</div></div>
</div>
<div class="rr-s-card">
<div class="rr-s-head">Browser-Based DAWs</div>
<div class="rr-s-row"><div class="rr-s-lbl">Examples</div><div class="rr-s-val">8-bit Studio by Unblockedgame</div></div>
<div class="rr-s-row"><div class="rr-s-lbl">Best For</div><div class="rr-s-val">Chiptune and retro composition on any OS, no install</div></div>
</div>
<div class="rr-s-card">
<div class="rr-s-head">Chiptune Trackers</div>
<div class="rr-s-row"><div class="rr-s-lbl">Examples</div><div class="rr-s-val">FamiTracker, DefleMask, SunVox</div></div>
<div class="rr-s-row"><div class="rr-s-lbl">Best For</div><div class="rr-s-val">Authentic 8-bit and 16-bit sound design</div></div>
</div>
<div class="rr-s-card">
<div class="rr-s-head">Live Recording</div>
<div class="rr-s-row"><div class="rr-s-lbl">Examples</div><div class="rr-s-val">Any DAW plus quality microphones</div></div>
<div class="rr-s-row"><div class="rr-s-lbl">Best For</div><div class="rr-s-val">Jazz, folk, and orchestral indie scoring</div></div>
</div>
</div>
</div>

<p>The browser-based category is the one most people sleep on. The barrier to entry for chiptune and retro composition has never been lower.</p>

<p>For anyone curious to try writing something without installing or licensing, Unblockedgame&#8217;s <a href="https://unblockedgame.app/music-tools/8-bit-studio/" rel="noopener noreferrer">free 8-bit Studio</a> runs in any modern browser. That matters for indie game developers looking for music tools without access to a premium DAW license, since the same session works across Windows, Mac, Linux, or a Chromebook with no setup.</p>

<p>The honest truth with any of these tools is that the software matters less than the constraint it imposes. A composer using a browser DAW and a composer using Ableton with a full plugin library can both produce great scoring work. The constraint is the character&#8217;s origin.</p>

<!-- ═══════════ SECTION: LISTENING PLATFORMS ═══════════ -->
<h2>Where You Can Listen to These Soundtracks Outside the Game</h2>

<p>The credits roll on Hollow Knight and you still hear &#8220;City of Tears&#8221; in your head three days later. Here is where you actually go to keep these soundtracks in your life.</p>

<p>Most composers live on Spotify and YouTube, but Bandcamp is where your money actually reaches them. Streaming platforms pay fractions of a cent per play, while Bandcamp lets you buy the album directly with a much smaller platform cut. If you care about supporting the composer beyond queueing up the OST, Bandcamp is the move.</p>

<!-- PLATFORMS TABLE -->
<div class="rr-table-wrap">
<table class="rr-table">
<thead>
<tr>
<th scope="col">Platform</th>
<th scope="col">What You Get</th>
<th scope="col">Best For</th>
</tr>
</thead>
<tbody>
<tr><td>Spotify</td><td>Official OSTs from most major indies, curated playlists</td><td>Passive listening and discovery</td></tr>
<tr><td>Bandcamp</td><td>Composer-uploaded albums, often pay-what-you-want</td><td>Supporting composers directly</td></tr>
<tr><td>YouTube</td><td>Full OSTs, fan uploads, live performances, covers</td><td>Deep dives and new discovery</td></tr>
<tr><td>Steam</td><td>Soundtrack DLC bundled with games</td><td>Bundled purchases and completionists</td></tr>
<tr><td>Composer websites</td><td>Exclusive tracks, stems, behind-the-scenes</td><td>Superfans and aspiring composers</td></tr>
</tbody>
</table>
<div class="rr-stacked">
<div class="rr-s-card">
<div class="rr-s-head">Spotify</div>
<div class="rr-s-row"><div class="rr-s-lbl">What You Get</div><div class="rr-s-val">Official OSTs from most major indies, curated playlists</div></div>
<div class="rr-s-row"><div class="rr-s-lbl">Best For</div><div class="rr-s-val">Passive listening and discovery</div></div>
</div>
<div class="rr-s-card">
<div class="rr-s-head">Bandcamp</div>
<div class="rr-s-row"><div class="rr-s-lbl">What You Get</div><div class="rr-s-val">Composer-uploaded albums, often pay-what-you-want</div></div>
<div class="rr-s-row"><div class="rr-s-lbl">Best For</div><div class="rr-s-val">Supporting composers directly</div></div>
</div>
<div class="rr-s-card">
<div class="rr-s-head">YouTube</div>
<div class="rr-s-row"><div class="rr-s-lbl">What You Get</div><div class="rr-s-val">Full OSTs, fan uploads, live performances, covers</div></div>
<div class="rr-s-row"><div class="rr-s-lbl">Best For</div><div class="rr-s-val">Deep dives and new discovery</div></div>
</div>
<div class="rr-s-card">
<div class="rr-s-head">Steam</div>
<div class="rr-s-row"><div class="rr-s-lbl">What You Get</div><div class="rr-s-val">Soundtrack DLC bundled with games</div></div>
<div class="rr-s-row"><div class="rr-s-lbl">Best For</div><div class="rr-s-val">Bundled purchases and completionists</div></div>
</div>
<div class="rr-s-card">
<div class="rr-s-head">Composer websites</div>
<div class="rr-s-row"><div class="rr-s-lbl">What You Get</div><div class="rr-s-val">Exclusive tracks, stems, behind-the-scenes</div></div>
<div class="rr-s-row"><div class="rr-s-lbl">Best For</div><div class="rr-s-val">Superfans and aspiring composers</div></div>
</div>
</div>
</div>

<!-- ═══════════ SECTION: FAQ ═══════════ -->
<h2>Frequently Asked Questions</h2>

<p>Below are the most common questions we hear from players and devs about indie game music.</p>

<h3>Are Indie Game Soundtracks Copyright Free?</h3>

<p>Most indie game soundtracks are fully copyrighted by the composer, the developer, or the publisher, even when the album is available for free on Spotify or Bandcamp.</p>

<p>Availability and usage rights are not the same thing. You can stream an OST anywhere you want for personal listening, but dropping it into a YouTube video, a Twitch stream, or your own game is a separate question. For music for indie games or your own content, the royalty-free route (Epidemic Sound, Pixabay&#8217;s free library, Incompetech) is the safer path.</p>

<h3>Do Indie Games Usually Have Original or Licensed Music?</h3>

<p>Most indie games commission original scores rather than license existing tracks, mostly because it is cheaper and gives the game its own sonic identity.</p>

<p>A smaller category of indie games, usually narrative or mood-driven titles, lean on licensed music from real indie music bands instead. Life is Strange is the clearest example, with a mix of Alt-J, Mogwai, Bright Eyes, and other artists shaping the emotional arc more than any original score could have. Both approaches are valid, and the right one depends on the kind of game you are making.</p>

<h3>How Do Indie Developers Pay for Their Music?</h3>

<p>Four funding models cover most of it.</p>

<ul>
<li>Flat fee: the dev pays a one-time rate and keeps the rights</li>
<li>Revenue share: common on smaller projects where the dev cannot afford an upfront rate</li>
<li>Royalty agreement: the composer gets a cut of every sale</li>
<li>In-house: the developer composes the soundtrack themselves, the way ConcernedApe did for Stardew Valley</li>
</ul>

<p>For indie game developers looking for music without a composer already in their network, platforms like indiegamemusic.com exist specifically to match devs with scorers. It is a well-worn path at this point.</p>

<h3>What Is the Difference Between Indie Music and Indie Game Music?</h3>

<p>Same label, different mediums.</p>

<p>Indie music refers to bands and artists released on independent labels (or self-released), regardless of musical style. Indie game music refers specifically to soundtracks composed for independently developed video games, also regardless of style. Both labels describe the distribution model, not the sound.</p>

<p>If you have ever wondered about the indie meaning music-wise, or where did indie music come from as a label in the first place, the answer is the same either way: it originated with bands on independent labels and the name stuck as the concept migrated into film, television, and games.</p>

<h3>Why Do Roguelike Games Often Have Iconic Soundtracks?</h3>

<p>Durability is the whole answer.</p>

<p>A single roguelike run can stretch 30 to 90 minutes, and players often put hundreds of hours into the same game. That is an enormous amount of listening time, which forces the music to hold up in a way most AAA scores never have to. Hades, Risk of Rain 2, and Dead Cells all benefit from this. The composers had to write something that could survive the 400th loop without losing its charm.</p>

<p>For more on the genre mechanics that shape those listening sessions, my <a href="https://rogueranker.com/bullet-heaven-vs-bullet-hell/">bullet heaven vs. bullet hell explainer</a> covers the differences between the two dominant subgenres.</p>

<!-- ═══════════ CLOSING ═══════════ -->
<h2>Wrapping Up</h2>

<p>Indie game music has quietly grown from a budget-saving necessity into one of the most consistently interesting corners of music you can point to right now. The best way to appreciate it is to stop treating it like background and start listening to it like a record.</p>

<p>If you finish reading and don&#8217;t open Spotify or Bandcamp to queue up one of the soundtracks covered here, you&#8217;ve missed the point. For a running list of the next indie games worth your time (and your ears), my <a href="https://rogueranker.com/best-bullet-heaven-games/">best bullet heaven games roundup</a> and the <a href="https://rogueranker.com/games-like-brotato/">games like Brotato list</a> are both full of titles carrying the kind of soundtracks this article was about.</p>

<p>Take care and talk soon.</p>

</article>
<p>The post <a href="https://rogueranker.com/indie-game-music/">Indie Game Music: Styles, Composers, and the Sound Behind the Scenes</a> appeared first on <a href="https://rogueranker.com">Rogue Ranker</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>(Top 146) Games Like Megabonk Based on 1,757 Reddit Votes</title>
		<link>https://rogueranker.com/games-like-megabonk/</link>
		
		<dc:creator><![CDATA[Steven]]></dc:creator>
		<pubDate>Fri, 03 Apr 2026 22:19:02 +0000</pubDate>
				<category><![CDATA[Megabonk]]></category>
		<category><![CDATA[Roguelite]]></category>
		<guid isPermaLink="false">https://rogueranker.com/?p=1579</guid>

					<description><![CDATA[<p>Megabonk was truly a unicorn of a game and quite honestly, sorta what I imagine heavy, addicting drugs to feel like: an adrenaline-fueled, dopamine rush from beginning to end. When it came out, I was immediately hooked by the memes, look, feel (just about everything). Well, if you&#8217;ve read any of the other articles here, [&#8230;]</p>
<p>The post <a href="https://rogueranker.com/games-like-megabonk/">(Top 146) Games Like Megabonk Based on 1,757 Reddit Votes</a> appeared first on <a href="https://rogueranker.com">Rogue Ranker</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<!-- ============================================================
  Rogue Ranker Games Like Megabonk (146 Games, 1,757 Real Votes)
  Full article · Single paste into WordPress Text/HTML tab
  Includes: styles, all components, prose, charts, tables
============================================================ -->

<link href="https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700&#038;family=Cinzel:wght@600;700&#038;family=Open+Sans:wght@400;500;600;700&#038;display=swap" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.4.1/chart.umd.min.js"></script>

<style>
.rr*{box-sizing:border-box;}
.rr-post{font-family:'Open Sans',sans-serif;color:#1a1a24;line-height:1.7;font-size:16px;max-width:780px;margin:0 auto;}
.rr-post p{margin-bottom:1rem;color:#555466;font-size:16px;}
.rr-post ul{margin:0 0 1rem 0;padding:0;list-style:none;}
.rr-post ul li{padding-left:20px;position:relative;color:#555466;margin-bottom:6px;}
.rr-post ul li::before{content:"";position:absolute;left:0;top:10px;width:6px;height:6px;border-radius:50%;background:#b8892a;}
.rr-post h2{font-family:'Cinzel Decorative',serif;font-size:clamp(1.05rem,2.5vw,1.4rem);font-weight:700;color:#1a1a24;margin:2.5rem 0 0.75rem;line-height:1.25;letter-spacing:0.03em;}
.rr-post h3{font-size:17px;font-weight:700;color:#1a1a24;margin:1.75rem 0 0.5rem;line-height:1.3;font-family:'Open Sans',sans-serif;}
.rr-post a{color:#b8892a;text-decoration:underline;}
.rr-post a:hover{color:#9a6e1a;}
.rr-post strong{font-weight:700;color:#1a1a24;}
.rr-hr{height:1px;background:#e0dded;border:none;margin:2.25rem 0;}

/* TL;DR */
.rr-tldr{background:#1a1a24;border-left:4px solid #b8892a;border-radius:0 6px 6px 0;padding:18px 20px;margin:1.5rem 0 2rem;}
.rr-tldr-label{font-family:'Cinzel Decorative',serif;font-size:clamp(1rem,2.5vw,1.35rem);font-weight:700;letter-spacing:0.04em;text-transform:uppercase;color:#fff;margin-bottom:14px;display:block;}
.rr-tldr ul li{color:#e8e4dc;}
.rr-tldr ul li::before{background:#b8892a;}
/* Stat strip */
.rr-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#2a2a3a;border:1px solid #2a2a3a;border-radius:6px;overflow:hidden;margin:1.5rem 0;}
.rr-stat{background:#1a1a24;padding:16px 10px;text-align:center;}
.rr-stat-num{font-family:'Cinzel',serif;font-size:clamp(1.1rem,2.5vw,1.6rem);font-weight:700;color:#b8892a;line-height:1;display:block;}
.rr-stat-label{font-size:10px;color:#fff;margin-top:5px;display:block;line-height:1.4;text-transform:uppercase;letter-spacing:0.06em;}
/* Quick stats table */
.rr-qs-wrap{overflow-x:auto;border:1px solid #e0dded;border-radius:6px;box-shadow:0 2px 12px rgba(0,0,0,0.07);margin:1rem 0 0.5rem;}
.rr-qs-wrap table{width:100%;border-collapse:collapse;min-width:460px;background:#fff;}
.rr-qs-wrap thead tr{background:#1a1a24;border-bottom:2px solid #c0392b;}
.rr-qs-wrap thead th{padding:0.8rem 1.1rem;text-align:left;font-family:'Cinzel Decorative',serif;font-size:0.6rem;letter-spacing:0.1em;color:#e8b94f;text-transform:uppercase;white-space:nowrap;}
.rr-qs-wrap thead th:last-child{text-align:right;}
.rr-qs-wrap tbody tr{border-bottom:1px solid #e0dded;transition:background 0.12s;}
.rr-qs-wrap tbody tr:last-child{border-bottom:none;}
.rr-qs-wrap tbody tr:nth-child(even){background:#f7f6fb!important;}
.rr-qs-wrap tbody tr:hover{background:#f0eef8!important;}
.rr-qs-wrap thead tr{background:#1a1a24!important;}
.rr-qs-wrap td{padding:0.72rem 1.1rem;vertical-align:middle;font-family:'Open Sans',sans-serif;font-size:16px;}
.rr-cat{font-size:0.68rem!important;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;background:#1a1a24!important;color:#e8e4dc!important;white-space:nowrap;border-right:2px solid #c0392b;}
.rr-label{color:#555466;font-weight:400;}
.rr-val{text-align:right;font-weight:600;color:#1a1a24;white-space:nowrap;}
.rr-val.gold{color:#b8892a;}
.rr-qs-footer{text-align:right;color:#888699;font-size:0.72rem;letter-spacing:0.04em;font-family:'Barlow',sans-serif;margin:0.4rem 0 0;}
/* Ranked table */
.rr-t-wrap{overflow-x:auto;border:1px solid #e0dded;border-radius:6px;box-shadow:0 2px 12px rgba(0,0,0,0.07);margin:1rem 0 1.5rem;}
.rr-t-wrap table{width:100%;border-collapse:collapse;min-width:480px;background:#fff;font-family:'Open Sans',sans-serif;font-size:16px;}
.rr-t-wrap thead tr{background:#1a1a24!important;border-bottom:2px solid #c0392b;}
.rr-t-wrap thead th{padding:0.7rem 1rem;text-align:left;font-family:'Cinzel Decorative',serif;font-size:0.58rem;letter-spacing:0.09em;color:#e8b94f;text-transform:uppercase;white-space:nowrap;}
.rr-t-wrap thead th.num{text-align:right;}
.rr-t-wrap tbody tr{border-bottom:1px solid #e0dded;transition:background 0.12s;}
.rr-t-wrap tbody tr:last-child{border-bottom:none;}
.rr-t-wrap tbody tr:nth-child(even){background:#f7f6fb!important;}
.rr-t-wrap tbody tr:hover{background:#f0eef8!important;}
.rr-t-wrap tbody tr.top1{background:#fffbf0!important;}
.rr-t-wrap tbody tr.top1:hover{background:#fff5d6!important;}
.rr-t-wrap tbody tr.top1 .rr-tg{color:#b8892a;font-weight:700;}
.rr-t-wrap tbody tr.hm{background:#fafafa!important;}
.rr-t-wrap tbody tr.hm .rr-tg{color:#888699;font-weight:400;font-style:italic;}
.rr-t-wrap td{padding:0.6rem 1rem;vertical-align:middle;color:#1a1a24;font-size:16px;}
.rr-tr{font-weight:700;color:#888699;text-align:center;width:36px;}
.rr-tg{font-weight:600;}
.rr-tn{text-align:right;font-weight:600;white-space:nowrap;color:#b8892a;}
.rr-tn.dim{color:#888699;}
.rr-td{color:#555466;font-style:italic;font-size:15px;}
/* Glance card */
.rr-gl-wrap{background:#fff;border:1px solid #e0dded;border-radius:6px;box-shadow:0 2px 12px rgba(0,0,0,0.07);overflow:hidden;font-family:'Barlow',sans-serif;margin:0 0 1.5rem;}
.rr-gl-hdr{background:#1a1a24;border-bottom:2px solid #c0392b;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;}
.rr-gl-title{font-family:'Cinzel Decorative',serif;font-size:clamp(0.8rem,2.5vw,1.05rem);color:#e8b94f!important;margin:0;letter-spacing:0.04em;padding:0;line-height:1.2;}
.rr-gl-rank{font-family:'Cinzel Decorative',serif;font-size:0.58rem;letter-spacing:0.1em;text-transform:uppercase;color:#b8892a;background:rgba(184,137,42,0.12);border:1px solid rgba(184,137,42,0.3);padding:4px 10px;border-radius:3px;white-space:nowrap;flex-shrink:0;}
.rr-gl-grid{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid #e0dded;}
.rr-gl-stat{padding:13px 14px;border-right:1px solid #e0dded;text-align:center;}
.rr-gl-stat:last-child{border-right:none;}
.rr-gl-sv{font-family:'Cinzel Decorative',serif;font-size:clamp(0.85rem,1.8vw,1.2rem);color:#b8892a;display:block;margin-bottom:4px;line-height:1;}
.rr-gl-sl{font-size:10px;color:#888699;text-transform:uppercase;letter-spacing:0.08em;}
.rr-gl-row{display:grid;grid-template-columns:130px 1fr;border-bottom:1px solid #e0dded;transition:background 0.12s;}
.rr-gl-row:last-child{border-bottom:none;}
.rr-gl-row:nth-child(even){background:#f7f6fb;}
.rr-gl-row:hover{background:#f0eef8;}
.rr-gl-lbl{padding:10px 14px;font-family:'Cinzel Decorative',serif;font-size:0.72rem;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:#1a1a24;background:#fafafa;border-right:1px solid #e0dded;display:flex;align-items:center;}
.rr-gl-val{padding:10px 14px;font-size:16px;color:#1a1a24;display:flex;align-items:center;font-weight:500;font-family:'Open Sans',sans-serif;}
/* Comparison */
.rr-cmp-wrap{overflow-x:auto;border:1px solid #e0dded;border-radius:6px;box-shadow:0 2px 12px rgba(0,0,0,0.07);margin:1rem 0 1.5rem;font-family:'Barlow',sans-serif;}
.rr-cmp-hdr{background:#1a1a24;border-bottom:2px solid #c0392b;display:grid;grid-template-columns:130px 1fr 1fr;}
.rr-cmp-hc{padding:0.85rem 1rem;font-family:'Cinzel Decorative',serif;font-size:0.67rem;letter-spacing:0.09em;color:#e8b94f;text-transform:uppercase;text-align:center;}
.rr-cmp-hc.lbl{text-align:left;color:#555466;font-size:0.55rem;}
.rr-cmp-hc.c2,.rr-cmp-hc.c3{border-left:1px solid #2a2a3a;}
.rr-cmp-row{display:grid;grid-template-columns:130px 1fr 1fr;border-bottom:1px solid #e0dded;transition:background 0.12s;}
.rr-cmp-row:last-child{border-bottom:none;}
.rr-cmp-row:nth-child(even){background:#f7f6fb;}
.rr-cmp-row:hover{background:#f0eef8;}
.rr-cmp-c{padding:0.72rem 1rem;font-size:16px;color:#1a1a24;line-height:1.5;font-family:'Open Sans',sans-serif;}
.rr-cmp-c.lbl{font-family:'Cinzel Decorative',serif;font-size:0.62rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:#888699;display:flex;align-items:center;background:#fafafa;border-right:1px solid #e0dded;}
.rr-cmp-c.c2{border-right:1px solid #e0dded;}
.rr-cmp-foot{background:#fafafa;border-top:1px solid #e0dded;padding:0.6rem 1rem;font-size:0.75rem;color:#888699;font-style:italic;text-align:center;}
/* Platform tables */
.rr-plat-wrap{overflow-x:auto;border:1px solid #e0dded;border-radius:6px;box-shadow:0 2px 12px rgba(0,0,0,0.07);margin:1rem 0 1.5rem;}
.rr-plat-wrap table{width:100%;border-collapse:collapse;min-width:340px;background:#fff;font-family:'Open Sans',sans-serif;font-size:16px;}
.rr-plat-wrap thead tr{background:#1a1a24!important;border-bottom:2px solid #c0392b;}
.rr-plat-wrap thead th{padding:0.7rem 1rem;text-align:left;font-family:'Cinzel Decorative',serif;font-size:0.58rem;letter-spacing:0.09em;color:#e8b94f;text-transform:uppercase;white-space:nowrap;}
.rr-plat-wrap tbody tr{border-bottom:1px solid #e0dded;transition:background 0.12s;}
.rr-plat-wrap tbody tr:last-child{border-bottom:none;}
.rr-plat-wrap tbody tr:nth-child(even){background:#f7f6fb!important;}
.rr-plat-wrap tbody tr:hover{background:#f0eef8!important;}
.rr-plat-wrap tbody tr.top1{background:#fffbf0!important;}
.rr-plat-wrap tbody tr.top1:hover{background:#fff5d6!important;}
.rr-plat-wrap tbody tr.top1 td:nth-child(2){color:#b8892a;font-weight:700;}
.rr-plat-wrap td{padding:0.58rem 1rem;vertical-align:middle;color:#1a1a24;font-size:16px;}
.rr-pgp{display:inline-block;font-size:10px;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;background:rgba(0,120,215,0.1);color:#0078d7;border:1px solid rgba(0,120,215,0.25);padding:2px 6px;border-radius:3px;white-space:nowrap;margin-left:5px;}
/* Notes cards */
.rr-notes{display:flex;flex-direction:column;gap:10px;margin:1rem 0 1.5rem;}
.rr-note{background:#fff;border:1px solid #e0dded;border-left:4px solid #b8892a;border-radius:6px;box-shadow:0 1px 6px rgba(0,0,0,0.05);padding:14px 18px;}
.rr-note-t{font-family:'Cinzel Decorative',serif;font-size:0.82rem;letter-spacing:0.06em;text-transform:uppercase;color:#b8892a;margin:0 0 8px;font-weight:700;padding:0;line-height:1.3;}
.rr-note-b{font-size:16px;color:#555466;line-height:1.65;margin:0;font-family:'Open Sans',sans-serif;}
.rr-note-b strong{color:#1a1a24;font-weight:600;}
/* Mega table */
.rr-mega-note{font-size:0.82rem;color:#888699;font-style:italic;margin:0 0 0.75rem;}
.rr-mega-wrap{border:1px solid #e0dded;border-radius:6px;box-shadow:0 2px 12px rgba(0,0,0,0.07);margin:0 0 1.5rem;overflow-x:auto;}
.rr-mega-wrap table{width:100%;border-collapse:collapse;background:#fff;font-family:'Open Sans',sans-serif;font-size:12px;}
.rr-mega-wrap thead tr{background:#1a1a24!important;border-bottom:2px solid #c0392b;}
.rr-mega-wrap thead th{padding:0.6rem 0.8rem;text-align:left;font-family:'Cinzel Decorative',serif;font-size:0.54rem;letter-spacing:0.08em;color:#e8b94f;text-transform:uppercase;white-space:nowrap;}
.rr-mega-wrap thead th.num{text-align:right;}
.rr-mega-wrap thead th.sortable::after{content:'C5';margin-left:3px;opacity:0.4;font-size:0.5rem;}
.rr-mega-wrap thead th.sort-asc::after{content:'91';opacity:1;}
.rr-mega-wrap thead th.sort-desc::after{content:'93';opacity:1;}
.rr-mega-wrap tbody tr{border-bottom:1px solid #e0dded;transition:background 0.12s;}
.rr-mega-wrap tbody tr:last-child{border-bottom:none;}
.rr-mega-wrap tbody tr:nth-child(even){background:#f7f6fb!important;}
.rr-mega-wrap tbody tr:hover{background:#f0eef8!important;}
.rr-mega-wrap tbody tr.top1{background:#fffbf0!important;}
.rr-mega-wrap tbody tr.top1 .mmg{color:#b8892a;}
.rr-mega-wrap td{padding:0.4rem 0.7rem;vertical-align:middle;color:#1a1a24;font-size:12px;}
.mmr{font-weight:700;color:#888699;text-align:center;width:32px;}
.mmg{font-weight:600;white-space:nowrap;}
.mmn{text-align:right;font-weight:600;white-space:nowrap;}
.mmna{text-align:right;color:#bbb;font-style:italic;font-size:0.78rem;white-space:nowrap;}
/* Chart */
.rr-chart-wrap{background:#fff;border:1px solid #e0dded;border-radius:6px;box-shadow:0 2px 12px rgba(0,0,0,0.07);padding:20px 16px 26px;margin:1rem 0 1.5rem;}.rr-chart-container{position:relative;width:100%;}
.rr-chart-title{font-family:'Cinzel Decorative',serif;font-size:clamp(0.78rem,2vw,1.1rem);color:#b8892a;letter-spacing:0.04em;margin:0 0 1rem;text-align:center;display:block;}

.rr-plat-badge{display:inline-block;font-size:10px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;padding:2px 7px;border-radius:3px;white-space:nowrap;}
.rr-badge-ps{background:rgba(0,55,150,0.1);color:#003796;border:1px solid rgba(0,55,150,0.25);}
.rr-badge-xb{background:rgba(16,124,16,0.1);color:#107C10;border:1px solid rgba(16,124,16,0.25);}
.rr-badge-sw{background:rgba(230,0,18,0.1);color:#E60012;border:1px solid rgba(230,0,18,0.25);}
/* Mobile */
@media(max-width:640px){
  /* Stat strip */
  .rr-stats{grid-template-columns:repeat(2,1fr);}
  .rr-stat-num{font-size:1.1rem;}

  /* Quick stats table */
  .rr-qs-wrap table{min-width:0;width:100%;}
  .rr-qs-wrap td{padding:0.5rem 0.65rem;font-size:13px;}
  .rr-qs-wrap thead th{padding:0.6rem 0.65rem;font-size:0.52rem;}
  .rr-val{white-space:normal;font-size:13px;}
  .rr-cat{font-size:0.58rem!important;padding:0.5rem 0.65rem;}

  /* Ranked table */
  .rr-t-wrap{overflow-x:visible;}
  .rr-t-wrap table{min-width:0;width:100%;display:block;}
  .rr-t-wrap thead{display:none;}
  .rr-t-wrap tbody{display:block;width:100%;}
  .rr-t-wrap tbody tr{display:grid;grid-template-columns:32px 1fr auto;grid-template-rows:auto auto;border-bottom:1px solid #e0dded;padding:0.6rem 0.75rem;gap:0 8px;align-items:start;}
  .rr-t-wrap tbody tr.top1{background:#fffbf0!important;}
  .rr-t-wrap tbody tr:hover{background:#f0eef8!important;}
  .rr-t-wrap tbody tr:nth-child(even){background:#f7f6fb!important;}
  .rr-t-wrap td{padding:0;border:none;font-size:13px;}
  .rr-tr{grid-column:1;grid-row:1;font-size:12px;padding-top:2px;text-align:center;}
  .rr-tg{grid-column:2;grid-row:1;font-weight:600;font-size:14px;}
  .rr-tn{grid-column:3;grid-row:1;font-size:13px;text-align:right;}
  .rr-tn.dim{display:none;}
  .rr-td{grid-column:2/4;grid-row:2;font-size:12px;color:#555466;font-style:italic;padding-top:2px;}

  /* Glance cards */
  .rr-gl-grid{grid-template-columns:repeat(3,1fr);}
  .rr-gl-row{grid-template-columns:80px 1fr;}
  .rr-gl-lbl{font-size:0.58rem;padding:8px 9px;}
  .rr-gl-val{font-size:13px;padding:8px 9px;}
  .rr-gl-hdr{padding:11px 13px;}
  .rr-gl-sv{font-size:0.9rem;}
  .rr-gl-sl{font-size:9px;}

  /* Comparison tables */
  .rr-cmp-hdr,.rr-cmp-row{grid-template-columns:70px 1fr 1fr;}
  .rr-cmp-c{padding:0.5rem 0.55rem;font-size:13px;}
  .rr-cmp-hc{padding:0.6rem 0.55rem;font-size:0.52rem;}
  .rr-cmp-c.lbl{font-size:0.46rem;}

  /* Platform tables */
  .rr-plat-wrap table{min-width:0;}
  .rr-plat-wrap td{padding:0.5rem 0.7rem;font-size:13px;}
  .rr-plat-wrap thead th{padding:0.55rem 0.7rem;font-size:0.5rem;}

  /* Mega table */
  .rr-mega-wrap{overflow-x:visible;}
  .rr-mega-wrap table{display:block;width:100%;}
  .rr-mega-wrap thead{display:none;}
  .rr-mega-wrap tbody{display:block;}
  .rr-mega-wrap tbody tr{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid #e0dded;padding:0.6rem 0.75rem;gap:2px 12px;}
  .rr-mega-wrap tbody tr.top1{background:#fffbf0!important;}
  .rr-mega-wrap tbody tr:nth-child(even){background:#f7f6fb!important;}
  .rr-mega-wrap td{padding:0;border:none;font-size:12px;}
  .rr-mega-wrap td::before{content:attr(data-label);display:block;font-size:10px;color:#888699;text-transform:uppercase;letter-spacing:0.06em;margin-bottom:1px;}
  .mmg{grid-column:1/3;font-weight:700;font-size:14px;color:#1a1a24;margin-bottom:2px;}
  .mmg::before{display:none;}
  .mmn{text-align:left;}
  .mmna{text-align:left;color:#bbb;font-style:italic;}

  /* Note cards */
  .rr-note{padding:12px 14px;}
  .rr-note-t{font-size:0.7rem;}
  .rr-note-b{font-size:14px;}

  /* Charts */
  .rr-chart-wrap{padding:12px 8px 16px;}
  .rr-chart-title{font-size:0.72rem;}
  .rr-chart-wrap canvas{max-height:none!important;}

  /* TL;DR */
  .rr-tldr{padding:14px 16px;}
  .rr-tldr-label{font-size:0.85rem;}
  .rr-tldr ul li{font-size:14px;}
}
@media(max-width:400px){
  .rr-stats{grid-template-columns:1fr 1fr;}
  .rr-gl-row{grid-template-columns:72px 1fr;}
  .rr-gl-lbl{font-size:0.5rem;}
  .rr-cmp-hdr,.rr-cmp-row{grid-template-columns:58px 1fr 1fr;}
  .rr-cmp-c{font-size:12px;}
}
</style>

<article class="rr-post">

<!-- ═══ INTRO ═══ -->
<p>Megabonk was truly a unicorn of a game and quite honestly, sorta what I imagine heavy, addicting drugs to feel like: an adrenaline-fueled, dopamine rush from beginning to end.</p>
<p>When it came out, I was immediately hooked by the memes, look, feel (just about everything).</p>
<p>Well, if you&#8217;ve read any of the other articles here, you know what&#8217;s next.</p>
<p>We take a look at popular games and answer the question, &#8220;If I like games like Megabonk, what else should I play?&#8221;</p>
<p>But unlike other listicles, &#8220;best&#8221; guides, we do our best to remove editorial opinion and let Reddit upvotes and conversations determine the ranking.</p>
<p>So that&#8217;s what we did here. Below is a look at 9 Reddit threads, all targeting the same topic, but it&#8217;s the sum of their parts.</p>
<p>This article was also well-timed for the release of Risk of Rain 2. Thank god; otherwise, we would have had to update it <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>Well, we hope you enjoy reading. And if you want to see which of the games suits you best, take the quiz below.</p>

<!-- ═══ MEGABONK QUIZ ═══ -->
<link href="https://fonts.googleapis.com/css2?family=Cinzel:wght@600;800&#038;family=Crimson+Pro:ital,wght@0,400;0,600;1,400&#038;display=swap" rel="stylesheet">
<style>
  #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 h2, #quiz-root h3 { color: #f2eedd !important; font-family: 'Cinzel', serif !important; margin: 0 !important; padding: 0 !important; }
  #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; }
  .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: #f2eedd !important; line-height: 1.2; margin-bottom: 12px; }
  .quiz-subtitle { color: var(--text-muted); font-style: italic; font-size: 16px; }
  .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 { 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-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-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-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; }
  .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-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-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); }
  @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>

<div id="quiz-root">
  <div class="quiz-header">
    <span class="quiz-eyebrow">Rogue Ranker · 146 Games Analyzed</span>
    <h2 class="quiz-title">What Game Like Megabonk Should I Play Next?</h2>
    <p class="quiz-subtitle">10 questions. Matched to 146 community-ranked games.</p>
  </div>
  <div id="quiz-body"></div>
</div>

<script>
const questions = [
  {id:"q1",text:"What did you love most about Megabonk?",options:[{label:"The 3D open map with stage portals and boss fights at the end of each run",tags:["stage_based","3d","exploration","boss_fights"]},{label:"The auto-attack bullet heaven loop where my build did the work",tags:["auto_attack","bullet_heaven","build_depth"]},{label:"The roguelite progression and chasing better runs each time",tags:["roguelite","meta_prog","build_depth"]},{label:"The fast chaotic energy and constant escalation of power",tags:["fast_paced","power_scale","action"]}]},
  {id:"q2",text:"What kind of combat style do you prefer?",options:[{label:"Auto-attack, I just move and let my build handle the damage",tags:["auto_attack","bullet_heaven","chill"]},{label:"Manual aiming with active dodging and skill expression",tags:["manual_aim","action","skill_based"]},{label:"Turn-based or card-based, I want to think through every decision",tags:["turn_based","deck_builder","strategy"]},{label:"Action platformer with tight movement and weapon variety",tags:["action","platformer","fast_paced"]}]},
  {id:"q3",text:"How much do you care about stage-based structure vs. pure survival?",options:[{label:"I love stage-based runs with portals, bosses, and clear progression",tags:["stage_based","3d","boss_fights","exploration"]},{label:"I prefer timed survival where I just hold out as long as possible",tags:["auto_attack","bullet_heaven","chill"]},{label:"I want a dungeon crawler with rooms to clear and loot to find",tags:["dungeon","roguelite","build_depth"]},{label:"I do not care about structure, just give me deep build decisions",tags:["build_depth","synergies","meta_prog"]}]},
  {id:"q4",text:"How deep do you want the build and upgrade system to go?",options:[{label:"Moderate, I want interesting choices without needing a spreadsheet",tags:["accessible","bullet_heaven","auto_attack"]},{label:"Deep, I want synergies and item combos to chase for hundreds of hours",tags:["build_depth","synergies","roguelite"]},{label:"Card or deck-based, I want to construct and refine a hand each run",tags:["deck_builder","strategy","turn_based"]},{label:"Physics or simulation based, where emergent chaos creates the depth",tags:["physics","exploration","skill_based"]}]},
  {id:"q5",text:"How long do you want a typical run to last?",options:[{label:"Short, under 30 minutes so I can restart quickly",tags:["short_runs","accessible","auto_attack"]},{label:"Medium, 30 to 60 minutes with meaningful momentum",tags:["medium_runs","roguelite","stage_based"]},{label:"Long, I want a full epic run that escalates over an hour or more",tags:["long_runs","build_depth","meta_prog"]},{label:"I do not care, just make each run feel worth finishing",tags:["roguelite","build_depth","action"]}]},
  {id:"q6",text:"What is your budget?",options:[{label:"Free, show me what costs nothing",tags:["free"]},{label:"Budget, under $6",tags:["budget"]},{label:"Mid-range, $6 to $15",tags:["mid_price"]},{label:"Whatever, I will pay for quality",tags:["any_price"]}]},
  {id:"q7",text:"Which setting or tone appeals most to you?",options:[{label:"Sci-fi and aliens, third-person action in a strange world",tags:["scifi","3d","stage_based","action"]},{label:"Fantasy or dark atmosphere with dungeon vibes and item lore",tags:["fantasy","dungeon","build_depth","dark"]},{label:"Quirky or lighthearted, I want charm alongside the gameplay",tags:["quirky","accessible","bullet_heaven"]},{label:"Horror or weird, I want something unsettling and surprising",tags:["horror","deck_builder","strategy"]}]},
  {id:"q8",text:"How important is platform availability?",options:[{label:"PC only is fine, I play on Steam",tags:["pc","build_depth","roguelite"]},{label:"I want it on console, PS4 or PS5",tags:["console","accessible","action"]},{label:"I want Xbox or Game Pass support",tags:["xbox","gamepass","accessible"]},{label:"I want it on Switch for handheld play",tags:["switch","short_runs","accessible"]}]},
  {id:"q9",text:"What matters most to you in long-term replayability?",options:[{label:"Enormous item and build variety that I will never fully exhaust",tags:["build_depth","synergies","roguelite"]},{label:"Character depth with distinct playstyles and unlockable roster",tags:["stage_based","action","meta_prog"]},{label:"Story and atmosphere that unfolds as I keep playing",tags:["story","action","roguelite"]},{label:"Procedural depth and emergent secrets I can keep discovering",tags:["exploration","physics","skill_based"]}]},
  {id:"q10",text:"Which of these sounds most like you?",options:[{label:"I want the game Megabonk is directly inspired by, the one it is built on",tags:["stage_based","3d","scifi","manual_aim","boss_fights"]},{label:"I want the auto-attack bullet heaven parent game at its purest",tags:["auto_attack","bullet_heaven","chill","budget"]},{label:"I want a deep roguelite that goes well beyond bullet heaven",tags:["build_depth","synergies","roguelite","deck_builder"]},{label:"I want the most-recommended direct alternative in the genre",tags:["bullet_heaven","auto_attack","meta_prog","exploration"]}]}
];
const games=[{name:"Risk of Rain 2",tags:["stage_based","3d","scifi","manual_aim","boss_fights","action","build_depth","xbox","gamepass","console","switch","any_price","mid_price","medium_runs","meta_prog","skill_based"],price:"$15",playtime:"13.5 hrs",votes:173,why:"173 votes across 7 threads and the game Megabonk is directly built on. Stage-based runs, chest loot, portals, boss fights at the end of each stage, and a build system far deeper than Megabonk's current roster."},{name:"Vampire Survivors",tags:["auto_attack","bullet_heaven","chill","budget","accessible","build_depth","meta_prog","xbox","gamepass","console","switch","short_runs","medium_runs","power_scale","quirky"],price:"$5",playtime:"8.0 hrs",votes:141,why:"141 votes and Megabonk's other parent game. The purest auto-attack bullet heaven loop, enormous content depth, weapon evolutions, and a price that makes it impossible to skip."},{name:"Brotato",tags:["bullet_heaven","auto_attack","build_depth","synergies","meta_prog","budget","accessible","console","xbox","switch","short_runs","power_scale","quirky"],price:"$4",playtime:"12.9 hrs",votes:124,why:"124 votes across 6 threads. Six weapons at once, a shop between short arena waves, and 44 characters worth of build variety. The deepest bullet heaven alternative for players who want to optimize every run."},{name:"Deep Rock Galactic: Survivor",tags:["bullet_heaven","auto_attack","exploration","build_depth","xbox","gamepass","pc","medium_runs","meta_prog","accessible","scifi","power_scale"],price:"$8",playtime:"12.2 hrs",votes:87,why:"87 votes across 8 threads, tied for the most thread appearances in the dataset. VS formula with active terrain mining, biome variety, and the DRG universe's flavor and character making every run feel distinct."},{name:"Slay the Spire",tags:["deck_builder","strategy","turn_based","build_depth","synergies","console","xbox","switch","any_price","mid_price","long_runs","meta_prog","roguelite"],price:"$13",playtime:"26.5 hrs",votes:82,why:"82 votes from the roguelite crowd that overlaps heavily with Megabonk players. Not a bullet heaven, but the card-based build decisions and run-to-run variety scratch the same upgrade-chasing itch in a completely different format."},{name:"The Binding of Isaac: Rebirth",tags:["dungeon","fantasy","dark","build_depth","synergies","roguelite","budget","console","xbox","switch","medium_runs","horror","meta_prog","accessible"],price:"$5",playtime:"52.3 hrs",votes:77,why:"77 votes and the highest median playtime in the top 10 at 52.3 hours. A procedural dungeon shooter with absurd item synergy depth. Once the item library clicks, this has more replayability than almost anything else on this list."},{name:"Dead Cells",tags:["action","platformer","fast_paced","build_depth","roguelite","console","xbox","switch","mid_price","any_price","medium_runs","skill_based","meta_prog"],price:"$9",playtime:"11.0 hrs",votes:72,why:"72 votes for the action platformer pick. Movement and combat are among the best in any roguelite, and the weapon variety across runs gives it a replayability ceiling well above what most games in the genre offer."},{name:"Noita",tags:["physics","exploration","skill_based","build_depth","pc","mid_price","any_price","long_runs","roguelite","dark","synergies"],price:"$10",playtime:"24.0 hrs",votes:72,why:"72 votes for the deepest rabbit hole on this list. Every pixel is simulated, wand-crafting creates emergent power combinations, and secrets go deeper than any other game here. Not for the faint of heart."},{name:"Monster Train",tags:["deck_builder","strategy","turn_based","build_depth","synergies","xbox","gamepass","mid_price","any_price","medium_runs","roguelite","accessible"],price:"$13",playtime:"19.0 hrs",votes:70,why:"70 votes for the second deck-builder in the top 10. Multi-lane combat across a moving pyre creates strategic depth that goes further than Slay the Spire for players who want a different card-based experience."},{name:"Shogun Showdown",tags:["turn_based","strategy","roguelite","budget","mid_price","short_runs","pc","accessible","skill_based"],price:"$5",playtime:"4.9 hrs",votes:67,why:"67 votes, mostly from a single enthusiastic thread. Turn-based grid tactics where you position attacks against enemies moving in sync. A puzzle-like break from bullet heaven if you want something completely different between sessions."},{name:"Hades",tags:["action","roguelite","story","build_depth","meta_prog","console","xbox","switch","any_price","medium_runs","skill_based","fantasy","accessible"],price:"$17",playtime:"16.3 hrs",votes:60,why:"60 votes across 4 threads, and 114 combined with Hades II. Best-in-class action roguelite with manual combat, god boon builds, and a story that unfolds meaningfully across every run."},{name:"Halls of Torment",tags:["bullet_heaven","auto_attack","dark","fantasy","build_depth","meta_prog","xbox","gamepass","console","mid_price","budget","accessible","medium_runs","power_scale"],price:"$4",playtime:"12.1 hrs",votes:56,why:"56 votes across 8 threads, tied for the most thread appearances in the dataset. The most direct bullet heaven recommendation outside the top 10. Diablo 2 aesthetics, a gear system VS does not have, and Game Pass availability."}];
function scoreGames(answers){return games.map(game=>{let score=0;answers.forEach(answerTags=>{answerTags.forEach(tag=>{if(game.tags.includes(tag))score++;});});score+=(game.votes/173)*0.5;return{...game,score};}).sort((a,b)=>b.score-a.score);}
let currentQ=0,answers=[];
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 146 community-ranked games like Megabonk.</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>

<!-- ═══ TL;DR ═══ -->
<div class="rr-tldr">
  <div class="rr-tldr-label">TL;DR Best Games Like Megabonk</div>
  <ul>
    <li><a href="https://store.steampowered.com/app/632360/Risk_of_Rain_2/" rel="noopener noreferrer">Risk of Rain 2</a> (173 votes)</li>
    <li><a href="https://store.steampowered.com/app/1794680/Vampire_Survivors/" rel="noopener noreferrer">Vampire Survivors</a> (141 votes)</li>
    <li><a href="https://store.steampowered.com/app/1942280/Brotato/" rel="noopener noreferrer">Brotato</a> (124 votes)</li>
    <li><a href="https://store.steampowered.com/app/2321470/Deep_Rock_Galactic_Survivor/" rel="noopener noreferrer">Deep Rock Galactic: Survivor</a> (87 votes)</li>
    <li><a href="https://store.steampowered.com/app/646570/Slay_the_Spire/" rel="noopener noreferrer">Slay the Spire</a> (82 votes)</li>
    <li><a href="https://store.steampowered.com/app/250900/The_Binding_of_Isaac_Rebirth/" rel="noopener noreferrer">The Binding of Isaac: Rebirth</a> (77 votes)</li>
    <li><a href="https://store.steampowered.com/app/588650/Dead_Cells/" rel="noopener noreferrer">Dead Cells</a> (72 votes)</li>
    <li><a href="https://store.steampowered.com/app/881100/Noita/" rel="noopener noreferrer">Noita</a> (72 votes)</li>
    <li><a href="https://store.steampowered.com/app/1102190/Monster_Train/" rel="noopener noreferrer">Monster Train</a> (70 votes)</li>
    <li><a href="https://store.steampowered.com/app/2084000/Shogun_Showdown/" rel="noopener noreferrer">Shogun Showdown</a> (67 votes)</li>
    <li>Honorable Mentions: <a href="https://store.steampowered.com/app/1145360/Hades/" rel="noopener noreferrer">Hades</a> (60 votes), <a href="https://store.steampowered.com/app/2218750/Halls_of_Torment/" rel="noopener noreferrer">Halls of Torment</a> (56 votes)</li>
  </ul>
</div>

<!-- ═══ QUICK STATS ═══ -->
<div class="rr-qs-wrap">
  <table>
    <thead><tr><th>Category</th><th>Stat</th><th>Value</th></tr></thead>
    <tbody>
      <tr><td class="rr-cat" rowspan="3">Survey Scope</td><td class="rr-label">Total votes collected</td><td class="rr-val gold">1,757</td></tr>
      <tr><td class="rr-label">Reddit threads analyzed</td><td class="rr-val">9</td></tr>
      <tr><td class="rr-label">Total games mentioned</td><td class="rr-val">146</td></tr>
      <tr><td class="rr-cat" rowspan="3">Rankings</td><td class="rr-label">#1 ranked game</td><td class="rr-val gold">Risk of Rain 2 173 votes</td></tr>
      <tr><td class="rr-label">Exact tie</td><td class="rr-val">Dead Cells and Noita both 72 votes</td></tr>
      <tr><td class="rr-label">Biggest gap in top 10</td><td class="rr-val">Brotato (124) to DRG Survivor (87) 37 votes</td></tr>
      <tr><td class="rr-cat" rowspan="3">Standouts</td><td class="rr-label">Most threads appeared in</td><td class="rr-val">DRG Survivor &amp; Halls of Torment (8 of 9)</td></tr>
      <tr><td class="rr-label">Highest grossing game</td><td class="rr-val">Risk of Rain 2 $147M</td></tr>
      <tr><td class="rr-label">On Xbox Game Pass</td><td class="rr-val">RoR2, VS, DRG Survivor, Halls of Torment</td></tr>
      <tr><td class="rr-cat" rowspan="3">Playtime &amp; Cost</td><td class="rr-label">Highest median playtime in top 10</td><td class="rr-val">The Binding of Isaac: Rebirth 52.3 hrs</td></tr>
      <tr><td class="rr-label">Lowest median playtime in top 10</td><td class="rr-val">Shogun Showdown 4.9 hrs</td></tr>
      <tr><td class="rr-label">Avg median playtime (top 14)</td><td class="rr-val">11.3 hrs</td></tr>
      <tr><td class="rr-cat" rowspan="2">Value</td><td class="rr-label">Best value pick</td><td class="rr-val gold">Vampire Survivors 6.1 hrs per dollar</td></tr>
      <tr><td class="rr-label">Free to play in dataset</td><td class="rr-val">Holocure, Super Auto Pets (outside top 10)</td></tr>
    </tbody>
  </table>
</div>
<p class="rr-qs-footer">Data sourced from 9 Reddit threads · 1,757 total votes</p>

<hr class="rr-hr"/>

<!-- ═══ MOST RECOMMENDED TABLE ═══ -->
<h2>Most Recommended Games Based on Reddit Votes</h2>

<div class="rr-t-wrap">
  <table>
    <colgroup><col style="width:36px"><col style="width:210px"><col style="width:65px"><col style="width:80px"><col></colgroup>
    <thead><tr><th>#</th><th>Game</th><th class="num">Votes</th><th class="num">Suggestions</th><th>What&#8217;s It Like?</th></tr></thead>
    <tbody>
      <tr class="top1"><td class="rr-tr">1</td><td class="rr-tg">Risk of Rain 2</td><td class="rr-tn">173</td><td class="rr-tn dim">7</td><td class="rr-td">The game Megabonk is directly inspired by 3D, stage-based, chest loot</td></tr>
      <tr><td class="rr-tr">2</td><td class="rr-tg">Vampire Survivors</td><td class="rr-tn">141</td><td class="rr-tn dim">5</td><td class="rr-td">The other parent game 2D auto-attack bullet heaven</td></tr>
      <tr><td class="rr-tr">3</td><td class="rr-tg">Brotato</td><td class="rr-tn">124</td><td class="rr-tn dim">6</td><td class="rr-td">Arena waves, six weapons, deep build shop</td></tr>
      <tr><td class="rr-tr">4</td><td class="rr-tg">Deep Rock Galactic: Survivor</td><td class="rr-tn">87</td><td class="rr-tn dim">8</td><td class="rr-td">VS-like with mining, terrain, and DRG universe</td></tr>
      <tr><td class="rr-tr">5</td><td class="rr-tg">Slay the Spire</td><td class="rr-tn">82</td><td class="rr-tn dim">3</td><td class="rr-td">Deck-building roguelite not a bullet heaven</td></tr>
      <tr><td class="rr-tr">6</td><td class="rr-tg">The Binding of Isaac: Rebirth</td><td class="rr-tn">77</td><td class="rr-tn dim">4</td><td class="rr-td">Procedural dungeon shooter with absurd item depth</td></tr>
      <tr><td class="rr-tr">7</td><td class="rr-tg">Dead Cells</td><td class="rr-tn">72</td><td class="rr-tn dim">3</td><td class="rr-td">Roguelite action platformer tight combat and weapon variety</td></tr>
      <tr><td class="rr-tr">7</td><td class="rr-tg">Noita</td><td class="rr-tn">72</td><td class="rr-tn dim">3</td><td class="rr-td">Physics-based roguelite every pixel simulated</td></tr>
      <tr><td class="rr-tr">8</td><td class="rr-tg">Monster Train</td><td class="rr-tn">70</td><td class="rr-tn dim">2</td><td class="rr-td">Deck-builder roguelite not a bullet heaven</td></tr>
      <tr><td class="rr-tr">9</td><td class="rr-tg">Shogun Showdown</td><td class="rr-tn">67</td><td class="rr-tn dim">1</td><td class="rr-td">Turn-based tactics roguelike not a bullet heaven</td></tr>
      <tr><td class="rr-tr">10</td><td class="rr-tg">Enter the Gungeon</td><td class="rr-tn">66</td><td class="rr-tn dim">2</td><td class="rr-td">Bullet hell roguelite twin-stick shooter</td></tr>
      <tr><td class="rr-tr">11</td><td class="rr-tg">Inscryption</td><td class="rr-tn">63</td><td class="rr-tn dim">2</td><td class="rr-td">Deck-builder horror roguelite not a bullet heaven</td></tr>
      <tr class="hm"><td class="rr-tr"></td><td class="rr-tg">Hades</td><td class="rr-tn dim">60</td><td class="rr-tn dim">4</td><td class="rr-td">Action roguelite with tight combat and strong story</td></tr>
      <tr class="hm"><td class="rr-tr"></td><td class="rr-tg">Halls of Torment</td><td class="rr-tn dim">56</td><td class="rr-tn dim">8</td><td class="rr-td">Diablo 2 aesthetic meets Vampire Survivors</td></tr>
    </tbody>
  </table>
</div>

<hr class="rr-hr"/>

<!-- ═══ VALUE CHART ═══ -->
<h2>Top Value Games</h2>
<p>This chart ranks games by how many median hours of play you get per dollar spent. Free-to-play titles are excluded since the calculation doesn&#8217;t apply. Early access pricing can also skew results here, since some games were cheaper when most players picked them up.</p>

<div class="rr-chart-wrap">
  <span class="rr-chart-title">Top Value Games Like Megabonk Median Playtime per Dollar Spent</span>
  <div class="rr-chart-container" style="height:420px"><canvas id="rr-chart-value"></canvas></div>
</div>

<!-- ═══ PLAYTIME HISTOGRAM ═══ -->
<h2>Distribution of Median Playtime</h2>
<p>The spread here is unusually wide. This dataset includes everything from tight 5-hour runs to games people have poured hundreds of hours into, which reflects how diverse the recommendations are compared to a more genre-specific list.</p>

<div class="rr-chart-wrap">
  <span class="rr-chart-title">Distribution of Median Playtime Games Like Megabonk</span>
  <div class="rr-chart-container" style="height:280px"><canvas id="rr-chart-hist"></canvas></div>
</div>

<hr class="rr-hr"/>

<!-- ═══ WHEN DID ═══ -->
<h2>When Did Games Like Megabonk Become Popular?</h2>
<p>Megabonk launched on <a href="https://store.steampowered.com/app/3405340/Megabonk/" rel="noopener noreferrer">Steam in September 2025</a> and went viral almost immediately.</p>
<p>The game doesn&#8217;t fit neatly into a single genre box, which is partly why it took off the way it did. The community&#8217;s shorthand settled quickly: Risk of Rain 2 meets Vampire Survivors.</p>
<p>That framing matters for this article because it changes what &#8220;games like Megabonk&#8221; actually means. It&#8217;s not just a VS-like looking for the next bullet heaven. A lot of the people asking for recommendations were also asking for games that share that RoR2 DNA, stage-based progression, chest loot, manual exploration of an open map, and bosses at the end of each run. That&#8217;s a different ask from someone who just wants more wave survival.</p>
<p>The result is a list that looks more eclectic than a typical bullet heaven ranking.</p>
<p>You&#8217;ll see Slay the Spire, Noita, and Inscryption sitting alongside DRG Survivor and Brotato, because the Megabonk community pulls from a wider genre pool than VS players typically do.</p>

<hr class="rr-hr"/>

<!-- ═══ DATA COLLECTION ═══ -->
<h2>About the Data Collection Process</h2>
<p>The process here is identical to what I used for my <a href="https://rogueranker.com/games-like-brotato/">Games Like Brotato</a> and <a href="https://rogueranker.com/games-like-vampire-survivors/">Games Like Vampire Survivors</a> articles.</p>
<p>I searched Reddit for threads asking for games like Megabonk, collected every relevant thread I could find, and tallied every upvote across every suggestion by hand.</p>
<p>The community ranked everything (I just counted).</p>

<h3>How I Chose Reddit Threads</h3>
<p>I started with a Google search for &#8220;games like Megabonk&#8221; and collected every Reddit thread that came up. Then I went directly to Reddit and repeated the process.</p>
<p>One thing worth flagging for this article specifically: Megabonk has unusually active discussion on its own Steam community page.</p>
<p>Several threads directly asked, &#8220;What should I play while waiting for more Megabonk content?&#8221;</p>

<h3>How I Chose Games</h3>
<p>If a game got suggested repeatedly, it made the list.</p>
<p>If it got suggested once with strong upvote support, those votes still counted.</p>
<p>Self-promotion was excluded (sorry, not sorry)..</p>
<p>One nuance specific to this dataset: Risk of Rain 2 and Vampire Survivors came up constantly, but often in a &#8220;this is what Megabonk is based on&#8221; framing rather than a &#8220;you should try this instead&#8221; framing.</p>
<p>More on that in the Nuances section below.</p>

<h3>How I Ranked Games</h3>
<p>Every mention of a game contributed to its total, including duplicate suggestions and replies in support of it. If a game appeared three times across a thread with 26, 19, and 5 upvotes respectively, it gets 50 total votes. Nothing gets discarded for low individual counts.</p>

<hr class="rr-hr"/>

<!-- ═══ NUANCES ═══ -->
<h2>Nuances and Notes of the Data</h2>
<p>A few things worth knowing before reading too much into the rankings.</p>

<div class="rr-notes">
  <div class="rr-note">
    <h3 class="rr-note-t">Risk of Rain 2 and Vampire Survivors at #1 and #2</h3>
    <p class="rr-note-b">RoR2 appeared in 7 of 9 threads with 173 votes, making it the highest-ranked game in the dataset. VS appeared in 5 threads with 141 votes.</p>
    <p class="rr-note-b">Both are included in the ranking because the data is the data, but their context is different from a game like Brotato or DRG Survivor.</p>
    <p class="rr-note-b">Many of those votes came from people explaining what Megabonk is like rather than specifically recommending it as an alternative. That&#8217;s flagged in their individual reviews below.</p>
  </div>
  <div class="rr-note">
    <h3 class="rr-note-t">The Genre Diversity Is Unusual</h3>
    <p class="rr-note-b">Most of the top 10 don&#8217;t cleanly fit bullet heaven, which is fine, but odd.</p>
    <p class="rr-note-b">Slay the Spire, Monster Train, Inscryption, and Noita are all very different games that happen to share a roguelite structure with Megabonk. Shogun Showdown is turn-based, and Dead Cells is a platformer. Each one is called out directly in its review.</p>
  </div>
  <div class="rr-note">
    <h3 class="rr-note-t">Shogun Showdown&#8217;s 67 Votes Came Almost Entirely From a Single Thread</h3>
    <p class="rr-note-b">Funny enough, this was from one very enthusiastic commenter with substantial upvotes in one thread. Worth knowing when reading that ranking.</p>
  </div>
  <div class="rr-note">
    <h3 class="rr-note-t">Monster Train (70 votes) and Slay the Spire (82 votes)</h3>
    <p class="rr-note-b">Both are deck-builders with no bullet heaven elements. They ranked because the Megabonk community overlaps heavily with roguelite deck-builder players, not because they play anything like Megabonk.</p>
  </div>
  <div class="rr-note">
    <h3 class="rr-note-t">Hades II vs. Hades</h3>
    <p class="rr-note-b">Both ranked separately in the data, Hades at 60 votes, Hades II at 54. Combined, that&#8217;s 114 votes, putting the franchise in the top 5.</p>
    <p class="rr-note-b">I kept them separate since they&#8217;re distinct games, but it&#8217;s worth noting that the combined community support is substantial.</p>
  </div>
  <div class="rr-note">
    <h3 class="rr-note-t">BALL x PIT at 30 Votes</h3>
    <p class="rr-note-b">Worth a callout as the most direct structural competitor to Megabonk among newer games. 3D, stage-based, bullet heaven-adjacent.</p>
    <p class="rr-note-b">If you liked Megabonk specifically for its 3D vertical movement, this one deserves a look, regardless of where it ranked.</p>
  </div>
</div>

<hr class="rr-hr"/>

<!-- ═══ BUSINESS DATA ═══ -->
<h2>Extra Business Data From VGN Insights</h2>

<div class="rr-stats">
  <div class="rr-stat"><span class="rr-stat-num">1.9M</span><span class="rr-stat-label">Avg Units Sold</span></div>
  <div class="rr-stat"><span class="rr-stat-num">$12</span><span class="rr-stat-label">Avg Cost</span></div>
  <div class="rr-stat"><span class="rr-stat-num">$33M</span><span class="rr-stat-label">Avg Gross Revenue</span></div>
  <div class="rr-stat"><span class="rr-stat-num">11.3h</span><span class="rr-stat-label">Avg Median Playtime</span></div>
</div>
<p>The VGN Insights data was layered on top of the Reddit ranking after it was complete. The vote order came first; the business numbers were added afterward, purely to provide context for the scale of each game.</p>
<p>Data points collected for each game:</p>
<ul>
  <li>Units Sold</li>
  <li>Average Cost</li>
  <li>Gross Revenue</li>
  <li>Median Playtime</li>
</ul>
<p>A handful of games are missing data (Windblown, Dungeons and Ducklings, a few others) where Steam data was sparse or unavailable.</p>
<p>Free-to-play titles like Holocure and Super Auto Pets are excluded from the value calculations since price-per-hour math doesn&#8217;t apply.</p>
<p>If you&#8217;ve got a good source for filling in those gaps, I&#8217;d love to hear it in the comments.</p>

<!-- REVENUE CHART -->
<div class="rr-chart-wrap">
  <span class="rr-chart-title">Gross Revenue Games Like Megabonk</span>
  <div class="rr-chart-container" style="height:460px"><canvas id="rr-chart-rev"></canvas></div>
</div>

<!-- UNITS CHART -->
<div class="rr-chart-wrap">
  <span class="rr-chart-title">Units Sold Games Like Megabonk</span>
  <div class="rr-chart-container" style="height:460px"><canvas id="rr-chart-units"></canvas></div>
</div>

<!-- SCATTER -->
<div class="rr-chart-wrap">
  <span class="rr-chart-title">Reddit Votes vs Gross Revenue Games Like Megabonk</span>
  <div class="rr-chart-container" style="height:340px"><canvas id="rr-chart-scatter"></canvas></div>
</div>
<p>Mobile-native bullet heaven games like Magic Survival, Survivor.io, and Pickle Pete came up in threads that were excluded from the main data collection due to the mobile-only rule. The Games Like Vampire Survivors article has a dedicated mobile section worth checking out if mobile is your primary platform.</p>

<hr class="rr-hr"/>

<!-- ═══ MEGA TABLE ═══ -->
<h2>All Games Like Megabonk Ranked With Sales Data</h2>
<p class="rr-mega-note">Revenue and units are estimates from VGN Insights. Games marked had no data available at time of collection.</p>

<div class="rr-mega-wrap">
  <table id="rr-mega-tbl">
    <thead><tr>
      <th>Game</th>
      <th class="num">Votes</th>
      <th class="num">Revenue</th>
      <th class="num">Units Sold</th>
      <th class="num">Avg Cost</th>
      <th class="num">Median Playtime</th>
    </tr></thead>
    <tbody>
      <tr class="top1"><td class="mmg">Risk of Rain 2</td><td class="mmn" data-label="Votes">173</td><td class="mmn" data-label="Revenue">$147,000,000</td><td class="mmn" data-label="Units">9,500,000</td><td class="mmn" data-label="Cost">$15</td><td class="mmn" data-label="Playtime">13.5 hrs</td></tr>
      <tr><td class="mmg">Vampire Survivors</td><td class="mmn" data-label="Votes">141</td><td class="mmn" data-label="Revenue">$31,000,000</td><td class="mmn" data-label="Units">15,000,000</td><td class="mmn" data-label="Cost">$5</td><td class="mmn" data-label="Playtime">8.0 hrs</td></tr>
      <tr><td class="mmg">Brotato</td><td class="mmn" data-label="Votes">124</td><td class="mmn" data-label="Revenue">$11,600,000</td><td class="mmn" data-label="Units">3,300,000</td><td class="mmn" data-label="Cost">$4</td><td class="mmn" data-label="Playtime">12.9 hrs</td></tr>
      <tr><td class="mmg">Deep Rock Galactic: Survivor</td><td class="mmn" data-label="Votes">87</td><td class="mmn" data-label="Revenue">$10,900,000</td><td class="mmn" data-label="Units">1,400,000</td><td class="mmn" data-label="Cost">$8</td><td class="mmn" data-label="Playtime">12.2 hrs</td></tr>
      <tr><td class="mmg">Slay the Spire</td><td class="mmn" data-label="Votes">82</td><td class="mmn" data-label="Revenue">$50,000,000</td><td class="mmn" data-label="Units">4,000,000</td><td class="mmn" data-label="Cost">$13</td><td class="mmn" data-label="Playtime">26.5 hrs</td></tr>
      <tr><td class="mmg">The Binding of Isaac: Rebirth</td><td class="mmn" data-label="Votes">77</td><td class="mmn" data-label="Revenue">$48,000,000</td><td class="mmn" data-label="Units">9,000,000</td><td class="mmn" data-label="Cost">$5</td><td class="mmn" data-label="Playtime">52.3 hrs</td></tr>
      <tr><td class="mmg">Dead Cells</td><td class="mmn" data-label="Votes">72</td><td class="mmn" data-label="Revenue">$58,000,000</td><td class="mmn" data-label="Units">6,500,000</td><td class="mmn" data-label="Cost">$9</td><td class="mmn" data-label="Playtime">11.0 hrs</td></tr>
      <tr><td class="mmg">Noita</td><td class="mmn" data-label="Votes">72</td><td class="mmn" data-label="Revenue">$7,800,000</td><td class="mmn" data-label="Units">780,000</td><td class="mmn" data-label="Cost">$10</td><td class="mmn" data-label="Playtime">24.0 hrs</td></tr>
      <tr><td class="mmg">Monster Train</td><td class="mmn" data-label="Votes">70</td><td class="mmn" data-label="Revenue">$6,500,000</td><td class="mmn" data-label="Units">520,000</td><td class="mmn" data-label="Cost">$13</td><td class="mmn" data-label="Playtime">19.0 hrs</td></tr>
      <tr><td class="mmg">Shogun Showdown</td><td class="mmn" data-label="Votes">67</td><td class="mmn" data-label="Revenue">$1,200,000</td><td class="mmn" data-label="Units">240,000</td><td class="mmn" data-label="Cost">$5</td><td class="mmn" data-label="Playtime">4.9 hrs</td></tr>
      <tr><td class="mmg">Enter the Gungeon</td><td class="mmn" data-label="Votes">66</td><td class="mmn" data-label="Revenue">$39,100,000</td><td class="mmn" data-label="Units">4,000,000</td><td class="mmn" data-label="Cost">$10</td><td class="mmn" data-label="Playtime">6.2 hrs</td></tr>
      <tr><td class="mmg">Inscryption</td><td class="mmn" data-label="Votes">63</td><td class="mmn" data-label="Revenue">$10,000,000</td><td class="mmn" data-label="Units">1,300,000</td><td class="mmn" data-label="Cost">$8</td><td class="mmn" data-label="Playtime">9.5 hrs</td></tr>
      <tr><td class="mmg">Hades</td><td class="mmn" data-label="Votes">60</td><td class="mmn" data-label="Revenue">$137,900,000</td><td class="mmn" data-label="Units">8,200,000</td><td class="mmn" data-label="Cost">$17</td><td class="mmn" data-label="Playtime">16.3 hrs</td></tr>
      <tr><td class="mmg">Halls of Torment</td><td class="mmn" data-label="Votes">56</td><td class="mmn" data-label="Revenue">$3,600,000</td><td class="mmn" data-label="Units">934,000</td><td class="mmn" data-label="Cost">$4</td><td class="mmn" data-label="Playtime">12.1 hrs</td></tr>
      <tr><td class="mmg">Hades II</td><td class="mmn" data-label="Votes">54</td><td class="mmna" data-label="Revenue"></td><td class="mmna" data-label="Units"></td><td class="mmn" data-label="Cost">$15</td><td class="mmna" data-label="Playtime"></td></tr>
      <tr><td class="mmg">Balatro</td><td class="mmn" data-label="Votes">50</td><td class="mmna" data-label="Revenue"></td><td class="mmna" data-label="Units"></td><td class="mmna" data-label="Cost"></td><td class="mmna" data-label="Playtime"></td></tr>
      <tr><td class="mmg">Vampire Survivors (mobile)</td><td class="mmn" data-label="Votes">45</td><td class="mmna" data-label="Revenue"></td><td class="mmna" data-label="Units"></td><td class="mmn" data-label="Cost">$0</td><td class="mmna" data-label="Playtime"></td></tr>
      <tr><td class="mmg">20 Minutes Till Dawn</td><td class="mmn" data-label="Votes">42</td><td class="mmn" data-label="Revenue">$2,600,000</td><td class="mmn" data-label="Units">859,000</td><td class="mmn" data-label="Cost">$3</td><td class="mmn" data-label="Playtime">6.9 hrs</td></tr>
      <tr><td class="mmg">Rogue Legacy 2</td><td class="mmn" data-label="Votes">40</td><td class="mmna" data-label="Revenue"></td><td class="mmna" data-label="Units"></td><td class="mmn" data-label="Cost">$20</td><td class="mmna" data-label="Playtime"></td></tr>
      <tr><td class="mmg">Returnal</td><td class="mmn" data-label="Votes">38</td><td class="mmna" data-label="Revenue"></td><td class="mmna" data-label="Units"></td><td class="mmn" data-label="Cost">$40</td><td class="mmna" data-label="Playtime"></td></tr>
      <tr><td class="mmg">Holocure</td><td class="mmn" data-label="Votes">35</td><td class="mmna" data-label="Revenue"></td><td class="mmna" data-label="Units"></td><td class="mmn" data-label="Cost">$0</td><td class="mmn" data-label="Playtime">8.5 hrs</td></tr>
      <tr><td class="mmg">Windblown</td><td class="mmn" data-label="Votes">34</td><td class="mmna" data-label="Revenue"></td><td class="mmna" data-label="Units"></td><td class="mmna" data-label="Cost"></td><td class="mmna" data-label="Playtime"></td></tr>
      <tr><td class="mmg">BALL x PIT</td><td class="mmn" data-label="Votes">30</td><td class="mmna" data-label="Revenue"></td><td class="mmna" data-label="Units"></td><td class="mmna" data-label="Cost"></td><td class="mmna" data-label="Playtime"></td></tr>
      <tr><td class="mmg">Death Must Die</td><td class="mmn" data-label="Votes">28</td><td class="mmn" data-label="Revenue">$3,400,000</td><td class="mmn" data-label="Units">641,000</td><td class="mmn" data-label="Cost">$5</td><td class="mmn" data-label="Playtime">10.6 hrs</td></tr>
      <tr><td class="mmg">Boneraiser Minions</td><td class="mmn" data-label="Votes">25</td><td class="mmn" data-label="Revenue">$507,000</td><td class="mmn" data-label="Units">159,000</td><td class="mmn" data-label="Cost">$3</td><td class="mmn" data-label="Playtime">5.8 hrs</td></tr>
      <tr><td class="mmg">Dungeons and Ducklings</td><td class="mmn" data-label="Votes">22</td><td class="mmna" data-label="Revenue"></td><td class="mmna" data-label="Units"></td><td class="mmna" data-label="Cost"></td><td class="mmna" data-label="Playtime"></td></tr>
      <tr><td class="mmg">Halls of Torment (mobile)</td><td class="mmn" data-label="Votes">20</td><td class="mmna" data-label="Revenue"></td><td class="mmna" data-label="Units"></td><td class="mmn" data-label="Cost">$5</td><td class="mmna" data-label="Playtime"></td></tr>
      <tr><td class="mmg">Vampire Survivors+ (Apple Arcade)</td><td class="mmn" data-label="Votes">18</td><td class="mmna" data-label="Revenue"></td><td class="mmna" data-label="Units"></td><td class="mmna" data-label="Cost"></td><td class="mmna" data-label="Playtime"></td></tr>
      <tr><td class="mmg">Rogue Genesia</td><td class="mmn" data-label="Votes">16</td><td class="mmn" data-label="Revenue">$1,400,000</td><td class="mmn" data-label="Units">249,000</td><td class="mmn" data-label="Cost">$6</td><td class="mmn" data-label="Playtime">13.9 hrs</td></tr>
      <tr><td class="mmg">Astral Hunter</td><td class="mmn" data-label="Votes">15</td><td class="mmna" data-label="Revenue"></td><td class="mmna" data-label="Units"></td><td class="mmna" data-label="Cost"></td><td class="mmn" data-label="Playtime">51.1 hrs</td></tr>
      <tr><td class="mmg">Magic Survival</td><td class="mmn" data-label="Votes">14</td><td class="mmna" data-label="Revenue"></td><td class="mmna" data-label="Units"></td><td class="mmn" data-label="Cost">$0</td><td class="mmna" data-label="Playtime"></td></tr>
      <tr><td class="mmg">Army of Ruin</td><td class="mmn" data-label="Votes">12</td><td class="mmn" data-label="Revenue">$408,000</td><td class="mmn" data-label="Units">80,550</td><td class="mmn" data-label="Cost">$5</td><td class="mmn" data-label="Playtime">6.7 hrs</td></tr>
      <tr><td class="mmg">Soulstone Survivors</td><td class="mmn" data-label="Votes">11</td><td class="mmn" data-label="Revenue">$6,200,000</td><td class="mmn" data-label="Units">783,000</td><td class="mmn" data-label="Cost">$8</td><td class="mmn" data-label="Playtime">19.3 hrs</td></tr>
      <tr><td class="mmg">Yet Another Zombie Survivors</td><td class="mmn" data-label="Votes">10</td><td class="mmn" data-label="Revenue">$2,800,000</td><td class="mmn" data-label="Units">387,000</td><td class="mmn" data-label="Cost">$7</td><td class="mmn" data-label="Playtime">10.6 hrs</td></tr>
      <tr><td class="mmg">Survivor.io</td><td class="mmn" data-label="Votes">9</td><td class="mmna" data-label="Revenue"></td><td class="mmna" data-label="Units"></td><td class="mmn" data-label="Cost">$0</td><td class="mmna" data-label="Playtime"></td></tr>
      <tr><td class="mmg">Spirit Hunters: Infinite Horde</td><td class="mmn" data-label="Votes">8</td><td class="mmna" data-label="Revenue"></td><td class="mmna" data-label="Units"></td><td class="mmna" data-label="Cost"></td><td class="mmna" data-label="Playtime"></td></tr>
      <tr><td class="mmg">HoloCure: Save the Fans!</td><td class="mmn" data-label="Votes">7</td><td class="mmna" data-label="Revenue"></td><td class="mmna" data-label="Units"></td><td class="mmn" data-label="Cost">$0</td><td class="mmn" data-label="Playtime">8.5 hrs</td></tr>
      <tr><td class="mmg">Pizza Hero</td><td class="mmn" data-label="Votes">6</td><td class="mmn" data-label="Revenue">$137,000</td><td class="mmn" data-label="Units">353,000</td><td class="mmn" data-label="Cost">$0</td><td class="mmn" data-label="Playtime">40.1 hrs</td></tr>
      <tr><td class="mmg">Scarlet Tower</td><td class="mmn" data-label="Votes">5</td><td class="mmna" data-label="Revenue"></td><td class="mmna" data-label="Units"></td><td class="mmna" data-label="Cost"></td><td class="mmna" data-label="Playtime"></td></tr>
      <tr><td class="mmg">Pickle Pete</td><td class="mmn" data-label="Votes">4</td><td class="mmna" data-label="Revenue"></td><td class="mmna" data-label="Units"></td><td class="mmn" data-label="Cost">$0</td><td class="mmna" data-label="Playtime"></td></tr>
      <tr><td class="mmg">Dungeon Survivors</td><td class="mmn" data-label="Votes">3</td><td class="mmna" data-label="Revenue"></td><td class="mmna" data-label="Units"></td><td class="mmna" data-label="Cost"></td><td class="mmna" data-label="Playtime"></td></tr>
      <tr><td class="mmg">Super Auto Pets</td><td class="mmn" data-label="Votes">2</td><td class="mmna" data-label="Revenue"></td><td class="mmna" data-label="Units"></td><td class="mmn" data-label="Cost">$0</td><td class="mmna" data-label="Playtime"></td></tr>
    </tbody>
  </table>
</div>
<hr class="rr-hr"/>

<!-- ═══ TOP 10 GAME REVIEWS ═══ -->
<h2>What People Said About the Top 10 Games</h2>
<p>The most notable thing about this result isn&#8217;t who won it&#8217;s how wide the genre spread is. The top 10 includes a deck-builder (Slay the Spire), a turn-based tactics game (Shogun Showdown), a physics roguelite (Noita), a deckbuilder horror game (Inscryption), and a platformer (Dead Cells), alongside the bullet heavens. The Megabonk community clearly skews toward roguelites broadly, not just bullet heavens specifically.</p>

<!-- GAME 1 -->
<div class="rr-gl-wrap">
  <div class="rr-gl-hdr"><h3 class="rr-gl-title">Risk of Rain 2</h3><span class="rr-gl-rank">#1 Most Recommended</span></div>
  <div class="rr-gl-grid">
    <div class="rr-gl-stat"><span class="rr-gl-sv">173</span><span class="rr-gl-sl">Reddit Votes</span></div>
    <div class="rr-gl-stat"><span class="rr-gl-sv">7/9</span><span class="rr-gl-sl">Threads</span></div>
    <div class="rr-gl-stat"><span class="rr-gl-sv">~$15</span><span class="rr-gl-sl">Avg Cost</span></div>
  </div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Genre</div><div class="rr-gl-val">3D Third-Person Roguelite</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Style</div><div class="rr-gl-val">Stage-based progression, chest loot, manual aiming the game Megabonk is built on</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Platforms</div><div class="rr-gl-val">PC · PS4/5 · Xbox · Switch</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Game Pass</div><div class="rr-gl-val">Yes Xbox Game Pass</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Standout</div><div class="rr-gl-val">Build variety and character depth far beyond Megabonk&#8217;s current roster</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Best For</div><div class="rr-gl-val">Megabonk fans who want more structure, depth, and active combat</div></div>
</div>
<p>Risk of Rain 2 topped the dataset with 173 votes across 7 threads, the most of any game on the list, with a margin of 32 votes over Vampire Survivors at #2.</p>
<p>Many of those mentions weren&#8217;t traditional recommendations. The community kept bringing RoR2 up to explain where Megabonk came from and what makes it tick (stage-based progression, chest loot, portals to boss fights) more than to say &#8220;play this next.&#8221; That framing is an important context for reading this ranking.</p>
<p>That said, if you haven&#8217;t played RoR2 and you love Megabonk, you should absolutely give it a try. The DNA is clear: it&#8217;s a deeper, longer, more diverse version of the same core loop.</p>
<img decoding="async" src="https://rogueranker.com/wp-content/uploads/2026/04/games-like-megabonk-risk-of-rain-2.webp" alt="Games Like Megabonk - Risk of Rain 2" style="width:100%;height:auto;border-radius:6px;margin:0 0 1.5rem;display:block;"/>


<!-- GAME 2 -->
<div class="rr-gl-wrap">
  <div class="rr-gl-hdr"><h3 class="rr-gl-title">Vampire Survivors</h3><span class="rr-gl-rank">#2 Most Recommended</span></div>
  <div class="rr-gl-grid">
    <div class="rr-gl-stat"><span class="rr-gl-sv">141</span><span class="rr-gl-sl">Reddit Votes</span></div>
    <div class="rr-gl-stat"><span class="rr-gl-sv">5/9</span><span class="rr-gl-sl">Threads</span></div>
    <div class="rr-gl-stat"><span class="rr-gl-sv">$4.99</span><span class="rr-gl-sl">Avg Cost</span></div>
  </div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Genre</div><div class="rr-gl-val">Bullet Heaven / Roguelite</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Style</div><div class="rr-gl-val">2D auto-attack, open map, 30-minute survival runs Megabonk&#8217;s other parent game</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Platforms</div><div class="rr-gl-val">PC · Switch · PS4/5 · Xbox · iOS / Android</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Game Pass</div><div class="rr-gl-val">Yes Xbox Game Pass</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Standout</div><div class="rr-gl-val">Enormous content depth, weapon evolution system, $4.99 price point</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Best For</div><div class="rr-gl-val">Players who want the purest bullet heaven loop essentially required reading for the genre</div></div>
</div>
<p>Vampire Survivors landed at 141 votes across 5 threads, 32 behind RoR2.</p>
<p>The same context applies: VS ranked largely because people kept explaining what Megabonk borrowed from it, not exclusively as a &#8220;play this next&#8221; recommendation.</p>
<p>VS is the auto-attack bullet heaven that Megabonk&#8217;s weapon loop is modeled after. You move, weapons fire automatically, enemies swarm, you level up, and pick upgrades.</p>
<p>Where Megabonk adds 3D movement, stage portals, and RoR2-style chest loot, VS is the purer, simpler version of that formula. It also has more content, more meta-progression, and a larger roster than Megabonk currently does.</p>
<p>If you came to Megabonk with no prior bullet heaven experience, VS is essentially required reading. My Games Like Vampire Survivors article covers the whole ecosystem if you want to go deeper, and the <a href="https://rogueranker.com/vampire-survivors-guide/">Vampire Survivors guide</a> is worth a look if you&#8217;re just getting started.</p>
<img decoding="async" src="https://rogueranker.com/wp-content/uploads/2026/04/games-like-megabonk-vampire-survivors.webp" alt="Games Like Megabonk - Vampire Survivors" style="width:100%;height:auto;border-radius:6px;margin:0 0 1.5rem;display:block;"/>


<!-- GAME 3 -->
<div class="rr-gl-wrap">
  <div class="rr-gl-hdr"><h3 class="rr-gl-title">Brotato</h3><span class="rr-gl-rank">#3 Most Recommended</span></div>
  <div class="rr-gl-grid">
    <div class="rr-gl-stat"><span class="rr-gl-sv">124</span><span class="rr-gl-sl">Reddit Votes</span></div>
    <div class="rr-gl-stat"><span class="rr-gl-sv">6/9</span><span class="rr-gl-sl">Threads</span></div>
    <div class="rr-gl-stat"><span class="rr-gl-sv">$4.99</span><span class="rr-gl-sl">Avg Cost</span></div>
  </div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Genre</div><div class="rr-gl-val">Bullet Heaven / Roguelite</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Style</div><div class="rr-gl-val">Arena waves, six simultaneous weapons, deep build shop between rounds</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Platforms</div><div class="rr-gl-val">PC · Switch · PS4/5 · Xbox · iOS / Android</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Game Pass</div><div class="rr-gl-val">No</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Standout</div><div class="rr-gl-val">Six simultaneous weapons build combinations feel genuinely unique</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Best For</div><div class="rr-gl-val">Players who want deep build optimization at a great price</div></div>
</div>
<p>Brotato came in at 124 votes across 6 threads, and it&#8217;s the first game in the top 10 that&#8217;s a genuine &#8220;try this next&#8221; recommendation rather than a reference point.</p>
<p>Brotato sits in interesting territory relative to Megabonk. Both are roguelites built on the bullet heaven loop, but the structure is completely different.</p>
<p>Megabonk is an open-map 3D with stage-based progression and RoR2 DNA. Brotato is an arena-based, 2D game with a shop between short waves.</p>
<p>The community kept recommending it because the build depth and item synergy are excellent, and the price is hard to argue with at $4.99.</p>
<p>I have 200+ hours in Brotato. The community&#8217;s enthusiasm here is genuine, and the <a href="https://rogueranker.com/brotato-review/">Brotato review</a> has more context if you&#8217;re on the fence.</p>
<img decoding="async" src="https://rogueranker.com/wp-content/uploads/2026/04/games-like-megabonk-brotato.webp" alt="Games Like Megabonk - Brotato" style="width:100%;height:auto;border-radius:6px;margin:0 0 1.5rem;display:block;"/>


<!-- GAME 4 -->
<div class="rr-gl-wrap">
  <div class="rr-gl-hdr"><h3 class="rr-gl-title">Deep Rock Galactic: Survivor</h3><span class="rr-gl-rank">#4 Most Recommended</span></div>
  <div class="rr-gl-grid">
    <div class="rr-gl-stat"><span class="rr-gl-sv">87</span><span class="rr-gl-sl">Reddit Votes</span></div>
    <div class="rr-gl-stat"><span class="rr-gl-sv">8/9</span><span class="rr-gl-sl">Threads</span></div>
    <div class="rr-gl-stat"><span class="rr-gl-sv">~$15</span><span class="rr-gl-sl">Avg Cost</span></div>
  </div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Genre</div><div class="rr-gl-val">Bullet Heaven / Roguelite</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Style</div><div class="rr-gl-val">VS formula with active mining and terrain control in the DRG universe</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Platforms</div><div class="rr-gl-val">PC · Xbox Series X · Xbox Cloud</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Game Pass</div><div class="rr-gl-val">Yes Xbox Game Pass</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Standout</div><div class="rr-gl-val">Mining mechanic adds spatial strategy the genre doesn&#8217;t normally have</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Best For</div><div class="rr-gl-val">Players who want character flavor and environmental interaction alongside the bullet heaven loop</div></div>
</div>
<p>Deep Rock Galactic: Survivor pulled 87 votes across 8 threads the most thread appearances of any game in the dataset, tied with Halls of Torment. DRG Survivor wasn&#8217;t just championed loudly in one place; it kept surfacing in almost every thread. What makes it relevant for Megabonk players is the shared DNA: the sense of character flavor and environmental interaction.</p>
<img decoding="async" src="https://rogueranker.com/wp-content/uploads/2026/04/games-like-megabonk-deep-rock-galactic-survivor.webp" alt="Games Like Megabonk - Deep Rock Galactic Survivor" style="width:100%;height:auto;border-radius:6px;margin:0 0 1.5rem;display:block;"/>


<!-- GAMES 5-10 condensed -->
<div class="rr-gl-wrap">
  <div class="rr-gl-hdr"><h3 class="rr-gl-title">Slay the Spire</h3><span class="rr-gl-rank">#5 Most Recommended</span></div>
  <div class="rr-gl-grid">
    <div class="rr-gl-stat"><span class="rr-gl-sv">82</span><span class="rr-gl-sl">Reddit Votes</span></div>
    <div class="rr-gl-stat"><span class="rr-gl-sv">3/9</span><span class="rr-gl-sl">Threads</span></div>
    <div class="rr-gl-stat"><span class="rr-gl-sv">~$13</span><span class="rr-gl-sl">Avg Cost</span></div>
  </div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Genre</div><div class="rr-gl-val">Deck-Building Roguelite</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Style</div><div class="rr-gl-val">Build a card hand across encounters, fight turn-based enemies not a bullet heaven</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Platforms</div><div class="rr-gl-val">PC · Switch · PS4/5 · Xbox · iOS / Android</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Game Pass</div><div class="rr-gl-val">No</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Standout</div><div class="rr-gl-val">Build synergy depth unmatched in the deck-builder genre</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Best For</div><div class="rr-gl-val">Megabonk players who love the upgrade decision-making loop in a completely different format</div></div>
</div>
<p>Slay the Spire pulled 82 votes across 3 threads, and it&#8217;s worth being upfront: Slay the Spire is not a bullet heaven, and it doesn&#8217;t play anything like Megabonk. It&#8217;s a deck-building roguelite where you build a card hand across a series of encounters and fight turn-based enemies.</p>
<p>Said differently, no auto-attack, no bullet spray, no horde survival.</p>
<p>It ranked because the roguelite audience overlaps substantially, and because 70 of its 82 votes came from a single thread, a single-thread spike worth flagging.</p>
<p>My <a href="https://rogueranker.com/best-roguelike-games/">best roguelike games</a> article has more on it in the context of the broader roguelike community.</p>
<p>If you like Megabonk&#8217;s upgrade decision-making and build-crafting, Slay the Spire absolutely delivers on that, just in a completely different format.</p>
<img decoding="async" src="https://rogueranker.com/wp-content/uploads/2026/04/games-like-megabonk-slay-the-spire.webp" alt="Games Like Megabonk - Slay the Spire" style="width:100%;height:auto;border-radius:6px;margin:0 0 1.5rem;display:block;"/>


<div class="rr-gl-wrap">
  <div class="rr-gl-hdr"><h3 class="rr-gl-title">The Binding of Isaac: Rebirth</h3><span class="rr-gl-rank">#6 Most Recommended</span></div>
  <div class="rr-gl-grid">
    <div class="rr-gl-stat"><span class="rr-gl-sv">77</span><span class="rr-gl-sl">Reddit Votes</span></div>
    <div class="rr-gl-stat"><span class="rr-gl-sv">4/9</span><span class="rr-gl-sl">Threads</span></div>
    <div class="rr-gl-stat"><span class="rr-gl-sv">~$5</span><span class="rr-gl-sl">Avg Cost</span></div>
  </div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Genre</div><div class="rr-gl-val">Twin-Stick Dungeon Crawler Roguelite</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Style</div><div class="rr-gl-val">Procedural floors, permadeath, absurd item synergy depth</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Platforms</div><div class="rr-gl-val">PC · Switch · PS4/5 · Xbox</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Game Pass</div><div class="rr-gl-val">No</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Standout</div><div class="rr-gl-val">More replayability than almost anything else on this list hundreds of hours before exhausting it</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Best For</div><div class="rr-gl-val">Players who want chaos, item synergies, and &#8220;one more run&#8221; pull at its deepest</div></div>
</div>
<p>The Binding of Isaac: Rebirth shares the chaos, the item synergies, and the &#8220;this run feels completely different&#8221; quality that makes Megabonk addictive. It doesn&#8217;t play like Megabonk in any direct sense, but once the item library clicks, there&#8217;s arguably more replayability here than anything else on this list.</p>
<img decoding="async" src="https://rogueranker.com/wp-content/uploads/2026/04/games-like-megabonk-binding-of-isaac-rebirth.webp" alt="Games Like Megabonk - The Binding of Isaac: Rebirth" style="width:100%;height:auto;border-radius:6px;margin:0 0 1.5rem;display:block;"/>


<div class="rr-gl-wrap">
  <div class="rr-gl-hdr"><h3 class="rr-gl-title">Dead Cells</h3><span class="rr-gl-rank">#7 (Tied)</span></div>
  <div class="rr-gl-grid">
    <div class="rr-gl-stat"><span class="rr-gl-sv">72</span><span class="rr-gl-sl">Reddit Votes</span></div>
    <div class="rr-gl-stat"><span class="rr-gl-sv">3/9</span><span class="rr-gl-sl">Threads</span></div>
    <div class="rr-gl-stat"><span class="rr-gl-sv">~$9</span><span class="rr-gl-sl">Avg Cost</span></div>
  </div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Genre</div><div class="rr-gl-val">Roguelite Action Platformer</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Style</div><div class="rr-gl-val">Procedural biomes, tight combat, enormous weapon variety not a bullet heaven</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Platforms</div><div class="rr-gl-val">PC · Switch · PS4/5 · Xbox · iOS / Android</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Best For</div><div class="rr-gl-val">Players who want Megabonk&#8217;s kinetic run-and-kill loop in a polished platformer format</div></div>

<img decoding="async" src="https://rogueranker.com/wp-content/uploads/2026/04/games-like-megabonk-dead-cells.webp" alt="Games Like Megabonk - Dead Cells" style="width:100%;height:auto;border-radius:6px;margin:0 0 1.5rem;display:block;"/>
</div>
<div class="rr-gl-wrap" style="margin-top:10px;">
  <div class="rr-gl-hdr"><h3 class="rr-gl-title">Noita</h3><span class="rr-gl-rank">#8 (Tied)</span></div>
  <div class="rr-gl-grid">
    <div class="rr-gl-stat"><span class="rr-gl-sv">72</span><span class="rr-gl-sl">Reddit Votes</span></div>
    <div class="rr-gl-stat"><span class="rr-gl-sv">3/9</span><span class="rr-gl-sl">Threads</span></div>
    <div class="rr-gl-stat"><span class="rr-gl-sv">~$10</span><span class="rr-gl-sl">Avg Cost</span></div>
  </div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Genre</div><div class="rr-gl-val">Physics-Based Roguelite</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Style</div><div class="rr-gl-val">Every pixel simulated, wand-crafting system, notoriously deep and opaque</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Platforms</div><div class="rr-gl-val">PC only</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Best For</div><div class="rr-gl-val">Players who want the deepest possible roguelite rabbit hole not for the faint of heart</div></div>
</div>

<img decoding="async" src="https://rogueranker.com/wp-content/uploads/2026/04/games-like-megabonk-noita.webp" alt="Games Like Megabonk - Noita" style="width:100%;height:auto;border-radius:6px;margin:0 0 1.5rem;display:block;"/>

<div class="rr-gl-wrap">
  <div class="rr-gl-hdr"><h3 class="rr-gl-title">Monster Train</h3><span class="rr-gl-rank">#9 Most Recommended</span></div>
  <div class="rr-gl-grid">
    <div class="rr-gl-stat"><span class="rr-gl-sv">70</span><span class="rr-gl-sl">Reddit Votes</span></div>
    <div class="rr-gl-stat"><span class="rr-gl-sv">2/9</span><span class="rr-gl-sl">Threads</span></div>
    <div class="rr-gl-stat"><span class="rr-gl-sv">~$13</span><span class="rr-gl-sl">Avg Cost</span></div>
  </div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Genre</div><div class="rr-gl-val">Deck-Building Roguelite</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Style</div><div class="rr-gl-val">Defend a moving pyre across battles, multi-lane combat not a bullet heaven</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Platforms</div><div class="rr-gl-val">PC · Xbox (Game Pass) · iOS / Android</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Game Pass</div><div class="rr-gl-val">Yes Xbox Game Pass</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Best For</div><div class="rr-gl-val">Players who loved Slay the Spire and want a second excellent deck-builder</div></div>
</div>
<img decoding="async" src="https://rogueranker.com/wp-content/uploads/2026/04/games-like-megabonk-monster-train.webp" alt="Games Like Megabonk - Monster Train" style="width:100%;height:auto;border-radius:6px;margin:0 0 1.5rem;display:block;"/>


<div class="rr-gl-wrap">
  <div class="rr-gl-hdr"><h3 class="rr-gl-title">Shogun Showdown</h3><span class="rr-gl-rank">#10 Most Recommended</span></div>
  <div class="rr-gl-grid">
    <div class="rr-gl-stat"><span class="rr-gl-sv">67</span><span class="rr-gl-sl">Reddit Votes</span></div>
    <div class="rr-gl-stat"><span class="rr-gl-sv">1/9</span><span class="rr-gl-sl">Threads</span></div>
    <div class="rr-gl-stat"><span class="rr-gl-sv">~$5</span><span class="rr-gl-sl">Avg Cost</span></div>
  </div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Genre</div><div class="rr-gl-val">Turn-Based Tactics Roguelite</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Style</div><div class="rr-gl-val">Position on a grid, plan attacks against enemies who move turn by turn not a bullet heaven</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Platforms</div><div class="rr-gl-val">PC · iOS / Android</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Note</div><div class="rr-gl-val">67 votes from a single thread worth flagging before reading into the ranking</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Best For</div><div class="rr-gl-val">Megabonk players who want something completely different and puzzle-like between sessions</div></div>
</div>
<img decoding="async" src="https://rogueranker.com/wp-content/uploads/2026/04/games-like-megabonk-shogun-showdown.webp" alt="Games Like Megabonk - Shogun Showdown" style="width:100%;height:auto;border-radius:6px;margin:0 0 1.5rem;display:block;"/>


<!-- HONORABLE MENTIONS -->
<div class="rr-gl-wrap">
  <div class="rr-gl-hdr"><h3 class="rr-gl-title">Hades</h3><span class="rr-gl-rank">Honorable Mention</span></div>
  <div class="rr-gl-grid">
    <div class="rr-gl-stat"><span class="rr-gl-sv">60</span><span class="rr-gl-sl">Reddit Votes</span></div>
    <div class="rr-gl-stat"><span class="rr-gl-sv">4/9</span><span class="rr-gl-sl">Threads</span></div>
    <div class="rr-gl-stat"><span class="rr-gl-sv">~$17</span><span class="rr-gl-sl">Avg Cost</span></div>
  </div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Genre</div><div class="rr-gl-val">Action Roguelite</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Style</div><div class="rr-gl-val">Manual combat, room-based progression, god boon builds, narrative that progresses each run</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Platforms</div><div class="rr-gl-val">PC · Switch · PS4/5 · Xbox · iOS (Netflix)</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Note</div><div class="rr-gl-val">Combined with Hades II = 114 votes would rank top 5 as a franchise</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Best For</div><div class="rr-gl-val">Players who want the &#8220;one more run&#8221; pull with more skill expression and story</div></div>
</div>
<img decoding="async" src="https://rogueranker.com/wp-content/uploads/2026/04/games-like-megabonk-hades.webp" alt="Games Like Megabonk - Hades" style="width:100%;height:auto;border-radius:6px;margin:0 0 1.5rem;display:block;"/>


<div class="rr-gl-wrap">
  <div class="rr-gl-hdr"><h3 class="rr-gl-title">Halls of Torment</h3><span class="rr-gl-rank">Honorable Mention</span></div>
  <div class="rr-gl-grid">
    <div class="rr-gl-stat"><span class="rr-gl-sv">56</span><span class="rr-gl-sl">Reddit Votes</span></div>
    <div class="rr-gl-stat"><span class="rr-gl-sv">8/9</span><span class="rr-gl-sl">Threads</span></div>
    <div class="rr-gl-stat"><span class="rr-gl-sv">~$5</span><span class="rr-gl-sl">Avg Cost</span></div>
  </div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Genre</div><div class="rr-gl-val">Bullet Heaven / Roguelite</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Style</div><div class="rr-gl-val">Diablo 2 aesthetic meets Vampire Survivors gear system, dark fantasy atmosphere</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Platforms</div><div class="rr-gl-val">PC · PS5 · Xbox Series X · iOS / Android</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Game Pass</div><div class="rr-gl-val">Yes Xbox Game Pass</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Note</div><div class="rr-gl-val">8/9 threads the strongest broad consensus signal in the honorable mention tier</div></div>
  <div class="rr-gl-row"><div class="rr-gl-lbl">Best For</div><div class="rr-gl-val">The most direct bullet heaven recommendation for Megabonk players outside the top 10</div></div>
</div>
<img decoding="async" src="https://rogueranker.com/wp-content/uploads/2026/04/games-like-megabonk-halls-of-torment.webp" alt="Games Like Megabonk - Halls of Torment" style="width:100%;height:auto;border-radius:6px;margin:0 0 1.5rem;display:block;"/>


<hr class="rr-hr"/>

<!-- ═══ PLATFORM SECTIONS ═══ -->
<h2>Games Like Megabonk on PS5</h2>
<p>Megabonk is PC only, so PS5 players are working from the recommendation list rather than a direct port. Strongest options available on PS5:</p>
<div class="rr-plat-wrap">
  <table>
    <thead><tr><th>#</th><th>Game</th><th>Votes</th><th>PS5 Notes</th></tr></thead>
    <tbody>
      <tr class="top1"><td>1</td><td style="font-weight:600">Risk of Rain 2</td><td>173</td><td><span class="rr-plat-badge rr-badge-ps">PS4/5</span></td></tr>
      <tr><td>2</td><td style="font-weight:600">Vampire Survivors</td><td>141</td><td><span class="rr-plat-badge rr-badge-ps">PS4/5</span></td></tr>
      <tr><td>3</td><td style="font-weight:600">Brotato</td><td>124</td><td><span class="rr-plat-badge rr-badge-ps">PS4/5</span></td></tr>
      <tr><td>4</td><td style="font-weight:600">The Binding of Isaac: Rebirth</td><td>77</td><td><span class="rr-plat-badge rr-badge-ps">PS4/5</span></td></tr>
      <tr><td>5</td><td style="font-weight:600">Dead Cells</td><td>72</td><td><span class="rr-plat-badge rr-badge-ps">PS4/5</span></td></tr>
      <tr><td>6</td><td style="font-weight:600">Hades</td><td>60</td><td><span class="rr-plat-badge rr-badge-ps">PS4/5</span></td></tr>
      <tr><td>7</td><td style="font-weight:600">Halls of Torment</td><td>56</td><td><span class="rr-plat-badge rr-badge-ps">PS5</span></td></tr>
    </tbody>
  </table>
</div>
<p>Slay the Spire and Inscryption are also on PS4/5 if the deck-builder picks appeal to you.</p>

<h2>Games Like Megabonk on Xbox</h2>
<p>Xbox is actually a strong platform for this list. Risk of Rain 2, Vampire Survivors, Deep Rock Galactic: Survivor, and Halls of Torment are all on Game Pass, which means the four most relevant options across different flavors of Megabonk-adjacent gameplay cost nothing to try with an active subscription.</p>
<div class="rr-plat-wrap">
  <table>
    <thead><tr><th>#</th><th>Game</th><th>Votes</th><th>Xbox Notes</th></tr></thead>
    <tbody>
      <tr class="top1"><td>1</td><td style="font-weight:600">Risk of Rain 2</td><td>173</td><td><span class="rr-plat-badge rr-badge-xb">Xbox</span> <span class="rr-pgp">Game Pass</span></td></tr>
      <tr><td>2</td><td style="font-weight:600">Vampire Survivors</td><td>141</td><td><span class="rr-plat-badge rr-badge-xb">Xbox</span> <span class="rr-pgp">Game Pass</span></td></tr>
      <tr><td>3</td><td style="font-weight:600">Brotato</td><td>124</td><td><span class="rr-plat-badge rr-badge-xb">Xbox</span></td></tr>
      <tr><td>4</td><td style="font-weight:600">Deep Rock Galactic: Survivor</td><td>87</td><td><span class="rr-plat-badge rr-badge-xb">Xbox</span> <span class="rr-pgp">Game Pass</span></td></tr>
      <tr><td>5</td><td style="font-weight:600">The Binding of Isaac: Rebirth</td><td>77</td><td><span class="rr-plat-badge rr-badge-xb">Xbox</span></td></tr>
      <tr><td>6</td><td style="font-weight:600">Dead Cells</td><td>72</td><td><span class="rr-plat-badge rr-badge-xb">Xbox</span></td></tr>
      <tr><td>7</td><td style="font-weight:600">Hades</td><td>60</td><td><span class="rr-plat-badge rr-badge-xb">Xbox</span></td></tr>
      <tr><td>8</td><td style="font-weight:600">Halls of Torment</td><td>56</td><td><span class="rr-plat-badge rr-badge-xb">Xbox</span> <span class="rr-pgp">Game Pass</span></td></tr>
    </tbody>
  </table>
</div>

<h2>Games Like Megabonk on Switch</h2>
<p>The Switch library is solid for this list, though Deep Rock Galactic: Survivor and Halls of Torment are both absent. Brotato is the clearest bullet heaven starting point on this platform.</p>
<div class="rr-plat-wrap">
  <table>
    <thead><tr><th>#</th><th>Game</th><th>Votes</th><th>Switch Notes</th></tr></thead>
    <tbody>
      <tr class="top1"><td>1</td><td style="font-weight:600">Risk of Rain 2</td><td>173</td><td><span class="rr-plat-badge rr-badge-sw">Switch</span></td></tr>
      <tr><td>2</td><td style="font-weight:600">Vampire Survivors</td><td>141</td><td><span class="rr-plat-badge rr-badge-sw">Switch</span></td></tr>
      <tr><td>3</td><td style="font-weight:600">Brotato</td><td>124</td><td><span class="rr-plat-badge rr-badge-sw">Switch</span></td></tr>
      <tr><td>4</td><td style="font-weight:600">Slay the Spire</td><td>82</td><td><span class="rr-plat-badge rr-badge-sw">Switch</span></td></tr>
      <tr><td>5</td><td style="font-weight:600">The Binding of Isaac: Rebirth</td><td>77</td><td><span class="rr-plat-badge rr-badge-sw">Switch</span></td></tr>
      <tr><td>6</td><td style="font-weight:600">Dead Cells</td><td>72</td><td><span class="rr-plat-badge rr-badge-sw">Switch</span></td></tr>
      <tr><td>7</td><td style="font-weight:600">Hades</td><td>60</td><td><span class="rr-plat-badge rr-badge-sw">Switch</span></td></tr>
    </tbody>
  </table>
</div>
<p>Notably absent from Switch: Deep Rock Galactic: Survivor and Halls of Torment. Brotato is the clearest bullet heaven starting point on this platform.</p>

<h2>Android and iOS Games Like Megabonk</h2>
<p>Megabonk is PC only with no announced mobile version. Best options from the ranked list available on mobile:</p>
<div class="rr-plat-wrap">
  <table>
    <thead><tr><th>Game</th><th>Platform</th><th>Notes</th></tr></thead>
    <tbody>
      <tr class="top1"><td style="font-weight:600">Vampire Survivors</td><td>iOS / Android</td><td style="color:#555466;font-size:13px">Full mobile version</td></tr>
      <tr><td style="font-weight:600">Brotato</td><td>iOS / Android</td><td style="color:#555466;font-size:13px">Full mobile version</td></tr>
      <tr><td style="font-weight:600">Dead Cells</td><td>iOS / Android</td><td style="color:#555466;font-size:13px">Full mobile version</td></tr>
      <tr><td style="font-weight:600">Slay the Spire</td><td>iOS / Android</td><td style="color:#555466;font-size:13px">Full mobile version</td></tr>
      <tr><td style="font-weight:600">Shogun Showdown</td><td>iOS / Android</td><td style="color:#555466;font-size:13px">Dedicated mobile version</td></tr>
      <tr><td style="font-weight:600">Monster Train</td><td>iOS / Android</td><td style="color:#555466;font-size:13px">Full mobile version</td></tr>
    </tbody>
  </table>
</div>

<hr class="rr-hr"/>

<!-- ═══ COMPARISONS ═══ -->
<h2>Megabonk vs. Vampire Survivors</h2>
<p>This comparison comes up in nearly every thread about Megabonk.</p>
<p>The short version: they share the auto-attack bullet heaven loop, but almost everything else is different.</p>
<p>VS is 2D, top-down, time-based, you survive 30 minutes and that&#8217;s a run. Upgrades come from leveling up mid-run, weapons evolve by combining with passive items, and meta-progression unlocks permanently stronger starting conditions. It&#8217;s the simpler, more accessible version of the formula.</p>
<p>Megabonk takes that auto-attack loop and drops it into a 3D open map with stage-based progression borrowed from Risk of Rain 2. Runs end when you reach a portal and fight a boss, not when a timer expires. Loot comes from chests you find by exploring, not just from level-up choices. The 3D movement and verticality change how the game feels entirely.</p>
<p>VS is the better pick for &#8220;brain off&#8221; sessions. Megabonk asks more of you spatially.</p>

<div class="rr-cmp-wrap">
  <div class="rr-cmp-hdr">
    <div class="rr-cmp-hc lbl">Category</div>
    <div class="rr-cmp-hc c2">Megabonk</div>
    <div class="rr-cmp-hc c3">Vampire Survivors</div>
  </div>
  <div class="rr-cmp-row"><div class="rr-cmp-c lbl">Perspective</div><div class="rr-cmp-c c2">3D third-person</div><div class="rr-cmp-c">2D top-down</div></div>
  <div class="rr-cmp-row"><div class="rr-cmp-c lbl">Run Structure</div><div class="rr-cmp-c c2">Stage-based with portals and boss fights</div><div class="rr-cmp-c">Survive 30 minutes timer-based</div></div>
  <div class="rr-cmp-row"><div class="rr-cmp-c lbl">Loot</div><div class="rr-cmp-c c2">Chests found by exploring the map</div><div class="rr-cmp-c">Level-up picks mid-run</div></div>
  <div class="rr-cmp-row"><div class="rr-cmp-c lbl">Combat</div><div class="rr-cmp-c c2">Auto-attack with 3D spatial movement</div><div class="rr-cmp-c">Fully auto-attack, movement only</div></div>
  <div class="rr-cmp-row"><div class="rr-cmp-c lbl">Content Depth</div><div class="rr-cmp-c c2">Newer still growing</div><div class="rr-cmp-c">Massive years of DLC and updates</div></div>
  <div class="rr-cmp-row"><div class="rr-cmp-c lbl">Best For</div><div class="rr-cmp-c c2">Spatial awareness, 3D movement, stage variety</div><div class="rr-cmp-c">Brain-off sessions, content depth, low price</div></div>
  <div class="rr-cmp-foot">VS is the simpler version of the formula Megabonk adds the 3D and stage-based layer on top</div>
<img decoding="async" src="https://rogueranker.com/wp-content/uploads/2026/04/games-like-megabonk-vs-vampire-survivors.webp" alt="Megabonk vs Vampire Survivors" style="width:100%;height:auto;border-radius:6px;margin:0 0 1.5rem;display:block;"/>

</div>

<h2>Megabonk vs. Risk of Rain 2</h2>
<p>The comparison that comes up most in Megabonk&#8217;s Steam threads. The community settled on a reasonable shorthand: Megabonk is RoR2 meets Vampire Survivors.</p>
<p>The similarities are real: 3D third-person perspective, stage-based runs that end at a portal, boss fights, chests to loot with currency you collect from kills. If you&#8217;ve played RoR2, Megabonk will feel immediately familiar in structure.</p>
<p>The differences are also real. RoR2 requires manual aiming and active dodging; Megabonk is auto-attack. RoR2 has significantly more build diversity, more characters, more items, and a higher mechanical ceiling. Runs are longer and more variable. It rewards skilled play more explicitly.</p>
<p>Megabonk is the more accessible entry point. RoR2 is the deeper game if you&#8217;re willing to invest the time. If you hit the content ceiling in Megabonk and want more of that structure with more build complexity, RoR2 is the obvious next step.</p>
<img decoding="async" src="https://rogueranker.com/wp-content/uploads/2026/04/games-like-megabonk-vs-risk-of-rain-2.webp" alt="Megabonk vs Risk of Rain 2" style="width:100%;height:auto;border-radius:6px;margin:0 0 1.5rem;display:block;"/>


<div class="rr-cmp-wrap">
  <div class="rr-cmp-hdr">
    <div class="rr-cmp-hc lbl">Category</div>
    <div class="rr-cmp-hc c2">Megabonk</div>
    <div class="rr-cmp-hc c3">Risk of Rain 2</div>
  </div>
  <div class="rr-cmp-row"><div class="rr-cmp-c lbl">Combat</div><div class="rr-cmp-c c2">Auto-attack movement focused</div><div class="rr-cmp-c">Manual aiming skill expressive</div></div>
  <div class="rr-cmp-row"><div class="rr-cmp-c lbl">Run Length</div><div class="rr-cmp-c c2">Shorter, snappier</div><div class="rr-cmp-c">Longer, more variable</div></div>
  <div class="rr-cmp-row"><div class="rr-cmp-c lbl">Build Depth</div><div class="rr-cmp-c c2">Solid still growing</div><div class="rr-cmp-c">Significantly deeper more characters and items</div></div>
  <div class="rr-cmp-row"><div class="rr-cmp-c lbl">Accessibility</div><div class="rr-cmp-c c2">Lower floor easier to pick up</div><div class="rr-cmp-c">Higher mechanical ceiling</div></div>
  <div class="rr-cmp-row"><div class="rr-cmp-c lbl">Best For</div><div class="rr-cmp-c c2">Auto-attack feel with RoR2 structure</div><div class="rr-cmp-c">Players ready to invest more time and skill</div></div>
  <div class="rr-cmp-foot">Megabonk is the more accessible entry point RoR2 is the deeper game if you&#8217;re willing to invest</div>
</div>

<hr class="rr-hr"/>

<!-- ═══ BULLET HEAVEN VS HELL ═══ -->
<h2>Bullet Heaven vs. Bullet Hell</h2>
<p>These two terms get confused constantly. Bullet hell games put you on the receiving end of enemy projectiles; bullet heaven games flip the script and make you the one causing the chaos. Megabonk is bullet heaven. For a full breakdown of where these genres overlap and diverge, the <a href="https://rogueranker.com/bullet-heaven-vs-bullet-hell/">bullet heaven vs. bullet hell</a> guide covers it in detail.</p>

<hr class="rr-hr"/>

<!-- ═══ WRAP ═══ -->
<h2>Wrapping Up</h2>
<p>146 games, 9 threads, 1,757 votes. The result is one of the more eclectic top 10s across any data article on this site, and I think that reflects something real about who plays Megabonk.</p>
<p>The community skews toward roguelites generally, not bullet heavens specifically, which is why you get Slay the Spire and Noita sitting alongside DRG Survivor and Brotato.</p>
<p>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>

</article>
<script>(function(){   if(typeof Chart==='undefined'){return;}   var tip={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};   var tick={font:{family:"Barlow,sans-serif",size:window.innerWidth<640?9:11},color:"#555466"};   var grid={color:"#e0dded"};   var dark="#1a1a24",gold="#b8892a";   var vd=[["Noita",24.0,10],["Vampire Survivors",8.0,5],["Shogun Showdown",4.9,5],["Brotato",12.9,4],["Halls of Torment",12.1,4],["The Binding of Isaac",52.3,5],["Dead Cells",11.0,9],["Monster Train",19.0,13],["Slay the Spire",26.5,13],["Enter the Gungeon",6.2,10],["Risk of Rain 2",13.5,15],["Deep Rock Galactic: Survivor",12.2,8]].map(function(d){return{name:d[0],val:Math.round(d[1]/d[2]*100)/100};}).sort(function(a,b){return b.val-a.val;});   var vc=document.getElementById("rr-chart-value");   if(vc){new Chart(vc,{type:"bar",data:{labels:vd.map(function(d){return d.name;}),datasets:[{data:vd.map(function(d){return d.val;}),backgroundColor:vd.map(function(d,i){return i===0?gold:dark;}),borderRadius:3}]},options:{indexAxis:"y",responsive:true,maintainAspectRatio:false,plugins:{legend:{display:false},tooltip:{callbacks:{label:function(c){return" "+c.parsed.x.toFixed(2)+" hrs per $1";}},backgroundColor:tip.backgroundColor,titleFont:tip.titleFont,bodyFont:tip.bodyFont,titleColor:tip.titleColor,bodyColor:tip.bodyColor,borderColor:tip.borderColor,borderWidth:tip.borderWidth,padding:tip.padding}},scales:{x:{title:{display:true,text:"Hours of Playtime per $1 Spent",font:{family:"Barlow,sans-serif",size:12},color:"#888699"},grid:grid,ticks:tick},y:{grid:{display:false},ticks:tick}}}});}   var pts=[13.5,8.0,12.9,12.2,26.5,52.3,11.0,24.0,19.0,4.9,6.2,9.5,16.3,12.1];   var bins=[0,0,0,0,0,0,0];   var hlabels=["0-5","5-10","10-15","15-20","20-25","25-30","30+"];   pts.forEach(function(v){if(v>=30){bins[6]++;}else{bins[Math.min(Math.floor(v/5),5)]++;}});   var mx=Math.max.apply(null,bins);   var hc=document.getElementById("rr-chart-hist");   if(hc){new Chart(hc,{type:"bar",data:{labels:hlabels,datasets:[{data:bins,backgroundColor:bins.map(function(v){return v===mx?gold:dark;}),borderRadius:3,barPercentage:1.0,categoryPercentage:0.9}]},options:{responsive:true,maintainAspectRatio:false,plugins:{legend:{display:false},tooltip:{callbacks:{label:function(c){return" "+c.parsed.y+" game"+(c.parsed.y!==1?"s":"");}},backgroundColor:tip.backgroundColor,titleFont:tip.titleFont,bodyFont:tip.bodyFont,titleColor:tip.titleColor,bodyColor:tip.bodyColor,borderColor:tip.borderColor,borderWidth:tip.borderWidth,padding:tip.padding}},scales:{x:{title:{display:true,text:"Median Playtime (Hours)",font:{family:"Barlow,sans-serif",size:12},color:"#888699"},grid:{display:false},ticks:tick},y:{title:{display:true,text:"Number of Games",font:{family:"Barlow,sans-serif",size:12},color:"#888699"},grid:grid,ticks:{stepSize:1,font:tick.font,color:tick.color}}}}});}   var rv=[["Risk of Rain 2",147000000],["Hades",137900000],["Dead Cells",58000000],["Slay the Spire",50000000],["The Binding of Isaac",48000000],["Enter the Gungeon",39100000],["Vampire Survivors",31000000],["Brotato",11600000],["Deep Rock Galactic: Survivor",10900000],["Inscryption",10000000],["Noita",7800000],["Monster Train",6500000],["Halls of Torment",3600000],["Shogun Showdown",1200000]].sort(function(a,b){return b[1]-a[1];});   var rc=document.getElementById("rr-chart-rev");   if(rc){new Chart(rc,{type:"bar",data:{labels:rv.map(function(d){return d[0];}),datasets:[{data:rv.map(function(d){return d[1];}),backgroundColor:rv.map(function(d,i){return i===0?gold:dark;}),borderRadius:3}]},options:{indexAxis:"y",responsive:true,maintainAspectRatio:false,plugins:{legend:{display:false},tooltip:{callbacks:{label:function(c){return" $"+c.parsed.x.toLocaleString();}},backgroundColor:tip.backgroundColor,titleFont:tip.titleFont,bodyFont:tip.bodyFont,titleColor:tip.titleColor,bodyColor:tip.bodyColor,borderColor:tip.borderColor,borderWidth:tip.borderWidth,padding:tip.padding}},scales:{x:{title:{display:true,text:"Gross Revenue (USD)",font:{family:"Barlow,sans-serif",size:12},color:"#888699"},grid:grid,ticks:{font:tick.font,color:tick.color,callback:function(v){return v>=1000000?"$"+(v/1000000).toFixed(0)+"M":"$"+(v/1000).toFixed(0)+"K";}}},y:{grid:{display:false},ticks:tick}}}});}   var un=[["Vampire Survivors",15000000],["Risk of Rain 2",9500000],["The Binding of Isaac",9000000],["Hades",8200000],["Dead Cells",6500000],["Slay the Spire",4000000],["Enter the Gungeon",4000000],["Brotato",3300000],["Deep Rock Galactic: Survivor",1400000],["Inscryption",1300000],["Halls of Torment",934000],["Noita",780000],["Monster Train",520000],["Shogun Showdown",240000]].sort(function(a,b){return b[1]-a[1];});   var uc=document.getElementById("rr-chart-units");   if(uc){new Chart(uc,{type:"bar",data:{labels:un.map(function(d){return d[0];}),datasets:[{data:un.map(function(d){return d[1];}),backgroundColor:un.map(function(d,i){return i===0?gold:dark;}),borderRadius:3}]},options:{indexAxis:"y",responsive:true,maintainAspectRatio:false,plugins:{legend:{display:false},tooltip:{callbacks:{label:function(c){return" "+c.parsed.x.toLocaleString()+" units";}},backgroundColor:tip.backgroundColor,titleFont:tip.titleFont,bodyFont:tip.bodyFont,titleColor:tip.titleColor,bodyColor:tip.bodyColor,borderColor:tip.borderColor,borderWidth:tip.borderWidth,padding:tip.padding}},scales:{x:{title:{display:true,text:"Units Sold",font:{family:"Barlow,sans-serif",size:12},color:"#888699"},grid:grid,ticks:{font:tick.font,color:tick.color,callback:function(v){return v>=1000000?(v/1000000).toFixed(0)+"M":(v/1000).toFixed(0)+"K";}}},y:{grid:{display:false},ticks:tick}}}});}   var sc=[{g:"Risk of Rain 2",v:173,r:147000000},{g:"Vampire Survivors",v:141,r:31000000},{g:"Brotato",v:124,r:11600000},{g:"Deep Rock Galactic: Survivor",v:87,r:10900000},{g:"Slay the Spire",v:82,r:50000000},{g:"The Binding of Isaac",v:77,r:48000000},{g:"Dead Cells",v:72,r:58000000},{g:"Noita",v:72,r:7800000},{g:"Monster Train",v:70,r:6500000},{g:"Shogun Showdown",v:67,r:1200000},{g:"Enter the Gungeon",v:66,r:39100000},{g:"Inscryption",v:63,r:10000000},{g:"Hades",v:60,r:137900000},{g:"Halls of Torment",v:56,r:3600000}];   var scc=document.getElementById("rr-chart-scatter");   if(scc){new Chart(scc,{type:"scatter",data:{datasets:[{data:sc.map(function(d){return{x:d.v,y:d.r,game:d.g};}),backgroundColor:sc.map(function(d){return d.g==="Risk of Rain 2"?gold:"rgba(26,26,36,0.75)";}),pointRadius:6,pointHoverRadius:8}]},options:{responsive:true,maintainAspectRatio:false,plugins:{legend:{display:false},tooltip:{callbacks:{label:function(c){return" "+c.raw.game+" - "+c.raw.x+" votes / $"+c.raw.y.toLocaleString();}},displayColors:false,backgroundColor:tip.backgroundColor,titleFont:tip.titleFont,bodyFont:tip.bodyFont,titleColor:tip.titleColor,bodyColor:tip.bodyColor,borderColor:tip.borderColor,borderWidth:tip.borderWidth,padding:tip.padding}},scales:{x:{title:{display:true,text:"Reddit Votes",font:{family:"Barlow,sans-serif",size:12},color:"#888699"},grid:grid,ticks:tick},y:{title:{display:true,text:"Gross Revenue (USD)",font:{family:"Barlow,sans-serif",size:12},color:"#888699"},grid:grid,ticks:{font:tick.font,color:tick.color,callback:function(v){return"$"+(v>=1000000?(v/1000000).toFixed(0)+"M":(v/1000).toFixed(0)+"K");}}}}}});} })();</script>

<!-- ═══ CHARTS JS ═══ -->
<script>



<p class="wp-block-paragraph"></p>
<p>The post <a href="https://rogueranker.com/games-like-megabonk/">(Top 146) Games Like Megabonk Based on 1,757 Reddit Votes</a> appeared first on <a href="https://rogueranker.com">Rogue Ranker</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>(Vampire Survivors Guide): Tips, Builds, and Progression for New Players</title>
		<link>https://rogueranker.com/vampire-survivors-guide/</link>
		
		<dc:creator><![CDATA[Steven]]></dc:creator>
		<pubDate>Sun, 22 Mar 2026 04:54:46 +0000</pubDate>
				<category><![CDATA[Vampire Survivors]]></category>
		<guid isPermaLink="false">https://rogueranker.com/?p=917</guid>

					<description><![CDATA[<p>When I first played Vampire Survivors, I didn’t really know what to do, aside from “stay alive,” which is pretty much the goal of your first dozen playthroughs.&#160; Beyond that, I felt scattered, bouncing around screens trying to pick a path toward completion. Sure, there’s the Wiki, but going there immediately didn’t feel right.&#160; Now [&#8230;]</p>
<p>The post <a href="https://rogueranker.com/vampire-survivors-guide/">(Vampire Survivors Guide): Tips, Builds, and Progression for New Players</a> appeared first on <a href="https://rogueranker.com">Rogue Ranker</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">When I first played Vampire Survivors, I didn’t really know what to do, aside from “stay alive,” which is pretty much the goal of your first dozen playthroughs.&nbsp;</p>



<p class="wp-block-paragraph">Beyond that, I felt scattered, bouncing around screens trying to pick a path toward completion. Sure, there’s the Wiki, but going there immediately didn’t feel right.&nbsp;</p>



<p class="wp-block-paragraph">Now that I’ve put in a decent number of hours, I figured a general guide would be fun to write.&nbsp;</p>



<p class="wp-block-paragraph">Full transparency: there are MANY players with way more hours than me, so I went to Reddit and collected community insight as well.&nbsp;</p>



<p class="wp-block-paragraph">Throughout the guide, you’ll see mentions of Reddit quotes and threads that stood out and ultimately contributed to the overall guide.&nbsp;</p>



<p class="wp-block-paragraph">Hope you enjoy <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>



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



<p class="wp-block-paragraph"><!-- 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 {
    --bh-accent:  #c0392b;
    --bh-gold:    #b8892a;
    --bh-text:    #1a1a24;
    --bh-muted:   #888699;
    --bh-border:  #e0dded;
    --bh-stripe:  #f7f6fb;
    --bh-cat-bg:  #1a1a24;
  }

  .vs-tips-header {
    text-align: center;
    margin-bottom: 1.6rem;
  }
  .vs-tips-header p.vs-tips-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(1rem, 3vw, 1.45rem);
    color: var(--bh-gold);
    letter-spacing: 0.04em;
    margin: 0 0 0.3rem;
  }
  .vs-tips-header p.vs-tips-sub {
    color: var(--bh-muted);
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin: 0;
  }

  .vs-tips-wrap {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    overflow-x: auto;
    border: 1px solid var(--bh-border);
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
  }

  .vs-tips-wrap table {
    width: 100%;
    border-collapse: collapse;
    min-width: 460px;
    background: #fff;
  }

  .vs-tips-wrap thead tr {
    background: var(--bh-cat-bg);
    border-bottom: 2px solid var(--bh-accent);
  }
  .vs-tips-wrap thead th {
    padding: 0.8rem 1.1rem;
    text-align: left;
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.62rem;
    letter-spacing: 0.1em;
    color: #e8b94f;
    text-transform: uppercase;
    white-space: nowrap;
  }

  .vs-tips-wrap tbody tr {
    border-bottom: 1px solid var(--bh-border);
    transition: background 0.12s;
  }
  .vs-tips-wrap tbody tr:last-child { border-bottom: none; }
  .vs-tips-wrap tbody tr:nth-child(even) { background: var(--bh-stripe) !important; }
  .vs-tips-wrap tbody tr:hover { background: #f0eef8 !important; }

  .vs-tips-wrap td {
    padding: 0.78rem 1.1rem;
    vertical-align: top;
    font-family: 'Barlow', sans-serif;
    font-size: 14px;
    color: var(--bh-text);
    line-height: 1.5;
  }

  .vs-tip {
    font-weight: 600;
    width: 38%;
    color: var(--bh-text);
  }

  .vs-why {
    color: #555466;
    font-weight: 400;
  }

  @media (max-width: 560px) {
    .vs-tips-wrap thead th,
    .vs-tips-wrap td { padding: 0.6rem 0.75rem; font-size: 0.8rem; }
    .vs-tips-wrap thead th { font-size: 0.52rem; }
    .vs-tip { width: auto; }
  }
</style>

<div class="vs-tips-header">
  <p class="vs-tips-title">Vampire Survivors Tips at a Glance</p>
  <p class="vs-tips-sub">TL;DR — Key tips for new and returning players</p>
</div>

<div class="vs-tips-wrap">
  <table>
    <colgroup>
      <col style="width:38%">
      <col>
    </colgroup>
    <thead>
      <tr>
        <th scope="col">Tip</th>
        <th scope="col">Why It Matters</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="vs-tip">Level up one weapon at a time</td>
        <td class="vs-why">Evolutions require a maxed weapon; spreading thin delays your biggest power spikes</td>
      </tr>
      <tr>
        <td class="vs-tip">Start in the Inlaid Library</td>
        <td class="vs-why">Smoother difficulty curve than Mad Forest, plus free floor items that expand your passive slots</td>
      </tr>
      <tr>
        <td class="vs-tip">Hit Amount and Might first in PowerUps</td>
        <td class="vs-why">Extra projectiles and flat damage feed the leveling loop faster than any defensive stat</td>
      </tr>
      <tr>
        <td class="vs-tip">Follow the Unlocks menu top to bottom</td>
        <td class="vs-why">It's the game's actual progression guide; every objective opens something useful</td>
      </tr>
      <tr>
        <td class="vs-tip">Get the Milky Way Map relic early</td>
        <td class="vs-why">The minimap changes how you navigate every stage; grab it from Dairy Plant as soon as you can</td>
      </tr>
      <tr>
        <td class="vs-tip">Keep Garlic and King Bible early on</td>
        <td class="vs-why">They provide damage and crowd control while you're still learning weapon evolutions</td>
      </tr>
      <tr>
        <td class="vs-tip">Don't stress over PowerUp order early</td>
        <td class="vs-why">You can refund everything penalty-free, so early mistakes cost nothing</td>
      </tr>
      <tr>
        <td class="vs-tip">Wiki for Secrets, Unlocks menu for everything else</td>
        <td class="vs-why">Secrets are intentionally vague; the wiki is what Poncle expects you to use for them</td>
      </tr>
    </tbody>
  </table>
</div></p>



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



<h2 class="wp-block-heading"><strong>Vampire Survivors Beginners Guide</strong></h2>



<p class="wp-block-paragraph">The funny thing is, Vampire Survivors is deceptively simple at first glance.&nbsp;</p>



<p class="wp-block-paragraph">You pick a character, you move around a map, your weapons fire automatically, and enemies come at you in waves that escalate until either you die or the 30-minute mark hits. At that point, an unkillable Reaper appears and ends your run. Woo!</p>



<p class="wp-block-paragraph">And that&#8217;s the loop.&nbsp;</p>



<p class="wp-block-paragraph">Every time you level up, you pick one of three (or four, with the right PowerUps) items to add or level up. Weapons evolve into far more powerful versions if you meet specific conditions; usually maxing the weapon to level 8 and having a particular passive item in your inventory when you open a chest.&nbsp;</p>



<p class="wp-block-paragraph">Pro tip: Those evolved weapons are the whole game.</p>



<h3 class="wp-block-heading"><strong>The Biggest Beginner Mistake</strong></h3>



<p class="wp-block-paragraph">Every Reddit thread on this topic says the same thing: Spreading too thin, too early.&nbsp;</p>



<p class="wp-block-paragraph">As u/LolYouFuckingLoser put it in <a href="https://www.reddit.com/r/VampireSurvivors/comments/1elv1yp/any_beginner_tips_for_me/">this thread</a>: &#8220;Focus on one thing where possible, only pick new items if you are unable to strengthen an existing one.&#8221;</p>



<p class="wp-block-paragraph">One maxed weapon is far more powerful than four weapons at level one.&nbsp;</p>



<p class="wp-block-paragraph">You need that maxed weapon to unlock its evolution, and evolutions are what carry runs past the 20-minute mark.</p>



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



<p class="wp-block-paragraph"><!-- 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 {
    --bh-accent:  #c0392b;
    --bh-gold:    #b8892a;
    --bh-text:    #1a1a24;
    --bh-muted:   #888699;
    --bh-border:  #e0dded;
    --bh-stripe:  #f7f6fb;
    --bh-cat-bg:  #1a1a24;
  }

  .vs-chars-header {
    text-align: center;
    margin-bottom: 1.6rem;
  }
  .vs-chars-header p.vs-chars-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(1rem, 3vw, 1.45rem);
    color: var(--bh-gold);
    letter-spacing: 0.04em;
    margin: 0 0 0.3rem;
  }
  .vs-chars-header p.vs-chars-sub {
    color: var(--bh-muted);
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin: 0;
  }

  .vs-chars-wrap {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    overflow-x: auto;
    border: 1px solid var(--bh-border);
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
  }

  .vs-chars-wrap table {
    width: 100%;
    border-collapse: collapse;
    min-width: 560px;
    background: #fff;
  }

  .vs-chars-wrap thead tr {
    background: var(--bh-cat-bg);
    border-bottom: 2px solid var(--bh-accent);
  }
  .vs-chars-wrap thead th {
    padding: 0.8rem 1.1rem;
    text-align: left;
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.62rem;
    letter-spacing: 0.1em;
    color: #e8b94f;
    text-transform: uppercase;
    white-space: nowrap;
  }

  .vs-chars-wrap tbody tr {
    border-bottom: 1px solid var(--bh-border);
    transition: background 0.12s;
  }
  .vs-chars-wrap tbody tr:last-child { border-bottom: none; }
  .vs-chars-wrap tbody tr:nth-child(even) { background: var(--bh-stripe) !important; }
  .vs-chars-wrap tbody tr:hover { background: #f0eef8 !important; }
  .vs-chars-wrap tbody tr.vs-default { background: #fffbf0 !important; }
  .vs-chars-wrap tbody tr.vs-default:hover { background: #fff5d6 !important; }
  .vs-chars-wrap tbody tr.vs-default .vs-char-name { color: var(--bh-gold); font-weight: 700; }

  .vs-chars-wrap td {
    padding: 0.72rem 1.1rem;
    vertical-align: top;
    font-family: 'Barlow', sans-serif;
    font-size: 14px;
    color: var(--bh-text);
    line-height: 1.5;
  }

  .vs-char-name { font-weight: 700; white-space: nowrap; }
  .vs-unlock { color: #555466; font-size: 13px; white-space: nowrap; }
  .vs-weapon { font-weight: 600; white-space: nowrap; color: var(--bh-text); }
  .vs-why { color: #555466; font-weight: 400; }

  @media (max-width: 560px) {
    .vs-chars-wrap thead th,
    .vs-chars-wrap td { padding: 0.55rem 0.65rem; font-size: 0.78rem; }
    .vs-chars-wrap thead th { font-size: 0.5rem; }
    .vs-unlock, .vs-weapon { white-space: normal; }
  }
</style>

<div class="vs-chars-header">
  <p class="vs-chars-title">Which Character to Start With</p>
  <p class="vs-chars-sub">Beginner-friendly picks and how to unlock them</p>
</div>

<div class="vs-chars-wrap">
  <table>
    <colgroup>
      <col style="width:90px">
      <col style="width:140px">
      <col style="width:110px">
      <col>
    </colgroup>
    <thead>
      <tr>
        <th scope="col">Character</th>
        <th scope="col">Unlock Requirement</th>
        <th scope="col">Starting Weapon</th>
        <th scope="col">Why Beginners Like It</th>
      </tr>
    </thead>
    <tbody>
      <tr class="vs-default">
        <td class="vs-char-name">Imelda</td>
        <td class="vs-unlock">Default (free)</td>
        <td class="vs-weapon">Magic Wand</td>
        <td class="vs-why">XP bonus scales every 5 levels up to +30%; great for getting to evolutions faster</td>
      </tr>
      <tr class="vs-default">
        <td class="vs-char-name">Poe</td>
        <td class="vs-unlock">Default (free)</td>
        <td class="vs-weapon">Garlic</td>
        <td class="vs-why">Passive damage field keeps weak enemies off you without any effort</td>
      </tr>
      <tr>
        <td class="vs-char-name">Gennaro</td>
        <td class="vs-unlock">Buy for 500 gold</td>
        <td class="vs-weapon">Knife</td>
        <td class="vs-why">+1 projectile to every weapon from the start; strong once you understand weapon slots</td>
      </tr>
      <tr>
        <td class="vs-char-name">Krochi</td>
        <td class="vs-unlock">Survive 20 min with any character</td>
        <td class="vs-weapon">Cross</td>
        <td class="vs-why">Two built-in revives and the fastest early-game movement speed; very forgiving</td>
      </tr>
      <tr>
        <td class="vs-char-name">Suor Clerici</td>
        <td class="vs-unlock">Find 1 Floor Chicken</td>
        <td class="vs-weapon">Heaven Sword</td>
        <td class="vs-why">Starts with +30 HP and bonus area; easy to keep alive while learning</td>
      </tr>
      <tr>
        <td class="vs-char-name">Pasqualina</td>
        <td class="vs-unlock">Level Imelda to 4</td>
        <td class="vs-weapon">Runetracer</td>
        <td class="vs-why">Runetracer bounces through enemies and scales with almost every stat; great first evolution target</td>
      </tr>
      <tr>
        <td class="vs-char-name">Dommario</td>
        <td class="vs-unlock">Reach 5 min in Inlaid Library</td>
        <td class="vs-weapon">King Bible</td>
        <td class="vs-why">Slow movement is the tradeoff, but King Bible orbits automatically and his stats are strong</td>
      </tr>
    </tbody>
  </table>
</div></p>



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



<p class="wp-block-paragraph">Imelda and Poe are the community&#8217;s default starting recommendations.&nbsp;</p>



<p class="wp-block-paragraph">As u/Vorral noted in <a href="https://www.reddit.com/r/VampireSurvivors/comments/1o2l1ye/progression_guide/">this thread</a>: &#8220;If you want to point at an enemy and kill it, pick Gennaro. If you like standing still and killing enemies, pick Poe.&#8221;</p>



<p class="wp-block-paragraph">Krochi is worth unlocking early, specifically because of the two revives.&nbsp;</p>



<p class="wp-block-paragraph">For anyone dying before the 10-minute mark and never seeing a chest, having a safety net changes the experience fast.&nbsp;</p>



<p class="wp-block-paragraph">Pasqualina is the pick once you&#8217;re ready to start learning evolutions properly. Runetracer is one of the <a href="https://rogueranker.com/vampire-survivors-weapon-tier-list/">best Vampire Survivors weapons</a> in the game, and she makes it better from level one.</p>



<p class="wp-block-paragraph"><em>Note: all </em><a href="https://rogueranker.com/vampire-survivors-character-tier-list/"><em>Vampire Survivor characters</em></a><em> above are base game only. DLC characters like Sammy are strong for beginners, too but require a paid expansion.</em></p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="461" src="https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-starting-characters-1024x461.webp" alt="The Vampire Survivors character selection screen showing beginner-friendly options including Imelda, Pasqualina, Poe, and Krochi with their starting weapons and stats" class="wp-image-945" srcset="https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-starting-characters-1024x461.webp 1024w, https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-starting-characters-300x135.webp 300w, https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-starting-characters-768x346.webp 768w, https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-starting-characters.webp 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading"><strong>Which Map to Start On</strong></h3>



<p class="wp-block-paragraph">It sort of feels backwards, but start in the Inlaid Library, not Mad Forest.&nbsp;</p>



<p class="wp-block-paragraph">Mad Forest is the default, but the Library has a smoother difficulty curve and two free floor items sitting on the map: a Tome (head left from spawn) and a Stone Mask (head right).&nbsp;</p>



<p class="wp-block-paragraph">Both can be picked up even when your passive slots are full, giving you extra passive capacity beyond the normal limit.</p>



<p class="wp-block-paragraph">As u/Goken222 noted in <a href="https://www.reddit.com/r/VampireSurvivors/comments/1elv1yp/any_beginner_tips_for_me/">this thread</a>: &#8220;I personally felt the Mad Forest was too spaced out and devoid of enemies early and I had a lot more fun practicing on Inlaid Library.&#8221;</p>



<h3 class="wp-block-heading"><strong>One Thing Most Beginners Miss</strong></h3>



<p class="wp-block-paragraph">Just as a (major) heads up, XP gems don&#8217;t despawn.&nbsp;</p>



<p class="wp-block-paragraph">If you&#8217;re running across the map and leaving gems behind, they consolidate into a red gem that you&#8217;ll collect when you pass back through.&nbsp;</p>



<p class="wp-block-paragraph">Also, you don&#8217;t lose XP by moving, but you can lose it if the Pentagram erases the pile, so keep that in mind if you ever run it.</p>



<h2 class="wp-block-heading"><strong>Vampire Survivors Unlock Guide</strong></h2>



<p class="wp-block-paragraph">Here’s some info about the best way to unlock stuff:</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="461" src="https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-unlock-first-1024x461.webp" alt="The Vampire Survivors Unlocks menu showing a checklist of objectives like surviving 10 minutes and reaching level milestones, the recommended progression path for new players" class="wp-image-947" srcset="https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-unlock-first-1024x461.webp 1024w, https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-unlock-first-300x135.webp 300w, https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-unlock-first-768x346.webp 768w, https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-unlock-first.webp 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading"><strong>How the Unlock System Works</strong></h3>



<p class="wp-block-paragraph">The Unlocks menu is where VS hides its entire progression system.&nbsp;</p>



<p class="wp-block-paragraph">It&#8217;s a sorted checklist of objectives: survive 10 minutes with a character, level a weapon to max, and reach a specific milestone. Working through it, top to bottom, is the community&#8217;s consensus on how to move forward.</p>



<p class="wp-block-paragraph">As u/23kukulcan put it in <a href="https://www.reddit.com/r/VampireSurvivors/comments/165l5an/tips_and_tricks_for_newbies/">this thread</a>: &#8220;Use the &#8216;Unlocks&#8217; menu as a guide. It tells you exactly how to progress in a nice sorted checklist.&#8221;</p>



<p class="wp-block-paragraph">The items at the top are easier, and unlocking them opens up options for later entries. You don&#8217;t have to go strictly in order, but it&#8217;s organized roughly by difficulty, so treating it as a to-do list works.</p>



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



<p class="wp-block-paragraph"><!-- 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 {
    --bh-accent:  #c0392b;
    --bh-gold:    #b8892a;
    --bh-text:    #1a1a24;
    --bh-muted:   #888699;
    --bh-border:  #e0dded;
    --bh-stripe:  #f7f6fb;
    --bh-cat-bg:  #1a1a24;
  }

  .vs-chars-header {
    text-align: center;
    margin-bottom: 1.6rem;
  }
  .vs-chars-header p.vs-chars-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(1rem, 3vw, 1.45rem);
    color: var(--bh-gold);
    letter-spacing: 0.04em;
    margin: 0 0 0.3rem;
  }
  .vs-chars-header p.vs-chars-sub {
    color: var(--bh-muted);
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin: 0;
  }

  .vs-chars-wrap {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    overflow-x: auto;
    border: 1px solid var(--bh-border);
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
  }

  .vs-chars-wrap table {
    width: 100%;
    border-collapse: collapse;
    min-width: 560px;
    background: #fff;
  }

  .vs-chars-wrap thead tr {
    background: var(--bh-cat-bg);
    border-bottom: 2px solid var(--bh-accent);
  }
  .vs-chars-wrap thead th {
    padding: 0.8rem 1.1rem;
    text-align: left;
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.62rem;
    letter-spacing: 0.1em;
    color: #e8b94f;
    text-transform: uppercase;
    white-space: nowrap;
  }

  .vs-chars-wrap tbody tr {
    border-bottom: 1px solid var(--bh-border);
    transition: background 0.12s;
  }
  .vs-chars-wrap tbody tr:last-child { border-bottom: none; }
  .vs-chars-wrap tbody tr:nth-child(even) { background: var(--bh-stripe) !important; }
  .vs-chars-wrap tbody tr:hover { background: #f0eef8 !important; }
  .vs-chars-wrap tbody tr.vs-default { background: #fffbf0 !important; }
  .vs-chars-wrap tbody tr.vs-default:hover { background: #fff5d6 !important; }
  .vs-chars-wrap tbody tr.vs-default .vs-char-name { color: var(--bh-gold); font-weight: 700; }

  .vs-chars-wrap td {
    padding: 0.72rem 1.1rem;
    vertical-align: top;
    font-family: 'Barlow', sans-serif;
    font-size: 14px;
    color: var(--bh-text);
    line-height: 1.5;
  }

  .vs-char-name { font-weight: 700; white-space: nowrap; }
  .vs-unlock { color: #555466; font-size: 13px; white-space: nowrap; }
  .vs-weapon { font-weight: 600; white-space: nowrap; color: var(--bh-text); }
  .vs-why { color: #555466; font-weight: 400; }

  @media (max-width: 560px) {
    .vs-chars-wrap thead th,
    .vs-chars-wrap td { padding: 0.55rem 0.65rem; font-size: 0.78rem; }
    .vs-chars-wrap thead th { font-size: 0.5rem; }
    .vs-unlock, .vs-weapon { white-space: normal; }
  }
</style>

<div class="vs-chars-header">
  <p class="vs-chars-title">Which Character to Start With</p>
  <p class="vs-chars-sub">Beginner-friendly picks and how to unlock them</p>
</div>

<div class="vs-chars-wrap">
  <table>
    <colgroup>
      <col style="width:90px">
      <col style="width:140px">
      <col style="width:110px">
      <col>
    </colgroup>
    <thead>
      <tr>
        <th scope="col">Character</th>
        <th scope="col">Unlock Requirement</th>
        <th scope="col">Starting Weapon</th>
        <th scope="col">Why Beginners Like It</th>
      </tr>
    </thead>
    <tbody>
      <tr class="vs-default">
        <td class="vs-char-name">Imelda</td>
        <td class="vs-unlock">Default (free)</td>
        <td class="vs-weapon">Magic Wand</td>
        <td class="vs-why">XP bonus scales every 5 levels up to +30%; great for getting to evolutions faster</td>
      </tr>
      <tr class="vs-default">
        <td class="vs-char-name">Poe</td>
        <td class="vs-unlock">Default (free)</td>
        <td class="vs-weapon">Garlic</td>
        <td class="vs-why">Passive damage field keeps weak enemies off you without any effort</td>
      </tr>
      <tr>
        <td class="vs-char-name">Gennaro</td>
        <td class="vs-unlock">Buy for 500 gold</td>
        <td class="vs-weapon">Knife</td>
        <td class="vs-why">+1 projectile to every weapon from the start; strong once you understand weapon slots</td>
      </tr>
      <tr>
        <td class="vs-char-name">Krochi</td>
        <td class="vs-unlock">Survive 20 min with any character</td>
        <td class="vs-weapon">Cross</td>
        <td class="vs-why">Two built-in revives and the fastest early-game movement speed; very forgiving</td>
      </tr>
      <tr>
        <td class="vs-char-name">Suor Clerici</td>
        <td class="vs-unlock">Find 1 Floor Chicken</td>
        <td class="vs-weapon">Heaven Sword</td>
        <td class="vs-why">Starts with +30 HP and bonus area; easy to keep alive while learning</td>
      </tr>
      <tr>
        <td class="vs-char-name">Pasqualina</td>
        <td class="vs-unlock">Level Imelda to 4</td>
        <td class="vs-weapon">Runetracer</td>
        <td class="vs-why">Runetracer bounces through enemies and scales with almost every stat; great first evolution target</td>
      </tr>
      <tr>
        <td class="vs-char-name">Dommario</td>
        <td class="vs-unlock">Reach 5 min in Inlaid Library</td>
        <td class="vs-weapon">King Bible</td>
        <td class="vs-why">Slow movement is the tradeoff, but King Bible orbits automatically and his stats are strong</td>
      </tr>
    </tbody>
  </table>
</div></p>



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



<h3 class="wp-block-heading"><strong>The Secrets Menu Is Different</strong></h3>



<p class="wp-block-paragraph">The Secrets menu unlocks after you&#8217;ve made some progress through the standard Unlocks list, and its hints are intentionally vague.&nbsp;</p>



<p class="wp-block-paragraph">u/DoveCannon in <a href="https://www.reddit.com/r/VampireSurvivors/comments/15ts41v/is_there_a_100_unlock_unlockables_guide_thats/">this thread</a> put it plainly: &#8220;Anything in the unlocks menu is either straightforward or will be straightforward once you&#8217;ve explored some more. Most things under the secrets menu are intentionally extremely vague and often require a look at the wiki.&#8221;</p>



<p class="wp-block-paragraph">The <a href="https://vampire.survivors.wiki/w/Main_Page">Vampire Survivors wiki</a> is the right tool for Secrets. Poncle designed them to be community-discovered, and the wiki has the full breakdown without spoiling standard unlocks.&nbsp;</p>



<p class="wp-block-paragraph">PSA: Looking things up is not cheating (the devs expect it for this section).</p>



<h3 class="wp-block-heading"><strong>One Common Unlock Mistake</strong></h3>



<p class="wp-block-paragraph">Investing heavily in Greed right away.&nbsp;</p>



<p class="wp-block-paragraph">Greed increases gold earned per run, but you get far more gold from surviving longer and opening more chests than from a stat multiplier on a short run.&nbsp;</p>



<p class="wp-block-paragraph">Spend your first gold on offensive PowerUps first, then layer in Greed once your runs are consistently going past 15 minutes.</p>



<h2 class="wp-block-heading"><strong>Vampire Survivors Progression Guide</strong></h2>



<p class="wp-block-paragraph">Here are some key parts:</p>



<h3 class="wp-block-heading"><strong>How PowerUps Work</strong></h3>



<p class="wp-block-paragraph">Once you&#8217;ve survived a few runs and started unlocking things, the PowerUp menu becomes the main lever. These are permanent stat upgrades you buy with gold between runs, and they carry over to every character and every stage.</p>



<p class="wp-block-paragraph">You can refund all PowerUps at any time with no penalty. This is buried in the menu and new players often don&#8217;t know it exists. It means early mistakes cost nothing; just refund and redistribute when you know more about what you need.</p>



<h3 class="wp-block-heading"><strong>PowerUp Priority for Beginners</strong></h3>



<p class="wp-block-paragraph">The consistent advice across threads is to prioritize offensive and utility upgrades over defensive ones.&nbsp;</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="461" src="https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-powerup-priority-1024x461.webp" alt="The Vampire Survivors PowerUp Selection screen showing permanent stat upgrades including Might, Speed, Area, and Cooldown that carry over between runs" class="wp-image-943" srcset="https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-powerup-priority-1024x461.webp 1024w, https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-powerup-priority-300x135.webp 300w, https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-powerup-priority-768x346.webp 768w, https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-powerup-priority.webp 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Survival in VS comes from dealing damage fast; the more enemies you kill, the more XP gems drop, the faster you level, and the better your weapons get.&nbsp;</p>



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



<p class="wp-block-paragraph"><!-- 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 {
    --bh-accent:  #c0392b;
    --bh-gold:    #b8892a;
    --bh-text:    #1a1a24;
    --bh-muted:   #888699;
    --bh-border:  #e0dded;
    --bh-stripe:  #f7f6fb;
    --bh-cat-bg:  #1a1a24;
  }

  .vs-pu-header {
    text-align: center;
    margin-bottom: 1.6rem;
  }
  .vs-pu-header p.vs-pu-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(1rem, 3vw, 1.45rem);
    color: var(--bh-gold);
    letter-spacing: 0.04em;
    margin: 0 0 0.3rem;
  }
  .vs-pu-header p.vs-pu-sub {
    color: var(--bh-muted);
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin: 0;
  }

  .vs-pu-wrap {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    overflow-x: auto;
    border: 1px solid var(--bh-border);
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
  }

  .vs-pu-wrap table {
    width: 100%;
    border-collapse: collapse;
    min-width: 460px;
    background: #fff;
  }

  .vs-pu-wrap thead tr {
    background: var(--bh-cat-bg);
    border-bottom: 2px solid var(--bh-accent);
  }
  .vs-pu-wrap thead th {
    padding: 0.8rem 1.1rem;
    text-align: left;
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.62rem;
    letter-spacing: 0.1em;
    color: #e8b94f;
    text-transform: uppercase;
    white-space: nowrap;
  }

  .vs-pu-wrap tbody tr {
    border-bottom: 1px solid var(--bh-border);
    transition: background 0.12s;
  }
  .vs-pu-wrap tbody tr:last-child { border-bottom: none; }
  .vs-pu-wrap tbody tr:nth-child(even) { background: var(--bh-stripe) !important; }
  .vs-pu-wrap tbody tr:hover { background: #f0eef8 !important; }

  .vs-pu-wrap td {
    padding: 0.78rem 1.1rem;
    vertical-align: middle;
    font-family: 'Barlow', sans-serif;
    font-size: 14px;
    color: var(--bh-text);
    line-height: 1.5;
  }

  .vs-pu-name { font-weight: 700; white-space: nowrap; width: 110px; }
  .vs-pu-why  { color: #555466; font-weight: 400; }

  .vs-badge {
    display: inline-block;
    font-family: 'Barlow', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 3px 9px;
    border-radius: 3px;
    white-space: nowrap;
  }
  .vs-badge.high   { background: #eaf6ea; color: #2e7d32; border: 1px solid #a5d6a7; }
  .vs-badge.medium { background: #fff8e1; color: #b8892a; border: 1px solid #ffe082; }
  .vs-badge.low    { background: #f5f5f5; color: #888699; border: 1px solid #e0dded; }

  @media (max-width: 560px) {
    .vs-pu-wrap thead th,
    .vs-pu-wrap td { padding: 0.55rem 0.65rem; font-size: 0.78rem; }
    .vs-pu-wrap thead th { font-size: 0.5rem; }
    .vs-pu-name { white-space: normal; }
  }
</style>

<div class="vs-pu-header">
  <p class="vs-pu-title">PowerUp Priority for Beginners</p>
  <p class="vs-pu-sub">Where to spend your gold first</p>
</div>

<div class="vs-pu-wrap">
  <table>
    <colgroup>
      <col style="width:110px">
      <col style="width:90px">
      <col>
    </colgroup>
    <thead>
      <tr>
        <th scope="col">PowerUp</th>
        <th scope="col">Priority</th>
        <th scope="col">Why</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="vs-pu-name">Amount</td>
        <td><span class="vs-badge high">High</span></td>
        <td class="vs-pu-why">Adds one projectile to every weapon; one of the highest-impact single purchases in the game</td>
      </tr>
      <tr>
        <td class="vs-pu-name">Might</td>
        <td><span class="vs-badge high">High</span></td>
        <td class="vs-pu-why">Flat damage increase that helps every weapon</td>
      </tr>
      <tr>
        <td class="vs-pu-name">Growth</td>
        <td><span class="vs-badge high">High</span></td>
        <td class="vs-pu-why">Extra XP per gem; makes every run level faster and reach evolutions sooner</td>
      </tr>
      <tr>
        <td class="vs-pu-name">Cooldown</td>
        <td><span class="vs-badge high">High</span></td>
        <td class="vs-pu-why">Reduces weapon fire delay; particularly strong on King Bible and Runetracer</td>
      </tr>
      <tr>
        <td class="vs-pu-name">Greed</td>
        <td><span class="vs-badge medium">Medium</span></td>
        <td class="vs-pu-why">Gold multiplier; less impactful early, more important once runs go past 15 minutes consistently</td>
      </tr>
      <tr>
        <td class="vs-pu-name">Move Speed</td>
        <td><span class="vs-badge medium">Medium</span></td>
        <td class="vs-pu-why">Helps with dodging and kiting; also scales damage on some weapons</td>
      </tr>
      <tr>
        <td class="vs-pu-name">Armor</td>
        <td><span class="vs-badge low">Low (early)</span></td>
        <td class="vs-pu-why">Reduces damage taken but doesn't fix the core loop; invest here after offenses are solid</td>
      </tr>
      <tr>
        <td class="vs-pu-name">Revival</td>
        <td><span class="vs-badge low">Low (early)</span></td>
        <td class="vs-pu-why">Handy but often you'll just die again anyway if the run is underpowered</td>
      </tr>
    </tbody>
  </table>
</div></p>



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



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



<p class="wp-block-paragraph">Mad Forest is the default starting stage, but most players find the Inlaid Library easier and more productive early on.&nbsp;</p>



<p class="wp-block-paragraph">Once you&#8217;ve got comfortable runs going, here&#8217;s the rough order:</p>



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



<p class="wp-block-paragraph"><!-- 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 {
    --bh-accent:  #c0392b;
    --bh-gold:    #b8892a;
    --bh-text:    #1a1a24;
    --bh-muted:   #888699;
    --bh-border:  #e0dded;
    --bh-stripe:  #f7f6fb;
    --bh-cat-bg:  #1a1a24;
  }

  .vs-stage-header {
    text-align: center;
    margin-bottom: 1.6rem;
  }
  .vs-stage-header p.vs-stage-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(1rem, 3vw, 1.45rem);
    color: var(--bh-gold);
    letter-spacing: 0.04em;
    margin: 0 0 0.3rem;
  }
  .vs-stage-header p.vs-stage-sub {
    color: var(--bh-muted);
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin: 0;
  }

  .vs-stage-wrap {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    overflow-x: auto;
    border: 1px solid var(--bh-border);
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
  }

  .vs-stage-wrap table {
    width: 100%;
    border-collapse: collapse;
    min-width: 400px;
    background: #fff;
  }

  .vs-stage-wrap thead tr {
    background: var(--bh-cat-bg);
    border-bottom: 2px solid var(--bh-accent);
  }
  .vs-stage-wrap thead th {
    padding: 0.8rem 1.1rem;
    text-align: left;
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.62rem;
    letter-spacing: 0.1em;
    color: #e8b94f;
    text-transform: uppercase;
    white-space: nowrap;
  }

  .vs-stage-wrap tbody tr {
    border-bottom: 1px solid var(--bh-border);
    transition: background 0.12s;
  }
  .vs-stage-wrap tbody tr:last-child { border-bottom: none; }
  .vs-stage-wrap tbody tr:nth-child(even) { background: var(--bh-stripe) !important; }
  .vs-stage-wrap tbody tr:hover { background: #f0eef8 !important; }
  .vs-stage-wrap tbody tr:first-child { background: #fffbf0 !important; }
  .vs-stage-wrap tbody tr:first-child:hover { background: #fff5d6 !important; }
  .vs-stage-wrap tbody tr:first-child .vs-stage-name { color: var(--bh-gold); }

  .vs-stage-wrap td {
    padding: 0.78rem 1.1rem;
    vertical-align: middle;
    font-family: 'Barlow', sans-serif;
    font-size: 14px;
    color: var(--bh-text);
    line-height: 1.5;
  }

  .vs-stage-name { font-weight: 700; white-space: nowrap; width: 160px; }
  .vs-stage-notes { color: #555466; font-weight: 400; }

  @media (max-width: 560px) {
    .vs-stage-wrap thead th,
    .vs-stage-wrap td { padding: 0.55rem 0.65rem; font-size: 0.78rem; }
    .vs-stage-wrap thead th { font-size: 0.5rem; }
    .vs-stage-name { white-space: normal; width: auto; }
  }
</style>

<div class="vs-stage-header">
  <p class="vs-stage-title">Stage Progression</p>
  <p class="vs-stage-sub">Recommended order and what to expect</p>
</div>

<div class="vs-stage-wrap">
  <table>
    <colgroup>
      <col style="width:160px">
      <col>
    </colgroup>
    <thead>
      <tr>
        <th scope="col">Stage</th>
        <th scope="col">Notes</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="vs-stage-name">Inlaid Library</td>
        <td class="vs-stage-notes">Best learning stage; smoother enemy scaling, free Tome and Stone Mask on map</td>
      </tr>
      <tr>
        <td class="vs-stage-name">Mad Forest</td>
        <td class="vs-stage-notes">Default stage; harder than Library early on due to enemy density</td>
      </tr>
      <tr>
        <td class="vs-stage-name">Dairy Plant</td>
        <td class="vs-stage-notes">Significant difficulty spike; also where you grab the Milky Way Map relic</td>
      </tr>
      <tr>
        <td class="vs-stage-name">Gallo Tower</td>
        <td class="vs-stage-notes">Harder again; opens up once you have solid PowerUps behind you</td>
      </tr>
      <tr>
        <td class="vs-stage-name">Cappella Magna</td>
        <td class="vs-stage-notes">Late-game content; has the Ender boss that unlocks Limit Break</td>
      </tr>
    </tbody>
  </table>
</div></p>



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



<p class="wp-block-paragraph">Head to Dairy Plant specifically to grab the Milky Way Map relic. It adds a minimap to every stage, making it way easier to find floor items and relics (it’s worth a dedicated run just for that).&nbsp;</p>



<p class="wp-block-paragraph">As u/UncomfortableAnswers noted in <a href="https://www.reddit.com/r/VampireSurvivors/comments/1o2l1ye/progression_guide/">this thread</a>: &#8220;Dairy Plant is a big jump in difficulty, so don&#8217;t feel like you have to brute force getting to 30 minutes there before you try other things.&#8221;</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-stage-progression-1024x576.webp" alt="The Vampire Survivors Stage Selection screen showing the recommended progression order from Mad Forest through Inlaid Library, Dairy Plant, and Gallo Tower" class="wp-image-944" srcset="https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-stage-progression-1024x576.webp 1024w, https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-stage-progression-300x169.webp 300w, https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-stage-progression-768x432.webp 768w, https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-stage-progression.webp 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading"><strong>Vampire Survivors Best Build</strong></h2>



<p class="wp-block-paragraph">Here are some key parts to consider:</p>



<h3 class="wp-block-heading"><strong>Build Philosophy First</strong></h3>



<p class="wp-block-paragraph">There is no single best build in Vampire Survivors, and any guide that presents one as gospel is selling you something.&nbsp;</p>



<p class="wp-block-paragraph">The meta shifts with patches, DLC changes things, and what works depends on what you&#8217;ve unlocked. What the community agrees on is the build philosophy, and the philosophy is consistent.</p>



<h3 class="wp-block-heading"><strong>Build Around Weapon Evolutions</strong></h3>



<p class="wp-block-paragraph">Weapon evolutions are the biggest power spikes in the game.&nbsp;</p>



<p class="wp-block-paragraph">Every <a href="https://rogueranker.com/vampire-survivors-evolution/">Vampire Survivors evolution</a> requires two things: max the weapon to level 8, and have the correct passive item in your inventory when you open a chest (which only drops after the 10-minute mark). </p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="640" src="https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-evo-reference-1024x640.webp" alt="A Vampire Survivors treasure chest prompt at the 8-minute mark, the mechanic that triggers weapon evolutions when the right passive item is in your inventory" class="wp-image-942" srcset="https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-evo-reference-1024x640.webp 1024w, https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-evo-reference-300x188.webp 300w, https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-evo-reference-768x480.webp 768w, https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-evo-reference.webp 1280w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">An evolved weapon is categorically more powerful than its base form.</p>



<p class="wp-block-paragraph">The practical implication: limit your weapon slots to the weapons you&#8217;re actively evolving, and fill your passive slots with the items those evolutions require. Picking up interesting weapons with no room to evolve them is the most common build mistake beyond the beginner stage.</p>



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



<p class="wp-block-paragraph"><!-- 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 {
    --bh-accent:  #c0392b;
    --bh-gold:    #b8892a;
    --bh-text:    #1a1a24;
    --bh-muted:   #888699;
    --bh-border:  #e0dded;
    --bh-stripe:  #f7f6fb;
    --bh-cat-bg:  #1a1a24;
  }

  .vs-evo-header {
    text-align: center;
    margin-bottom: 1.6rem;
  }
  .vs-evo-header p.vs-evo-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(1rem, 3vw, 1.45rem);
    color: var(--bh-gold);
    letter-spacing: 0.04em;
    margin: 0 0 0.3rem;
  }
  .vs-evo-header p.vs-evo-sub {
    color: var(--bh-muted);
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin: 0;
  }

  .vs-evo-wrap {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    overflow-x: auto;
    border: 1px solid var(--bh-border);
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
  }

  .vs-evo-wrap table {
    width: 100%;
    border-collapse: collapse;
    min-width: 540px;
    background: #fff;
  }

  .vs-evo-wrap thead tr {
    background: var(--bh-cat-bg);
    border-bottom: 2px solid var(--bh-accent);
  }
  .vs-evo-wrap thead th {
    padding: 0.8rem 1.1rem;
    text-align: left;
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.62rem;
    letter-spacing: 0.1em;
    color: #e8b94f;
    text-transform: uppercase;
    white-space: nowrap;
  }

  .vs-evo-wrap tbody tr {
    border-bottom: 1px solid var(--bh-border);
    transition: background 0.12s;
  }
  .vs-evo-wrap tbody tr:last-child { border-bottom: none; }
  .vs-evo-wrap tbody tr:nth-child(even) { background: var(--bh-stripe) !important; }
  .vs-evo-wrap tbody tr:hover { background: #f0eef8 !important; }

  .vs-evo-wrap td {
    padding: 0.72rem 1.1rem;
    vertical-align: middle;
    font-family: 'Barlow', sans-serif;
    font-size: 14px;
    color: var(--bh-text);
    line-height: 1.5;
  }

  .vs-evo-weapon   { font-weight: 700; white-space: nowrap; }
  .vs-evo-passive  { color: #555466; white-space: nowrap; font-weight: 500; }
  .vs-evo-result   { font-weight: 700; color: var(--bh-gold); white-space: nowrap; }
  .vs-evo-notes    { color: #555466; font-weight: 400; font-size: 13px; }

  @media (max-width: 560px) {
    .vs-evo-wrap thead th,
    .vs-evo-wrap td { padding: 0.5rem 0.65rem; font-size: 0.78rem; }
    .vs-evo-wrap thead th { font-size: 0.5rem; }
    .vs-evo-weapon, .vs-evo-passive, .vs-evo-result { white-space: normal; }
    .vs-evo-notes { font-size: 0.75rem; }
  }
</style>

<div class="vs-evo-header">
  <p class="vs-evo-title">Evolution Reference Table</p>
  <p class="vs-evo-sub">Weapon + passive combo required for each evolution</p>
</div>

<div class="vs-evo-wrap">
  <table>
    <colgroup>
      <col style="width:140px">
      <col style="width:130px">
      <col style="width:140px">
      <col>
    </colgroup>
    <thead>
      <tr>
        <th scope="col">Weapon</th>
        <th scope="col">Required Passive</th>
        <th scope="col">Evolution</th>
        <th scope="col">Notes</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="vs-evo-weapon">Santa Water</td>
        <td class="vs-evo-passive">Attractorb</td>
        <td class="vs-evo-result">La Borra</td>
        <td class="vs-evo-notes">One of the highest damage evos at late-game crowd density</td>
      </tr>
      <tr>
        <td class="vs-evo-weapon">King Bible</td>
        <td class="vs-evo-passive">Spellbinder</td>
        <td class="vs-evo-result">Unholy Vespers</td>
        <td class="vs-evo-notes">Acts as a damage shield; keeps enemies at range</td>
      </tr>
      <tr>
        <td class="vs-evo-weapon">Lightning Ring</td>
        <td class="vs-evo-passive">Duplicator</td>
        <td class="vs-evo-result">Thunder Loop</td>
        <td class="vs-evo-notes">Strong AoE; good with Amount PowerUp</td>
      </tr>
      <tr>
        <td class="vs-evo-weapon">Runetracer</td>
        <td class="vs-evo-passive">Armor</td>
        <td class="vs-evo-result">NO FUTURE</td>
        <td class="vs-evo-notes">Runetracer scales with almost every stat; great base weapon</td>
      </tr>
      <tr>
        <td class="vs-evo-weapon">Fire Wand</td>
        <td class="vs-evo-passive">Spinach</td>
        <td class="vs-evo-result">Hellfire</td>
        <td class="vs-evo-notes">High damage, covers ground well</td>
      </tr>
      <tr>
        <td class="vs-evo-weapon">Magic Wand</td>
        <td class="vs-evo-passive">Empty Tome</td>
        <td class="vs-evo-result">Holy Wand</td>
        <td class="vs-evo-notes">Fast single-target; targets closest enemy</td>
      </tr>
      <tr>
        <td class="vs-evo-weapon">Peachone + Ebony Wings</td>
        <td class="vs-evo-passive">Both at max</td>
        <td class="vs-evo-result">Vandalier</td>
        <td class="vs-evo-notes">Frees a weapon slot on evolution; strong but weak birds until fused</td>
      </tr>
      <tr>
        <td class="vs-evo-weapon">Garlic</td>
        <td class="vs-evo-passive">Pummarola</td>
        <td class="vs-evo-result">Soul Eater</td>
        <td class="vs-evo-notes">Garlic solid early; falls off mid-game without Soul Eater</td>
      </tr>
    </tbody>
  </table>
</div></p>



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



<h3 class="wp-block-heading"><strong>Build 1: The AoE Survivor (Best for Beginners)</strong></h3>



<p class="wp-block-paragraph">This is the easiest build to execute because all three weapons auto-target. You only need to focus on movement.</p>



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



<p class="wp-block-paragraph"><!-- 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 {
    --bh-accent:  #c0392b;
    --bh-gold:    #b8892a;
    --bh-text:    #1a1a24;
    --bh-muted:   #888699;
    --bh-border:  #e0dded;
    --bh-stripe:  #f7f6fb;
    --bh-cat-bg:  #1a1a24;
  }

  .vs-build-header {
    text-align: center;
    margin-bottom: 1.6rem;
  }
  .vs-build-header p.vs-build-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(1rem, 3vw, 1.45rem);
    color: var(--bh-gold);
    letter-spacing: 0.04em;
    margin: 0 0 0.3rem;
  }
  .vs-build-header p.vs-build-sub {
    color: var(--bh-muted);
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin: 0;
  }

  .vs-build-wrap {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    overflow-x: auto;
    border: 1px solid var(--bh-border);
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
  }

  .vs-build-wrap table {
    width: 100%;
    border-collapse: collapse;
    min-width: 420px;
    background: #fff;
  }

  .vs-build-wrap thead tr {
    background: var(--bh-cat-bg);
    border-bottom: 2px solid var(--bh-accent);
  }
  .vs-build-wrap thead th {
    padding: 0.8rem 1.1rem;
    text-align: left;
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.62rem;
    letter-spacing: 0.1em;
    color: #e8b94f;
    text-transform: uppercase;
    white-space: nowrap;
  }

  .vs-build-wrap tbody tr {
    border-bottom: 1px solid var(--bh-border);
    transition: background 0.12s;
  }
  .vs-build-wrap tbody tr:last-child { border-bottom: none; }
  .vs-build-wrap tbody tr:hover { background: #f0eef8 !important; }

  /* Weapon rows — light gold tint */
  .vs-build-wrap tbody tr.vs-weapon-row { background: #fffbf0 !important; }
  .vs-build-wrap tbody tr.vs-weapon-row:hover { background: #fff5d6 !important; }

  /* Passive rows — stripe */
  .vs-build-wrap tbody tr.vs-passive-row { background: var(--bh-stripe) !important; }
  .vs-build-wrap tbody tr.vs-passive-row:hover { background: #f0eef8 !important; }

  .vs-build-wrap td {
    padding: 0.72rem 1.1rem;
    vertical-align: middle;
    font-family: 'Barlow', sans-serif;
    font-size: 14px;
    color: var(--bh-text);
    line-height: 1.5;
  }

  .vs-slot   { font-weight: 700; color: var(--bh-muted); white-space: nowrap; width: 100px; font-size: 13px; }
  .vs-item   { font-weight: 700; white-space: nowrap; }
  .vs-weapon-row .vs-item { color: var(--bh-text); }
  .vs-passive-row .vs-item { color: #555466; }
  .vs-evo    { font-weight: 600; color: var(--bh-gold); white-space: nowrap; }
  .vs-passive-row .vs-evo { color: #555466; font-weight: 400; font-style: italic; font-size: 13px; }

  @media (max-width: 560px) {
    .vs-build-wrap thead th,
    .vs-build-wrap td { padding: 0.55rem 0.65rem; font-size: 0.78rem; }
    .vs-build-wrap thead th { font-size: 0.5rem; }
    .vs-item, .vs-evo { white-space: normal; }
  }
</style>

<div class="vs-build-header">
  <p class="vs-build-title">Build 1: The AoE Survivor</p>
  <p class="vs-build-sub">Best for beginners — all weapons auto-target, focus on movement only</p>
</div>

<div class="vs-build-wrap">
  <table>
    <colgroup>
      <col style="width:100px">
      <col style="width:38%">
      <col>
    </colgroup>
    <thead>
      <tr>
        <th scope="col">Slot</th>
        <th scope="col">Item</th>
        <th scope="col">Evolution</th>
      </tr>
    </thead>
    <tbody>
      <tr class="vs-weapon-row">
        <td class="vs-slot">Weapon 1</td>
        <td class="vs-item">Santa Water</td>
        <td class="vs-evo">La Borra (+ Attractorb)</td>
      </tr>
      <tr class="vs-weapon-row">
        <td class="vs-slot">Weapon 2</td>
        <td class="vs-item">King Bible</td>
        <td class="vs-evo">Unholy Vespers (+ Spellbinder)</td>
      </tr>
      <tr class="vs-weapon-row">
        <td class="vs-slot">Weapon 3</td>
        <td class="vs-item">Lightning Ring</td>
        <td class="vs-evo">Thunder Loop (+ Duplicator)</td>
      </tr>
      <tr class="vs-passive-row">
        <td class="vs-slot">Passive 1</td>
        <td class="vs-item">Attractorb</td>
        <td class="vs-evo">Required for La Borra</td>
      </tr>
      <tr class="vs-passive-row">
        <td class="vs-slot">Passive 2</td>
        <td class="vs-item">Spellbinder</td>
        <td class="vs-evo">Required for Unholy Vespers</td>
      </tr>
      <tr class="vs-passive-row">
        <td class="vs-slot">Passive 3</td>
        <td class="vs-item">Duplicator</td>
        <td class="vs-evo">Required for Thunder Loop</td>
      </tr>
    </tbody>
  </table>
</div></p>



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



<p class="wp-block-paragraph">La Borra follows your character and keeps the area around you dangerous.&nbsp;</p>



<p class="wp-block-paragraph">Unholy Vespers acts as a rotating shield.&nbsp;</p>



<p class="wp-block-paragraph">Thunder Loop handles AOE cleanup.&nbsp;</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="640" src="https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-build-1-aoe-1024x640.webp" alt="Vampire Survivors AoE build gameplay in Mad Forest with a character automatically clearing enemies across the entire screen without manual aiming" class="wp-image-939" srcset="https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-build-1-aoe-1024x640.webp 1024w, https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-build-1-aoe-300x188.webp 300w, https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-build-1-aoe-768x480.webp 768w, https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-build-1-aoe.webp 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">As u/Rajamic in <a href="https://www.reddit.com/r/VampireSurvivors/comments/1elv1yp/any_beginner_tips_for_me/">this thread</a> described when recommending weapons for beginners: target things that &#8220;can hit anywhere on the screen and hit multiple enemies.&#8221;&nbsp;</p>



<p class="wp-block-paragraph">This build does all of that automatically.</p>



<h3 class="wp-block-heading"><strong>Build 2: The Runetracer Build (Community Favorite for DPS)</strong></h3>



<p class="wp-block-paragraph">Runetracer is uniquely powerful because it scales with almost every passive stat; Speed, Area, Damage, and Duration all improve it. That means incidental pickups that don&#8217;t obviously contribute to your build are actually enhancing Runetracer in the background.</p>



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



<p class="wp-block-paragraph"><!-- 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 {
    --bh-accent:  #c0392b;
    --bh-gold:    #b8892a;
    --bh-text:    #1a1a24;
    --bh-muted:   #888699;
    --bh-border:  #e0dded;
    --bh-stripe:  #f7f6fb;
    --bh-cat-bg:  #1a1a24;
  }

  .vs-build-header {
    text-align: center;
    margin-bottom: 1.6rem;
  }
  .vs-build-header p.vs-build-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(1rem, 3vw, 1.45rem);
    color: var(--bh-gold);
    letter-spacing: 0.04em;
    margin: 0 0 0.3rem;
  }
  .vs-build-header p.vs-build-sub {
    color: var(--bh-muted);
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin: 0;
  }

  .vs-build-wrap {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    overflow-x: auto;
    border: 1px solid var(--bh-border);
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
  }

  .vs-build-wrap table {
    width: 100%;
    border-collapse: collapse;
    min-width: 420px;
    background: #fff;
  }

  .vs-build-wrap thead tr {
    background: var(--bh-cat-bg);
    border-bottom: 2px solid var(--bh-accent);
  }
  .vs-build-wrap thead th {
    padding: 0.8rem 1.1rem;
    text-align: left;
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.62rem;
    letter-spacing: 0.1em;
    color: #e8b94f;
    text-transform: uppercase;
    white-space: nowrap;
  }

  .vs-build-wrap tbody tr {
    border-bottom: 1px solid var(--bh-border);
    transition: background 0.12s;
  }
  .vs-build-wrap tbody tr:last-child { border-bottom: none; }
  .vs-build-wrap tbody tr:hover { background: #f0eef8 !important; }
  .vs-build-wrap tbody tr.vs-weapon-row { background: #fffbf0 !important; }
  .vs-build-wrap tbody tr.vs-weapon-row:hover { background: #fff5d6 !important; }
  .vs-build-wrap tbody tr.vs-passive-row { background: var(--bh-stripe) !important; }
  .vs-build-wrap tbody tr.vs-passive-row:hover { background: #f0eef8 !important; }

  .vs-build-wrap td {
    padding: 0.72rem 1.1rem;
    vertical-align: middle;
    font-family: 'Barlow', sans-serif;
    font-size: 14px;
    color: var(--bh-text);
    line-height: 1.5;
  }

  .vs-slot  { font-weight: 700; color: var(--bh-muted); white-space: nowrap; width: 100px; font-size: 13px; }
  .vs-item  { font-weight: 700; white-space: nowrap; }
  .vs-passive-row .vs-item { color: #555466; }
  .vs-evo   { font-weight: 600; color: var(--bh-gold); white-space: nowrap; }
  .vs-passive-row .vs-evo { color: #555466; font-weight: 400; font-style: italic; font-size: 13px; }

  @media (max-width: 560px) {
    .vs-build-wrap thead th,
    .vs-build-wrap td { padding: 0.55rem 0.65rem; font-size: 0.78rem; }
    .vs-build-wrap thead th { font-size: 0.5rem; }
    .vs-item, .vs-evo { white-space: normal; }
  }
</style>

<div class="vs-build-header">
  <p class="vs-build-title">Build 2: The Runetracer Build</p>
  <p class="vs-build-sub">Community favorite for DPS — scales with almost every passive stat</p>
</div>

<div class="vs-build-wrap">
  <table>
    <colgroup>
      <col style="width:100px">
      <col style="width:38%">
      <col>
    </colgroup>
    <thead>
      <tr>
        <th scope="col">Slot</th>
        <th scope="col">Item</th>
        <th scope="col">Evolution</th>
      </tr>
    </thead>
    <tbody>
      <tr class="vs-weapon-row">
        <td class="vs-slot">Weapon 1</td>
        <td class="vs-item">Runetracer</td>
        <td class="vs-evo">NO FUTURE (+ Armor)</td>
      </tr>
      <tr class="vs-weapon-row">
        <td class="vs-slot">Weapon 2</td>
        <td class="vs-item">Fire Wand</td>
        <td class="vs-evo">Hellfire (+ Spinach)</td>
      </tr>
      <tr class="vs-weapon-row">
        <td class="vs-slot">Weapon 3</td>
        <td class="vs-item">King Bible</td>
        <td class="vs-evo">Unholy Vespers (+ Spellbinder)</td>
      </tr>
      <tr class="vs-passive-row">
        <td class="vs-slot">Passive 1</td>
        <td class="vs-item">Armor</td>
        <td class="vs-evo">Required for NO FUTURE</td>
      </tr>
      <tr class="vs-passive-row">
        <td class="vs-slot">Passive 2</td>
        <td class="vs-item">Spinach</td>
        <td class="vs-evo">Required for Hellfire</td>
      </tr>
      <tr class="vs-passive-row">
        <td class="vs-slot">Passive 3</td>
        <td class="vs-item">Spellbinder</td>
        <td class="vs-evo">Required for Unholy Vespers</td>
      </tr>
    </tbody>
  </table>
</div></p>



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



<p class="wp-block-paragraph">u/MayhemMessiah in <a href="https://www.reddit.com/r/VampireSurvivors/comments/shrcsm/tips_and_tricks_for_vs/">this thread</a> was direct: &#8220;Runetracer does as much DPS as some upgraded weapons do, or really close to. Part of what makes it so strong is that it benefits from virtually every single stat.&#8221;</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="640" src="https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-build-2-runetracer-1024x640.webp" alt="Vampire Survivors Runetracer build at the 10-minute mark showing multicolored bouncing projectiles crossing the screen in every direction, demonstrating why it scales with nearly every passive stat" class="wp-image-940" srcset="https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-build-2-runetracer-1024x640.webp 1024w, https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-build-2-runetracer-300x188.webp 300w, https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-build-2-runetracer-768x480.webp 768w, https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-build-2-runetracer.webp 1280w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading"><strong>Build 3: The Vandalier Build (Higher Skill Cap)</strong></h3>



<p class="wp-block-paragraph">Vandalier is formed by leveling both birds (Peachone and Ebony Wings) to max and picking up a chest.&nbsp;</p>



<p class="wp-block-paragraph">Once fused, it frees a weapon slot and fires constantly around you.&nbsp;</p>



<p class="wp-block-paragraph">The downside: both birds are individually weak until they fuse, which makes the early game rough.</p>



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



<p class="wp-block-paragraph"><!-- 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 {
    --bh-accent:  #c0392b;
    --bh-gold:    #b8892a;
    --bh-text:    #1a1a24;
    --bh-muted:   #888699;
    --bh-border:  #e0dded;
    --bh-stripe:  #f7f6fb;
    --bh-cat-bg:  #1a1a24;
  }

  .vs-build-header {
    text-align: center;
    margin-bottom: 1.6rem;
  }
  .vs-build-header p.vs-build-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(1rem, 3vw, 1.45rem);
    color: var(--bh-gold);
    letter-spacing: 0.04em;
    margin: 0 0 0.3rem;
  }
  .vs-build-header p.vs-build-sub {
    color: var(--bh-muted);
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin: 0;
  }

  .vs-build-wrap {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    overflow-x: auto;
    border: 1px solid var(--bh-border);
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
  }

  .vs-build-wrap table {
    width: 100%;
    border-collapse: collapse;
    min-width: 420px;
    background: #fff;
  }

  .vs-build-wrap thead tr {
    background: var(--bh-cat-bg);
    border-bottom: 2px solid var(--bh-accent);
  }
  .vs-build-wrap thead th {
    padding: 0.8rem 1.1rem;
    text-align: left;
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.62rem;
    letter-spacing: 0.1em;
    color: #e8b94f;
    text-transform: uppercase;
    white-space: nowrap;
  }

  .vs-build-wrap tbody tr {
    border-bottom: 1px solid var(--bh-border);
    transition: background 0.12s;
  }
  .vs-build-wrap tbody tr:last-child { border-bottom: none; }
  .vs-build-wrap tbody tr:hover { background: #f0eef8 !important; }
  .vs-build-wrap tbody tr.vs-weapon-row { background: #fffbf0 !important; }
  .vs-build-wrap tbody tr.vs-weapon-row:hover { background: #fff5d6 !important; }
  .vs-build-wrap tbody tr.vs-flex-row { background: #fff !important; }
  .vs-build-wrap tbody tr.vs-flex-row:hover { background: #f0eef8 !important; }
  .vs-build-wrap tbody tr.vs-passive-row { background: var(--bh-stripe) !important; }
  .vs-build-wrap tbody tr.vs-passive-row:hover { background: #f0eef8 !important; }

  .vs-build-wrap td {
    padding: 0.72rem 1.1rem;
    vertical-align: middle;
    font-family: 'Barlow', sans-serif;
    font-size: 14px;
    color: var(--bh-text);
    line-height: 1.5;
  }

  .vs-slot  { font-weight: 700; color: var(--bh-muted); white-space: nowrap; width: 100px; font-size: 13px; }
  .vs-item  { font-weight: 700; white-space: nowrap; }
  .vs-flex-row .vs-item  { color: #555466; font-weight: 400; font-style: italic; }
  .vs-passive-row .vs-item { color: #555466; }
  .vs-notes { color: #555466; font-weight: 400; font-size: 13px; }
  .vs-weapon-row .vs-notes { color: #555466; }
  .vs-passive-row .vs-notes { font-style: italic; }

  @media (max-width: 560px) {
    .vs-build-wrap thead th,
    .vs-build-wrap td { padding: 0.55rem 0.65rem; font-size: 0.78rem; }
    .vs-build-wrap thead th { font-size: 0.5rem; }
    .vs-item { white-space: normal; }
  }
</style>

<div class="vs-build-header">
  <p class="vs-build-title">Build 3: The Vandalier Build</p>
  <p class="vs-build-sub">Higher skill cap — weak early, dominant post-fusion</p>
</div>

<div class="vs-build-wrap">
  <table>
    <colgroup>
      <col style="width:100px">
      <col style="width:38%">
      <col>
    </colgroup>
    <thead>
      <tr>
        <th scope="col">Slot</th>
        <th scope="col">Item</th>
        <th scope="col">Notes</th>
      </tr>
    </thead>
    <tbody>
      <tr class="vs-weapon-row">
        <td class="vs-slot">Weapon 1</td>
        <td class="vs-item">Peachone</td>
        <td class="vs-notes">Weak alone; commit to both birds or skip both</td>
      </tr>
      <tr class="vs-weapon-row">
        <td class="vs-slot">Weapon 2</td>
        <td class="vs-item">Ebony Wings</td>
        <td class="vs-notes">Combines with Peachone to form Vandalier</td>
      </tr>
      <tr class="vs-flex-row">
        <td class="vs-slot">Weapons 3–6</td>
        <td class="vs-item">Your choice</td>
        <td class="vs-notes">Fill remaining slots with evolutions of your choice</td>
      </tr>
      <tr class="vs-passive-row">
        <td class="vs-slot">Key Passives</td>
        <td class="vs-item">Duplicator, Empty Tome, Spellbinder, Candelabrador</td>
        <td class="vs-notes">All boost Vandalier significantly post-fusion</td>
      </tr>
    </tbody>
  </table>
</div></p>



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



<p class="wp-block-paragraph">u/Kitcastor in <a href="https://www.reddit.com/r/VampireSurvivors/comments/shrcsm/tips_and_tricks_for_vs/">this thread</a> called it &#8220;easily the highest damaging skill in the game&#8221; once combined. Worth building toward once you&#8217;re comfortable, but not ideal as a first-run plan.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="640" src="https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-build-3-1024x640.webp" alt="The Vampire Survivors weapons collection screen showing the full arsenal including Peachone and Ebony Wings, the two birds that fuse into the Vandalier evolution" class="wp-image-941" srcset="https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-build-3-1024x640.webp 1024w, https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-build-3-300x188.webp 300w, https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-build-3-768x480.webp 768w, https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-build-3.webp 1280w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading"><strong>A Note on DLC Builds</strong></h3>



<p class="wp-block-paragraph">If you have any of the paid expansions, some of the strongest options in the game are gated behind them.&nbsp;</p>



<p class="wp-block-paragraph">Sammy from Tides of the Foscari, in particular, is flagged by the community as capable of breaking early progression wide open.&nbsp;</p>



<p class="wp-block-paragraph">All three builds above are fully available in the base game.</p>



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



<p class="wp-block-paragraph">Here are the questions that come up most from new players and people comparing VS to similar games.</p>



<h3 class="wp-block-heading"><strong>Is Vampire Survivors on Mobile?</strong></h3>



<p class="wp-block-paragraph">Yes. Vampire Survivors is free on iOS and Android.&nbsp;</p>



<p class="wp-block-paragraph">The core gameplay is identical to PC, but the mobile version has ads; they&#8217;re optional (watch one to revive, or to double gold) and non-intrusive, but they&#8217;re there.&nbsp;</p>



<p class="wp-block-paragraph">PC runs better, supports modding, and has a map and bestiary that the mobile version lacks.&nbsp;</p>



<p class="wp-block-paragraph">If you have a PC, play it there. If mobile is your only option, it&#8217;s an excellent port.&nbsp;</p>



<p class="wp-block-paragraph">Vampire Survivors+ is a separate Apple Arcade version (covered below).</p>



<h3 class="wp-block-heading"><strong>Vampire Survivors vs. Vampire Survivors Plus</strong></h3>



<p class="wp-block-paragraph">Vampire Survivors+ is the Apple Arcade version, launched in August 2024.&nbsp;</p>



<p class="wp-block-paragraph">It&#8217;s included with an Apple Arcade subscription, has no ads, and comes bundled with two DLC packs: Legacy of the Moonspell and Tides of the Foscari.&nbsp;</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="640" src="https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-vs-vs-vs-plus-1024x640.webp" alt="Vampire Survivors gameplay in the Inlaid Library stage, available on both the standard PC version and the Vampire Survivors Plus Apple Arcade edition" class="wp-image-951" srcset="https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-vs-vs-vs-plus-1024x640.webp 1024w, https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-vs-vs-vs-plus-300x188.webp 300w, https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-vs-vs-vs-plus-768x480.webp 768w, https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-vs-vs-vs-plus.webp 1280w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">The third-party IP DLCs (Operation Guns, Emergency Meeting) are not included because of licensing restrictions; Poncle explained this in their official <a href="https://poncle.games/arcade-faq">Apple Arcade FAQ</a>.&nbsp;</p>



<p class="wp-block-paragraph">If you&#8217;re on iPhone or iPad and already subscribe to Apple Arcade, Vampire Survivors+ is the better version. If you&#8217;re on Android, the free standard version is your only option.</p>



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



<p class="wp-block-paragraph"><!-- 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 {
    --bh-accent:  #c0392b;
    --bh-gold:    #b8892a;
    --bh-text:    #1a1a24;
    --bh-muted:   #888699;
    --bh-border:  #e0dded;
    --bh-stripe:  #f7f6fb;
    --bh-cat-bg:  #1a1a24;
  }

  .vs-ver-header {
    text-align: center;
    margin-bottom: 1.6rem;
  }
  .vs-ver-header p.vs-ver-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(1rem, 3vw, 1.45rem);
    color: var(--bh-gold);
    letter-spacing: 0.04em;
    margin: 0 0 0.3rem;
  }
  .vs-ver-header p.vs-ver-sub {
    color: var(--bh-muted);
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin: 0;
  }

  .vs-ver-wrap {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    overflow-x: auto;
    border: 1px solid var(--bh-border);
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
  }

  .vs-ver-wrap table {
    width: 100%;
    border-collapse: collapse;
    min-width: 520px;
    background: #fff;
  }

  .vs-ver-wrap thead tr {
    background: var(--bh-cat-bg);
    border-bottom: 2px solid var(--bh-accent);
  }
  .vs-ver-wrap thead th {
    padding: 0.8rem 1.1rem;
    text-align: left;
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.62rem;
    letter-spacing: 0.1em;
    color: #e8b94f;
    text-transform: uppercase;
    white-space: nowrap;
  }

  .vs-ver-wrap tbody tr {
    border-bottom: 1px solid var(--bh-border);
    transition: background 0.12s;
  }
  .vs-ver-wrap tbody tr:last-child { border-bottom: none; }
  .vs-ver-wrap tbody tr:nth-child(even) { background: var(--bh-stripe) !important; }
  .vs-ver-wrap tbody tr:hover { background: #f0eef8 !important; }

  /* Highlight Apple Arcade row */
  .vs-ver-wrap tbody tr.vs-featured { background: #fffbf0 !important; }
  .vs-ver-wrap tbody tr.vs-featured:hover { background: #fff5d6 !important; }
  .vs-ver-wrap tbody tr.vs-featured .vs-ver-version { color: var(--bh-gold); }

  .vs-ver-wrap td {
    padding: 0.72rem 1.1rem;
    vertical-align: middle;
    font-family: 'Barlow', sans-serif;
    font-size: 14px;
    color: var(--bh-text);
    line-height: 1.5;
  }

  .vs-ver-version { font-weight: 700; white-space: nowrap; }
  .vs-ver-platform { color: #555466; white-space: nowrap; }
  .vs-ver-price { font-weight: 600; white-space: nowrap; }
  .vs-ver-dlc { color: #555466; font-size: 13px; }
  .vs-ver-ads { white-space: nowrap; font-size: 13px; color: #555466; }

  @media (max-width: 560px) {
    .vs-ver-wrap thead th,
    .vs-ver-wrap td { padding: 0.5rem 0.65rem; font-size: 0.78rem; }
    .vs-ver-wrap thead th { font-size: 0.5rem; }
    .vs-ver-version, .vs-ver-platform { white-space: normal; }
  }
</style>

<div class="vs-ver-header">
  <p class="vs-ver-title">Vampire Survivors vs Vampire Survivors+</p>
  <p class="vs-ver-sub">Version comparison by platform</p>
</div>

<div class="vs-ver-wrap">
  <table>
    <colgroup>
      <col style="width:175px">
      <col style="width:130px">
      <col style="width:100px">
      <col>
      <col style="width:70px">
    </colgroup>
    <thead>
      <tr>
        <th scope="col">Version</th>
        <th scope="col">Platform</th>
        <th scope="col">Price</th>
        <th scope="col">DLC Included</th>
        <th scope="col">Ads</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="vs-ver-version">Vampire Survivors</td>
        <td class="vs-ver-platform">PC (Steam)</td>
        <td class="vs-ver-price">$4.99</td>
        <td class="vs-ver-dlc">None (buy separately)</td>
        <td class="vs-ver-ads">No</td>
      </tr>
      <tr>
        <td class="vs-ver-version">Vampire Survivors</td>
        <td class="vs-ver-platform">iOS / Android</td>
        <td class="vs-ver-price">Free</td>
        <td class="vs-ver-dlc">Buy separately</td>
        <td class="vs-ver-ads">Optional</td>
      </tr>
      <tr class="vs-featured">
        <td class="vs-ver-version">Vampire Survivors+</td>
        <td class="vs-ver-platform">Apple Arcade</td>
        <td class="vs-ver-price">Subscription</td>
        <td class="vs-ver-dlc">Legacy of the Moonspell, Tides of the Foscari</td>
        <td class="vs-ver-ads">No</td>
      </tr>
      <tr>
        <td class="vs-ver-version">Vampire Survivors</td>
        <td class="vs-ver-platform">Switch / Xbox / PS</td>
        <td class="vs-ver-price">$4.99</td>
        <td class="vs-ver-dlc">Buy separately</td>
        <td class="vs-ver-ads">No</td>
      </tr>
    </tbody>
  </table>
</div></p>



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



<p class="wp-block-paragraph"><strong>Vampire Survivors vs. Halls of Torment</strong></p>



<p class="wp-block-paragraph">These two are constantly compared, and the community has real opinions on both sides.&nbsp;</p>



<p class="wp-block-paragraph">VS is more content-rich, more passive, and more likely to end in you standing still watching your screen go nuclear.&nbsp;</p>



<p class="wp-block-paragraph">Halls of Torment (HoT) has real bosses with attack patterns, Diablo 1 aesthetics, and keeps you engaged longer because it doesn&#8217;t get AFK-easy the way VS does at late-game power levels.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="640" src="https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-vs-vs-hot-1024x640.webp" alt="Late-game Vampire Survivors showing a character melting through dense enemy waves with AoE weapons, contrasting with Halls of Torment's more active boss-focused combat" class="wp-image-950" srcset="https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-vs-vs-hot-1024x640.webp 1024w, https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-vs-vs-hot-300x188.webp 300w, https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-vs-vs-hot-768x480.webp 768w, https://rogueranker.com/wp-content/uploads/2026/03/vampire-survivors-guide-vs-vs-hot.webp 1280w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">The consensus across Steam discussions and my <a href="https://rogueranker.com/games-like-brotato/">Games Like Brotato article</a> is that VS is the better starting point for the genre and HoT is the better game for players who&#8217;ve already worn out VS and want more friction.&nbsp;</p>



<p class="wp-block-paragraph">VS if you want the chill scaling experience and HoT if you want to actually get tested.</p>



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



<p class="wp-block-paragraph"><!-- 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 {
    --bh-accent:  #c0392b;
    --bh-gold:    #b8892a;
    --bh-text:    #1a1a24;
    --bh-muted:   #888699;
    --bh-border:  #e0dded;
    --bh-stripe:  #f7f6fb;
    --bh-head-bg: #1a1a24;
  }

  .vs-cmp-wrap {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    overflow-x: auto;
    border: 1px solid var(--bh-border);
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
    font-family: 'Barlow', sans-serif;
  }

  /* Header row */
  .vs-cmp-header {
    background: var(--bh-head-bg);
    border-bottom: 2px solid var(--bh-accent);
    display: grid;
    grid-template-columns: 140px 1fr 1fr;
  }

  .vs-cmp-header-cell {
    padding: 0.9rem 1rem;
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.7rem;
    letter-spacing: 0.09em;
    color: #e8b94f;
    text-transform: uppercase;
    text-align: center;
  }

  .vs-cmp-header-cell.label {
    text-align: left;
    color: #555466;
    font-size: 0.58rem;
  }

  .vs-cmp-header-cell.col2 { border-left: 1px solid #2a2a3a; }
  .vs-cmp-header-cell.col3 { border-left: 1px solid #2a2a3a; }

  /* Rows */
  .vs-cmp-row {
    display: grid;
    grid-template-columns: 140px 1fr 1fr;
    border-bottom: 1px solid var(--bh-border);
    transition: background 0.12s;
  }

  .vs-cmp-row:last-child { border-bottom: none; }
  .vs-cmp-row:nth-child(even) { background: var(--bh-stripe); }
  .vs-cmp-row:hover { background: #f0eef8; }

  .vs-cmp-cell {
    padding: 0.75rem 1rem;
    font-size: 14px;
    color: var(--bh-text);
    line-height: 1.5;
  }

  .vs-cmp-cell.label {
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bh-muted);
    display: flex;
    align-items: center;
    background: #fafafa;
    border-right: 1px solid var(--bh-border);
  }

  .vs-cmp-cell.col2 { border-right: 1px solid var(--bh-border); }

  /* Footer */
  .vs-cmp-footer {
    background: #fafafa;
    border-top: 1px solid var(--bh-border);
    padding: 0.65rem 1rem;
    font-size: 0.75rem;
    color: var(--bh-muted);
    font-style: italic;
    text-align: center;
  }

  @media (max-width: 560px) {
    .vs-cmp-header,
    .vs-cmp-row { grid-template-columns: 90px 1fr 1fr; }
    .vs-cmp-cell { padding: 0.6rem 0.65rem; font-size: 13px; }
    .vs-cmp-header-cell { padding: 0.7rem 0.65rem; font-size: 0.55rem; }
    .vs-cmp-cell.label { font-size: 0.5rem; }
  }
</style>

<div class="vs-cmp-wrap">

  <div class="vs-cmp-header">
    <div class="vs-cmp-header-cell label">Category</div>
    <div class="vs-cmp-header-cell col2">Vampire Survivors</div>
    <div class="vs-cmp-header-cell col3">Halls of Torment</div>
  </div>

  <div class="vs-cmp-row">
    <div class="vs-cmp-cell label">Bosses</div>
    <div class="vs-cmp-cell col2">Mini-boss style; big mobs</div>
    <div class="vs-cmp-cell">Real bosses with attack patterns</div>
  </div>

  <div class="vs-cmp-row">
    <div class="vs-cmp-cell label">Difficulty</div>
    <div class="vs-cmp-cell col2">Gets easy with a good build</div>
    <div class="vs-cmp-cell">Stays challenging longer</div>
  </div>

  <div class="vs-cmp-row">
    <div class="vs-cmp-cell label">Atmosphere</div>
    <div class="vs-cmp-cell col2">Colorful chaos</div>
    <div class="vs-cmp-cell">Dark, Diablo-inspired</div>
  </div>

  <div class="vs-cmp-row">
    <div class="vs-cmp-cell label">Best For</div>
    <div class="vs-cmp-cell col2">New to the genre</div>
    <div class="vs-cmp-cell">Already comfortable with VS</div>
  </div>

  <div class="vs-cmp-row">
    <div class="vs-cmp-cell label">Price</div>
    <div class="vs-cmp-cell col2">$4.99</div>
    <div class="vs-cmp-cell">$4.99</div>
  </div>

  <div class="vs-cmp-footer">Both are $4.99 — VS first, HoT when you want more friction</div>

</div></p>



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



<h3 class="wp-block-heading"><strong>Vampire Survivors vs. Death Must Die</strong></h3>



<p class="wp-block-paragraph">Death Must Die is closer to &#8220;Hades meets VS&#8221; than a straight VS-like. It has manual aiming (auto-aim exists, but precision matters more), a gear system where items drop and carry over between runs, and blessings from gods that change your build direction mid-run. It&#8217;s more active, more complex, and more demanding than VS.</p>



<p class="wp-block-paragraph">If you&#8217;re new to the genre, VS first. If you&#8217;re coming off VS and want something that makes you play the game rather than watch it, Death Must Die is a natural next step.&nbsp;</p>



<p class="wp-block-paragraph">For a full list of VS alternatives with community-vote data, my Games Like Brotato article covers several worth checking out.</p>



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



<p class="wp-block-paragraph"><!-- 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 {
    --bh-accent:  #c0392b;
    --bh-gold:    #b8892a;
    --bh-text:    #1a1a24;
    --bh-muted:   #888699;
    --bh-border:  #e0dded;
    --bh-stripe:  #f7f6fb;
    --bh-head-bg: #1a1a24;
  }

  .vs-cmp-wrap {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    overflow-x: auto;
    border: 1px solid var(--bh-border);
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
    font-family: 'Barlow', sans-serif;
  }

  .vs-cmp-header {
    background: var(--bh-head-bg);
    border-bottom: 2px solid var(--bh-accent);
    display: grid;
    grid-template-columns: 140px 1fr 1fr;
  }

  .vs-cmp-header-cell {
    padding: 0.9rem 1rem;
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.7rem;
    letter-spacing: 0.09em;
    color: #e8b94f;
    text-transform: uppercase;
    text-align: center;
  }

  .vs-cmp-header-cell.label { text-align: left; color: #555466; font-size: 0.58rem; }
  .vs-cmp-header-cell.col2 { border-left: 1px solid #2a2a3a; }
  .vs-cmp-header-cell.col3 { border-left: 1px solid #2a2a3a; }

  .vs-cmp-row {
    display: grid;
    grid-template-columns: 140px 1fr 1fr;
    border-bottom: 1px solid var(--bh-border);
    transition: background 0.12s;
  }

  .vs-cmp-row:last-child { border-bottom: none; }
  .vs-cmp-row:nth-child(even) { background: var(--bh-stripe); }
  .vs-cmp-row:hover { background: #f0eef8; }

  .vs-cmp-cell {
    padding: 0.75rem 1rem;
    font-size: 14px;
    color: var(--bh-text);
    line-height: 1.5;
  }

  .vs-cmp-cell.label {
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bh-muted);
    display: flex;
    align-items: center;
    background: #fafafa;
    border-right: 1px solid var(--bh-border);
  }

  .vs-cmp-cell.col2 { border-right: 1px solid var(--bh-border); }

  .vs-cmp-footer {
    background: #fafafa;
    border-top: 1px solid var(--bh-border);
    padding: 0.65rem 1rem;
    font-size: 0.75rem;
    color: var(--bh-muted);
    font-style: italic;
    text-align: center;
  }

  @media (max-width: 560px) {
    .vs-cmp-header,
    .vs-cmp-row { grid-template-columns: 90px 1fr 1fr; }
    .vs-cmp-cell { padding: 0.6rem 0.65rem; font-size: 13px; }
    .vs-cmp-header-cell { padding: 0.7rem 0.65rem; font-size: 0.55rem; }
    .vs-cmp-cell.label { font-size: 0.5rem; }
  }
</style>

<div class="vs-cmp-wrap">

  <div class="vs-cmp-header">
    <div class="vs-cmp-header-cell label">Category</div>
    <div class="vs-cmp-header-cell col2">Vampire Survivors</div>
    <div class="vs-cmp-header-cell col3">Death Must Die</div>
  </div>

  <div class="vs-cmp-row">
    <div class="vs-cmp-cell label">Aiming</div>
    <div class="vs-cmp-cell col2">Fully automatic</div>
    <div class="vs-cmp-cell">Manual (precision matters)</div>
  </div>

  <div class="vs-cmp-row">
    <div class="vs-cmp-cell label">Gear System</div>
    <div class="vs-cmp-cell col2">None</div>
    <div class="vs-cmp-cell">Items drop and carry over between runs</div>
  </div>

  <div class="vs-cmp-row">
    <div class="vs-cmp-cell label">Difficulty Curve</div>
    <div class="vs-cmp-cell col2">Gradual; becomes passive at high power</div>
    <div class="vs-cmp-cell">Steeper; stays demanding</div>
  </div>

  <div class="vs-cmp-row">
    <div class="vs-cmp-cell label">Closest To</div>
    <div class="vs-cmp-cell col2">Idle roguelite</div>
    <div class="vs-cmp-cell">Hades + VS hybrid</div>
  </div>

  <div class="vs-cmp-row">
    <div class="vs-cmp-cell label">Best For</div>
    <div class="vs-cmp-cell col2">New to the genre</div>
    <div class="vs-cmp-cell">VS veterans wanting more depth</div>
  </div>

  <div class="vs-cmp-footer">VS first — Death Must Die when you want the game to push back</div>

</div></p>



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



<h3 class="wp-block-heading"><strong>20 Minutes Till Dawn vs. Vampire Survivors</strong></h3>



<p class="wp-block-paragraph">The single most important difference: 20 Minutes Till Dawn requires you to aim and Vampire Survivors auto-fires (you only control movement).&nbsp;</p>



<p class="wp-block-paragraph">20MTD is a twin-stick shooter; you pick a weapon, you aim it, you reload. That shifts the feel from idle-adjacent to properly active. Runs are also shorter (20 minutes vs 30), making them snappier.</p>



<p class="wp-block-paragraph">VS has more content by a wide margin; more characters, more stages, more build variety, more meta depth. 20MTD is tighter and more demanding.&nbsp;</p>



<p class="wp-block-paragraph">They&#8217;re not really substitutes for each other; they&#8217;re different flavors of the same genre.&nbsp;</p>



<p class="wp-block-paragraph">For a broader explainer on where both fit, check out my <a href="https://rogueranker.com/bullet-heaven-vs-bullet-hell/">Bullet Heaven vs Bullet Hell article</a>.</p>



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



<p class="wp-block-paragraph"><!-- 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 {
    --bh-accent:  #c0392b;
    --bh-gold:    #b8892a;
    --bh-text:    #1a1a24;
    --bh-muted:   #888699;
    --bh-border:  #e0dded;
    --bh-stripe:  #f7f6fb;
    --bh-head-bg: #1a1a24;
  }

  .vs-cmp-wrap {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    overflow-x: auto;
    border: 1px solid var(--bh-border);
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
    font-family: 'Barlow', sans-serif;
  }

  .vs-cmp-header {
    background: var(--bh-head-bg);
    border-bottom: 2px solid var(--bh-accent);
    display: grid;
    grid-template-columns: 140px 1fr 1fr;
  }

  .vs-cmp-header-cell {
    padding: 0.9rem 1rem;
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.7rem;
    letter-spacing: 0.09em;
    color: #e8b94f;
    text-transform: uppercase;
    text-align: center;
  }

  .vs-cmp-header-cell.label { text-align: left; color: #555466; font-size: 0.58rem; }
  .vs-cmp-header-cell.col2 { border-left: 1px solid #2a2a3a; }
  .vs-cmp-header-cell.col3 { border-left: 1px solid #2a2a3a; }

  .vs-cmp-row {
    display: grid;
    grid-template-columns: 140px 1fr 1fr;
    border-bottom: 1px solid var(--bh-border);
    transition: background 0.12s;
  }

  .vs-cmp-row:last-child { border-bottom: none; }
  .vs-cmp-row:nth-child(even) { background: var(--bh-stripe); }
  .vs-cmp-row:hover { background: #f0eef8; }

  .vs-cmp-cell {
    padding: 0.75rem 1rem;
    font-size: 14px;
    color: var(--bh-text);
    line-height: 1.5;
  }

  .vs-cmp-cell.label {
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bh-muted);
    display: flex;
    align-items: center;
    background: #fafafa;
    border-right: 1px solid var(--bh-border);
  }

  .vs-cmp-cell.col2 { border-right: 1px solid var(--bh-border); }

  .vs-cmp-footer {
    background: #fafafa;
    border-top: 1px solid var(--bh-border);
    padding: 0.65rem 1rem;
    font-size: 0.75rem;
    color: var(--bh-muted);
    font-style: italic;
    text-align: center;
  }

  @media (max-width: 560px) {
    .vs-cmp-header,
    .vs-cmp-row { grid-template-columns: 90px 1fr 1fr; }
    .vs-cmp-cell { padding: 0.6rem 0.65rem; font-size: 13px; }
    .vs-cmp-header-cell { padding: 0.7rem 0.65rem; font-size: 0.55rem; }
    .vs-cmp-cell.label { font-size: 0.5rem; }
  }
</style>

<div class="vs-cmp-wrap">

  <div class="vs-cmp-header">
    <div class="vs-cmp-header-cell label">Category</div>
    <div class="vs-cmp-header-cell col2">Vampire Survivors</div>
    <div class="vs-cmp-header-cell col3">20 Minutes Till Dawn</div>
  </div>

  <div class="vs-cmp-row">
    <div class="vs-cmp-cell label">Aiming</div>
    <div class="vs-cmp-cell col2">Automatic</div>
    <div class="vs-cmp-cell">Manual (twin-stick shooter)</div>
  </div>

  <div class="vs-cmp-row">
    <div class="vs-cmp-cell label">Run Length</div>
    <div class="vs-cmp-cell col2">30 minutes</div>
    <div class="vs-cmp-cell">20 minutes</div>
  </div>

  <div class="vs-cmp-row">
    <div class="vs-cmp-cell label">Content Depth</div>
    <div class="vs-cmp-cell col2">Massive</div>
    <div class="vs-cmp-cell">More limited</div>
  </div>

  <div class="vs-cmp-row">
    <div class="vs-cmp-cell label">Difficulty</div>
    <div class="vs-cmp-cell col2">Gradual; gets passive at high power</div>
    <div class="vs-cmp-cell">Steeper; punishing early</div>
  </div>

  <div class="vs-cmp-row">
    <div class="vs-cmp-cell label">Best For</div>
    <div class="vs-cmp-cell col2">New to bullet heaven</div>
    <div class="vs-cmp-cell">VS fans wanting active gameplay</div>
  </div>

  <div class="vs-cmp-footer">Different flavors of the same genre — not really substitutes for each other</div>

</div></p>



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



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



<p class="wp-block-paragraph">Vampire Survivors is one of those rare games where the more you understand it, the more there is to understand, and that unfolds at whatever pace you want.&nbsp;</p>



<p class="wp-block-paragraph">There&#8217;s always something pulling you forward, whether you&#8217;ve never cracked 15 minutes or you&#8217;ve gone full chaos mode in the Secrets menu.</p>



<p class="wp-block-paragraph">If you found this helpful, drop a comment and let me know what build you&#8217;re running; I&#8217;m curious what the community is gravitating toward these days.</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/vampire-survivors-guide/">(Vampire Survivors Guide): Tips, Builds, and Progression for New Players</a> appeared first on <a href="https://rogueranker.com">Rogue Ranker</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>(Top 42) Games Like Vampire Survivors &#8211; 1,962 Reddit Votes</title>
		<link>https://rogueranker.com/games-like-vampire-survivors/</link>
		
		<dc:creator><![CDATA[Steven]]></dc:creator>
		<pubDate>Sun, 22 Mar 2026 02:26:28 +0000</pubDate>
				<category><![CDATA[Bullet Heaven]]></category>
		<category><![CDATA[Roguelite]]></category>
		<category><![CDATA[Vampire Survivors]]></category>
		<guid isPermaLink="false">https://rogueranker.com/?p=791</guid>

					<description><![CDATA[<p>I’ve been looking forward to this article for a while. Vampire Survivors was the first game that introduced me to bullet heavens (and I’ve been addicted to the genre ever since).&#160; Let’s be real… There’s nothing better than standing still in chaos, deleting enemies off the map, while gems are magnetically drawn to you in [&#8230;]</p>
<p>The post <a href="https://rogueranker.com/games-like-vampire-survivors/">(Top 42) Games Like Vampire Survivors &#8211; 1,962 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’ve been looking forward to this article for a while.</p>



<p class="wp-block-paragraph">Vampire Survivors was the first game that introduced me to bullet heavens (and I’ve been addicted to the genre ever since).&nbsp;</p>



<p class="wp-block-paragraph">Let’s be real… There’s nothing better than standing still in chaos, deleting enemies off the map, while gems are magnetically drawn to you in hopes of x5 chest unlock.&nbsp;&nbsp;</p>



<p class="wp-block-paragraph">Oh baby. Gimme dat dopamine.</p>



<p class="wp-block-paragraph">If you’ve read any of my other guides, you know I&#8217;m a glutton for punishment: deep community research to uncover other games like scratch that itch.&nbsp;</p>



<p class="wp-block-paragraph">So I collected the top fifteen Reddit threads discussing games like Vampire Survivors and tallied all the upvotes to make a “once and for all” list.&nbsp;</p>



<p class="wp-block-paragraph">Feel free to take the quiz below and see what game suits you best <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>



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


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>What Game Like Vampire Survivors 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>
  #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; }

  .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-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 {
    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-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-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-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; }

  .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-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-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); }

  @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 · 42 Games Analyzed</span>
    <h2 class="quiz-title">What Game Like Vampire Survivors Should I Play Next?</h2>
    <p class="quiz-subtitle">10 questions. Matched to 42 community-ranked games.</p>
  </div>
  <div id="quiz-body"></div>
</div>

<script>
const questions = [
  {
    id: "q1",
    text: "What do you love most about Vampire Survivors?",
    options: [
      { label: "The brain-off zone-out loop where I just move and watch things explode", tags: ["auto_attack", "chill", "open_map"] },
      { label: "Chasing build synergies and weapon evolutions between runs", tags: ["build_depth", "synergies", "meta_prog"] },
      { label: "The short run length that makes it easy to play one more time", tags: ["short_runs", "accessible", "chill"] },
      { label: "The feeling of becoming overpowered and clearing the screen", tags: ["power_scale", "auto_attack", "build_depth"] }
    ]
  },
  {
    id: "q2",
    text: "How hands-on do you want combat to feel?",
    options: [
      { label: "Fully auto-attack, I just move and let my build do the work", tags: ["auto_attack", "chill", "open_map"] },
      { label: "Manual aim with some skill involvement in kills", tags: ["manual_aim", "skill_based", "short_runs"] },
      { label: "Squad or summon mechanics where I manage units instead of shooting", tags: ["minions", "passive", "unique_mechanic"] },
      { label: "A mix, mostly auto but with active dodge and positioning decisions", tags: ["auto_attack", "build_depth", "accessible"] }
    ]
  },
  {
    id: "q3",
    text: "How much do you want to think during the shop or upgrade phase?",
    options: [
      { label: "Not much, just pick the best-looking upgrade and keep going", tags: ["chill", "accessible", "auto_attack"] },
      { label: "Some, I like meaningful choices without it being overwhelming", tags: ["accessible", "build_depth", "meta_prog"] },
      { label: "A lot, I want to theory-craft and hunt synergies every run", tags: ["build_depth", "synergies", "high_complexity"] },
      { label: "I want a full shop phase with weapons, items, and visible stat math", tags: ["shop_system", "build_depth", "synergies"] }
    ]
  },
  {
    id: "q4",
    text: "How long do you want a typical run to last?",
    options: [
      { label: "Short, under 20 minutes so I can restart fast", tags: ["short_runs", "accessible", "manual_aim"] },
      { label: "Medium, 20 to 40 minutes feels like the sweet spot", tags: ["medium_runs", "build_depth", "auto_attack"] },
      { label: "Long, I want a run that keeps escalating for an hour or more", tags: ["long_runs", "power_scale", "meta_prog"] },
      { label: "I do not care, just make it replayable", tags: ["build_depth", "synergies", "meta_prog"] }
    ]
  },
  {
    id: "q5",
    text: "What's your budget?",
    options: [
      { label: "Free, I only try free-to-play games", tags: ["free"] },
      { label: "Budget, under $5", tags: ["budget"] },
      { label: "Mid-range, $5 to $12", tags: ["mid_price"] },
      { label: "Whatever, price does not matter if it is good", tags: ["any_price"] }
    ]
  },
  {
    id: "q6",
    text: "What kind of setting or theme appeals to you?",
    options: [
      { label: "Dark fantasy, dungeons, Diablo-style atmosphere", tags: ["dark_fantasy", "high_complexity", "meta_prog"] },
      { label: "Military or action, guns, squads, modern warfare feel", tags: ["military", "squad", "unique_mechanic"] },
      { label: "Lighthearted or quirky, I want charm and humor", tags: ["quirky", "accessible", "unique_mechanic"] },
      { label: "Story-driven, I want lore and atmosphere alongside the gameplay", tags: ["story", "build_depth", "mid_price"] }
    ]
  },
  {
    id: "q7",
    text: "How important is platform availability to you?",
    options: [
      { label: "PC only is fine, I play on Steam", tags: ["pc", "build_depth", "synergies"] },
      { label: "I want it on console too, PS4 or PS5", tags: ["console", "accessible", "auto_attack"] },
      { label: "I want Xbox or Game Pass support", tags: ["xbox", "accessible", "meta_prog"] },
      { label: "I want it on Switch for handheld play", tags: ["switch", "short_runs", "accessible"] }
    ]
  },
  {
    id: "q8",
    text: "How much do you value meta progression between runs?",
    options: [
      { label: "Essential, I need permanent unlocks to keep me coming back", tags: ["meta_prog", "long_runs", "build_depth"] },
      { label: "Nice to have, but the run itself should feel complete on its own", tags: ["accessible", "short_runs", "auto_attack"] },
      { label: "I want gear and equipment that carries over and changes future runs meaningfully", tags: ["gear_system", "meta_prog", "dark_fantasy"] },
      { label: "I want a world map or RPG layer on top of the survival loop", tags: ["rpg_layer", "story", "meta_prog"] }
    ]
  },
  {
    id: "q9",
    text: "Do you want to play with anyone else?",
    options: [
      { label: "Solo only, this is my personal wind-down game", tags: ["auto_attack", "chill", "open_map"] },
      { label: "Local co-op would be great for couch play", tags: ["local_coop", "accessible", "unique_mechanic"] },
      { label: "Online co-op if available", tags: ["coop", "build_depth", "synergies"] },
      { label: "No preference, just give me the best game", tags: ["build_depth", "meta_prog", "auto_attack"] }
    ]
  },
  {
    id: "q10",
    text: "Which of these sounds most like you?",
    options: [
      { label: "I want the game Reddit recommends most often when people ask for VS alternatives", tags: ["dark_fantasy", "meta_prog", "gear_system"] },
      { label: "I want something free so I can try the genre before committing money", tags: ["free", "accessible", "auto_attack"] },
      { label: "I want something with a twist that makes it feel meaningfully different from VS", tags: ["unique_mechanic", "build_depth", "synergies"] },
      { label: "I want the deepest build system in the genre, even if it takes longer to learn", tags: ["high_complexity", "synergies", "build_depth"] }
    ]
  }
];

const games = [
  {
    name: "Halls of Torment",
    tags: ["dark_fantasy","meta_prog","gear_system","build_depth","auto_attack","console","xbox","any_price","mid_price","medium_runs","long_runs","high_complexity","accessible"],
    price: "$4",
    playtime: "12.1 hrs",
    votes: 320,
    why: "The most recommended VS alternative on Reddit with 320 votes across 11 threads. Diablo 2 aesthetics, hand-crafted gear between runs, and challenge progression that keeps experienced players busy for hours."
  },
  {
    name: "Brotato",
    tags: ["shop_system","build_depth","synergies","short_runs","budget","any_price","console","xbox","switch","accessible","power_scale","meta_prog"],
    price: "$4",
    playtime: "12.9 hrs",
    votes: 278,
    why: "278 votes and the closest thing to a peer for VS in community discussions. Six weapons at once, a deep shop phase between short combat waves, and 44 characters worth of replay value."
  },
  {
    name: "Deep Rock Galactic: Survivor",
    tags: ["unique_mechanic","build_depth","auto_attack","xbox","pc","any_price","mid_price","medium_runs","long_runs","meta_prog","accessible","power_scale"],
    price: "$8",
    playtime: "12.2 hrs",
    votes: 270,
    why: "270 votes and the only VS-like where you actively mine the terrain while fighting. Spatial strategy, biome variety, and production quality a tier above most of its competition."
  },
  {
    name: "Death Must Die",
    tags: ["story","build_depth","synergies","gear_system","meta_prog","budget","any_price","pc","medium_runs","auto_attack","accessible","dark_fantasy"],
    price: "$5",
    playtime: "10.6 hrs",
    votes: 138,
    why: "138 votes and the clearest example of VS meets Hades. God blessings, persistent gear with Diablo-style weight, and combat that feels more interactive than a pure auto-attacker."
  },
  {
    name: "HoloCure",
    tags: ["free","auto_attack","chill","meta_prog","accessible","build_depth","quirky","pc","short_runs","medium_runs","power_scale"],
    price: "Free",
    playtime: "8.5 hrs",
    votes: 136,
    why: "136 votes and completely free. A fan game built around the Hololive VTuber roster with a massive character list, weapon evolutions, and updates that keep coming. The theme is a filter, not a flaw."
  },
  {
    name: "20 Minutes Till Dawn",
    tags: ["manual_aim","skill_based","short_runs","build_depth","synergies","budget","any_price","accessible","pc","quirky"],
    price: "$3",
    playtime: "6.9 hrs",
    votes: 133,
    why: "133 votes and the top pick for players who want manual aim in the genre. Short focused runs, synergies that reward planning, and a dark visual style that stands apart from the pixel art crowd."
  },
  {
    name: "Yet Another Zombie Survivors",
    tags: ["squad","military","unique_mechanic","auto_attack","xbox","console","any_price","mid_price","medium_runs","build_depth","accessible"],
    price: "$7",
    playtime: "10.6 hrs",
    votes: 96,
    why: "96 votes concentrated in threads from players who genuinely love it. You build a squad of survivors instead of a single character, and the military aesthetic stands out in a genre full of fantasy and pixel art."
  },
  {
    name: "Soulstone Survivors",
    tags: ["high_complexity","synergies","build_depth","meta_prog","coop","console","xbox","any_price","mid_price","long_runs","auto_attack","power_scale"],
    price: "$8",
    playtime: "19.3 hrs",
    votes: 80,
    why: "80 votes and the most mechanically complex game in the top 10. Fourteen classes, a tag-based skill system, rune slots, and talent trees. If you want to theory-craft as much as play, this is the one."
  },
  {
    name: "Boneraiser Minions",
    tags: ["minions","passive","unique_mechanic","quirky","budget","any_price","pc","short_runs","medium_runs","accessible","chill"],
    price: "$3",
    playtime: "5.8 hrs",
    votes: 77,
    why: "77 votes for the most distinct gimmick in the genre. You do not attack. You raise a skeleton army from fallen enemies and manage their survival while yours. Nothing else in the top 10 feels like it."
  },
  {
    name: "Rogue Genesia",
    tags: ["rpg_layer","story","meta_prog","auto_attack","budget","any_price","pc","medium_runs","build_depth","accessible","open_map"],
    price: "$6",
    playtime: "13.9 hrs",
    votes: 73,
    why: "73 votes for the VS-like with the most RPG structure. A world map, towns, shops between levels, and a journey feeling that the standard survival loop does not offer. Closer to VS mechanically than Brotato."
  },
  {
    name: "Army of Ruin",
    tags: ["accessible","auto_attack","build_depth","synergies","console","xbox","switch","budget","any_price","medium_runs","meta_prog"],
    price: "$5",
    playtime: "6.7 hrs",
    votes: 56,
    why: "56 votes and praised for an elemental evolution system more flexible than most VS-likes. Visual quality is noticeably higher than its price suggests, and it is available across every major platform."
  },
  {
    name: "Spirit Hunters: Infinite Horde",
    tags: ["local_coop","coop","accessible","console","switch","auto_attack","short_runs","build_depth","unique_mechanic"],
    price: "N/A",
    playtime: "N/A",
    votes: 35,
    why: "35 votes and the most recommended answer in the data when someone specifically asked for a VS-like with local co-op. Rare in the genre, faithful to the VS formula, and available on Switch and PlayStation."
  }
];

function scoreGames(answers) {
  return games.map(game => {
    let score = 0;
    answers.forEach(answerTags => {
      answerTags.forEach(tag => {
        if (game.tags.includes(tag)) score++;
      });
    });
    score += (game.votes / 320) * 0.5;
    return { ...game, score };
  }).sort((a, b) => b.score - a.score);
}

let currentQ = 0;
let answers = [];

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 42 community-ranked games like Vampire Survivors.</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"><strong>TL;DR — What Are the Best Games Like Vampire Survivors?</strong></h2>



<p class="wp-block-paragraph">Here is a quick overview of the top games similar to Vampire Survivors. </p>



<p class="wp-block-paragraph">The links below will take you to Steam.</p>



<ol class="wp-block-list">
<li><a href="https://store.steampowered.com/app/2218750/Halls_of_Torment/">Halls of Torment</a> (320 votes)</li>



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



<li><a href="https://store.steampowered.com/app/2321470/Deep_Rock_Galactic_Survivor/">Deep Rock Galactic: Survivor</a> (270 votes)</li>



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



<li><a href="https://store.steampowered.com/app/2420510/HoloCure__Save_the_Fans/">Holocure</a> (136 votes)</li>



<li><a href="https://store.steampowered.com/app/1966900/20_Minutes_Till_Dawn/">20 Minutes Till Dawn</a> (133 votes)</li>



<li><a href="https://store.steampowered.com/app/2163330/Yet_Another_Zombie_Survivors/">Yet Another Zombie Survivors</a> (96 votes)</li>



<li><a href="https://store.steampowered.com/app/2066020/Soulstone_Survivors/">Soulstone Survivors</a> (80 votes)</li>



<li><a href="https://store.steampowered.com/app/1944570/Boneraiser_Minions/">Boneraiser Minions</a> (77 votes)</li>



<li><a href="https://store.steampowered.com/app/1940370/Rogue_Genesia/">Rogue Genesia</a> (73 votes)</li>
</ol>



<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>
  :root {
    --bh-accent:  #c0392b;
    --bh-gold:    #b8892a;
    --bh-text:    #1a1a24;
    --bh-muted:   #888699;
    --bh-border:  #e0dded;
    --bh-stripe:  #f7f6fb;
    --bh-cat-bg:  #1a1a24;
    --bh-cat-txt: #e8e4dc;
  }

  .bh-table-header {
    text-align: center;
    margin-bottom: 1.6rem;
  }
  .bh-table-header p.bh-title,
  .bh-table-header h2.bh-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(1rem, 3vw, 1.45rem);
    color: var(--bh-gold);
    letter-spacing: 0.04em;
    margin: 0 0 0.3rem;
  }
  .bh-table-header p.bh-sub {
    color: var(--bh-muted);
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin: 0;
  }

  .bh-table-wrap {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    overflow-x: auto;
    border: 1px solid var(--bh-border);
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
  }

  .bh-table-wrap table {
    width: 100%;
    border-collapse: collapse;
    min-width: 460px;
    background: #fff;
  }

  .bh-table-wrap thead tr {
    background: var(--bh-cat-bg);
    border-bottom: 2px solid var(--bh-accent);
  }
  .bh-table-wrap thead th {
    padding: 0.8rem 1.1rem;
    text-align: left;
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.62rem;
    letter-spacing: 0.1em;
    color: #e8b94f;
    text-transform: uppercase;
    white-space: nowrap;
  }
  .bh-table-wrap thead th:last-child { text-align: right; }

  .bh-table-wrap tbody tr {
    border-bottom: 1px solid var(--bh-border);
    transition: background 0.12s;
  }
  .bh-table-wrap tbody tr:last-child { border-bottom: none; }
  .bh-table-wrap tbody tr:nth-child(even) { background: var(--bh-stripe) !important; }
  .bh-table-wrap tbody tr:hover { background: #f0eef8 !important; }
  .bh-table-wrap thead tr { background: var(--bh-cat-bg) !important; }
  .bh-table-wrap td {
    padding: 0.78rem 1.1rem;
    vertical-align: middle;
    font-family: 'Barlow', sans-serif;
    font-size: 14px;
  }

  .bh-cat {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    background: var(--bh-cat-bg) !important;
    color: var(--bh-cat-txt) !important;
    white-space: nowrap;
    border-right: 2px solid var(--bh-accent);
  }

  .bh-label { color: #555466; font-weight: 400; }
  .bh-val { text-align: right; font-weight: 600; color: var(--bh-text); white-space: nowrap; }
  .bh-val.top { color: var(--bh-gold); }

  .bh-footer {
    max-width: 780px;
    margin: 0.7rem auto 0;
    text-align: right;
    color: var(--bh-muted);
    font-size: 0.72rem;
    letter-spacing: 0.04em;
    font-family: 'Barlow', sans-serif;
  }

  @media (max-width: 560px) {
    .bh-table-wrap thead th:first-child,
    .bh-table-wrap tbody td.bh-cat { display: none; }
    .bh-table-wrap tbody tr { display: flex; flex-direction: column; padding: 0.6rem 0; }
    .bh-table-wrap tbody td { display: block; padding: 0.15rem 1rem; border: none; }
    .bh-table-wrap tbody td.bh-label { font-size: 0.8rem; color: var(--bh-muted); }
    .bh-table-wrap tbody td.bh-val { text-align: left; font-size: 0.95rem; padding-top: 0; }
    .bh-table-wrap tbody tr { border-bottom: 1px solid var(--bh-border); }
    .bh-table-wrap tbody tr:last-child { border-bottom: none; }
    .bh-table-wrap thead tr { display: flex; }
    .bh-table-wrap thead th { display: none; }
    .bh-table-wrap thead th:nth-child(2) { display: block; padding: 0.7rem 1rem; font-size: 0.65rem; }
    .bh-footer { text-align: left; }
  }
</style>

<div class="bh-table-header">
  <h2 class="bh-title">Quick Stats — Games Like Vampire Survivors</h2>
  <p class="bh-sub">Key stats at a glance</p>
</div>

<div class="bh-table-wrap">
  <table>
    <thead>
      <tr>
        <th scope="col">Category</th>
        <th scope="col">Stat</th>
        <th scope="col">Value</th>
      </tr>
    </thead>
    <tbody>

      <tr>
        <td class="bh-cat" rowspan="3">Survey Scope</td>
        <td class="bh-label">Total votes collected</td>
        <td class="bh-val">1,962</td>
      </tr>
      <tr>
        <td class="bh-label">Threads analyzed</td>
        <td class="bh-val">15</td>
      </tr>
      <tr>
        <td class="bh-label">Total games mentioned</td>
        <td class="bh-val">42</td>
      </tr>

      <tr>
        <td class="bh-cat" rowspan="3">Rankings</td>
        <td class="bh-label">#1 ranked game</td>
        <td class="bh-val top">Halls of Torment — 320 votes</td>
      </tr>
      <tr>
        <td class="bh-label">Biggest gap (Halls of Torment vs Brotato)</td>
        <td class="bh-val">42 votes</td>
      </tr>
      <tr>
        <td class="bh-label">Closest race (Death Must Die vs HoloCure)</td>
        <td class="bh-val">2 votes apart</td>
      </tr>

      <tr>
        <td class="bh-cat" rowspan="3">Standouts</td>
        <td class="bh-label">Most threads appeared in</td>
        <td class="bh-val">Halls of Torment, Brotato &amp; HoloCure (11 of 15)</td>
      </tr>
      <tr>
        <td class="bh-label">Highest grossing game (Hades)</td>
        <td class="bh-val">$137,900,000 — ranked 14th by votes</td>
      </tr>
      <tr>
        <td class="bh-label">On Xbox Game Pass</td>
        <td class="bh-val">Halls of Torment &amp; Deep Rock Galactic: Survivor</td>
      </tr>

      <tr>
        <td class="bh-cat" rowspan="3">Playtime &amp; Cost</td>
        <td class="bh-label">Highest median playtime (Pizza Hero)</td>
        <td class="bh-val">40.1 hrs — free, flagged as outlier</td>
      </tr>
      <tr>
        <td class="bh-label">Lowest median playtime (Kill Knight)</td>
        <td class="bh-val">1.0 hr</td>
      </tr>
      <tr>
        <td class="bh-label">Avg median playtime across all games</td>
        <td class="bh-val">10.4 hrs</td>
      </tr>

      <tr>
        <td class="bh-cat" rowspan="2">Free to Play</td>
        <td class="bh-label">Free games in the ranking</td>
        <td class="bh-val">HoloCure, Pizza Hero</td>
      </tr>
      <tr>
        <td class="bh-label">Best value pick</td>
        <td class="bh-val top">HoloCure — 136 votes, completely free</td>
      </tr>

    </tbody>
  </table>
</div>

<p class="bh-footer">Data sourced from 15 Reddit threads · 1,962 total votes</p>



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



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



<p class="wp-block-paragraph"><!-- 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:185px">
      <col style="width:60px">
      <col style="width:80px">
      <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">Suggestions</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">Halls of Torment</td>
        <td class="rrl-num">320</td>
        <td class="rrl-num">11</td>
        <td class="rrl-desc">Diablo 2 aesthetics meets Vampire Survivors.</td>
      </tr>
      <tr>
        <td class="rrl-rank">2</td>
        <td class="rrl-game">Brotato</td>
        <td class="rrl-num">278</td>
        <td class="rrl-num">11</td>
        <td class="rrl-desc">Arena waves, six weapons, deep build shop.</td>
      </tr>
      <tr>
        <td class="rrl-rank">3</td>
        <td class="rrl-game">Deep Rock Galactic: Survivor</td>
        <td class="rrl-num">270</td>
        <td class="rrl-num">9</td>
        <td class="rrl-desc">VS with mining and terrain control.</td>
      </tr>
      <tr>
        <td class="rrl-rank">4</td>
        <td class="rrl-game">Death Must Die</td>
        <td class="rrl-num">138</td>
        <td class="rrl-num">7</td>
        <td class="rrl-desc">VS meets Hades with god blessings and gear.</td>
      </tr>
      <tr>
        <td class="rrl-rank">5</td>
        <td class="rrl-game">Holocure</td>
        <td class="rrl-num">136</td>
        <td class="rrl-num">11</td>
        <td class="rrl-desc">Free VS-like with a massive VTuber roster.</td>
      </tr>
      <tr>
        <td class="rrl-rank">6</td>
        <td class="rrl-game">20 Minutes Till Dawn</td>
        <td class="rrl-num">133</td>
        <td class="rrl-num">7</td>
        <td class="rrl-desc">Manual aim, short runs, strong synergies.</td>
      </tr>
      <tr>
        <td class="rrl-rank">7</td>
        <td class="rrl-game">Yet Another Zombie Survivors</td>
        <td class="rrl-num">96</td>
        <td class="rrl-num">3</td>
        <td class="rrl-desc">Squad-based military VS-like.</td>
      </tr>
      <tr>
        <td class="rrl-rank">8</td>
        <td class="rrl-game">Soulstone Survivors</td>
        <td class="rrl-num">80</td>
        <td class="rrl-num">9</td>
        <td class="rrl-desc">Deep build system, 14 classes, co-op.</td>
      </tr>
      <tr>
        <td class="rrl-rank">9</td>
        <td class="rrl-game">Boneraiser Minions</td>
        <td class="rrl-num">77</td>
        <td class="rrl-num">5</td>
        <td class="rrl-desc">Summon minions instead of shooting.</td>
      </tr>
      <tr>
        <td class="rrl-rank">10</td>
        <td class="rrl-game">Rogue Genesia</td>
        <td class="rrl-num">73</td>
        <td class="rrl-num">4</td>
        <td class="rrl-desc">VS with a world map and RPG structure.</td>
      </tr>
      <tr>
        <td class="rrl-rank">11</td>
        <td class="rrl-game">Army of Ruin</td>
        <td class="rrl-num">56</td>
        <td class="rrl-num">4</td>
        <td class="rrl-desc">VS with challenges and elemental evolutions.</td>
      </tr>
      <tr>
        <td class="rrl-rank">12</td>
        <td class="rrl-game">Spirit Hunters: Infinite Horde</td>
        <td class="rrl-num">35</td>
        <td class="rrl-num">3</td>
        <td class="rrl-desc">Faithful VS-like with local co-op.</td>
      </tr>
      <tr>
        <td class="rrl-rank">13</td>
        <td class="rrl-game">An Ankou</td>
        <td class="rrl-num">18</td>
        <td class="rrl-num">1</td>
        <td class="rrl-desc">Dark survival roguelite with hand-drawn art.</td>
      </tr>
      <tr>
        <td class="rrl-rank">13</td>
        <td class="rrl-game">SNKRX</td>
        <td class="rrl-num">18</td>
        <td class="rrl-num">2</td>
        <td class="rrl-desc">Snake movement meets auto-battler drafting.</td>
      </tr>
    </tbody>
  </table>
</div></p>



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



<p class="wp-block-paragraph">This chart ranks games by how many median hours of play you get per dollar spent. Free-to-play titles like Holocure are excluded from this chart since the math doesn&#8217;t apply. Early access pricing can also skew results here, since some games were cheaper when most players picked them up.</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>
  .glvs-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;
  }
  .glvs-value-header { text-align: center; margin-bottom: 1.4rem; }
  .glvs-value-header p.glvs-value-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.85rem, 2.5vw, 1.3rem);
    color: #b8892a;
    letter-spacing: 0.04em;
    margin: 0;
  }
  .glvs-value-container { position: relative; width: 100%; }
</style>

<div class="glvs-value-wrap">
  <div class="glvs-value-header">
    <p class="glvs-value-title">Top Value Games Like Vampire Survivors</p>
  </div>
  <div class="glvs-value-container">
    <canvas id="glvsChartValue"></canvas>
  </div>
</div>

<script>
(function() {
  const valueData = [
    ["Nerd Survivor", 4.70],
    ["Brotato", 3.23],
    ["Halls of Torment", 3.02],
    ["Soulstone Survivors", 2.41],
    ["Rogue Genesia", 2.32],
    ["20 Minutes Till Dawn", 2.30],
    ["Death Must Die", 2.12],
    ["Nordic Ashes", 2.10],
    ["Infinite Horde", 2.05],
    ["God of Weapons", 2.00],
    ["SNKRX", 2.00],
    ["Boneraiser Minions", 1.93],
    ["Bounty of One", 1.80],
    ["Tower of Babel", 1.74],
    ["Yet Another Zombie Survivors", 1.51],
  ].sort((a, b) => b[1] - a[1]);

  const colors = valueData.map((d, i) => i === 0 ? "#b8892a" : "#1a1a24");

  new Chart(document.getElementById("glvsChartValue"), {
    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</strong></h2>



<p class="wp-block-paragraph">The genre trends toward shorter, repeatable sessions rather than marathon runs. Most games here cluster between 5 and 15 hours of median playtime, which reflects the run-based structure more than the actual total hours players put in.</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>
  .glvs-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;
  }
  .glvs-hist-header { text-align: center; margin-bottom: 1.4rem; }
  .glvs-hist-header p.glvs-hist-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.85rem, 2.5vw, 1.3rem);
    color: #b8892a;
    letter-spacing: 0.04em;
    margin: 0;
  }
  .glvs-hist-container { position: relative; width: 100%; }
</style>

<div class="glvs-hist-wrap">
  <div class="glvs-hist-header">
    <p class="glvs-hist-title">Distribution of Median Playtime</p>
  </div>
  <div class="glvs-hist-container">
    <canvas id="glvsChartHistogram"></canvas>
  </div>
</div>

<script>
(function() {
  const playtimes = [
    6.9, 2.1, 6.7, 5.8, 7.2, 12.9, 10.6, 12.2, 8.5, 8.0,
    12.1, 8.2, 4.85, 10.5, 4.4, 6.4, 13.9, 4.0, 19.3, 12.2,
    10.6, 14.1, 40.1, 6.2, 16.3, 1.0, 6.1, 1.9, 1.1, 3.8,
    51.1
  ];

  // Cap outliers at 30 for readability, bin size 5
  const capped = playtimes.map(v => Math.min(v, 30));
  const binSize = 5;
  const binLabels = ["0–5", "5–10", "10–15", "15–20", "20–25", "25–30", "30+"];
  const bins = [0, 0, 0, 0, 0, 0, 0];

  playtimes.forEach(v => {
    if (v >= 30) { bins[6]++; }
    else {
      const i = Math.min(Math.floor(v / binSize), 5);
      bins[i]++;
    }
  });

  const maxCount = Math.max(...bins);
  const colors = bins.map(v => v === maxCount ? "#b8892a" : "#1a1a24");

  new Chart(document.getElementById("glvsChartHistogram"), {
    type: "bar",
    data: {
      labels: binLabels,
      datasets: [{
        data: bins,
        backgroundColor: colors,
        borderRadius: 3,
        barPercentage: 1.0,
        categoryPercentage: 0.9,
      }]
    },
    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>About My Data Collection Process</strong></h2>



<p class="wp-block-paragraph">If you&#8217;ve read my <a href="https://rogueranker.com/games-like-brotato/">Games Like Brotato</a> article or the <a href="https://rogueranker.com/best-bullet-heaven-games/">best bullet heaven games</a> ranking, this process will look familiar.</p>



<p class="wp-block-paragraph">The short version: I searched Reddit for threads asking about the best games like Vampire Survivors, collected 15 threads, tallied every upvote across every relevant suggestion, and let the numbers decide the ranking.</p>



<p class="wp-block-paragraph">Just to clarify, I didn&#8217;t vote for anything myself; the community did.</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;games like Vampire Survivors&#8221; and collected the top results (e.g., Reddit thread). Then I went directly to Reddit and repeated the search to catch anything Google missed.</p>



<p class="wp-block-paragraph">I typically always collect the first 15 I see, so that’s where I stopped. The only time I’ve collected 20 is when I wrote the <a href="https://rogueranker.com/best-roguelike-games/">best roguelike games</a> guide.</p>



<p class="wp-block-paragraph">From there I applied the same exclusions I use in every guide:</p>



<ul class="wp-block-list">
<li>Threads asking 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 15 threads across r/ShouldIbuythisgame, r/survivorslikes, r/gamesuggestions, and r/brotato, to name a few.</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="943" height="628" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Games-Like-Vampire-Survivors-1.png" alt="A hooded figure holding a candle points to a framed poster of Vampire Survivors on a wooden sign, set against a dark, foggy castle backdrop, promotional art for a &quot;Games Like Vampire Survivors&quot; article." class="wp-image-898" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Games-Like-Vampire-Survivors-1.png 943w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Games-Like-Vampire-Survivors-1-300x200.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Games-Like-Vampire-Survivors-1-768x511.png 768w" sizes="(max-width: 943px) 100vw, 943px" /></figure>



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



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



<p class="wp-block-paragraph">If it was suggested once with strong upvote support, those upvotes were counted too.</p>



<p class="wp-block-paragraph">A few edge cases worth calling out: some games sparked debate about whether they actually fit the VS genre.&nbsp;</p>



<p class="wp-block-paragraph">I only removed a game if another community member explicitly called it out as off-topic. And of course, self-promotion comments were excluded.</p>



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



<p class="wp-block-paragraph">Ranking was based entirely on upvotes. Every mention of a game across any thread contributed to its total, including duplicate suggestions and replies in support of it.</p>



<p class="wp-block-paragraph">So if a game was suggested three times with 19, 67, and 11 upvotes respectively, it gets 97 total votes. Every mention counts; nothing gets thrown out for low individual upvote counts.</p>



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



<p class="wp-block-paragraph">A few things worth flagging before reading too much into the rankings.</p>



<h3 class="wp-block-heading"><strong>Brotato&#8217;s position</strong></h3>



<p class="wp-block-paragraph">Brotato landed in second with 278 votes, which will surprise some people. It&#8217;s not a VS clone in the traditional sense; the round-based structure and arena format are distinct enough that some threads debated whether it even belongs in this category.&nbsp;</p>



<p class="wp-block-paragraph">If you&#8217;re looking for something that plays more like VS specifically, Halls of Torment or 20 Minutes Till Dawn are closer matches mechanically.</p>



<h3 class="wp-block-heading"><strong>Holocure&#8217;s thread count</strong></h3>



<p class="wp-block-paragraph">Holocure appeared in 11 of 15 threads, tied for the most of any game on the list, but finished 5th by vote count. It consistently showed up as a recommendation but rarely attracted large clusters of upvotes. I guess the community likes it broadly, but not loudly?</p>



<h3 class="wp-block-heading"><strong>Yet Another Zombie Survivors</strong></h3>



<p class="wp-block-paragraph">A classic favorite, YAZS received 96 votes across only 3 threads, but almost all of them came concentrated in one or two comments with strong upvote support. Worth knowing when reading that ranking.</p>



<h3 class="wp-block-heading"><strong>Free-to-play outliers</strong></h3>



<p class="wp-block-paragraph">Holocure is completely free. That&#8217;s worth flagging as both a barrier-to-entry callout and a data caveat. Free games tend to get recommended more casually, which may inflate or deflate their vote counts depending on the thread.</p>



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



<p class="wp-block-paragraph">Below is some extra fun data just because I’m a business nerd.&nbsp;</p>



<p class="wp-block-paragraph">I collect this for all guides and find it really interesting when compared across all the games mentioned.&nbsp;</p>



<h3 class="wp-block-heading"><strong>Average Business Stats ([X] Best Games Like Vampire Survivors)</strong></h3>



<ul class="wp-block-list">
<li>Units Sold = 758,838</li>



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



<li>Gross Revenue = $7,591,454</li>



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



<p class="wp-block-paragraph">If anyone has suggestions for finding the missing data that VGN Insights didn&#8217;t have, please help. I&#8217;m all ears and would love to fill in the gaps.</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" />
<!-- Chart.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.4.1/chart.umd.min.js"></script>
<style>
  .glvs-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;
  }
  .glvs-rev-header { text-align: center; margin-bottom: 1.4rem; }
  .glvs-rev-header p.glvs-rev-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.85rem, 2.5vw, 1.3rem);
    color: #b8892a;
    letter-spacing: 0.04em;
    margin: 0;
  }
  .glvs-rev-container { position: relative; width: 100%; }
</style>
<div class="glvs-rev-wrap">
  <div class="glvs-rev-header">
    <p class="glvs-rev-title">Games Like Vampire Survivors — Gross Revenue</p>
  </div>
  <div class="glvs-rev-container">
    <canvas id="glvsChartRevenue"></canvas>
  </div>
</div>
<script>
(function() {
  const data = [
    ["Hades", 137900000],
    ["Enter the Gungeon", 39100000],
    ["Brotato", 11600000],
    ["Deep Rock Galactic: Survivor", 10900000],
    ["Soulstone Survivors", 6200000],
    ["Yet Another Zombie Survivors", 2800000],
    ["20 Minutes Till Dawn", 2600000],
    ["Rogue Genesia", 1400000],
    ["Kill Knight", 1200000],
    ["Nordic Ashes", 857000],
    ["Conquest Dark", 812000],
    ["Boneraiser Minions", 507000],
    ["Death Must Die", 3400000],
    ["Halls of Torment", 3600000],
    ["SNKRX", 268000],
    ["Vampire Hunters", 518000],
    ["Tower of Babel", 951000],
    ["Karate Survivor", 640000],
    ["Army of Ruin", 408000],
    ["Bounty of One", 383000],
    ["Picayune Dreams", 474000],
    ["Infinite Horde", 207000],
    ["Pesticide Not Required", 122000],
    ["Pizza Hero", 137000],
    ["An Ankou", 66409],
    ["Nerd Survivor", 9087],
    ["Runic", 16348],
    ["Ultrablade", 1796],
    ["Neon Spellstorm", 5965],
  ].sort((a, b) => b[1] - a[1]);

  const colors = data.map((d, i) => i === 0 ? "#b8892a" : "#1a1a24");

  new Chart(document.getElementById("glvsChartRevenue"), {
    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>
  .glvs-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;
  }
  .glvs-units-header { text-align: center; margin-bottom: 1.4rem; }
  .glvs-units-header p.glvs-units-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.85rem, 2.5vw, 1.3rem);
    color: #b8892a;
    letter-spacing: 0.04em;
    margin: 0;
  }
  .glvs-units-container { position: relative; width: 100%; }
</style>
<div class="glvs-units-wrap">
  <div class="glvs-units-header">
    <p class="glvs-units-title">Games Like Vampire Survivors — Units Sold</p>
  </div>
  <div class="glvs-units-container">
    <canvas id="glvsChartUnits"></canvas>
  </div>
</div>
<script>
(function() {
  const data = [
    ["Hades", 8200000],
    ["Enter the Gungeon", 4000000],
    ["Brotato", 3300000],
    ["Deep Rock Galactic: Survivor", 1400000],
    ["HoloCure", 1200000],
    ["20 Minutes Till Dawn", 859000],
    ["Soulstone Survivors", 783000],
    ["Yet Another Zombie Survivors", 387000],
    ["Halls of Torment", 934000],
    ["Nordic Ashes", 185000],
    ["Conquest Dark", 131000],
    ["Boneraiser Minions", 159000],
    ["SNKRX", 130000],
    ["Kill Knight", 118000],
    ["Death Must Die", 641000],
    ["Rogue Genesia", 249000],
    ["Karate Survivor", 194000],
    ["Army of Ruin", 80550],
    ["Bounty of One", 89280],
    ["Picayune Dreams", 127000],
    ["Infinite Horde", 47520],
    ["Vampire Hunters", 57330],
    ["Tower of Babel", 133000],
    ["Pesticide Not Required", 26550],
    ["Pizza Hero", 353000],
    ["An Ankou", 18060],
    ["Runic", 6900],
    ["Nerd Survivor", 2790],
    ["Ultrablade", 750],
    ["Neon Spellstorm", 415],
  ].sort((a, b) => b[1] - a[1]);

  const colors = data.map((d, i) => i === 0 ? "#b8892a" : "#1a1a24");

  new Chart(document.getElementById("glvsChartUnits"), {
    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>
  .glvs-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;
  }
  .glvs-scatter-header { text-align: center; margin-bottom: 1.4rem; }
  .glvs-scatter-header p.glvs-scatter-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.85rem, 2.5vw, 1.3rem);
    color: #b8892a;
    letter-spacing: 0.04em;
    margin: 0;
  }
  .glvs-scatter-container { position: relative; width: 100%; }
</style>
<div class="glvs-scatter-wrap">
  <div class="glvs-scatter-header">
    <p class="glvs-scatter-title">Reddit Votes vs Gross Revenue — Games Like Vampire Survivors</p>
  </div>
  <div class="glvs-scatter-container">
    <canvas id="glvsChartScatter"></canvas>
  </div>
</div>
<script>
(function() {
  const games = [
    { game: "Halls of Torment",              votes: 320, revenue: 3600000 },
    { game: "Brotato",                        votes: 278, revenue: 11600000 },
    { game: "Deep Rock Galactic: Survivor",   votes: 270, revenue: 10900000 },
    { game: "Death Must Die",                 votes: 138, revenue: 3400000 },
    { game: "20 Minutes Till Dawn",           votes: 133, revenue: 2600000 },
    { game: "Yet Another Zombie Survivors",   votes: 96,  revenue: 2800000 },
    { game: "Soulstone Survivors",            votes: 80,  revenue: 6200000 },
    { game: "Boneraiser Minions",             votes: 77,  revenue: 507000 },
    { game: "Rogue Genesia",                  votes: 73,  revenue: 1400000 },
    { game: "Army of Ruin",                   votes: 56,  revenue: 408000 },
    { game: "SNKRX",                          votes: 18,  revenue: 268000 },
    { game: "Conquest Dark",                  votes: 16,  revenue: 812000 },
    { game: "Kill Knight",                    votes: 15,  revenue: 1200000 },
    { game: "Nordic Ashes",                   votes: 13,  revenue: 857000 },
    { game: "Hades",                          votes: 13,  revenue: 137900000 },
    { game: "Pesticide Not Required",         votes: 11,  revenue: 122000 },
    { game: "Picayune Dreams",                votes: 10,  revenue: 474000 },
    { game: "Vampire Hunters",                votes: 8,   revenue: 518000 },
    { game: "Runic",                          votes: 8,   revenue: 16348 },
    { game: "Infinite Horde",                 votes: 8,   revenue: 207000 },
    { game: "Enter the Gungeon",              votes: 7,   revenue: 39100000 },
    { game: "Bounty of One",                  votes: 7,   revenue: 383000 },
    { game: "Karate Survivor",                votes: 7,   revenue: 640000 },
    { game: "Tower of Babel",                 votes: 5,   revenue: 951000 },
    { game: "God of Weapons",                 votes: 4,   revenue: 660000 },
    { game: "Pizza Hero",                     votes: 4,   revenue: 137000 },
  ];

  new Chart(document.getElementById("glvsChartScatter"), {
    type: "scatter",
    data: {
      datasets: [{
        data: games.map(d => ({ x: d.votes, y: d.revenue, game: d.game })),
        backgroundColor: games.map(d => d.game === "Halls of Torment" ? "#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:30px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>Top 10 Games Like Vampire Survivors Based on Real Data</strong></h2>



<p class="wp-block-paragraph">The result that caught me off guard wasn&#8217;t the winner, but more so the margin.&nbsp;</p>



<p class="wp-block-paragraph">Halls of Torment finished 42 votes ahead of Brotato and 50 ahead of Deep Rock Galactic: Survivor, making it one of the clearer top results I&#8217;ve seen across any of these data pulls.&nbsp;</p>



<p class="wp-block-paragraph">When a game like that beats everything else in a Vampire Survivors recommendation thread, that tells you something about what people actually want when they go looking for the next VS. </p>



<p class="wp-block-paragraph">Oh, and before I forget, if you haven&#8217;t already, check out our:</p>



<ul class="wp-block-list">
<li><a href="https://rogueranker.com/vampire-survivors-character-tier-list/">Vampire Survirors Character Tier Chart</a></li>



<li><a href="https://rogueranker.com/vampire-survivors-weapon-tier-list/">Vampire Survivors Weapon Tier Chart</a></li>
</ul>



<p class="wp-block-paragraph">The other interesting pattern was that Death Must Die and Holocure were separated by just 2 votes, which was the closest race on the entire list.</p>



<h3 class="wp-block-heading"><strong>1. Halls of Torment</strong></h3>



<p class="wp-block-paragraph"><!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700&family=Barlow:wght@400;500;600;700&display=swap" rel="stylesheet" />

<style>
  .hot-glance-wrap {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    background: #fff;
    border: 1px solid #e0dded;
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
    overflow: hidden;
    font-family: 'Barlow', sans-serif;
  }
  .hot-glance-header {
    background: #1a1a24;
    border-bottom: 2px solid #c0392b;
    padding: 14px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }
  .hot-glance-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.8rem, 2.5vw, 1.1rem);
    color: #e8b94f;
    margin: 0;
    letter-spacing: 0.04em;
  }
  .hot-glance-rank {
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.6rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #b8892a;
    background: rgba(184,137,42,0.12);
    border: 1px solid rgba(184,137,42,0.3);
    padding: 4px 10px;
    border-radius: 3px;
    white-space: nowrap;
    flex-shrink: 0;
  }
  .hot-glance-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-bottom: 1px solid #e0dded;
  }
  .hot-glance-stat {
    padding: 16px 18px;
    border-right: 1px solid #e0dded;
    text-align: center;
  }
  .hot-glance-stat:last-child { border-right: none; }
  .hot-glance-stat-val {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(1rem, 2.5vw, 1.4rem);
    color: #b8892a;
    display: block;
    margin-bottom: 4px;
    line-height: 1;
  }
  .hot-glance-stat-label {
    font-size: 11px;
    color: #888699;
    text-transform: uppercase;
    letter-spacing: 0.08em;
  }
  .hot-glance-rows { padding: 0; }
  .hot-glance-row {
    display: grid;
    grid-template-columns: 140px 1fr;
    border-bottom: 1px solid #e0dded;
    transition: background 0.12s;
  }
  .hot-glance-row:last-child { border-bottom: none; }
  .hot-glance-row:nth-child(even) { background: #f7f6fb; }
  .hot-glance-row:hover { background: #f0eef8; }
  .hot-glance-row-label {
    padding: 14px 16px;
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.72rem;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: #1a1a24;
    font-weight: 700;
    background: #fafafa;
    border-right: 1px solid #e0dded;
    display: flex;
    align-items: center;
  }
  .hot-glance-row-val {
    padding: 14px 16px;
    font-size: 15px;
    color: #1a1a24;
    display: flex;
    align-items: center;
    font-weight: 500;
  }
  @media (max-width: 560px) {
    .hot-glance-grid { grid-template-columns: repeat(3, 1fr); }
    .hot-glance-stat { padding: 12px 10px; }
    .hot-glance-stat-val { font-size: 1rem; }
    .hot-glance-stat-label { font-size: 9px; }
    .hot-glance-row { grid-template-columns: 100px 1fr; }
    .hot-glance-row-label { font-size: 0.5rem; padding: 10px 10px; }
    .hot-glance-row-val { font-size: 13px; padding: 10px 10px; }
    .hot-glance-header { padding: 12px 14px; }
  }
</style>

<div class="hot-glance-wrap">
  <div class="hot-glance-header">
    <h3 class="hot-glance-title">Halls of Torment</h3>
    <span class="hot-glance-rank">#1 Most Recommended</span>
  </div>
  <div class="hot-glance-grid">
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">320</span>
      <span class="hot-glance-stat-label">Reddit Votes</span>
    </div>
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">11/15</span>
      <span class="hot-glance-stat-label">Threads</span>
    </div>
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">~$5</span>
      <span class="hot-glance-stat-label">Avg Cost</span>
    </div>
  </div>
  <div class="hot-glance-rows">
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Genre</div>
      <div class="hot-glance-row-val">Bullet Heaven / Roguelite</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Style</div>
      <div class="hot-glance-row-val">Diablo 2 aesthetic meets Vampire Survivors</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Platforms</div>
      <div class="hot-glance-row-val">PC · PS5 · Xbox Series X · iOS / Android</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Game Pass</div>
      <div class="hot-glance-row-val">Yes — Xbox Game Pass</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Standout</div>
      <div class="hot-glance-row-val">Gear system layered on top of the VS formula</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Best For</div>
      <div class="hot-glance-row-val">VS fans who want darker visuals and deeper builds</div>
    </div>
  </div>
</div></p>



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



<p class="wp-block-paragraph">Halls of Torment took the top spot with 320 votes across 11 of 15 threads, the highest thread count of any game on the list, tied with Brotato and Holocure. The community was recommending it everywhere.</p>



<p class="wp-block-paragraph">The game&#8217;s pitch is straightforward: it&#8217;s Vampire Survivors, but it looks like Diablo 2. Isometric perspective, dark fantasy atmosphere, and hand-crafted gear you equip between runs. The visual identity is distinctive enough that it came up constantly, even in threads where people were explicitly looking for something different from VS.</p>



<p class="wp-block-paragraph">It&#8217;s also one of the few games here with a meaningful gear system layered on top of the standard VS formula, which gives runs a reason to keep going beyond just chasing the next unlock.</p>



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



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



<li>PlayStation 5</li>



<li>Xbox Series X|S (also on Xbox Game Pass)</li>



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



<h4 class="wp-block-heading"><strong>What Works Well</strong></h4>



<ul class="wp-block-list">
<li>The Diablo 1/2 aesthetic is genuinely distinctive in a genre full of pixel art</li>



<li>Gear system adds a layer of build customization that VS doesn&#8217;t have</li>



<li>Challenge progression gives experienced players plenty to grind toward</li>



<li>Runs feel snappy and well-paced compared to longer games in the genre</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-halls-of-torment-1024x576.webp" alt="A hero surrounded by skeleton hordes in Halls of Torment, a dark fantasy game like Vampire Survivors" class="wp-image-906" srcset="https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-halls-of-torment-1024x576.webp 1024w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-halls-of-torment-300x169.webp 300w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-halls-of-torment-768x432.webp 768w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-halls-of-torment-1536x864.webp 1536w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-halls-of-torment.webp 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h4 class="wp-block-heading"><strong>Common Criticisms</strong></h4>



<ul class="wp-block-list">
<li>Some characters feel noticeably stronger than others, which can make the roster feel uneven</li>



<li>The mobile premium version has received less ongoing support than the Steam version</li>



<li>Can feel like it runs out of steam at higher difficulty modifiers</li>



<li>RNG on gear drops occasionally produces runs that feel decided before they start</li>
</ul>



<h4 class="wp-block-heading"><strong>Quotes from the Threads</strong></h4>



<p class="wp-block-paragraph">&#8220;Halls of Torment, it&#8217;s slower like VS (in fact, much slower), but it&#8217;s got cool boss abilities and D2 aesthetics.&#8221; — u/ElitistJerk_ (r/gamingsuggestions)</p>



<p class="wp-block-paragraph">&#8220;+1 for Halls of Torment. Feels better than VS.&#8221; — u/bodohkiin (r/ShouldIbuythisgame)</p>



<p class="wp-block-paragraph">&#8220;I am a huge horde survival and roguelike guy. I just platinum&#8217;d Halls of Torment and really enjoyed it. It has 10 unlockable characters, six maps, something like 500 challenges, and is only like $10.&#8221; — u/American_Suburbs (r/survivorslikes)</p>



<h3 class="wp-block-heading"><strong>2. Brotato</strong></h3>


<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700&family=Barlow:wght@400;500;600;700&display=swap" rel="stylesheet" />

<style>
  .hot-glance-wrap {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    background: #fff;
    border: 1px solid #e0dded;
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
    overflow: hidden;
    font-family: 'Barlow', sans-serif;
  }
  .hot-glance-header {
    background: #1a1a24;
    border-bottom: 2px solid #c0392b;
    padding: 14px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }
  .hot-glance-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.8rem, 2.5vw, 1.1rem);
    color: #e8b94f;
    margin: 0;
    letter-spacing: 0.04em;
  }
  .hot-glance-rank {
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.6rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #b8892a;
    background: rgba(184,137,42,0.12);
    border: 1px solid rgba(184,137,42,0.3);
    padding: 4px 10px;
    border-radius: 3px;
    white-space: nowrap;
    flex-shrink: 0;
  }
  .hot-glance-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-bottom: 1px solid #e0dded;
  }
  .hot-glance-stat {
    padding: 16px 18px;
    border-right: 1px solid #e0dded;
    text-align: center;
  }
  .hot-glance-stat:last-child { border-right: none; }
  .hot-glance-stat-val {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(1rem, 2.5vw, 1.4rem);
    color: #b8892a;
    display: block;
    margin-bottom: 4px;
    line-height: 1;
  }
  .hot-glance-stat-label {
    font-size: 11px;
    color: #888699;
    text-transform: uppercase;
    letter-spacing: 0.08em;
  }
  .hot-glance-rows { padding: 0; }
  .hot-glance-row {
    display: grid;
    grid-template-columns: 140px 1fr;
    border-bottom: 1px solid #e0dded;
    transition: background 0.12s;
  }
  .hot-glance-row:last-child { border-bottom: none; }
  .hot-glance-row:nth-child(even) { background: #f7f6fb; }
  .hot-glance-row:hover { background: #f0eef8; }
  .hot-glance-row-label {
    padding: 14px 16px;
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.72rem;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: #1a1a24;
    font-weight: 700;
    background: #fafafa;
    border-right: 1px solid #e0dded;
    display: flex;
    align-items: center;
  }
  .hot-glance-row-val {
    padding: 14px 16px;
    font-size: 15px;
    color: #1a1a24;
    display: flex;
    align-items: center;
    font-weight: 500;
  }
  @media (max-width: 560px) {
    .hot-glance-grid { grid-template-columns: repeat(3, 1fr); }
    .hot-glance-stat { padding: 12px 10px; }
    .hot-glance-stat-val { font-size: 1rem; }
    .hot-glance-stat-label { font-size: 9px; }
    .hot-glance-row { grid-template-columns: 100px 1fr; }
    .hot-glance-row-label { font-size: 0.5rem; padding: 10px 10px; }
    .hot-glance-row-val { font-size: 13px; padding: 10px 10px; }
    .hot-glance-header { padding: 12px 14px; }
  }
</style>

<div class="hot-glance-wrap">
  <div class="hot-glance-header">
    <h3 class="hot-glance-title">Brotato</h3>
    <span class="hot-glance-rank">#2 Most Recommended</span>
  </div>
  <div class="hot-glance-grid">
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">278</span>
      <span class="hot-glance-stat-label">Reddit Votes</span>
    </div>
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">11/15</span>
      <span class="hot-glance-stat-label">Threads</span>
    </div>
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">$4.99</span>
      <span class="hot-glance-stat-label">Avg Cost</span>
    </div>
  </div>
  <div class="hot-glance-rows">
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Genre</div>
      <div class="hot-glance-row-val">Bullet Heaven / Roguelite</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Style</div>
      <div class="hot-glance-row-val">Arena waves with 6 weapons and a deep build shop</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Platforms</div>
      <div class="hot-glance-row-val">PC · Switch · PS4/5 · Xbox · iOS / Android</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Game Pass</div>
      <div class="hot-glance-row-val">No</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Standout</div>
      <div class="hot-glance-row-val">Six simultaneous weapons with enormous build variety</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Best For</div>
      <div class="hot-glance-row-val">Players who want to optimize and feel rewarded for good decisions</div>
    </div>
  </div>
</div>



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



<p class="wp-block-paragraph">Brotato came in at 278 votes across 11 threads, tied with Halls of Torment for the most threads but edged out in total votes.&nbsp;</p>



<p class="wp-block-paragraph">As I mentioned in the nuances section, Brotato is a legitimate debate; the round-based structure and arena format make it its own thing rather than a VS clone. But 278 votes from 11 threads is hard to argue with.</p>



<p class="wp-block-paragraph">If you&#8217;re coming from VS and haven&#8217;t tried Brotato yet, the main thing to know is that runs are broken into short combat waves followed by a shop where you equip weapons and items (up to six weapons at once). The build space is enormous, and the difficulty scales sharply enough that getting a Danger 5 win with every character is a genuine long-term project.</p>



<p class="wp-block-paragraph">I have 200+ hours in this one. It&#8217;s not VS, but it scratches that itch.</p>



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



<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>



<h4 class="wp-block-heading"><strong>What Works Well</strong></h4>



<ul class="wp-block-list">
<li>Six weapons simultaneously creates build combinations that feel genuinely unique</li>



<li>Short rounds make it easy to pick up and put down</li>



<li>44 characters each with distinct mechanics add enormous replay value</li>



<li>One of the best value propositions in the genre at $4.99</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-brotato-1024x576.webp" alt="Brotato gameplay showing a potato character fighting alien enemies in a top-down arena" class="wp-image-903" srcset="https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-brotato-1024x576.webp 1024w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-brotato-300x169.webp 300w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-brotato-768x432.webp 768w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-brotato-1536x864.webp 1536w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-brotato.webp 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h4 class="wp-block-heading"><strong>Common Criticisms</strong></h4>



<ul class="wp-block-list">
<li>The arena format feels very different from VS&#8217;s open-map exploration</li>



<li><a href="https://rogueranker.com/brotato-tier-list/">Brotato characters</a> require prior game knowledge to use effectively at higher difficulties</li>



<li>The art style is an acquired taste</li>



<li>Less &#8220;brain off&#8221; than VS; Brotato asks more of you in the shop</li>
</ul>



<h4 class="wp-block-heading"><strong>Quotes from the Threads</strong></h4>



<p class="wp-block-paragraph">&#8220;Brotato is the best game I&#8217;ve played in the VS genre. Short combat rounds alternate with shopping for new weapons and upgrades. 44 characters and 5 difficulty levels.&#8221; — u/tehsideburns (r/ShouldIbuythisgame)</p>



<p class="wp-block-paragraph">&#8220;Brotato. Most bullet heavens don&#8217;t deviate from Vampire Survivors&#8217; formula, but Brotato changes enough up to feel like its own unique game.&#8221; — u/erak3xfish (r/gamesuggestions)</p>



<h3 class="wp-block-heading"><strong>3. Deep Rock Galactic: Survivor</strong></h3>


<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700&family=Barlow:wght@400;500;600;700&display=swap" rel="stylesheet" />

<style>
  .hot-glance-wrap {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    background: #fff;
    border: 1px solid #e0dded;
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
    overflow: hidden;
    font-family: 'Barlow', sans-serif;
  }
  .hot-glance-header {
    background: #1a1a24;
    border-bottom: 2px solid #c0392b;
    padding: 14px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }
  .hot-glance-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.8rem, 2.5vw, 1.1rem);
    color: #e8b94f;
    margin: 0;
    letter-spacing: 0.04em;
  }
  .hot-glance-rank {
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.6rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #b8892a;
    background: rgba(184,137,42,0.12);
    border: 1px solid rgba(184,137,42,0.3);
    padding: 4px 10px;
    border-radius: 3px;
    white-space: nowrap;
    flex-shrink: 0;
  }
  .hot-glance-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-bottom: 1px solid #e0dded;
  }
  .hot-glance-stat {
    padding: 16px 18px;
    border-right: 1px solid #e0dded;
    text-align: center;
  }
  .hot-glance-stat:last-child { border-right: none; }
  .hot-glance-stat-val {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(1rem, 2.5vw, 1.4rem);
    color: #b8892a;
    display: block;
    margin-bottom: 4px;
    line-height: 1;
  }
  .hot-glance-stat-label {
    font-size: 11px;
    color: #888699;
    text-transform: uppercase;
    letter-spacing: 0.08em;
  }
  .hot-glance-rows { padding: 0; }
  .hot-glance-row {
    display: grid;
    grid-template-columns: 140px 1fr;
    border-bottom: 1px solid #e0dded;
    transition: background 0.12s;
  }
  .hot-glance-row:last-child { border-bottom: none; }
  .hot-glance-row:nth-child(even) { background: #f7f6fb; }
  .hot-glance-row:hover { background: #f0eef8; }
  .hot-glance-row-label {
    padding: 14px 16px;
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.72rem;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: #1a1a24;
    font-weight: 700;
    background: #fafafa;
    border-right: 1px solid #e0dded;
    display: flex;
    align-items: center;
  }
  .hot-glance-row-val {
    padding: 14px 16px;
    font-size: 15px;
    color: #1a1a24;
    display: flex;
    align-items: center;
    font-weight: 500;
  }
  @media (max-width: 560px) {
    .hot-glance-grid { grid-template-columns: repeat(3, 1fr); }
    .hot-glance-stat { padding: 12px 10px; }
    .hot-glance-stat-val { font-size: 1rem; }
    .hot-glance-stat-label { font-size: 9px; }
    .hot-glance-row { grid-template-columns: 100px 1fr; }
    .hot-glance-row-label { font-size: 0.5rem; padding: 10px 10px; }
    .hot-glance-row-val { font-size: 13px; padding: 10px 10px; }
    .hot-glance-header { padding: 12px 14px; }
  }
</style>

<div class="hot-glance-wrap">
  <div class="hot-glance-header">
    <h3 class="hot-glance-title">Deep Rock Galactic: Survivor</h3>
    <span class="hot-glance-rank">#3 Most Recommended</span>
  </div>
  <div class="hot-glance-grid">
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">270</span>
      <span class="hot-glance-stat-label">Reddit Votes</span>
    </div>
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">9/15</span>
      <span class="hot-glance-stat-label">Threads</span>
    </div>
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">~$15</span>
      <span class="hot-glance-stat-label">Avg Cost</span>
    </div>
  </div>
  <div class="hot-glance-rows">
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Genre</div>
      <div class="hot-glance-row-val">Bullet Heaven / Roguelite</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Style</div>
      <div class="hot-glance-row-val">VS formula with active mining and terrain control</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Platforms</div>
      <div class="hot-glance-row-val">PC · Xbox Series X · Xbox Game Pass</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Game Pass</div>
      <div class="hot-glance-row-val">Yes — Xbox Game Pass</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Standout</div>
      <div class="hot-glance-row-val">Mining mechanic adds spatial strategy the genre rarely has</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Best For</div>
      <div class="hot-glance-row-val">Players who want a more tactical, exploration-driven VS experience</div>
    </div>
  </div>
</div>



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



<p class="wp-block-paragraph">DRGS had 270 votes across 9 threads, just 8 behind Brotato.&nbsp;</p>



<p class="wp-block-paragraph">The closest race between any two consecutive games in the top 3.</p>



<p class="wp-block-paragraph">And it does something that nobody else in this genre does: you mine.&nbsp;</p>



<p class="wp-block-paragraph">Instead of a fixed arena, the map is terrain you actively dig through while holding off hordes. That spatial element (controlling where enemies funnel, creating chokepoints, managing your dig path) adds a layer of strategy that VS-style games rarely have.</p>



<p class="wp-block-paragraph">The production quality is also top-notch, IMO.</p>



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



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



<li>Xbox Game Pass, Series X|S, Xbox Cloud</li>
</ul>



<h4 class="wp-block-heading"><strong>What Works Well</strong></h4>



<ul class="wp-block-list">
<li>Mining mechanic adds genuine spatial strategy the genre doesn&#8217;t normally have</li>



<li>Biome variety makes runs feel distinct from each other</li>



<li>One of the most visually polished games in the genre</li>



<li>Deep Rock Galactic universe adds character and flavor that most VS-likes lack</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-deep-rock-galactic-survivor-1024x576.webp" alt="A dwarf blasting through waves of alien insects underground in Deep Rock Galactic Survivor" class="wp-image-905" srcset="https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-deep-rock-galactic-survivor-1024x576.webp 1024w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-deep-rock-galactic-survivor-300x169.webp 300w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-deep-rock-galactic-survivor-768x432.webp 768w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-deep-rock-galactic-survivor-1536x864.webp 1536w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-deep-rock-galactic-survivor.webp 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h4 class="wp-block-heading"><strong>Common Criticisms</strong></h4>



<ul class="wp-block-list">
<li>Slower pacing and longer runs than most VS-likes</li>



<li>Masteries system made meta progression feel grindy to some players</li>



<li>Less variety in moment-to-moment decision-making compared to games with deeper shop systems</li>
</ul>



<h4 class="wp-block-heading"><strong>Quotes from the Threads</strong></h4>



<p class="wp-block-paragraph">&#8220;Deep Rock Galactic: Survivor. Personally tied with Brotato for favorite in the genre. The guns have more oompf to them and you also get to mine mazes on each map.&#8221; — u/godspark533 (r/brotato)</p>



<p class="wp-block-paragraph">&#8220;Deep Rock feels way more satisfying than Vampire Survivors.&#8221; — u/mayanrelic (r/survivorslikes)</p>



<p class="wp-block-paragraph">&#8220;Brotato and deep rock galactic survivors are superior to every other vs game for me. Game depth and unique characters really add a ton to the games. Combined I have +600 hrs in them.&#8221; — u/NamelessNoSoul (r/gamesuggestions)</p>



<h3 class="wp-block-heading"><strong>4. Death Must Die</strong></h3>


<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700&family=Barlow:wght@400;500;600;700&display=swap" rel="stylesheet" />

<style>
  .hot-glance-wrap {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    background: #fff;
    border: 1px solid #e0dded;
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
    overflow: hidden;
    font-family: 'Barlow', sans-serif;
  }
  .hot-glance-header {
    background: #1a1a24;
    border-bottom: 2px solid #c0392b;
    padding: 14px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }
  .hot-glance-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.8rem, 2.5vw, 1.1rem);
    color: #e8b94f;
    margin: 0;
    letter-spacing: 0.04em;
  }
  .hot-glance-rank {
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.6rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #b8892a;
    background: rgba(184,137,42,0.12);
    border: 1px solid rgba(184,137,42,0.3);
    padding: 4px 10px;
    border-radius: 3px;
    white-space: nowrap;
    flex-shrink: 0;
  }
  .hot-glance-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-bottom: 1px solid #e0dded;
  }
  .hot-glance-stat {
    padding: 16px 18px;
    border-right: 1px solid #e0dded;
    text-align: center;
  }
  .hot-glance-stat:last-child { border-right: none; }
  .hot-glance-stat-val {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(1rem, 2.5vw, 1.4rem);
    color: #b8892a;
    display: block;
    margin-bottom: 4px;
    line-height: 1;
  }
  .hot-glance-stat-label {
    font-size: 11px;
    color: #888699;
    text-transform: uppercase;
    letter-spacing: 0.08em;
  }
  .hot-glance-rows { padding: 0; }
  .hot-glance-row {
    display: grid;
    grid-template-columns: 140px 1fr;
    border-bottom: 1px solid #e0dded;
    transition: background 0.12s;
  }
  .hot-glance-row:last-child { border-bottom: none; }
  .hot-glance-row:nth-child(even) { background: #f7f6fb; }
  .hot-glance-row:hover { background: #f0eef8; }
  .hot-glance-row-label {
    padding: 14px 16px;
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.72rem;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: #1a1a24;
    font-weight: 700;
    background: #fafafa;
    border-right: 1px solid #e0dded;
    display: flex;
    align-items: center;
  }
  .hot-glance-row-val {
    padding: 14px 16px;
    font-size: 15px;
    color: #1a1a24;
    display: flex;
    align-items: center;
    font-weight: 500;
  }
  @media (max-width: 560px) {
    .hot-glance-grid { grid-template-columns: repeat(3, 1fr); }
    .hot-glance-stat { padding: 12px 10px; }
    .hot-glance-stat-val { font-size: 1rem; }
    .hot-glance-stat-label { font-size: 9px; }
    .hot-glance-row { grid-template-columns: 100px 1fr; }
    .hot-glance-row-label { font-size: 0.5rem; padding: 10px 10px; }
    .hot-glance-row-val { font-size: 13px; padding: 10px 10px; }
    .hot-glance-header { padding: 12px 14px; }
  }
</style>

<div class="hot-glance-wrap">
  <div class="hot-glance-header">
    <h3 class="hot-glance-title">Death Must Die</h3>
    <span class="hot-glance-rank">#4 Most Recommended</span>
  </div>
  <div class="hot-glance-grid">
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">138</span>
      <span class="hot-glance-stat-label">Reddit Votes</span>
    </div>
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">7/15</span>
      <span class="hot-glance-stat-label">Threads</span>
    </div>
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">~$15</span>
      <span class="hot-glance-stat-label">Avg Cost</span>
    </div>
  </div>
  <div class="hot-glance-rows">
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Genre</div>
      <div class="hot-glance-row-val">Bullet Heaven / Roguelite</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Style</div>
      <div class="hot-glance-row-val">Vampire Survivors meets Hades with god blessings and gear</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Platforms</div>
      <div class="hot-glance-row-val">PC (Steam, Humble Bundle)</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Game Pass</div>
      <div class="hot-glance-row-val">No</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Standout</div>
      <div class="hot-glance-row-val">God blessing system creates meaningful build variety</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Best For</div>
      <div class="hot-glance-row-val">Players who want more interactivity and visual polish than standard VS-likes</div>
    </div>
  </div>
</div>



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



<p class="wp-block-paragraph">Death Must Die had 138 votes across 7 threads, and was 2 votes ahead of Holocure.</p>



<p class="wp-block-paragraph">Death Must Die is what happens when someone looks at Vampire Survivors and Hades and decides to combine them.&nbsp;</p>



<p class="wp-block-paragraph">You&#8217;re fighting through waves with auto-attacks, but the upgrade system involves choosing blessings from different gods, each with distinct flavors, and the gear carries a Diablo-style weight to it. The art is genuinely beautiful for an indie in this space.</p>



<p class="wp-block-paragraph">The common thread across every recommendation in the data was that it feels more interactive and more intentional than most bullet heavens, which lands differently depending on what you&#8217;re looking for.</p>



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



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



<h4 class="wp-block-heading"><strong>What Works Well</strong></h4>



<ul class="wp-block-list">
<li>God blessing system creates build variety that feels meaningfully different from standard VS upgrades</li>



<li>Visual quality is well above average for the genre</li>



<li>More interactive combat than most auto-attack games</li>



<li>Short, clean runs that don&#8217;t overstay their welcome</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-death-must-die-1024x576.webp" alt="Death Must Die combat screenshot showing a hero unleashing a spinning blade attack against undead enemies" class="wp-image-904" srcset="https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-death-must-die-1024x576.webp 1024w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-death-must-die-300x169.webp 300w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-death-must-die-768x432.webp 768w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-death-must-die-1536x864.webp 1536w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-death-must-die.webp 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h4 class="wp-block-heading"><strong>Common Criticisms</strong></h4>



<ul class="wp-block-list">
<li>PC only, which limits the audience significantly</li>



<li>Some players found the reward loop slower than comparable games</li>



<li>Still adding content; later-game variety is thinner than the early game</li>



<li>The dash mechanic adds complexity not everyone wants from a bullet heaven</li>
</ul>



<h4 class="wp-block-heading"><strong>Quotes from the Threads</strong></h4>



<p class="wp-block-paragraph">&#8220;Death must die is absolutely the best VS, it did such a great job making the loot interesting and the abilities satisfying while keeping a good level of difficulty.&#8221; — u/SykoManiax (r/ShouldIbuythisgame)</p>



<p class="wp-block-paragraph">&#8220;Death Must Die. It was a ton of fun.&#8221; — u/Tykero (r/ShouldIbuythisgame)</p>



<p class="wp-block-paragraph">&#8220;Death must die is a pretty good one, kinda like brotato mixed with Hades.&#8221; — u/Double_Reward3885 (r/brotato)</p>



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


<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700&family=Barlow:wght@400;500;600;700&display=swap" rel="stylesheet" />

<style>
  .hot-glance-wrap {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    background: #fff;
    border: 1px solid #e0dded;
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
    overflow: hidden;
    font-family: 'Barlow', sans-serif;
  }
  .hot-glance-header {
    background: #1a1a24;
    border-bottom: 2px solid #c0392b;
    padding: 14px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }
  .hot-glance-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.8rem, 2.5vw, 1.1rem);
    color: #e8b94f;
    margin: 0;
    letter-spacing: 0.04em;
  }
  .hot-glance-rank {
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.6rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #b8892a;
    background: rgba(184,137,42,0.12);
    border: 1px solid rgba(184,137,42,0.3);
    padding: 4px 10px;
    border-radius: 3px;
    white-space: nowrap;
    flex-shrink: 0;
  }
  .hot-glance-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-bottom: 1px solid #e0dded;
  }
  .hot-glance-stat {
    padding: 16px 18px;
    border-right: 1px solid #e0dded;
    text-align: center;
  }
  .hot-glance-stat:last-child { border-right: none; }
  .hot-glance-stat-val {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(1rem, 2.5vw, 1.4rem);
    color: #b8892a;
    display: block;
    margin-bottom: 4px;
    line-height: 1;
  }
  .hot-glance-stat-label {
    font-size: 11px;
    color: #888699;
    text-transform: uppercase;
    letter-spacing: 0.08em;
  }
  .hot-glance-rows { padding: 0; }
  .hot-glance-row {
    display: grid;
    grid-template-columns: 140px 1fr;
    border-bottom: 1px solid #e0dded;
    transition: background 0.12s;
  }
  .hot-glance-row:last-child { border-bottom: none; }
  .hot-glance-row:nth-child(even) { background: #f7f6fb; }
  .hot-glance-row:hover { background: #f0eef8; }
  .hot-glance-row-label {
    padding: 14px 16px;
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.72rem;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: #1a1a24;
    font-weight: 700;
    background: #fafafa;
    border-right: 1px solid #e0dded;
    display: flex;
    align-items: center;
  }
  .hot-glance-row-val {
    padding: 14px 16px;
    font-size: 15px;
    color: #1a1a24;
    display: flex;
    align-items: center;
    font-weight: 500;
  }
  @media (max-width: 560px) {
    .hot-glance-grid { grid-template-columns: repeat(3, 1fr); }
    .hot-glance-stat { padding: 12px 10px; }
    .hot-glance-stat-val { font-size: 1rem; }
    .hot-glance-stat-label { font-size: 9px; }
    .hot-glance-row { grid-template-columns: 100px 1fr; }
    .hot-glance-row-label { font-size: 0.5rem; padding: 10px 10px; }
    .hot-glance-row-val { font-size: 13px; padding: 10px 10px; }
    .hot-glance-header { padding: 12px 14px; }
  }
</style>

<div class="hot-glance-wrap">
  <div class="hot-glance-header">
    <h3 class="hot-glance-title">Holocure</h3>
    <span class="hot-glance-rank">#5 Most Recommended</span>
  </div>
  <div class="hot-glance-grid">
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">136</span>
      <span class="hot-glance-stat-label">Reddit Votes</span>
    </div>
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">11/15</span>
      <span class="hot-glance-stat-label">Threads</span>
    </div>
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">Free</span>
      <span class="hot-glance-stat-label">Avg Cost</span>
    </div>
  </div>
  <div class="hot-glance-rows">
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Genre</div>
      <div class="hot-glance-row-val">Bullet Heaven / Roguelite</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Style</div>
      <div class="hot-glance-row-val">VS-like with a massive VTuber character roster</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Platforms</div>
      <div class="hot-glance-row-val">PC (Steam · itch.io — both free)</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Game Pass</div>
      <div class="hot-glance-row-val">No</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Standout</div>
      <div class="hot-glance-row-val">Completely free with no monetization and consistent updates</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Best For</div>
      <div class="hot-glance-row-val">Players who want VS-style gameplay at zero cost</div>
    </div>
  </div>
</div>



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



<p class="wp-block-paragraph">Another great game, Holocure, had 136 votes across 11 threads, tied for the most thread appearances on the list, and just 2 votes behind Death Must Die.</p>



<p class="wp-block-paragraph">And PSA: Holocure is free. That&#8217;s the first thing anyone says about it.&nbsp;</p>



<p class="wp-block-paragraph">It&#8217;s a fan game built around the Hololive VTuber roster, which means nothing if you&#8217;re not into that world and everything if you are, but either way the underlying bullet heaven is excellent.</p>



<p class="wp-block-paragraph">The character roster is enormous, each with unique weapons and abilities, there&#8217;s a farming and fishing side system, and updates have been consistent since launch. The VTuber framing is a filter, not a flaw.</p>



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



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



<li>PC (Steam, free)</li>
</ul>



<h4 class="wp-block-heading"><strong>What Works Well</strong></h4>



<ul class="wp-block-list">
<li>Completely free with no monetization</li>



<li>Massive character roster, each feeling genuinely distinct</li>



<li>Fishing, farming, and a gacha-style system add content outside the runs</li>



<li>Active development with regular updates</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-holocure-1024x576.webp" alt="HoloCure boss fight with a VTuber character facing a giant winged enemy, a free game like Vampire Survivors" class="wp-image-907" srcset="https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-holocure-1024x576.webp 1024w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-holocure-300x169.webp 300w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-holocure-768x432.webp 768w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-holocure.webp 1280w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h4 class="wp-block-heading"><strong>Common Criticisms</strong></h4>



<ul class="wp-block-list">
<li>The VTuber theme is a genuine barrier for players who don&#8217;t connect with it</li>



<li>Visually lighter than some of the other top games here</li>



<li>The character unlock system can feel slow for new players</li>



<li>Less mechanically distinctive than the top 3</li>
</ul>



<h4 class="wp-block-heading"><strong>Quotes from the Threads</strong></h4>



<p class="wp-block-paragraph">&#8220;Holocure gets my vote even if you don&#8217;t care about vtubers.&#8221; — u/SpuhdSSB (r/gamesuggestions)</p>



<p class="wp-block-paragraph">&#8220;HoloCure is free and pretty similar to Vampire Survivors, but I find it fun because of the crazy amount of characters.&#8221; — u/GalvDev (r/roguelites)</p>



<p class="wp-block-paragraph">&#8220;Halocure: save the fans is surprisingly great for a free game, I like it as much as VS. And totally free, it looks like a game that would be packed with mtx nonsense but you couldn&#8217;t spend a dime even if you wanted to.&#8221; — u/DirteMcGirte (r/survivorslikes)</p>



<h3 class="wp-block-heading"><strong>6. 20 Minutes Till Dawn</strong></h3>


<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700&family=Barlow:wght@400;500;600;700&display=swap" rel="stylesheet" />

<style>
  .hot-glance-wrap {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    background: #fff;
    border: 1px solid #e0dded;
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
    overflow: hidden;
    font-family: 'Barlow', sans-serif;
  }
  .hot-glance-header {
    background: #1a1a24;
    border-bottom: 2px solid #c0392b;
    padding: 14px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }
  .hot-glance-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.8rem, 2.5vw, 1.1rem);
    color: #e8b94f;
    margin: 0;
    letter-spacing: 0.04em;
  }
  .hot-glance-rank {
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.6rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #b8892a;
    background: rgba(184,137,42,0.12);
    border: 1px solid rgba(184,137,42,0.3);
    padding: 4px 10px;
    border-radius: 3px;
    white-space: nowrap;
    flex-shrink: 0;
  }
  .hot-glance-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-bottom: 1px solid #e0dded;
  }
  .hot-glance-stat {
    padding: 16px 18px;
    border-right: 1px solid #e0dded;
    text-align: center;
  }
  .hot-glance-stat:last-child { border-right: none; }
  .hot-glance-stat-val {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(1rem, 2.5vw, 1.4rem);
    color: #b8892a;
    display: block;
    margin-bottom: 4px;
    line-height: 1;
  }
  .hot-glance-stat-label {
    font-size: 11px;
    color: #888699;
    text-transform: uppercase;
    letter-spacing: 0.08em;
  }
  .hot-glance-rows { padding: 0; }
  .hot-glance-row {
    display: grid;
    grid-template-columns: 140px 1fr;
    border-bottom: 1px solid #e0dded;
    transition: background 0.12s;
  }
  .hot-glance-row:last-child { border-bottom: none; }
  .hot-glance-row:nth-child(even) { background: #f7f6fb; }
  .hot-glance-row:hover { background: #f0eef8; }
  .hot-glance-row-label {
    padding: 14px 16px;
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.72rem;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: #1a1a24;
    font-weight: 700;
    background: #fafafa;
    border-right: 1px solid #e0dded;
    display: flex;
    align-items: center;
  }
  .hot-glance-row-val {
    padding: 14px 16px;
    font-size: 15px;
    color: #1a1a24;
    display: flex;
    align-items: center;
    font-weight: 500;
  }
  @media (max-width: 560px) {
    .hot-glance-grid { grid-template-columns: repeat(3, 1fr); }
    .hot-glance-stat { padding: 12px 10px; }
    .hot-glance-stat-val { font-size: 1rem; }
    .hot-glance-stat-label { font-size: 9px; }
    .hot-glance-row { grid-template-columns: 100px 1fr; }
    .hot-glance-row-label { font-size: 0.5rem; padding: 10px 10px; }
    .hot-glance-row-val { font-size: 13px; padding: 10px 10px; }
    .hot-glance-header { padding: 12px 14px; }
  }
</style>

<div class="hot-glance-wrap">
  <div class="hot-glance-header">
    <h3 class="hot-glance-title">20 Minutes Till Dawn</h3>
    <span class="hot-glance-rank">#6 Most Recommended</span>
  </div>
  <div class="hot-glance-grid">
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">133</span>
      <span class="hot-glance-stat-label">Reddit Votes</span>
    </div>
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">7/15</span>
      <span class="hot-glance-stat-label">Threads</span>
    </div>
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">~$5</span>
      <span class="hot-glance-stat-label">Avg Cost</span>
    </div>
  </div>
  <div class="hot-glance-rows">
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Genre</div>
      <div class="hot-glance-row-val">Bullet Heaven / Roguelite</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Style</div>
      <div class="hot-glance-row-val">Manual aim, short runs, dark aesthetic</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Platforms</div>
      <div class="hot-glance-row-val">PC · iOS / Android</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Game Pass</div>
      <div class="hot-glance-row-val">No</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Standout</div>
      <div class="hot-glance-row-val">Manual aiming adds a skill layer most VS-likes don't have</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Best For</div>
      <div class="hot-glance-row-val">Players who want more active, skill-based combat than pure auto-attack</div>
    </div>
  </div>
</div>



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



<p class="wp-block-paragraph">With 133 votes across 7 threads, 20 Minutes Till Dawn was separated from Holocure by 3 votes.</p>



<p class="wp-block-paragraph">The key difference between 20 Minutes Till Dawn and most games in this genre: you aim manually. You slow down while shooting, creating tension between moving away from enemies and actually killing them. It&#8217;s a small mechanical shift that makes the game feel noticeably more active than a pure auto-attacker.</p>



<p class="wp-block-paragraph">Run length is short by design (20 minutes, hence the name), which makes it one of the more accessible options here for players who can&#8217;t always block out a longer session. Synergies get wild fast once you understand the upgrade trees.</p>



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



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



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



<h4 class="wp-block-heading"><strong>What Works Well</strong></h4>



<ul class="wp-block-list">
<li>Manual aiming adds a skill layer most VS-likes don&#8217;t have</li>



<li>Upgrade synergies reward players who think ahead</li>



<li>Short run length makes it easy to fit into any session</li>



<li>Dark visual style is distinct from the pixel art crowd</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-20-minutes-till-dawn-1024x576.webp" alt="20 Minutes Till Dawn late-game screenshot with a screen-filling bullet explosion tearing through Lovecraftian enemies" class="wp-image-901" srcset="https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-20-minutes-till-dawn-1024x576.webp 1024w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-20-minutes-till-dawn-300x169.webp 300w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-20-minutes-till-dawn-768x432.webp 768w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-20-minutes-till-dawn-1536x864.webp 1536w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-20-minutes-till-dawn.webp 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h4 class="wp-block-heading"><strong>Common Criticisms</strong></h4>



<ul class="wp-block-list">
<li>Manual aiming is a dealbreaker for players who want pure auto-attack</li>



<li>Less map variety than the top games in the genre</li>



<li>Meta progression felt thin to some players after unlocking the core content</li>



<li>Can feel repetitive once you&#8217;ve found a couple of builds that work</li>
</ul>



<h4 class="wp-block-heading"><strong>Quotes from the Threads</strong></h4>



<p class="wp-block-paragraph">&#8220;20 minutes until dawn. Its not as complex as VS, but you can get some pretty cool synergies going. You also have a little more control by being able to aim, shoot, and reload manually.&#8221; — u/HeroHas (r/ShouldIbuythisgame)</p>



<p class="wp-block-paragraph">&#8220;20 Minutes Till Dawn completely replaced Vampire Survivors for me simply because of the manual aim.&#8221; — u/Trollmupp (r/roguelites)</p>



<p class="wp-block-paragraph">&#8220;Man I love 20 minutes until dawn. I&#8217;ve already unlocked everything, but the gameplay and synergies are just so satisfying.&#8221; — u/cranelotus (r/ShouldIbuythisgame)</p>



<h3 class="wp-block-heading"><strong>7. Yet Another Zombie Survivors</strong></h3>


<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700&family=Barlow:wght@400;500;600;700&display=swap" rel="stylesheet" />

<style>
  .hot-glance-wrap {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    background: #fff;
    border: 1px solid #e0dded;
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
    overflow: hidden;
    font-family: 'Barlow', sans-serif;
  }
  .hot-glance-header {
    background: #1a1a24;
    border-bottom: 2px solid #c0392b;
    padding: 14px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }
  .hot-glance-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.8rem, 2.5vw, 1.1rem);
    color: #e8b94f;
    margin: 0;
    letter-spacing: 0.04em;
  }
  .hot-glance-rank {
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.6rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #b8892a;
    background: rgba(184,137,42,0.12);
    border: 1px solid rgba(184,137,42,0.3);
    padding: 4px 10px;
    border-radius: 3px;
    white-space: nowrap;
    flex-shrink: 0;
  }
  .hot-glance-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-bottom: 1px solid #e0dded;
  }
  .hot-glance-stat {
    padding: 16px 18px;
    border-right: 1px solid #e0dded;
    text-align: center;
  }
  .hot-glance-stat:last-child { border-right: none; }
  .hot-glance-stat-val {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(1rem, 2.5vw, 1.4rem);
    color: #b8892a;
    display: block;
    margin-bottom: 4px;
    line-height: 1;
  }
  .hot-glance-stat-label {
    font-size: 11px;
    color: #888699;
    text-transform: uppercase;
    letter-spacing: 0.08em;
  }
  .hot-glance-rows { padding: 0; }
  .hot-glance-row {
    display: grid;
    grid-template-columns: 140px 1fr;
    border-bottom: 1px solid #e0dded;
    transition: background 0.12s;
  }
  .hot-glance-row:last-child { border-bottom: none; }
  .hot-glance-row:nth-child(even) { background: #f7f6fb; }
  .hot-glance-row:hover { background: #f0eef8; }
  .hot-glance-row-label {
    padding: 14px 16px;
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.72rem;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: #1a1a24;
    font-weight: 700;
    background: #fafafa;
    border-right: 1px solid #e0dded;
    display: flex;
    align-items: center;
  }
  .hot-glance-row-val {
    padding: 14px 16px;
    font-size: 15px;
    color: #1a1a24;
    display: flex;
    align-items: center;
    font-weight: 500;
  }
  @media (max-width: 560px) {
    .hot-glance-grid { grid-template-columns: repeat(3, 1fr); }
    .hot-glance-stat { padding: 12px 10px; }
    .hot-glance-stat-val { font-size: 1rem; }
    .hot-glance-stat-label { font-size: 9px; }
    .hot-glance-row { grid-template-columns: 100px 1fr; }
    .hot-glance-row-label { font-size: 0.5rem; padding: 10px 10px; }
    .hot-glance-row-val { font-size: 13px; padding: 10px 10px; }
    .hot-glance-header { padding: 12px 14px; }
  }
</style>

<div class="hot-glance-wrap">
  <div class="hot-glance-header">
    <h3 class="hot-glance-title">Yet Another Zombie Survivors</h3>
    <span class="hot-glance-rank">#7 Most Recommended</span>
  </div>
  <div class="hot-glance-grid">
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">96</span>
      <span class="hot-glance-stat-label">Reddit Votes</span>
    </div>
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">3/15</span>
      <span class="hot-glance-stat-label">Threads</span>
    </div>
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">~$10</span>
      <span class="hot-glance-stat-label">Avg Cost</span>
    </div>
  </div>
  <div class="hot-glance-rows">
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Genre</div>
      <div class="hot-glance-row-val">Bullet Heaven / Roguelite</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Style</div>
      <div class="hot-glance-row-val">Squad-based military VS-like</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Platforms</div>
      <div class="hot-glance-row-val">PC · Xbox One / Series X</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Game Pass</div>
      <div class="hot-glance-row-val">No</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Standout</div>
      <div class="hot-glance-row-val">Squad mechanics add a genuinely unique team-building layer</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Best For</div>
      <div class="hot-glance-row-val">Players who want a military aesthetic and squad synergy strategy</div>
    </div>
  </div>
</div>



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



<p class="wp-block-paragraph">Yet Another Zombie Survivors received 96 votes across 3 threads, which was the most concentrated vote count in the top 10. Almost all of it came from threads championed by a small group of players who clearly love it.</p>



<p class="wp-block-paragraph">The twist here is the squad.&nbsp;</p>



<p class="wp-block-paragraph">Instead of a single character, you&#8217;re building a team of survivors, each with their own weapons and passive abilities.&nbsp;</p>



<p class="wp-block-paragraph">The military aesthetic is a change of pace from the fantasy and sci-fi settings that dominate the genre, and the gunplay has a satisfying weight to it that pure auto-attackers sometimes miss.</p>



<p class="wp-block-paragraph">It was in early access at the time of data collection, so the content level reflects that with a strong foundation and room to grow.</p>



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



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



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



<h4 class="wp-block-heading"><strong>What Works Well</strong></h4>



<ul class="wp-block-list">
<li>Squad mechanics add a genuinely unique twist to the standard VS formula</li>



<li>Military aesthetic stands out in a genre full of fantasy and pixel art</li>



<li>Smooth combat with satisfying feedback on kills</li>



<li>Fun synergies between squad members</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-yet-another-zombie-survivors-1024x576.webp" alt="Yet Another Zombie Survivors combat with a survivor firing a laser beam through a zombie horde" class="wp-image-910" srcset="https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-yet-another-zombie-survivors-1024x576.webp 1024w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-yet-another-zombie-survivors-300x169.webp 300w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-yet-another-zombie-survivors-768x432.webp 768w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-yet-another-zombie-survivors-1536x864.webp 1536w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-yet-another-zombie-survivors.webp 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h4 class="wp-block-heading"><strong>Common Criticisms</strong></h4>



<ul class="wp-block-list">
<li>Early access content level; thinner than fully released games on this list</li>



<li>Some players found long-term replayability limited compared to top-tier entries</li>



<li>Manual aiming changes the feel for players who prefer pure auto-attack</li>
</ul>



<h4 class="wp-block-heading"><strong>Quotes from the Threads</strong></h4>



<p class="wp-block-paragraph">&#8220;Better is very subjective but my two favorites are Deep Rock Galactic Survivors and Yet Another Zombie Survivors.&#8221; — u/No_Dig_7017 (r/survivorslikes)</p>



<p class="wp-block-paragraph">&#8220;YA zombie survivors is on Xbox also. I like it.&#8221; — u/Majestic_Salary9987 (r/survivorslikes)</p>



<p class="wp-block-paragraph">&#8220;Yet another zombie survivor was a fun game to 100%.&#8221; — u/wookie2ause (r/gamesuggestions)</p>



<h3 class="wp-block-heading"><strong>8. Soulstone Survivors</strong></h3>


<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700&family=Barlow:wght@400;500;600;700&display=swap" rel="stylesheet" />

<style>
  .hot-glance-wrap {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    background: #fff;
    border: 1px solid #e0dded;
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
    overflow: hidden;
    font-family: 'Barlow', sans-serif;
  }
  .hot-glance-header {
    background: #1a1a24;
    border-bottom: 2px solid #c0392b;
    padding: 14px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }
  .hot-glance-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.8rem, 2.5vw, 1.1rem);
    color: #e8b94f;
    margin: 0;
    letter-spacing: 0.04em;
  }
  .hot-glance-rank {
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.6rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #b8892a;
    background: rgba(184,137,42,0.12);
    border: 1px solid rgba(184,137,42,0.3);
    padding: 4px 10px;
    border-radius: 3px;
    white-space: nowrap;
    flex-shrink: 0;
  }
  .hot-glance-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-bottom: 1px solid #e0dded;
  }
  .hot-glance-stat {
    padding: 16px 18px;
    border-right: 1px solid #e0dded;
    text-align: center;
  }
  .hot-glance-stat:last-child { border-right: none; }
  .hot-glance-stat-val {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(1rem, 2.5vw, 1.4rem);
    color: #b8892a;
    display: block;
    margin-bottom: 4px;
    line-height: 1;
  }
  .hot-glance-stat-label {
    font-size: 11px;
    color: #888699;
    text-transform: uppercase;
    letter-spacing: 0.08em;
  }
  .hot-glance-rows { padding: 0; }
  .hot-glance-row {
    display: grid;
    grid-template-columns: 140px 1fr;
    border-bottom: 1px solid #e0dded;
    transition: background 0.12s;
  }
  .hot-glance-row:last-child { border-bottom: none; }
  .hot-glance-row:nth-child(even) { background: #f7f6fb; }
  .hot-glance-row:hover { background: #f0eef8; }
  .hot-glance-row-label {
    padding: 14px 16px;
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.72rem;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: #1a1a24;
    font-weight: 700;
    background: #fafafa;
    border-right: 1px solid #e0dded;
    display: flex;
    align-items: center;
  }
  .hot-glance-row-val {
    padding: 14px 16px;
    font-size: 15px;
    color: #1a1a24;
    display: flex;
    align-items: center;
    font-weight: 500;
  }
  @media (max-width: 560px) {
    .hot-glance-grid { grid-template-columns: repeat(3, 1fr); }
    .hot-glance-stat { padding: 12px 10px; }
    .hot-glance-stat-val { font-size: 1rem; }
    .hot-glance-stat-label { font-size: 9px; }
    .hot-glance-row { grid-template-columns: 100px 1fr; }
    .hot-glance-row-label { font-size: 0.5rem; padding: 10px 10px; }
    .hot-glance-row-val { font-size: 13px; padding: 10px 10px; }
    .hot-glance-header { padding: 12px 14px; }
  }
</style>

<div class="hot-glance-wrap">
  <div class="hot-glance-header">
    <h3 class="hot-glance-title">Soulstone Survivors</h3>
    <span class="hot-glance-rank">#8 Most Recommended</span>
  </div>
  <div class="hot-glance-grid">
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">80</span>
      <span class="hot-glance-stat-label">Reddit Votes</span>
    </div>
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">9/15</span>
      <span class="hot-glance-stat-label">Threads</span>
    </div>
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">~$15</span>
      <span class="hot-glance-stat-label">Avg Cost</span>
    </div>
  </div>
  <div class="hot-glance-rows">
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Genre</div>
      <div class="hot-glance-row-val">Bullet Heaven / Roguelite</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Style</div>
      <div class="hot-glance-row-val">Deep build system with 14 classes, tags, and rune slots</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Platforms</div>
      <div class="hot-glance-row-val">PC · PS5 · Xbox Series X</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Game Pass</div>
      <div class="hot-glance-row-val">No</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Standout</div>
      <div class="hot-glance-row-val">Deepest build system in the genre — tag synergies and 100+ skills</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Best For</div>
      <div class="hot-glance-row-val">Players who love theorycrafting and want maximum build complexity</div>
    </div>
  </div>
</div>



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



<p class="wp-block-paragraph">Soulstone Survivors had 80 votes across 9 threads.&nbsp;</p>



<p class="wp-block-paragraph">The thread count is high relative to the vote total; Soulstone showed up everywhere, just rarely as the top recommendation in any given thread.</p>



<p class="wp-block-paragraph">This is the most mechanically complex game in the top 10: Fourteen classes, over a hundred skills, a tag system that determines what combinations work together, rune slots, talent trees.&nbsp;</p>



<p class="wp-block-paragraph">It&#8217;s the game for people who want to spend as much time theorycrafting between runs as playing them. The flipside: it&#8217;s overwhelming if you just want to pick something up and zone out.</p>



<p class="wp-block-paragraph">One thing worth noting: the art uses pre-made asset packs rather than custom models, which some players find off-putting. The game underneath those assets is excellent; whether the presentation bothers you is a personal call.</p>



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



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



<li>PlayStation 5</li>



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



<h4 class="wp-block-heading"><strong>What Works Well</strong></h4>



<ul class="wp-block-list">
<li>Build depth is unmatched in the genre; the tag system creates real synergy discovery</li>



<li>14 classes each play distinctly differently</li>



<li>Power scaling hits a satisfying peak that makes late-game runs feel earned</li>



<li>Co-op support for players who want to share the chaos</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-soulstone-survivors-1024x576.webp" alt="soulstone-survivors.webpSoulstone Survivors boss fight with two massive void lords and explosive spell effects" class="wp-image-909" srcset="https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-soulstone-survivors-1024x576.webp 1024w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-soulstone-survivors-300x169.webp 300w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-soulstone-survivors-768x432.webp 768w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-soulstone-survivors-1536x864.webp 1536w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-soulstone-survivors.webp 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h4 class="wp-block-heading"><strong>Common Criticisms</strong></h4>



<ul class="wp-block-list">
<li>Overwhelming at the start; too many systems introduced too quickly</li>



<li>Pre-made asset packs are a visual turnoff for some players</li>



<li>Late game can tip into screen-filling chaos that obscures enemy attacks</li>



<li>Runs can feel long relative to the tighter pacing of VS</li>
</ul>



<h4 class="wp-block-heading"><strong>Quotes from the Threads</strong></h4>



<p class="wp-block-paragraph">&#8220;Soulstone Survivors is another &#8216;bullet heaven&#8217; game that someone recommended, I tried out the demo, and then immediately purchased. Satisfying gameplay and synergies similar to Brotato, but feels more like Vampire Survivors as things get hectic.&#8221; — u/yParticle (r/brotato)</p>



<p class="wp-block-paragraph">&#8220;I&#8217;ve put about 50 hours into Soulstone Survivors. Great game and my go-to VS-like.&#8221; — u/PuffAndDuff (r/ShouldIbuythisgame)</p>



<p class="wp-block-paragraph">&#8220;Soulstone Survivors is way too good and it kinda damaged me because all other bh games I&#8217;ve tried just don&#8217;t do it for me like SS.&#8221; — u/Isaiah8200 (r/survivorslikes)</p>



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


<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700&family=Barlow:wght@400;500;600;700&display=swap" rel="stylesheet" />

<style>
  .hot-glance-wrap {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    background: #fff;
    border: 1px solid #e0dded;
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
    overflow: hidden;
    font-family: 'Barlow', sans-serif;
  }
  .hot-glance-header {
    background: #1a1a24;
    border-bottom: 2px solid #c0392b;
    padding: 14px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }
  .hot-glance-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.8rem, 2.5vw, 1.1rem);
    color: #e8b94f;
    margin: 0;
    letter-spacing: 0.04em;
  }
  .hot-glance-rank {
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.6rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #b8892a;
    background: rgba(184,137,42,0.12);
    border: 1px solid rgba(184,137,42,0.3);
    padding: 4px 10px;
    border-radius: 3px;
    white-space: nowrap;
    flex-shrink: 0;
  }
  .hot-glance-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-bottom: 1px solid #e0dded;
  }
  .hot-glance-stat {
    padding: 16px 18px;
    border-right: 1px solid #e0dded;
    text-align: center;
  }
  .hot-glance-stat:last-child { border-right: none; }
  .hot-glance-stat-val {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(1rem, 2.5vw, 1.4rem);
    color: #b8892a;
    display: block;
    margin-bottom: 4px;
    line-height: 1;
  }
  .hot-glance-stat-label {
    font-size: 11px;
    color: #888699;
    text-transform: uppercase;
    letter-spacing: 0.08em;
  }
  .hot-glance-rows { padding: 0; }
  .hot-glance-row {
    display: grid;
    grid-template-columns: 140px 1fr;
    border-bottom: 1px solid #e0dded;
    transition: background 0.12s;
  }
  .hot-glance-row:last-child { border-bottom: none; }
  .hot-glance-row:nth-child(even) { background: #f7f6fb; }
  .hot-glance-row:hover { background: #f0eef8; }
  .hot-glance-row-label {
    padding: 14px 16px;
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.72rem;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: #1a1a24;
    font-weight: 700;
    background: #fafafa;
    border-right: 1px solid #e0dded;
    display: flex;
    align-items: center;
  }
  .hot-glance-row-val {
    padding: 14px 16px;
    font-size: 15px;
    color: #1a1a24;
    display: flex;
    align-items: center;
    font-weight: 500;
  }
  @media (max-width: 560px) {
    .hot-glance-grid { grid-template-columns: repeat(3, 1fr); }
    .hot-glance-stat { padding: 12px 10px; }
    .hot-glance-stat-val { font-size: 1rem; }
    .hot-glance-stat-label { font-size: 9px; }
    .hot-glance-row { grid-template-columns: 100px 1fr; }
    .hot-glance-row-label { font-size: 0.5rem; padding: 10px 10px; }
    .hot-glance-row-val { font-size: 13px; padding: 10px 10px; }
    .hot-glance-header { padding: 12px 14px; }
  }
</style>

<div class="hot-glance-wrap">
  <div class="hot-glance-header">
    <h3 class="hot-glance-title">Boneraiser Minions</h3>
    <span class="hot-glance-rank">#9 Most Recommended</span>
  </div>
  <div class="hot-glance-grid">
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">77</span>
      <span class="hot-glance-stat-label">Reddit Votes</span>
    </div>
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">5/15</span>
      <span class="hot-glance-stat-label">Threads</span>
    </div>
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">~$5</span>
      <span class="hot-glance-stat-label">Avg Cost</span>
    </div>
  </div>
  <div class="hot-glance-rows">
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Genre</div>
      <div class="hot-glance-row-val">Bullet Heaven / Roguelite</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Style</div>
      <div class="hot-glance-row-val">Summoner VS-like — raise minions instead of attacking</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Platforms</div>
      <div class="hot-glance-row-val">PC (Steam)</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Game Pass</div>
      <div class="hot-glance-row-val">No</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Standout</div>
      <div class="hot-glance-row-val">You don't attack — build a minion army from fallen enemies</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Best For</div>
      <div class="hot-glance-row-val">Players who want a summoner fantasy in the VS genre</div>
    </div>
  </div>
</div>



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



<p class="wp-block-paragraph">Boneraiser Minions had 77 votes across 5 threads, 3 behind Soulstone Survivors.</p>



<p class="wp-block-paragraph">Boneraiser Minions has the most distinct gimmick in the top 10: you don&#8217;t attack. Instead, you raise an army of minions from the bones of fallen enemies and let them do the fighting while you focus on staying alive and building your horde. It&#8217;s the same movement-and-survive loop, but the feeling of playing it is completely different from anything else on this list.</p>



<p class="wp-block-paragraph">The humor is deliberately crude and the pixel art leans into it, which means it&#8217;s either charming or insufferable depending on your tolerance. For players who vibe with the summoner fantasy, there&#8217;s nothing else quite like it in the genre.</p>



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



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



<h4 class="wp-block-heading"><strong>What Works Well</strong></h4>



<ul class="wp-block-list">
<li>Minion system creates a fundamentally different feel from standard bullet heavens</li>



<li>Plenty of content depth once you start unlocking more minion types and classes</li>



<li>Price is low relative to content</li>



<li>The Brainiac class absorbs minion powers for a more traditional VS-style experience if the summoner loop isn&#8217;t for you</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-boneraiser-minions-1024x576.webp" alt="Boneraiser Minions gothic pixel art combat showing a necromancer and minions fighting a pumpkin boss" class="wp-image-902" srcset="https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-boneraiser-minions-1024x576.webp 1024w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-boneraiser-minions-300x169.webp 300w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-boneraiser-minions-768x432.webp 768w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-boneraiser-minions-1536x864.webp 1536w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-boneraiser-minions.webp 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h4 class="wp-block-heading"><strong>Common Criticisms</strong></h4>



<ul class="wp-block-list">
<li>PC only</li>



<li>The crude humor and visual style is divisive</li>



<li>Can feel like it maxes out relatively quickly compared to the top games here</li>



<li>Save file issues have been reported historically</li>
</ul>



<h4 class="wp-block-heading"><strong>Quotes from the Threads</strong></h4>



<p class="wp-block-paragraph">&#8220;I love Boneraiser Minions lately.&#8221; — u/UnseenHS (r/survivorslikes)</p>



<p class="wp-block-paragraph">&#8220;Boneraiser Minions. You do very little attacking yourself, and instead spawn minions instead of getting new powers. You&#8217;re entirely dependent on your minions for survival.&#8221; — u/Jimlad116 (r/roguelites)</p>



<p class="wp-block-paragraph">&#8220;Boneraiser Minions (the humor isn&#8217;t really my cup of tea, but it&#8217;s a great summoner-based VS-like).&#8221; — u/skyboy26 (r/ShouldIbuythisgame)</p>



<h3 class="wp-block-heading"><strong>10. Rogue Genesia</strong></h3>


<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700&family=Barlow:wght@400;500;600;700&display=swap" rel="stylesheet" />

<style>
  .hot-glance-wrap {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    background: #fff;
    border: 1px solid #e0dded;
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
    overflow: hidden;
    font-family: 'Barlow', sans-serif;
  }
  .hot-glance-header {
    background: #1a1a24;
    border-bottom: 2px solid #c0392b;
    padding: 14px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }
  .hot-glance-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.8rem, 2.5vw, 1.1rem);
    color: #e8b94f;
    margin: 0;
    letter-spacing: 0.04em;
  }
  .hot-glance-rank {
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.6rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #b8892a;
    background: rgba(184,137,42,0.12);
    border: 1px solid rgba(184,137,42,0.3);
    padding: 4px 10px;
    border-radius: 3px;
    white-space: nowrap;
    flex-shrink: 0;
  }
  .hot-glance-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-bottom: 1px solid #e0dded;
  }
  .hot-glance-stat {
    padding: 16px 18px;
    border-right: 1px solid #e0dded;
    text-align: center;
  }
  .hot-glance-stat:last-child { border-right: none; }
  .hot-glance-stat-val {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(1rem, 2.5vw, 1.4rem);
    color: #b8892a;
    display: block;
    margin-bottom: 4px;
    line-height: 1;
  }
  .hot-glance-stat-label {
    font-size: 11px;
    color: #888699;
    text-transform: uppercase;
    letter-spacing: 0.08em;
  }
  .hot-glance-rows { padding: 0; }
  .hot-glance-row {
    display: grid;
    grid-template-columns: 140px 1fr;
    border-bottom: 1px solid #e0dded;
    transition: background 0.12s;
  }
  .hot-glance-row:last-child { border-bottom: none; }
  .hot-glance-row:nth-child(even) { background: #f7f6fb; }
  .hot-glance-row:hover { background: #f0eef8; }
  .hot-glance-row-label {
    padding: 14px 16px;
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.72rem;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: #1a1a24;
    font-weight: 700;
    background: #fafafa;
    border-right: 1px solid #e0dded;
    display: flex;
    align-items: center;
  }
  .hot-glance-row-val {
    padding: 14px 16px;
    font-size: 15px;
    color: #1a1a24;
    display: flex;
    align-items: center;
    font-weight: 500;
  }
  @media (max-width: 560px) {
    .hot-glance-grid { grid-template-columns: repeat(3, 1fr); }
    .hot-glance-stat { padding: 12px 10px; }
    .hot-glance-stat-val { font-size: 1rem; }
    .hot-glance-stat-label { font-size: 9px; }
    .hot-glance-row { grid-template-columns: 100px 1fr; }
    .hot-glance-row-label { font-size: 0.5rem; padding: 10px 10px; }
    .hot-glance-row-val { font-size: 13px; padding: 10px 10px; }
    .hot-glance-header { padding: 12px 14px; }
  }
</style>

<div class="hot-glance-wrap">
  <div class="hot-glance-header">
    <h3 class="hot-glance-title">Rogue Genesia</h3>
    <span class="hot-glance-rank">#10 Most Recommended</span>
  </div>
  <div class="hot-glance-grid">
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">73</span>
      <span class="hot-glance-stat-label">Reddit Votes</span>
    </div>
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">4/15</span>
      <span class="hot-glance-stat-label">Threads</span>
    </div>
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">~$10</span>
      <span class="hot-glance-stat-label">Avg Cost</span>
    </div>
  </div>
  <div class="hot-glance-rows">
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Genre</div>
      <div class="hot-glance-row-val">Bullet Heaven / Roguelite</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Style</div>
      <div class="hot-glance-row-val">VS with a world map, towns, and RPG structure</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Platforms</div>
      <div class="hot-glance-row-val">PC (Steam)</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Game Pass</div>
      <div class="hot-glance-row-val">No</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Standout</div>
      <div class="hot-glance-row-val">World map and towns give runs more journey-like structure</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Best For</div>
      <div class="hot-glance-row-val">VS fans who want more RPG exploration layered on top</div>
    </div>
  </div>
</div>



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



<p class="wp-block-paragraph">Rogue Genesia received 73 votes across 4 threads, just 4 behind Boneraiser Minions.</p>



<p class="wp-block-paragraph">Rogue Genesia is what most people describe as &#8220;VS but with more RPG.&#8221; You get a world map, towns, shops between levels, and a progression structure that gives runs more of a journey feeling than the standard VS loop does. It&#8217;s still horde survival at its core, but the layer of exploration on top changes the pacing in a way that some players specifically seek out.</p>



<p class="wp-block-paragraph">It was in early access at the time of data collection, and it&#8217;s one of the more actively developed games on this list, with the developer adding content consistently throughout that period.</p>



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



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



<h4 class="wp-block-heading"><strong>What Works Well</strong></h4>



<ul class="wp-block-list">
<li>World map and town system adds exploration that VS doesn&#8217;t have</li>



<li>RPG elements give runs more narrative structure and forward momentum</li>



<li>Active development means the game keeps getting bigger</li>



<li>Closer to the VS loop than Brotato or DRG for players who want something familiar with more structure</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-rogue-genesia-1024x576.webp" alt="Rogue Genesia boss encounter with a lone hero facing a powerful goblin shaman on an open battlefield" class="wp-image-908" srcset="https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-rogue-genesia-1024x576.webp 1024w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-rogue-genesia-300x169.webp 300w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-rogue-genesia-768x432.webp 768w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-rogue-genesia-1536x864.webp 1536w, https://rogueranker.com/wp-content/uploads/2026/03/games-like-vampire-survivors-rogue-genesia.webp 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h4 class="wp-block-heading"><strong>Common Criticisms</strong></h4>



<ul class="wp-block-list">
<li>Early access for most of its life; content gaps are real</li>



<li>Some players found the grind to feel stretched compared to more polished entries</li>



<li>Less visual polish than the top half of this list</li>



<li>Smaller community means fewer guides and resources for new players</li>
</ul>



<h4 class="wp-block-heading"><strong>Quotes from the Threads</strong></h4>



<p class="wp-block-paragraph">&#8220;Rogue Genesia, probably the best reverse bullet hell game like vampire survivor I played.&#8221; — u/loso3svk (r/ShouldIbuythisgame)</p>



<p class="wp-block-paragraph">&#8220;Rogue genesia is a strong contender.&#8221; — u/v-i-n-c-e-2 (r/survivorslikes)</p>



<p class="wp-block-paragraph">&#8220;Rogue Genesia has been my favorite lately, before that was Deep Rock Galactic: Survivor. You&#8217;ll likely love both.&#8221; — deleted user (r/survivorslikes)</p>



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


<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700&family=Barlow:wght@400;500;600;700&display=swap" rel="stylesheet" />

<style>
  .hot-glance-wrap {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    background: #fff;
    border: 1px solid #e0dded;
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
    overflow: hidden;
    font-family: 'Barlow', sans-serif;
  }
  .hot-glance-header {
    background: #1a1a24;
    border-bottom: 2px solid #c0392b;
    padding: 14px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }
  .hot-glance-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.8rem, 2.5vw, 1.1rem);
    color: #e8b94f;
    margin: 0;
    letter-spacing: 0.04em;
  }
  .hot-glance-rank {
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.6rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #b8892a;
    background: rgba(184,137,42,0.12);
    border: 1px solid rgba(184,137,42,0.3);
    padding: 4px 10px;
    border-radius: 3px;
    white-space: nowrap;
    flex-shrink: 0;
  }
  .hot-glance-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-bottom: 1px solid #e0dded;
  }
  .hot-glance-stat {
    padding: 16px 18px;
    border-right: 1px solid #e0dded;
    text-align: center;
  }
  .hot-glance-stat:last-child { border-right: none; }
  .hot-glance-stat-val {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(1rem, 2.5vw, 1.4rem);
    color: #b8892a;
    display: block;
    margin-bottom: 4px;
    line-height: 1;
  }
  .hot-glance-stat-label {
    font-size: 11px;
    color: #888699;
    text-transform: uppercase;
    letter-spacing: 0.08em;
  }
  .hot-glance-rows { padding: 0; }
  .hot-glance-row {
    display: grid;
    grid-template-columns: 140px 1fr;
    border-bottom: 1px solid #e0dded;
    transition: background 0.12s;
  }
  .hot-glance-row:last-child { border-bottom: none; }
  .hot-glance-row:nth-child(even) { background: #f7f6fb; }
  .hot-glance-row:hover { background: #f0eef8; }
  .hot-glance-row-label {
    padding: 14px 16px;
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.72rem;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: #1a1a24;
    font-weight: 700;
    background: #fafafa;
    border-right: 1px solid #e0dded;
    display: flex;
    align-items: center;
  }
  .hot-glance-row-val {
    padding: 14px 16px;
    font-size: 15px;
    color: #1a1a24;
    display: flex;
    align-items: center;
    font-weight: 500;
  }
  @media (max-width: 560px) {
    .hot-glance-grid { grid-template-columns: repeat(3, 1fr); }
    .hot-glance-stat { padding: 12px 10px; }
    .hot-glance-stat-val { font-size: 1rem; }
    .hot-glance-stat-label { font-size: 9px; }
    .hot-glance-row { grid-template-columns: 100px 1fr; }
    .hot-glance-row-label { font-size: 0.5rem; padding: 10px 10px; }
    .hot-glance-row-val { font-size: 13px; padding: 10px 10px; }
    .hot-glance-header { padding: 12px 14px; }
  }
</style>

<div class="hot-glance-wrap">
  <div class="hot-glance-header">
    <h3 class="hot-glance-title">Army of Ruin</h3>
    <span class="hot-glance-rank">Honorable Mention</span>
  </div>
  <div class="hot-glance-grid">
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">56</span>
      <span class="hot-glance-stat-label">Reddit Votes</span>
    </div>
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">4/15</span>
      <span class="hot-glance-stat-label">Threads</span>
    </div>
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">~$10</span>
      <span class="hot-glance-stat-label">Avg Cost</span>
    </div>
  </div>
  <div class="hot-glance-rows">
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Genre</div>
      <div class="hot-glance-row-val">Bullet Heaven / Roguelite</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Style</div>
      <div class="hot-glance-row-val">Polished VS-like with elemental weapon evolutions</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Platforms</div>
      <div class="hot-glance-row-val">PC · Switch · PS4/5 · Xbox</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Game Pass</div>
      <div class="hot-glance-row-val">No</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Standout</div>
      <div class="hot-glance-row-val">Elemental affinity evolution system — more flexible than most VS-likes</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Best For</div>
      <div class="hot-glance-row-val">Players who want high visual polish and creative weapon builds on any platform</div>
    </div>
  </div>
</div>



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



<p class="wp-block-paragraph">Army of Ruin finished just outside the top 10 with 56 votes across 4 threads. The gap between it and Rogue Genesia at number 10 is 17 votes.</p>



<p class="wp-block-paragraph">It&#8217;s here because the players who recommended it did so with genuine conviction, and because it offers something worth flagging: one of the more flexible weapon evolution systems in the genre.</p>



<p class="wp-block-paragraph">Most VS-likes require a specific item to evolve a weapon. Army of Ruin lets you match elemental attributes instead, which means builds can take shape in ways the game never explicitly planned for. That flexibility kept showing up as a genuine selling point in the threads.</p>



<p class="wp-block-paragraph">It&#8217;s also one of the most visually polished games at its price point. That came up more than once (and it&#8217;s accurate).</p>



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



<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>



<h4 class="wp-block-heading"><strong>What Works Well</strong></h4>



<ul class="wp-block-list">
<li>Elemental affinity system makes <a href="https://rogueranker.com/vampire-survivors-evolution/">weapon evolutions</a> more flexible than most VS-likes</li>



<li>Visual quality is notably higher than most games at this price</li>



<li>Challenge objectives push you to play differently than a standard survival run</li>



<li>Console availability across all major platforms</li>
</ul>



<h4 class="wp-block-heading"><strong>Common Criticisms</strong></h4>



<ul class="wp-block-list">
<li>Takes 30–50 hours to unlock everything, which some players found slow going</li>



<li>Earlier runs can feel sluggish before the unlock pool opens up</li>



<li>Less build variety in the late game than the deeper systems in Soulstone or Halls</li>



<li>Some players moved on before the game fully opened up</li>
</ul>



<h4 class="wp-block-heading"><strong>Quotes from the Threads</strong></h4>



<p class="wp-block-paragraph">&#8220;Army of Ruin. Much more polished than VS.&#8221; — u/mmbernie51 (r/XboxGamePass)</p>



<p class="wp-block-paragraph">&#8220;Try Army of ruin. Vampire survivors with better graphics in a fantasy theme.&#8221; — u/liljoey83 (r/roguelites)</p>



<p class="wp-block-paragraph">&#8220;Army of Ruin is the best one of these I have played and I&#8217;ve played a lot of them. It is totally underrated, check it out.&#8221; — u/AlexXLR (r/roguelites)</p>



<h3 class="wp-block-heading"><strong>Honorable Mention: Spirit Hunters: Infinite Horde</strong></h3>


<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700&family=Barlow:wght@400;500;600;700&display=swap" rel="stylesheet" />

<style>
  .hot-glance-wrap {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    background: #fff;
    border: 1px solid #e0dded;
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
    overflow: hidden;
    font-family: 'Barlow', sans-serif;
  }
  .hot-glance-header {
    background: #1a1a24;
    border-bottom: 2px solid #c0392b;
    padding: 14px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }
  .hot-glance-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.8rem, 2.5vw, 1.1rem);
    color: #e8b94f;
    margin: 0;
    letter-spacing: 0.04em;
  }
  .hot-glance-rank {
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.6rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #b8892a;
    background: rgba(184,137,42,0.12);
    border: 1px solid rgba(184,137,42,0.3);
    padding: 4px 10px;
    border-radius: 3px;
    white-space: nowrap;
    flex-shrink: 0;
  }
  .hot-glance-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-bottom: 1px solid #e0dded;
  }
  .hot-glance-stat {
    padding: 16px 18px;
    border-right: 1px solid #e0dded;
    text-align: center;
  }
  .hot-glance-stat:last-child { border-right: none; }
  .hot-glance-stat-val {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(1rem, 2.5vw, 1.4rem);
    color: #b8892a;
    display: block;
    margin-bottom: 4px;
    line-height: 1;
  }
  .hot-glance-stat-label {
    font-size: 11px;
    color: #888699;
    text-transform: uppercase;
    letter-spacing: 0.08em;
  }
  .hot-glance-rows { padding: 0; }
  .hot-glance-row {
    display: grid;
    grid-template-columns: 140px 1fr;
    border-bottom: 1px solid #e0dded;
    transition: background 0.12s;
  }
  .hot-glance-row:last-child { border-bottom: none; }
  .hot-glance-row:nth-child(even) { background: #f7f6fb; }
  .hot-glance-row:hover { background: #f0eef8; }
  .hot-glance-row-label {
    padding: 14px 16px;
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.72rem;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: #1a1a24;
    font-weight: 700;
    background: #fafafa;
    border-right: 1px solid #e0dded;
    display: flex;
    align-items: center;
  }
  .hot-glance-row-val {
    padding: 14px 16px;
    font-size: 15px;
    color: #1a1a24;
    display: flex;
    align-items: center;
    font-weight: 500;
  }
  @media (max-width: 560px) {
    .hot-glance-grid { grid-template-columns: repeat(3, 1fr); }
    .hot-glance-stat { padding: 12px 10px; }
    .hot-glance-stat-val { font-size: 1rem; }
    .hot-glance-stat-label { font-size: 9px; }
    .hot-glance-row { grid-template-columns: 100px 1fr; }
    .hot-glance-row-label { font-size: 0.5rem; padding: 10px 10px; }
    .hot-glance-row-val { font-size: 13px; padding: 10px 10px; }
    .hot-glance-header { padding: 12px 14px; }
  }
</style>

<div class="hot-glance-wrap">
  <div class="hot-glance-header">
    <h3 class="hot-glance-title">Spirit Hunters: Infinite Horde</h3>
    <span class="hot-glance-rank">Honorable Mention</span>
  </div>
  <div class="hot-glance-grid">
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">35</span>
      <span class="hot-glance-stat-label">Reddit Votes</span>
    </div>
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">3/15</span>
      <span class="hot-glance-stat-label">Threads</span>
    </div>
    <div class="hot-glance-stat">
      <span class="hot-glance-stat-val">~$15</span>
      <span class="hot-glance-stat-label">Avg Cost</span>
    </div>
  </div>
  <div class="hot-glance-rows">
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Genre</div>
      <div class="hot-glance-row-val">Bullet Heaven / Roguelite</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Style</div>
      <div class="hot-glance-row-val">Faithful VS-like with local co-op</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Platforms</div>
      <div class="hot-glance-row-val">PC · Switch · PS4/5</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Game Pass</div>
      <div class="hot-glance-row-val">No</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Standout</div>
      <div class="hot-glance-row-val">One of the few VS-likes with local co-op support</div>
    </div>
    <div class="hot-glance-row">
      <div class="hot-glance-row-label">Best For</div>
      <div class="hot-glance-row-val">Players who want to experience the VS formula with a friend on the same screen</div>
    </div>
  </div>
</div>



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



<p class="wp-block-paragraph">Spirit Hunters sits at 35 votes across 3 threads, well behind Army of Ruin, and that gap is real.&nbsp;</p>



<p class="wp-block-paragraph">It&#8217;s here for one specific reason: if you want to play something like VS with a friend on the same screen, Spirit Hunters is the most consistently recommended answer in these threads.</p>



<p class="wp-block-paragraph">Local co-op is genuinely rare in this genre. Soulstone Survivors has it, but it&#8217;s complex. Spirit Hunters keeps the VS formula intact and adds a second player slot, which makes it a hard game to leave off a list like this, regardless of vote count.</p>



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



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



<li>Nintendo Switch</li>



<li>PlayStation 4 / 5</li>
</ul>



<h4 class="wp-block-heading"><strong>What Works Well</strong></h4>



<ul class="wp-block-list">
<li>Local co-op support; one of the few VS-likes with it</li>



<li>Weapon variety is frequently praised in the threads</li>



<li>Procedurally generated levels add more exploration than a fixed arena</li>



<li>Faithful to the VS formula for players who want more of the same</li>
</ul>



<h4 class="wp-block-heading"><strong>Common Criticisms</strong></h4>



<ul class="wp-block-list">
<li>Smaller roster and weapon pool than the top-ranked games here</li>



<li>Less content depth overall; can feel exhausted faster than the competition</li>



<li>35 votes means the recommendation base is genuinely smaller than others</li>



<li>Limited community visibility means fewer guides and resources</li>
</ul>



<h4 class="wp-block-heading"><strong>Quotes from the Threads</strong></h4>



<p class="wp-block-paragraph">&#8220;Spirit Hunters: Infinite Horde is a lot of fun. There aren&#8217;t many characters, but the attacks are really good.&#8221; — u/DiscordianDreams (r/gamesuggestions)</p>



<p class="wp-block-paragraph">&#8220;Spirit Hunters and Army of Ruin, which are both on all consoles.&#8221; — u/Salvidrim (r/roguelites)</p>



<p class="wp-block-paragraph">&#8220;Brotato, army of ruin and spirit hunters infinite horde. All similar games to vampire survivors.&#8221; — u/hondakiller346 (r/ShouldIbuythisgame)</p>



<h2 class="wp-block-heading"><strong>Games Like Vampire Survivors on PS5</strong></h2>



<p class="wp-block-paragraph">Most of the top-ranked games here have PS5 versions. Vampire Survivors itself is on PS4/5 if you haven&#8217;t played the console version yet.</p>



<p class="wp-block-paragraph">Here are the strongest options from the community data:</p>



<p class="wp-block-paragraph"><!-- 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:200px">
      <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">PS5 Notes</th>
      </tr>
    </thead>
    <tbody>
      <tr class="rrl-top">
        <td class="rrl-rank">1</td>
        <td class="rrl-game">Halls of Torment</td>
        <td class="rrl-num">320</td>
        <td class="rrl-desc">Top-ranked overall</td>
      </tr>
      <tr>
        <td class="rrl-rank">2</td>
        <td class="rrl-game">Brotato</td>
        <td class="rrl-num">278</td>
        <td class="rrl-desc">Full cross-platform support</td>
      </tr>
      <tr>
        <td class="rrl-rank">3</td>
        <td class="rrl-game">Death Must Die</td>
        <td class="rrl-num">138</td>
        <td class="rrl-desc">PS5 version available</td>
      </tr>
      <tr>
        <td class="rrl-rank">4</td>
        <td class="rrl-game">Soulstone Survivors</td>
        <td class="rrl-num">80</td>
        <td class="rrl-desc">PS5 supported</td>
      </tr>
      <tr>
        <td class="rrl-rank">5</td>
        <td class="rrl-game">Army of Ruin</td>
        <td class="rrl-num">56</td>
        <td class="rrl-desc">Full PS4/5 support</td>
      </tr>
      <tr>
        <td class="rrl-rank">6</td>
        <td class="rrl-game">Spirit Hunters</td>
        <td class="rrl-num">35</td>
        <td class="rrl-desc">Available on PlayStation</td>
      </tr>
    </tbody>
  </table>
</div></p>



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



<h2 class="wp-block-heading"><strong>Games Like Vampire Survivors on Xbox</strong></h2>



<p class="wp-block-paragraph">The Xbox library for this genre is solid, and several of the top games are on Game Pass, which makes this a particularly good platform for the genre right now.</p>



<p class="wp-block-paragraph">Both Halls of Torment and Deep Rock Galactic: Survivor are on Xbox Game Pass, which makes this platform an unusually strong option for getting into the genre without spending much upfront.</p>



<p class="wp-block-paragraph"><!-- 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:220px">
      <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">Xbox Notes</th>
      </tr>
    </thead>
    <tbody>
      <tr class="rrl-top">
        <td class="rrl-rank">1</td>
        <td class="rrl-game">Halls of Torment</td>
        <td class="rrl-num">320</td>
        <td class="rrl-desc">Xbox Series X — also on Game Pass</td>
      </tr>
      <tr>
        <td class="rrl-rank">2</td>
        <td class="rrl-game">Brotato</td>
        <td class="rrl-num">278</td>
        <td class="rrl-desc">Full Xbox support</td>
      </tr>
      <tr>
        <td class="rrl-rank">3</td>
        <td class="rrl-game">Deep Rock Galactic: Survivor</td>
        <td class="rrl-num">270</td>
        <td class="rrl-desc">On Xbox Game Pass</td>
      </tr>
      <tr>
        <td class="rrl-rank">4</td>
        <td class="rrl-game">Yet Another Zombie Survivors</td>
        <td class="rrl-num">96</td>
        <td class="rrl-desc">Xbox One / Series X</td>
      </tr>
      <tr>
        <td class="rrl-rank">5</td>
        <td class="rrl-game">Soulstone Survivors</td>
        <td class="rrl-num">80</td>
        <td class="rrl-desc">Xbox Series X</td>
      </tr>
      <tr>
        <td class="rrl-rank">6</td>
        <td class="rrl-game">Army of Ruin</td>
        <td class="rrl-num">56</td>
        <td class="rrl-desc">Full Xbox support</td>
      </tr>
    </tbody>
  </table>
</div></p>



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



<h2 class="wp-block-heading"><strong>Games Like Vampire Survivors on Switch</strong></h2>



<p class="wp-block-paragraph">The Switch library is more limited for this genre than Xbox or PS5, but the essentials are covered.</p>



<p class="wp-block-paragraph">Worth flagging: Halls of Torment, Deep Rock Galactic: Survivor, and Holocure are all not on Switch at the time of writing, which removes three of the most-recommended games from the Switch option pool. Brotato is the clear starting point on this platform.</p>



<p class="wp-block-paragraph"><!-- 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:200px">
      <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">Switch Notes</th>
      </tr>
    </thead>
    <tbody>
      <tr class="rrl-top">
        <td class="rrl-rank">1</td>
        <td class="rrl-game">Brotato</td>
        <td class="rrl-num">278</td>
        <td class="rrl-desc">Full Switch support</td>
      </tr>
      <tr>
        <td class="rrl-rank">2</td>
        <td class="rrl-game">Army of Ruin</td>
        <td class="rrl-num">56</td>
        <td class="rrl-desc">Switch supported</td>
      </tr>
      <tr>
        <td class="rrl-rank">3</td>
        <td class="rrl-game">Spirit Hunters</td>
        <td class="rrl-num">35</td>
        <td class="rrl-desc">Available on Switch</td>
      </tr>
    </tbody>
  </table>
</div></p>



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



<h2 class="wp-block-heading"><strong>Android and iOS Games Like Vampire Survivors</strong></h2>



<p class="wp-block-paragraph">Several top-ranked games have mobile versions, and a few mobile-native games earned enough mentions in the excluded threads to be worth flagging here.</p>



<p class="wp-block-paragraph"><!-- 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 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-platform { 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:210px">
      <col style="width:130px">
      <col>
    </colgroup>
    <thead>
      <tr>
        <th scope="col">#</th>
        <th scope="col">Game</th>
        <th scope="col">Platform</th>
        <th scope="col">Notes</th>
      </tr>
    </thead>
    <tbody>
      <tr class="rrl-top">
        <td class="rrl-rank">1</td>
        <td class="rrl-game">Brotato</td>
        <td class="rrl-platform">iOS / Android</td>
        <td class="rrl-desc">Full mobile version</td>
      </tr>
      <tr>
        <td class="rrl-rank">2</td>
        <td class="rrl-game">20 Minutes Till Dawn</td>
        <td class="rrl-platform">iOS / Android</td>
        <td class="rrl-desc">Full mobile version</td>
      </tr>
      <tr>
        <td class="rrl-rank">3</td>
        <td class="rrl-game">Halls of Torment</td>
        <td class="rrl-platform">iOS</td>
        <td class="rrl-desc">Premium mobile version</td>
      </tr>
    </tbody>
  </table>
</div></p>



<p class="wp-block-paragraph"><strong>Mobile-native games worth knowing about (excluded from main ranking due to thread scope):</strong></p>



<ul class="wp-block-list">
<li><strong>Magic Survival</strong> is the game that inspired Vampire Survivors. Android only, free, and worth knowing about if you&#8217;re curious about where VS came from.</li>



<li><strong>Survivor.io</strong> is the most-downloaded VS-like game on mobile. Free to play with in-app purchases.</li>



<li><strong>Pickle Pete</strong> is frequently cited as the closest Brotato equivalent on mobile.</li>
</ul>



<p class="wp-block-paragraph">These games showed up in mobile-specific threads that were excluded from the main data collection, so they don&#8217;t have vote totals in this article&#8217;s ranking. If mobile is your primary platform, they&#8217;re worth looking at independently.</p>



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


<!-- 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>
  .glvs-mega-wrap {
    width: 100%;
    max-width: 800px;
    margin: 0 auto;
    font-family: 'Barlow', sans-serif;
    font-size: 13px;
  }
  .glvs-mega-note {
    font-size: 0.82rem;
    color: #888699;
    font-style: italic;
    margin: 0 0 1.2rem;
  }
  .glvs-mega-table-wrap {
    overflow-x: auto;
    border: 1px solid #e0dded;
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
  }
  .glvs-mega-table-wrap table {
    width: 100%;
    border-collapse: collapse;
    min-width: 580px;
    background: #fff;
  }
  .glvs-mega-table-wrap thead tr {
    background: #1a1a24 !important;
    border-bottom: 2px solid #c0392b;
  }
  .glvs-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;
  }
  .glvs-mega-table-wrap thead th.num { text-align: right; }
  .glvs-mega-table-wrap thead th.sortable::after {
    content: '\21C5';
    margin-left: 4px;
    opacity: 0.4;
    font-size: 0.6rem;
  }
  .glvs-mega-table-wrap thead th.sort-asc::after { content: '\2191'; opacity: 1; }
  .glvs-mega-table-wrap thead th.sort-desc::after { content: '\2193'; opacity: 1; }
  .glvs-mega-table-wrap tbody tr {
    border-bottom: 1px solid #e0dded;
    transition: background 0.12s;
  }
  .glvs-mega-table-wrap tbody tr:last-child { border-bottom: none; }
  .glvs-mega-table-wrap tbody tr:nth-child(even) { background: #f7f6fb !important; }
  .glvs-mega-table-wrap tbody tr:hover { background: #f0eef8 !important; }
  .glvs-mega-table-wrap tbody tr.glvs-top { background: #fffbf0 !important; }
  .glvs-mega-table-wrap tbody tr.glvs-top:hover { background: #fff5d6 !important; }
  .glvs-mega-table-wrap tbody tr.glvs-top .glvs-mg-game { color: #b8892a; font-weight: 700; }
  .glvs-mega-table-wrap td { padding: 0.55rem 0.75rem; vertical-align: middle; color: #1a1a24; }
  .glvs-mg-rank { font-weight: 700; color: #888699; text-align: center; width: 36px; }
  .glvs-mg-game { font-weight: 500; white-space: nowrap; }
  .glvs-mg-num  { text-align: right; font-weight: 600; white-space: nowrap; color: #333; }
  .glvs-mg-na   { text-align: right; color: #bbb; font-style: italic; font-size: 0.8rem; white-space: nowrap; }
  @media (max-width: 560px) {
    .glvs-mega-table-wrap thead th,
    .glvs-mega-table-wrap td { padding: 0.5rem 0.6rem; font-size: 0.75rem; }
    .glvs-mega-table-wrap thead th { font-size: 0.5rem; }
  }
</style>

<div class="glvs-mega-wrap">
  <p class="glvs-mega-note">Gross revenue and units sold are estimates sourced from VGN Insights and are not official figures. Games marked — had no data available. Median playtime reflects how long players actually stick with a game.</p>
  <div class="glvs-mega-table-wrap">
    <table>
      <colgroup>
        <col style="width:36px">
        <col style="width:190px">
        <col style="width:60px">
        <col style="width:110px">
        <col style="width:90px">
        <col style="width:75px">
        <col style="width:95px">
      </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="3">Gross Revenue</th>
          <th class="num sortable" data-col="4">Units Sold</th>
          <th class="num sortable" data-col="5">Avg Cost</th>
          <th class="num sortable" data-col="6">Median Playtime</th>
        </tr>
      </thead>
      <tbody>
        <tr class="glvs-top"><td class="glvs-mg-rank">1</td><td class="glvs-mg-game">Halls of Torment</td><td class="glvs-mg-num">320</td><td class="glvs-mg-num">$3,600,000</td><td class="glvs-mg-num">934,000</td><td class="glvs-mg-num">$4</td><td class="glvs-mg-num">12.1 hrs</td></tr>
        <tr><td class="glvs-mg-rank">2</td><td class="glvs-mg-game">Brotato</td><td class="glvs-mg-num">278</td><td class="glvs-mg-num">$11,600,000</td><td class="glvs-mg-num">3,300,000</td><td class="glvs-mg-num">$4</td><td class="glvs-mg-num">12.9 hrs</td></tr>
        <tr><td class="glvs-mg-rank">3</td><td class="glvs-mg-game">Deep Rock Galactic: Survivor</td><td class="glvs-mg-num">270</td><td class="glvs-mg-num">$10,900,000</td><td class="glvs-mg-num">1,400,000</td><td class="glvs-mg-num">$8</td><td class="glvs-mg-num">12.2 hrs</td></tr>
        <tr><td class="glvs-mg-rank">4</td><td class="glvs-mg-game">Death Must Die</td><td class="glvs-mg-num">138</td><td class="glvs-mg-num">$3,400,000</td><td class="glvs-mg-num">641,000</td><td class="glvs-mg-num">$5</td><td class="glvs-mg-num">10.6 hrs</td></tr>
        <tr><td class="glvs-mg-rank">5</td><td class="glvs-mg-game">HoloCure</td><td class="glvs-mg-num">136</td><td class="glvs-mg-na">—</td><td class="glvs-mg-num">1,200,000</td><td class="glvs-mg-num">$0</td><td class="glvs-mg-num">8.5 hrs</td></tr>
        <tr><td class="glvs-mg-rank">6</td><td class="glvs-mg-game">20 Minutes Till Dawn</td><td class="glvs-mg-num">133</td><td class="glvs-mg-num">$2,600,000</td><td class="glvs-mg-num">859,000</td><td class="glvs-mg-num">$3</td><td class="glvs-mg-num">6.9 hrs</td></tr>
        <tr><td class="glvs-mg-rank">7</td><td class="glvs-mg-game">Yet Another Zombie Survivors</td><td class="glvs-mg-num">96</td><td class="glvs-mg-num">$2,800,000</td><td class="glvs-mg-num">387,000</td><td class="glvs-mg-num">$7</td><td class="glvs-mg-num">10.6 hrs</td></tr>
        <tr><td class="glvs-mg-rank">8</td><td class="glvs-mg-game">Soulstone Survivors</td><td class="glvs-mg-num">80</td><td class="glvs-mg-num">$6,200,000</td><td class="glvs-mg-num">783,000</td><td class="glvs-mg-num">$8</td><td class="glvs-mg-num">19.3 hrs</td></tr>
        <tr><td class="glvs-mg-rank">9</td><td class="glvs-mg-game">Boneraiser Minions</td><td class="glvs-mg-num">77</td><td class="glvs-mg-num">$507,000</td><td class="glvs-mg-num">159,000</td><td class="glvs-mg-num">$3</td><td class="glvs-mg-num">5.8 hrs</td></tr>
        <tr><td class="glvs-mg-rank">10</td><td class="glvs-mg-game">Rogue Genesia</td><td class="glvs-mg-num">73</td><td class="glvs-mg-num">$1,400,000</td><td class="glvs-mg-num">249,000</td><td class="glvs-mg-num">$6</td><td class="glvs-mg-num">13.9 hrs</td></tr>
        <tr><td class="glvs-mg-rank">11</td><td class="glvs-mg-game">Army of Ruin</td><td class="glvs-mg-num">56</td><td class="glvs-mg-num">$408,000</td><td class="glvs-mg-num">80,550</td><td class="glvs-mg-num">$5</td><td class="glvs-mg-num">6.7 hrs</td></tr>
        <tr><td class="glvs-mg-rank">12</td><td class="glvs-mg-game">Spirit Hunters</td><td class="glvs-mg-num">35</td><td class="glvs-mg-na">—</td><td class="glvs-mg-na">—</td><td class="glvs-mg-na">—</td><td class="glvs-mg-na">—</td></tr>
        <tr><td class="glvs-mg-rank">13</td><td class="glvs-mg-game">An Ankou</td><td class="glvs-mg-num">18</td><td class="glvs-mg-num">$66,409</td><td class="glvs-mg-num">18,060</td><td class="glvs-mg-num">$4</td><td class="glvs-mg-num">2.1 hrs</td></tr>
        <tr><td class="glvs-mg-rank">13</td><td class="glvs-mg-game">SNKRX</td><td class="glvs-mg-num">18</td><td class="glvs-mg-num">$268,000</td><td class="glvs-mg-num">130,000</td><td class="glvs-mg-num">$2</td><td class="glvs-mg-num">4.0 hrs</td></tr>
        <tr><td class="glvs-mg-rank">14</td><td class="glvs-mg-game">Conquest Dark</td><td class="glvs-mg-num">16</td><td class="glvs-mg-num">$812,000</td><td class="glvs-mg-num">131,000</td><td class="glvs-mg-num">$6</td><td class="glvs-mg-na">—</td></tr>
        <tr><td class="glvs-mg-rank">15</td><td class="glvs-mg-game">Kill Knight</td><td class="glvs-mg-num">15</td><td class="glvs-mg-num">$1,200,000</td><td class="glvs-mg-num">118,000</td><td class="glvs-mg-num">$10</td><td class="glvs-mg-num">1.0 hr</td></tr>
        <tr><td class="glvs-mg-rank">15</td><td class="glvs-mg-game">Neon Spellstorm</td><td class="glvs-mg-num">15</td><td class="glvs-mg-num">$5,965</td><td class="glvs-mg-num">415</td><td class="glvs-mg-num">$14</td><td class="glvs-mg-num">3.8 hrs</td></tr>
        <tr><td class="glvs-mg-rank">15</td><td class="glvs-mg-game">Horde Hunters</td><td class="glvs-mg-num">15</td><td class="glvs-mg-na">—</td><td class="glvs-mg-na">—</td><td class="glvs-mg-na">—</td><td class="glvs-mg-na">—</td></tr>
        <tr><td class="glvs-mg-rank">16</td><td class="glvs-mg-game">Nordic Ashes</td><td class="glvs-mg-num">13</td><td class="glvs-mg-num">$857,000</td><td class="glvs-mg-num">185,000</td><td class="glvs-mg-num">$5</td><td class="glvs-mg-num">10.5 hrs</td></tr>
        <tr><td class="glvs-mg-rank">16</td><td class="glvs-mg-game">Hades</td><td class="glvs-mg-num">13</td><td class="glvs-mg-num">$137,900,000</td><td class="glvs-mg-num">8,200,000</td><td class="glvs-mg-num">$17</td><td class="glvs-mg-num">16.3 hrs</td></tr>
        <tr><td class="glvs-mg-rank">17</td><td class="glvs-mg-game">Magic Survival</td><td class="glvs-mg-num">11</td><td class="glvs-mg-na">—</td><td class="glvs-mg-na">—</td><td class="glvs-mg-na">—</td><td class="glvs-mg-na">—</td></tr>
        <tr><td class="glvs-mg-rank">17</td><td class="glvs-mg-game">Pesticide Not Required</td><td class="glvs-mg-num">11</td><td class="glvs-mg-num">$122,000</td><td class="glvs-mg-num">26,550</td><td class="glvs-mg-num">$5</td><td class="glvs-mg-num">4.4 hrs</td></tr>
        <tr><td class="glvs-mg-rank">18</td><td class="glvs-mg-game">Picayune Dreams</td><td class="glvs-mg-num">10</td><td class="glvs-mg-num">$474,000</td><td class="glvs-mg-num">127,000</td><td class="glvs-mg-num">$4</td><td class="glvs-mg-num">6.4 hrs</td></tr>
        <tr><td class="glvs-mg-rank">19</td><td class="glvs-mg-game">Infinite Horde</td><td class="glvs-mg-num">8</td><td class="glvs-mg-num">$207,000</td><td class="glvs-mg-num">47,520</td><td class="glvs-mg-num">$4</td><td class="glvs-mg-num">8.2 hrs</td></tr>
        <tr><td class="glvs-mg-rank">19</td><td class="glvs-mg-game">Vampire Hunters</td><td class="glvs-mg-num">8</td><td class="glvs-mg-num">$518,000</td><td class="glvs-mg-num">57,330</td><td class="glvs-mg-num">$9</td><td class="glvs-mg-num">6.1 hrs</td></tr>
        <tr><td class="glvs-mg-rank">19</td><td class="glvs-mg-game">Runic</td><td class="glvs-mg-num">8</td><td class="glvs-mg-num">$16,348</td><td class="glvs-mg-num">6,900</td><td class="glvs-mg-num">$2</td><td class="glvs-mg-num">1.9 hrs</td></tr>
        <tr><td class="glvs-mg-rank">19</td><td class="glvs-mg-game">Ultrablade</td><td class="glvs-mg-num">8</td><td class="glvs-mg-num">$1,796</td><td class="glvs-mg-num">750</td><td class="glvs-mg-num">$2</td><td class="glvs-mg-num">1.1 hrs</td></tr>
        <tr><td class="glvs-mg-rank">19</td><td class="glvs-mg-game">Astral Hunter</td><td class="glvs-mg-num">8</td><td class="glvs-mg-na">—</td><td class="glvs-mg-na">—</td><td class="glvs-mg-na">—</td><td class="glvs-mg-num">51.1 hrs</td></tr>
        <tr><td class="glvs-mg-rank">20</td><td class="glvs-mg-game">Enter the Gungeon</td><td class="glvs-mg-num">7</td><td class="glvs-mg-num">$39,100,000</td><td class="glvs-mg-num">4,000,000</td><td class="glvs-mg-num">$10</td><td class="glvs-mg-num">6.2 hrs</td></tr>
        <tr><td class="glvs-mg-rank">20</td><td class="glvs-mg-game">Bounty of One</td><td class="glvs-mg-num">7</td><td class="glvs-mg-num">$383,000</td><td class="glvs-mg-num">89,280</td><td class="glvs-mg-num">$4</td><td class="glvs-mg-num">7.2 hrs</td></tr>
        <tr><td class="glvs-mg-rank">20</td><td class="glvs-mg-game">Karate Survivor</td><td class="glvs-mg-num">7</td><td class="glvs-mg-num">$640,000</td><td class="glvs-mg-num">194,000</td><td class="glvs-mg-num">$3</td><td class="glvs-mg-num">4.85 hrs</td></tr>
        <tr><td class="glvs-mg-rank">20</td><td class="glvs-mg-game">Nerd Survivor</td><td class="glvs-mg-num">7</td><td class="glvs-mg-num">$9,087</td><td class="glvs-mg-num">2,790</td><td class="glvs-mg-num">$3</td><td class="glvs-mg-num">14.1 hrs</td></tr>
        <tr><td class="glvs-mg-rank">20</td><td class="glvs-mg-game">Star Survivors</td><td class="glvs-mg-num">7</td><td class="glvs-mg-na">—</td><td class="glvs-mg-na">—</td><td class="glvs-mg-na">—</td><td class="glvs-mg-na">—</td></tr>
        <tr><td class="glvs-mg-rank">20</td><td class="glvs-mg-game">Twinworld Survivors</td><td class="glvs-mg-num">7</td><td class="glvs-mg-na">—</td><td class="glvs-mg-na">—</td><td class="glvs-mg-na">—</td><td class="glvs-mg-na">—</td></tr>
        <tr><td class="glvs-mg-rank">20</td><td class="glvs-mg-game">Elewar Fused Survivors</td><td class="glvs-mg-num">7</td><td class="glvs-mg-na">—</td><td class="glvs-mg-na">—</td><td class="glvs-mg-na">—</td><td class="glvs-mg-num">2.8 hrs</td></tr>
        <tr><td class="glvs-mg-rank">21</td><td class="glvs-mg-game">Tower of Babel</td><td class="glvs-mg-num">5</td><td class="glvs-mg-num">$951,000</td><td class="glvs-mg-num">133,000</td><td class="glvs-mg-num">$7</td><td class="glvs-mg-num">12.2 hrs</td></tr>
        <tr><td class="glvs-mg-rank">22</td><td class="glvs-mg-game">God of Weapons</td><td class="glvs-mg-num">4</td><td class="glvs-mg-num">$660,000</td><td class="glvs-mg-num">152,000</td><td class="glvs-mg-num">$4</td><td class="glvs-mg-num">8.0 hrs</td></tr>
        <tr><td class="glvs-mg-rank">22</td><td class="glvs-mg-game">Pizza Hero</td><td class="glvs-mg-num">4</td><td class="glvs-mg-num">$137,000</td><td class="glvs-mg-num">353,000</td><td class="glvs-mg-num">$0</td><td class="glvs-mg-num">40.1 hrs</td></tr>
        <tr><td class="glvs-mg-rank">22</td><td class="glvs-mg-game">Hellamental</td><td class="glvs-mg-num">4</td><td class="glvs-mg-na">—</td><td class="glvs-mg-na">—</td><td class="glvs-mg-na">—</td><td class="glvs-mg-na">—</td></tr>
        <tr><td class="glvs-mg-rank">22</td><td class="glvs-mg-game">JottunSlayer</td><td class="glvs-mg-num">4</td><td class="glvs-mg-na">—</td><td class="glvs-mg-na">—</td><td class="glvs-mg-na">—</td><td class="glvs-mg-na">—</td></tr>
        <tr><td class="glvs-mg-rank">23</td><td class="glvs-mg-game">Eternal Hero</td><td class="glvs-mg-num">3</td><td class="glvs-mg-na">—</td><td class="glvs-mg-na">—</td><td class="glvs-mg-na">—</td><td class="glvs-mg-na">—</td></tr>
        <tr><td class="glvs-mg-rank">24</td><td class="glvs-mg-game">Hunt Royale</td><td class="glvs-mg-num">2</td><td class="glvs-mg-na">—</td><td class="glvs-mg-na">—</td><td class="glvs-mg-na">—</td><td class="glvs-mg-na">—</td></tr>
      </tbody>
    </table>
  </div>
</div>

<script>
(function() {
  const wrap = document.querySelector('.glvs-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 === '—' || t === '') return -Infinity;
    if (t === 'Free') return 0;
    t = t.replace(/\$|,|\s*hrs?/gi, '');
    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>



<h2 class="wp-block-heading"><strong>When Did Vampire Survivors-Like Games Become Popular?</strong></h2>



<p class="wp-block-paragraph">The short answer is 2021, but the real story starts a bit earlier.</p>



<p class="wp-block-paragraph"><a href="https://play.google.com/store/apps/details?id=lv.littleinferno.magicsurvival">Magic Survival</a> is the mobile game most people credit as the template. It had the core loop: move around, auto-attack, survive waves, level up.&nbsp;</p>



<p class="wp-block-paragraph"><a href="https://store.steampowered.com/app/1794680/Vampire_Survivors/">VS hit Steam</a> Early Access in December 2021 for $2.99 and went completely viral.&nbsp;</p>



<p class="wp-block-paragraph">Within months, it had more concurrent players than games that cost ten times as much. By the time it hit 1.0, the genre had a name, and every indie dev with a top-down survival idea was paying attention.</p>



<p class="wp-block-paragraph">The flood of games that followed, including Halls of Torment, 20 Minutes Till Dawn, Brotato, and Soulstone Survivors, all came in the wake of that explosion. The genre went from a cult hit to a legit category in about two years.</p>



<h2 class="wp-block-heading"><strong>Bullet Heaven vs. Bullet Hell</strong></h2>



<p class="wp-block-paragraph">These terms get used interchangeably, but they mean opposite things.&nbsp;</p>



<p class="wp-block-paragraph">In bullet hell, you dodge thousands of projectiles fired at you.&nbsp;</p>



<p class="wp-block-paragraph">In bullet heaven, you flip the script and become the one unleashing the damage.&nbsp;</p>



<p class="wp-block-paragraph">Every game on this list is bullet heaven.</p>



<p class="wp-block-paragraph">We have a full breakdown in the dedicated <a href="https://rogueranker.com/bullet-heaven-vs-bullet-hell/">bullet heaven vs. bullet hell</a> guide.</p>



<h2 class="wp-block-heading"><strong>Vampire Survivors vs. Brotato</strong></h2>



<p class="wp-block-paragraph">This comparison comes up in almost every thread about either game.&nbsp;</p>



<p class="wp-block-paragraph">VS is an open map where you walk around and auto-attack while enemies swarm you. Brotato is an arena where you survive short waves, then shop for upgrades between them. Both are bullet heavens, but they feel completely different.</p>



<p class="wp-block-paragraph">VS is the easier pick for pure &#8220;brain off&#8221; play.&nbsp;</p>



<p class="wp-block-paragraph"><!-- 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 {
    --bh-accent:  #c0392b;
    --bh-gold:    #b8892a;
    --bh-text:    #1a1a24;
    --bh-muted:   #888699;
    --bh-border:  #e0dded;
    --bh-stripe:  #f7f6fb;
    --bh-head-bg: #1a1a24;
  }

  .bh-vs-wrap {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    overflow-x: auto;
    border: 1px solid var(--bh-border);
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
    font-family: 'Barlow', sans-serif;
  }

  /* Header */
  .bh-vs-header {
    background: var(--bh-head-bg);
    border-bottom: 2px solid var(--bh-accent);
    padding: 0;
    display: grid;
    grid-template-columns: 160px 1fr 1fr;
  }

  .bh-vs-header-cell {
    padding: 0.9rem 1rem;
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.85rem;
    letter-spacing: 0.07em;
    color: #e8b94f;
    text-transform: uppercase;
    text-align: center;
  }

  .bh-vs-header-cell.label {
    text-align: left;
    color: #555466;
    font-size: 0.85rem;
  }

  .bh-vs-header-cell.vs {
    color: #e8b94f;
    border-left: 1px solid #2a2a3a;
  }
  .bh-vs-header-cell.brotato {
    color: #e8b94f;
    border-left: 1px solid #2a2a3a;
  }

  /* Rows */
  .bh-vs-row {
    display: grid;
    grid-template-columns: 160px 1fr 1fr;
    border-bottom: 1px solid var(--bh-border);
    transition: background 0.12s;
  }

  .bh-vs-row:last-child { border-bottom: none; }
  .bh-vs-row:nth-child(even) { background: var(--bh-stripe); }
  .bh-vs-row:hover { background: #f0eef8; }

  .bh-vs-cell {
    padding: 0.75rem 1rem;
    font-size: 14px;
    color: var(--bh-text);
    vertical-align: top;
    line-height: 1.5;
  }

  .bh-vs-cell.label {
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--bh-muted);
    display: flex;
    align-items: center;
    background: #fafafa;
    border-right: 1px solid var(--bh-border);
  }

  .bh-vs-cell.vs-col {
    border-right: 1px solid var(--bh-border);
  }

  /* Footer */
  .bh-vs-footer {
    background: #fafafa;
    border-top: 1px solid var(--bh-border);
    padding: 0.65rem 1rem;
    font-size: 0.75rem;
    color: var(--bh-muted);
    font-style: italic;
    text-align: center;
  }

  @media (max-width: 560px) {
    .bh-vs-header,
    .bh-vs-row { grid-template-columns: 100px 1fr 1fr; }
    .bh-vs-cell { padding: 0.6rem 0.65rem; font-size: 13px; }
    .bh-vs-header-cell { padding: 0.7rem 0.65rem; font-size: 0.55rem; }
    .bh-vs-cell.label { font-size: 0.5rem; }
  }
</style>

<div class="bh-vs-wrap">

  <div class="bh-vs-header">
    <div class="bh-vs-header-cell label">Category</div>
    <div class="bh-vs-header-cell vs">Vampire Survivors</div>
    <div class="bh-vs-header-cell brotato">Brotato</div>
  </div>

  <div class="bh-vs-row">
    <div class="bh-vs-cell label">Map Style</div>
    <div class="bh-vs-cell vs-col">Open map. Walk around, auto-attack, enemies swarm you.</div>
    <div class="bh-vs-cell">Arena waves. Survive each wave, then shop for upgrades between them.</div>
  </div>

  <div class="bh-vs-row">
    <div class="bh-vs-cell label">Combat</div>
    <div class="bh-vs-cell vs-col">Fully automatic. No aiming required.</div>
    <div class="bh-vs-cell">Six weapons at once. More active positioning required.</div>
  </div>

  <div class="bh-vs-row">
    <div class="bh-vs-cell label">Build Phase</div>
    <div class="bh-vs-cell vs-col">Pick upgrades mid-run as you level up.</div>
    <div class="bh-vs-cell">Dedicated shop between waves. Deeper decision-making and optimization.</div>
  </div>

  <div class="bh-vs-row">
    <div class="bh-vs-cell label">Difficulty</div>
    <div class="bh-vs-cell vs-col">Gentler curve. Easier pick-up-and-play experience.</div>
    <div class="bh-vs-cell">Higher floor. Rewards deliberate build planning from the start.</div>
  </div>

  <div class="bh-vs-row">
    <div class="bh-vs-cell label">Vibe</div>
    <div class="bh-vs-cell vs-col">Brain off. Relax and watch the chaos unfold.</div>
    <div class="bh-vs-cell">Brain on. Satisfying when a build comes together.</div>
  </div>

  <div class="bh-vs-row">
    <div class="bh-vs-cell label">Best For</div>
    <div class="bh-vs-cell vs-col">Players who want to zone out and scale into a god.</div>
    <div class="bh-vs-cell">Players who want to optimize and feel rewarded for good decisions.</div>
  </div>

  <div class="bh-vs-footer">Both are bullet heaven games — but they feel completely different to play</div>

</div></p>



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



<p class="wp-block-paragraph">Brotato asks more from you in the build phase and rewards deliberate decision-making in a way VS doesn&#8217;t push for. If you want to zone out, VS is your game. If you want to optimize, Brotato tends to be the next stop.</p>



<p class="wp-block-paragraph">Our <a href="https://rogueranker.com/brotato-review/">Brotato review</a> covers the game in more depth, and the <a href="https://rogueranker.com/games-like-brotato/">Games Like Brotato</a> article runs the same Reddit methodology on Brotato&#8217;s specific community.</p>



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



<p class="wp-block-paragraph">Halls of Torment ended up on top, and honestly, that result holds up. It&#8217;s the game that comes up most consistently when people want something that scratches the VS itch while actually being its own thing, and 320 votes across 11 threads is about as clear a community signal as you&#8217;re going to get.</p>



<p class="wp-block-paragraph">If you find something on this list that clicks, drop it in the comments. And if you think something got robbed, same place.</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/games-like-vampire-survivors/">(Top 42) Games Like Vampire Survivors &#8211; 1,962 Reddit Votes</a> appeared first on <a href="https://rogueranker.com">Rogue Ranker</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>(Top 10) Megabonk Tips and Tricks From Reddit (Plus Extras)</title>
		<link>https://rogueranker.com/megabonk-tips/</link>
		
		<dc:creator><![CDATA[Steven]]></dc:creator>
		<pubDate>Wed, 18 Mar 2026 22:40:34 +0000</pubDate>
				<category><![CDATA[Megabonk]]></category>
		<guid isPermaLink="false">https://rogueranker.com/?p=742</guid>

					<description><![CDATA[<p>I noticed Megabonk about a week after launch and spent that first weekend GLUED to it like everyone else.&#160; It felt like I was playing Vampire Survivors or Brotato for the first time. And like you, I died a lot, but that’s the point, right? …Right? 👀 If you’ve read any of my other articles, [&#8230;]</p>
<p>The post <a href="https://rogueranker.com/megabonk-tips/">(Top 10) Megabonk Tips and Tricks From Reddit (Plus Extras)</a> appeared first on <a href="https://rogueranker.com">Rogue Ranker</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">I noticed Megabonk about a week after launch and spent that first weekend GLUED to it like everyone else.&nbsp;</p>



<p class="wp-block-paragraph">It felt like I was playing Vampire Survivors or Brotato for the first time.</p>



<p class="wp-block-paragraph">And like you, I died a lot, but that’s the point, right? …Right? <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f440.png" alt="👀" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p class="wp-block-paragraph">If you’ve read any of my other articles, you’ll know I love collecting Reddit threads and using them as a basis for writing guides like this one.</p>



<p class="wp-block-paragraph">So here’s a massive community overview of Megabonk tips.</p>



<p class="wp-block-paragraph">Hope you enjoy <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>



<h2 class="wp-block-heading"><strong>TL;DR: The Top Megabonk Tips at a Glance</strong></h2>



<p class="wp-block-paragraph">Getting the most out of Megabonk comes down to a few repeatable principles: build around your character&#8217;s passive, get the <a href="https://www.reddit.com/r/MegabonkOfficial/comments/1pw8v48/the_holy_trinity/">Holy Trinity</a> (XP + Curse + Luck Tomes), and keep moving.</p>



<p class="wp-block-paragraph">Here’s a quick overview of what I collectively noticed on Reddit.</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>Megabonk TL;DR Tips</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-megabonk-tldr {
    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-megabonk-tldr * { box-sizing: border-box; }

  .mb-topbar {
    height: 3px;
    background: linear-gradient(90deg, transparent, #FFBF00 40%, #FFBF00 60%, transparent);
  }

  .mb-header {
    background: #16161f;
    border-bottom: 1px solid #32324a;
    padding: 30px 28px 26px;
    text-align: center;
  }

  .mb-eyebrow {
    font-family: 'Cinzel', serif;
    font-size: 10px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: #FFBF00;
  }

  .mb-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;
  }

  .mb-subtitle {
    font-family: 'Crimson Pro', Georgia, serif;
    font-size: 13px;
    color: #FFBF00;
    margin-top: 8px;
    letter-spacing: 0.05em;
    font-style: italic;
  }

  .mb-col-headers {
    display: grid;
    grid-template-columns: 1fr 1.6fr;
    background: #16161f;
    border-bottom: 1px solid #32324a;
  }

  .mb-col-header {
    padding: 11px 20px;
    font-family: 'Cinzel', serif;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #e8e4d8;
    line-height: 1.35;
  }

  .mb-col-header:first-child { border-right: 1px solid #32324a; }

  .mb-section {
    grid-column: 1 / -1;
    padding: 9px 20px;
    font-family: 'Cinzel', serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #FFBF00;
    background: #16161f;
    border-bottom: 1px solid #32324a;
  }

  .mb-row {
    display: grid;
    grid-template-columns: 1fr 1.6fr;
    border-bottom: 1px solid #1e1e2a;
    transition: background 0.15s;
  }

  .mb-row:last-child { border-bottom: none; }
  .mb-row:hover { background: #16161f; }

  .mb-tip {
    padding: 14px 20px;
    border-right: 1px solid #1e1e2a;
    display: flex;
    align-items: center;
  }

  .mb-tip-label {
    margin: 0;
    font-family: 'Crimson Pro', Georgia, serif;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 0.01em;
    color: #e8e4d8;
    line-height: 1.35;
  }

  .mb-why {
    padding: 14px 20px;
    display: flex;
    align-items: center;
  }

  .mb-why-text {
    font-size: 15px;
    color: #c8bfa0;
    font-style: normal;
    line-height: 1.45;
    margin: 0;
  }

  .mb-footer {
    background: #16161f;
    border-top: 1px solid #32324a;
    padding: 13px 20px;
    font-size: 13px;
    color: #80786a;
    font-style: italic;
    text-align: center;
  }

  @media (max-width: 560px) {
    .mb-header { padding: 18px 16px 16px; }
    .mb-col-headers { grid-template-columns: 1fr 1.4fr; }
    .mb-row { grid-template-columns: 1fr 1.4fr; }
    .mb-col-header { padding: 9px 12px; font-size: 11px; }
    .mb-tip { padding: 12px 12px; }
    .mb-why { padding: 12px 12px; }
    .mb-tip-label { font-size: 11px; }
    .mb-why-text { font-size: 13px; }
    .mb-section { font-size: 10px; padding: 8px 12px; }
    .mb-footer { font-size: 12px; padding: 11px 14px; }
  }
</style>
</head>
<body>

<div id="rr-megabonk-tldr">
  <div class="mb-topbar"></div>

  <div class="mb-header">
    <span class="mb-eyebrow">Rogue Ranker · Megabonk Guide</span>
    <p class="mb-title">Top Megabonk Tips at a Glance</p>
    <div class="mb-subtitle">Based on Real Reddit Threads</div>
  </div>

  <div class="mb-col-headers">
    <div class="mb-col-header">Tip</div>
    <div class="mb-col-header">Why It Matters</div>
  </div>

  <div class="mb-body">

    <div class="mb-row"><div class="mb-section">Movement &amp; Survival</div></div>

    <div class="mb-row">
      <div class="mb-tip"><h3 class="mb-tip-label">Mobility first, always</h3></div>
      <div class="mb-why"><p class="mb-why-text">Most characters can't clear Stage 1 without extra speed and jumps</p></div>
    </div>

    <div class="mb-row">
      <div class="mb-tip"><h3 class="mb-tip-label">One Shield tick absorbs a full hit</h3></div>
      <div class="mb-why"><p class="mb-why-text">5 shield cancels a 100 damage hit entirely; take one from a charge shrine early</p></div>
    </div>

    <div class="mb-row">
      <div class="mb-tip"><h3 class="mb-tip-label">Always bust pots</h3></div>
      <div class="mb-why"><p class="mb-why-text">Every pot gives XP, gold, or power-ups; never walk past one</p></div>
    </div>

    <div class="mb-row"><div class="mb-section">Economy &amp; Items</div></div>

    <div class="mb-row">
      <div class="mb-tip"><h3 class="mb-tip-label">Build Luck before opening paid chests</h3></div>
      <div class="mb-why"><p class="mb-why-text">Luck affects chest item quality; wait until at least 15–30% before spending gold</p></div>
    </div>

    <div class="mb-row">
      <div class="mb-tip"><h3 class="mb-tip-label">Don't banish Moldy Cheese or Unstable Transfusion</h3></div>
      <div class="mb-why"><p class="mb-why-text">Both are strong early DPS items the community repeatedly regrets removing</p></div>
    </div>

    <div class="mb-row"><div class="mb-section">Scaling &amp; Builds</div></div>

    <div class="mb-row">
      <div class="mb-tip"><h3 class="mb-tip-label">Balance weapon upgrades against tome upgrades</h3></div>
      <div class="mb-why"><p class="mb-why-text">Weapons = short-term power; tomes = long-term scaling. Don't neglect either</p></div>
    </div>

    <div class="mb-row">
      <div class="mb-tip"><h3 class="mb-tip-label">Projectile count upgrades are massive early</h3></div>
      <div class="mb-why"><p class="mb-why-text">The first +1 projectile effectively doubles your damage on most weapons</p></div>
    </div>

    <div class="mb-row">
      <div class="mb-tip"><h3 class="mb-tip-label">Crit past 100% converts to crit damage</h3></div>
      <div class="mb-why"><p class="mb-why-text">The excess doesn't cap; it keeps scaling your crit multiplier into the late game</p></div>
    </div>

    <div class="mb-row">
      <div class="mb-tip"><h3 class="mb-tip-label">Don't run Holy Trinity as a beginner</h3></div>
      <div class="mb-why"><p class="mb-why-text">It's a leaderboard strategy; Curse Tome will kill your run before the build comes online</p></div>
    </div>

    <div class="mb-row"><div class="mb-section">Mindset</div></div>

    <div class="mb-row">
      <div class="mb-tip"><h3 class="mb-tip-label">Restart without guilt if the first three minutes are bad</h3></div>
      <div class="mb-why"><p class="mb-why-text">The opening sets the arc for the whole run; bad starts rarely recover</p></div>
    </div>

  </div>

  <div class="mb-footer">
    Megabonk tips compiled by Rogue Ranker · rogueranker.com
  </div>

</div>

</body>
</html></p>



<h2 class="wp-block-heading"><strong>Top 10 Megabonk Tips From The Community</strong></h2>



<p class="wp-block-paragraph">I went through eight Reddit threads from r/MegabonkOfficial and r/PaymoneyWubby covering tips, beginner questions, and build advice.&nbsp;</p>



<p class="wp-block-paragraph">The patterns below are the things that kept coming up across multiple threads independently; not one person&#8217;s opinion, but the community arriving at the same conclusions over and over.</p>



<h3 class="wp-block-heading"><strong>1. Mobility first, always</strong></h3>



<p class="wp-block-paragraph">Movement speed and extra jumps come up in nearly every thread.</p>



<p class="wp-block-paragraph"><a href="https://www.reddit.com/r/MegabonkOfficial/comments/1o67j7b/tips_for_new_players/">u/zenitharchon</a> put it plainly: most characters can&#8217;t clear Stage 1 without additional speed.&nbsp;</p>



<p class="wp-block-paragraph">You need to reach shrines, pots, and interactables before the boss spawns, and you need to escape bad positions during swarms.&nbsp;</p>



<p class="wp-block-paragraph">The advice that was repeated most: get at least two extra jumps early, and take movement speed whenever nothing else is more urgent.<a href="https://www.reddit.com/r/MegabonkOfficial/comments/1opbzln/i_just_started_playing_i_need_beginner_tips_and/">&nbsp;</a></p>



<p class="wp-block-paragraph"><a href="https://www.reddit.com/r/MegabonkOfficial/comments/1opbzln/i_just_started_playing_i_need_beginner_tips_and/">u/gallandof</a> credited extra jumps as the single change that stopped him from dying every run.</p>



<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-Megabonk-Tips-Double-Jumps.png" alt="Megabonk skeleton character mid-air on a skateboard performing a jump, surrounded by flying wooden crates on a blue sky background." class="wp-image-753" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Megabonk-Tips-Double-Jumps.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Megabonk-Tips-Double-Jumps-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<h3 class="wp-block-heading"><strong>2. One Shield tick absorbs a full hit, no matter the damage</strong></h3>



<p class="wp-block-paragraph">This one surprised me when I first saw it, but multiple threads confirmed it.<a href="https://www.reddit.com/r/MegabonkOfficial/comments/1o1wni9/general_tips_and_info_that_are_less_obvious/">&nbsp;</a></p>



<p class="wp-block-paragraph"><a href="https://www.reddit.com/r/MegabonkOfficial/comments/1o1wni9/general_tips_and_info_that_are_less_obvious/">u/wo0topia</a> explained it clearly: if you have 5 shield and take 100 damage, the 5 shield cancels the attack entirely. It doesn&#8217;t scale with the hit. One charge shrine Shield upgrade early is considered essentially mandatory by most experienced players; it&#8217;s the cheapest possible one-shot protection.&nbsp;</p>



<p class="wp-block-paragraph">Don&#8217;t stack it beyond that unless you have a specific reason.</p>



<h3 class="wp-block-heading"><strong>3. Don&#8217;t open chests until your Luck is built up</strong></h3>



<p class="wp-block-paragraph"><a href="https://www.reddit.com/r/MegabonkOfficial/comments/1qii5y6/hi_im_new_to_megabonk_any_tips_for_completing/">u/BalusBubalis</a> set a specific benchmark: at least 15% luck, ideally 30%+ before paying for chests.&nbsp;</p>



<p class="wp-block-paragraph">The reasoning is straightforward: Luck affects chest item quality, so spending gold on chests before you&#8217;ve built Luck is burning currency for worse outcomes.&nbsp;</p>



<p class="wp-block-paragraph">Free chests from Keys are fine earlier; it&#8217;s the paid ones you want to hold on to.</p>



<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-Megabonk-Tips-Chests.png" alt="Megabonk level-up screen showing an Epic Beefy Ring item that increases damage by 20% per 100 Max HP. Player stats panel visible on the right." class="wp-image-750" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Megabonk-Tips-Chests.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Megabonk-Tips-Chests-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<h3 class="wp-block-heading"><strong>4. Don&#8217;t banish Moldy Cheese or Unstable Transfusion</strong></h3>



<p class="wp-block-paragraph">This came up in two separate threads from players who had banished both and regretted it.&nbsp;</p>



<p class="wp-block-paragraph">Moldy Cheese applies poison on hit, which ticks away at boss health passively and makes early-game survivability significantly easier.<a href="https://www.reddit.com/r/MegabonkOfficial/comments/1ozl1o6/tips_for_a_megabonk_noob_me/">&nbsp;</a></p>



<p class="wp-block-paragraph"><a href="https://www.reddit.com/r/MegabonkOfficial/comments/1ozl1o6/tips_for_a_megabonk_noob_me/">u/where_is_the_camera</a> called it the difference between making it out of Round 1 or not.&nbsp;</p>



<p class="wp-block-paragraph">Unstable Transfusion reduces an enemy&#8217;s total HP cap over time (the red bar you see creeping from the left of a boss&#8217;s health bar), and when your damage hits that point, it&#8217;s an instant kill. Both are worth keeping.</p>



<h3 class="wp-block-heading"><strong>5. Balance weapon upgrades against tome upgrades; don&#8217;t neglect either</strong></h3>



<p class="wp-block-paragraph"><a href="https://www.reddit.com/r/MegabonkOfficial/comments/1o67j7b/tips_for_new_players/">u/zenitharchon</a> framed it well: weapon upgrades determine your damage and survivability in the short term; tomes determine your scaling in the long term.&nbsp;</p>



<p class="wp-block-paragraph">If you&#8217;re struggling to kill enemies, prioritize weapons.&nbsp;</p>



<p class="wp-block-paragraph">If you&#8217;re clearing comfortably, invest in tomes.&nbsp;</p>



<p class="wp-block-paragraph">Several threads warned against going all-in on tomes early (especially Holy Trinity) without enough weapon levels to actually survive the difficulty spike that follows.</p>



<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-Megabonk-Tips-Combat.png" alt="Megabonk early-game combat on the Forest map at level 0. Player character surrounded by green goblin enemies with a Find the Boss objective on screen." class="wp-image-752" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Megabonk-Tips-Combat.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Megabonk-Tips-Combat-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<h3 class="wp-block-heading"><strong>6. Projectile count upgrades are massive early</strong></h3>



<p class="wp-block-paragraph">Multiple comments across threads flagged this as one of the most undervalued early upgrades.&nbsp;</p>



<p class="wp-block-paragraph">The first +1 projectile count effectively doubles your damage on most weapons.<a href="https://www.reddit.com/r/MegabonkOfficial/comments/1opbzln/i_just_started_playing_i_need_beginner_tips_and/">&nbsp;</a></p>



<p class="wp-block-paragraph"><a href="https://www.reddit.com/r/MegabonkOfficial/comments/1opbzln/i_just_started_playing_i_need_beginner_tips_and/">u/SendMePicsOfMILFS</a> listed it as one of the three most important early stats alongside Shield and extra jumps. Look for projectile count upgrades in charge shrines early; they have an outsized impact relative to their cost in the first stage.</p>



<p class="wp-block-paragraph">Also, bous points for that name lmao.</p>



<h3 class="wp-block-heading"><strong>7. Restart without guilt if the first three minutes are bad</strong></h3>



<p class="wp-block-paragraph"><a href="https://www.reddit.com/r/MegabonkOfficial/comments/1qii5y6/hi_im_new_to_megabonk_any_tips_for_completing/">u/BalusBubalis</a> said it directly: the first two or three minutes set the arc for the rest of the run. If you haven&#8217;t hit basic benchmarks and don&#8217;t feel confident by that point, just restart.<a href="https://www.reddit.com/r/MegabonkOfficial/comments/1nujmcg/how_can_i_start_better/">&nbsp;</a></p>



<p class="wp-block-paragraph"><a href="https://www.reddit.com/r/MegabonkOfficial/comments/1nujmcg/how_can_i_start_better/">u/FuryMoon</a> echoed it: rather than waste 20 minutes on a half-baked run, cut it early and fish for a better start. This is a roguelite; RNG matters, and some starts are just doomed.</p>



<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-Megabonk-Tips-Boss.png" alt="Megabonk player character fighting Judge Anubis, the final boss, on the Desert map. The boss is airborne with a health bar showing 13.7M / 13.8M HP remaining." class="wp-image-748" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Megabonk-Tips-Boss.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Megabonk-Tips-Boss-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<h3 class="wp-block-heading"><strong>8. Always bust pots</strong></h3>



<p class="wp-block-paragraph">Short but consistent advice. Pots give XP, gold, and power-ups.<a href="https://www.reddit.com/r/MegabonkOfficial/comments/1qii5y6/hi_im_new_to_megabonk_any_tips_for_completing/">&nbsp;</a></p>



<p class="wp-block-paragraph"><a href="https://www.reddit.com/r/MegabonkOfficial/comments/1qii5y6/hi_im_new_to_megabonk_any_tips_for_completing/">u/BalusBubalis</a> said, &#8220;Pots are the enemy, monsters are just the obstacles between you and pots.&#8221; Always interact with them as you move through the map.</p>



<h3 class="wp-block-heading"><strong>9. Crit chance past 100% converts to crit damage</strong></h3>



<p class="wp-block-paragraph">This is less obvious, and the game doesn&#8217;t explain it clearly.&nbsp;</p>



<p class="wp-block-paragraph">Multiple comments in<a href="https://www.reddit.com/r/MegabonkOfficial/comments/1o1wni9/general_tips_and_info_that_are_less_obvious/"> this r/MegabonkOfficial tips thread</a> confirmed: once crit chance exceeds 100%, the excess converts to crit damage.&nbsp;</p>



<p class="wp-block-paragraph">At 200% crit chance, you&#8217;re effectively doubling your crit multiplier. This makes Precision Tome and crit-stacking builds continue scaling into the late game rather than soft-capping.</p>



<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-Megabonk-Tips-Running-Combat.png" alt="Megabonk player character running through the Desert map at level 0, kiting a large group of silver armored enemies with a Find the Boss objective active." class="wp-image-758" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Megabonk-Tips-Running-Combat.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Megabonk-Tips-Running-Combat-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<h3 class="wp-block-heading"><strong>10. Don&#8217;t run Holy Trinity as a beginner</strong></h3>



<p class="wp-block-paragraph">This was consistent across threads.<a href="https://www.reddit.com/r/MegabonkOfficial/comments/1o67j7b/tips_for_new_players/">&nbsp;</a></p>



<p class="wp-block-paragraph"><a href="https://www.reddit.com/r/MegabonkOfficial/comments/1o67j7b/tips_for_new_players/">u/jordan853</a> flagged it explicitly: Holy Trinity is a leaderboard meta strategy, not a beginner strategy.&nbsp;</p>



<p class="wp-block-paragraph">The Difficulty Tome spike without the foundation to handle it kills runs fast and kills enjoyment faster.&nbsp;</p>



<p class="wp-block-paragraph">Several experienced players recommended getting comfortable clearing Tier 1 reliably first, then introducing XP and Luck Tomes, and only adding Curse Tome once you understand how to manage the difficulty increase it brings.</p>



<h2 class="wp-block-heading"><strong>Megabonk Characters: Who Should You Pick?</strong></h2>



<p class="wp-block-paragraph">Megabonk currently has <a href="https://megabonk.fandom.com/wiki/Characters">21 playable characters</a>, each with a unique starting weapon and one passive ability.</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>Megabonk Character Tier List</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-char-tier {
    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-char-tier * { box-sizing: border-box; }

  .ct-topbar {
    height: 3px;
    background: linear-gradient(90deg, transparent, #FFBF00 40%, #FFBF00 60%, transparent);
  }

  .ct-header {
    background: #16161f;
    border-bottom: 1px solid #32324a;
    padding: 30px 28px 26px;
    text-align: center;
  }

  .ct-eyebrow {
    font-family: 'Cinzel', serif;
    font-size: 10px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: #FFBF00;
    display: block;
    margin-bottom: 10px;
  }

  .ct-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;
  }

  .ct-subtitle {
    font-family: 'Crimson Pro', Georgia, serif;
    font-size: 13px;
    color: #FFBF00;
    margin-top: 8px;
    letter-spacing: 0.05em;
    font-style: italic;
  }

  .ct-col-headers {
    display: grid;
    grid-template-columns: 1fr 1.8fr 90px;
    background: #16161f;
    border-bottom: 1px solid #32324a;
  }

  .ct-col-header {
    padding: 11px 20px;
    font-family: 'Cinzel', serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #e8e4d8;
    border-right: 1px solid #32324a;
  }

  .ct-col-header:last-child { border-right: none; }

  .ct-tier-header {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 10px 20px;
    border-bottom: 1px solid #32324a;
    background: #16161f;
  }

  .ct-tier-badge {
    font-family: 'Cinzel', serif;
    font-size: 20px;
    font-weight: 800;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    flex-shrink: 0;
  }

  .ct-tier-desc {
    font-family: 'Cinzel', serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #80786a;
  }

  .tier-s .ct-tier-badge { color: #111318; background: #FFBF00; }
  .tier-a .ct-tier-badge { color: #111318; background: #c8bfa0; }
  .tier-b .ct-tier-badge { color: #f2eedd; background: #32324a; }
  .tier-c .ct-tier-badge { color: #80786a; background: #1e1e2a; border: 1px solid #32324a; }

  .ct-row {
    display: grid;
    grid-template-columns: 1fr 1.8fr 90px;
    border-bottom: 1px solid #1e1e2a;
    transition: background 0.15s;
  }

  .ct-row:last-child { border-bottom: none; }
  .ct-row:hover { background: #16161f; }

  .ct-name {
    padding: 14px 20px;
    border-right: 1px solid #1e1e2a;
    display: flex;
    align-items: center;
  }

  .ct-name-text {
    margin: 0;
    font-family: 'Crimson Pro', Georgia, serif;
    font-size: 17px;
    font-weight: 600;
    color: #e8e4d8;
    line-height: 1.3;
  }

  .ct-name-text.is-s { color: #FFBF00; }

  .ct-playstyle {
    padding: 14px 20px;
    border-right: 1px solid #1e1e2a;
    display: flex;
    align-items: center;
  }

  .ct-playstyle-text {
    margin: 0;
    font-size: 15px;
    color: #c8bfa0;
    line-height: 1.4;
  }

  .ct-difficulty {
    padding: 14px 12px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .ct-diff-badge {
    font-family: 'Cinzel', serif;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: 3px;
    text-align: center;
    white-space: nowrap;
  }

  .diff-easy     { color: #6fcf97; background: rgba(111,207,151,0.1); border: 1px solid rgba(111,207,151,0.25); }
  .diff-easy-med { color: #a8d5b5; background: rgba(168,213,181,0.1); border: 1px solid rgba(168,213,181,0.2); }
  .diff-medium   { color: #FFBF00; background: rgba(255,191,0,0.08);  border: 1px solid rgba(255,191,0,0.2); }
  .diff-hard     { color: #eb5757; background: rgba(235,87,87,0.08);  border: 1px solid rgba(235,87,87,0.2); }
  .diff-varies   { color: #80786a; background: rgba(128,120,106,0.1); border: 1px solid rgba(128,120,106,0.2); }

  .ct-footer {
    background: #16161f;
    border-top: 1px solid #32324a;
    padding: 13px 20px;
    font-size: 13px;
    color: #80786a;
    font-style: italic;
    text-align: center;
  }

  @media (max-width: 520px) {
    .ct-col-headers { grid-template-columns: 1fr 1.4fr 70px; }
    .ct-row { grid-template-columns: 1fr 1.4fr 70px; }
    .ct-col-header { padding: 9px 12px; font-size: 9px; }
    .ct-name { padding: 12px 12px; }
    .ct-name-text { font-size: 15px; }
    .ct-playstyle { padding: 12px 12px; }
    .ct-playstyle-text { font-size: 13px; }
    .ct-difficulty { padding: 12px 8px; }
    .ct-diff-badge { font-size: 8px; padding: 2px 5px; }
    .ct-tier-header { padding: 9px 14px; gap: 10px; }
    .ct-tier-badge { font-size: 16px; width: 30px; height: 30px; }
    .ct-tier-desc { font-size: 9px; }
  }
</style>
</head>
<body>

<div id="rr-char-tier">
  <div class="ct-topbar"></div>

  <div class="ct-header">
    <span class="ct-eyebrow">Rogue Ranker · Megabonk Guide</span>
    <p class="ct-title">Megabonk Character Tier List</p>
    <div class="ct-subtitle">Community consensus</div>
  </div>

  <div class="ct-col-headers">
    <div class="ct-col-header">Character</div>
    <div class="ct-col-header">Playstyle</div>
    <div class="ct-col-header">Difficulty</div>
  </div>

  <div class="ct-tier-header tier-s">
    <div class="ct-tier-badge">S</div>
    <div class="ct-tier-desc">Dominant in competitive and leaderboard runs</div>
  </div>

  <div class="ct-row">
    <div class="ct-name"><h3 class="ct-name-text is-s">Dicehead</h3></div>
    <div class="ct-playstyle"><p class="ct-playstyle-text">Crit scaling via gambling passive (Dice)</p></div>
    <div class="ct-difficulty"><span class="ct-diff-badge diff-medium">Medium</span></div>
  </div>
  <div class="ct-row">
    <div class="ct-name"><h3 class="ct-name-text is-s">CL4NK</h3></div>
    <div class="ct-playstyle"><p class="ct-playstyle-text">Crit/projectile build (Revolver)</p></div>
    <div class="ct-difficulty"><span class="ct-diff-badge diff-easy-med">Easy-Med</span></div>
  </div>
  <div class="ct-row">
    <div class="ct-name"><h3 class="ct-name-text is-s">Robinette</h3></div>
    <div class="ct-playstyle"><p class="ct-playstyle-text">Gold-to-damage scaling (Bow)</p></div>
    <div class="ct-difficulty"><span class="ct-diff-badge diff-medium">Medium</span></div>
  </div>
  <div class="ct-row">
    <div class="ct-name"><h3 class="ct-name-text is-s">Megachad</h3></div>
    <div class="ct-playstyle"><p class="ct-playstyle-text">AFK tank (Aura + Flex passive)</p></div>
    <div class="ct-difficulty"><span class="ct-diff-badge diff-easy">Easy</span></div>
  </div>

  <div class="ct-tier-header tier-a">
    <div class="ct-tier-badge">A</div>
    <div class="ct-tier-desc">Strong and consistent with good builds</div>
  </div>

  <div class="ct-row">
    <div class="ct-name"><h3 class="ct-name-text">Bandit</h3></div>
    <div class="ct-playstyle"><p class="ct-playstyle-text">Attack speed + execute (Dexecutioner)</p></div>
    <div class="ct-difficulty"><span class="ct-diff-badge diff-medium">Medium</span></div>
  </div>
  <div class="ct-row">
    <div class="ct-name"><h3 class="ct-name-text">Calcium</h3></div>
    <div class="ct-playstyle"><p class="ct-playstyle-text">Speed-scaling DPS (Flamewalker)</p></div>
    <div class="ct-difficulty"><span class="ct-diff-badge diff-hard">Hard</span></div>
  </div>
  <div class="ct-row">
    <div class="ct-name"><h3 class="ct-name-text">Noelle</h3></div>
    <div class="ct-playstyle"><p class="ct-playstyle-text">Size + AOE (Frostwalker)</p></div>
    <div class="ct-difficulty"><span class="ct-diff-badge diff-easy-med">Easy-Med</span></div>
  </div>
  <div class="ct-row">
    <div class="ct-name"><h3 class="ct-name-text">Fox</h3></div>
    <div class="ct-playstyle"><p class="ct-playstyle-text">Luck-based RNG farming (Firestaff)</p></div>
    <div class="ct-difficulty"><span class="ct-diff-badge diff-easy">Easy</span></div>
  </div>
  <div class="ct-row">
    <div class="ct-name"><h3 class="ct-name-text">Roberto</h3></div>
    <div class="ct-playstyle"><p class="ct-playstyle-text">Hoarder passive (free chest every 60s)</p></div>
    <div class="ct-difficulty"><span class="ct-diff-badge diff-easy-med">Easy-Med</span></div>
  </div>

  <div class="ct-tier-header tier-b">
    <div class="ct-tier-badge">B</div>
    <div class="ct-tier-desc">Decent — require more specific builds or more practice</div>
  </div>

  <div class="ct-row">
    <div class="ct-name"><h3 class="ct-name-text">Sir Oofie</h3></div>
    <div class="ct-playstyle"><p class="ct-playstyle-text">Armor tank (Sword) — best beginner pick</p></div>
    <div class="ct-difficulty"><span class="ct-diff-badge diff-easy">Easy</span></div>
  </div>
  <div class="ct-row">
    <div class="ct-name"><h3 class="ct-name-text">Monke</h3></div>
    <div class="ct-playstyle"><p class="ct-playstyle-text">Mobility + projectile (Bananarang)</p></div>
    <div class="ct-difficulty"><span class="ct-diff-badge diff-easy-med">Easy-Med</span></div>
  </div>
  <div class="ct-row">
    <div class="ct-name"><h3 class="ct-name-text">Tony McZoom</h3></div>
    <div class="ct-playstyle"><p class="ct-playstyle-text">Speed + crit (fastest character)</p></div>
    <div class="ct-difficulty"><span class="ct-diff-badge diff-hard">Hard</span></div>
  </div>
  <div class="ct-row">
    <div class="ct-name"><h3 class="ct-name-text">Vlad</h3></div>
    <div class="ct-playstyle"><p class="ct-playstyle-text">HP-scaling sustain (Blood Magic)</p></div>
    <div class="ct-difficulty"><span class="ct-diff-badge diff-medium">Medium</span></div>
  </div>

  <div class="ct-tier-header tier-c">
    <div class="ct-tier-badge">C</div>
    <div class="ct-tier-desc">Niche — underperform or require very specific conditions</div>
  </div>

  <div class="ct-row">
    <div class="ct-name"><h3 class="ct-name-text">Athena</h3></div>
    <div class="ct-playstyle"><p class="ct-playstyle-text">Thorns + low HP (Aegis)</p></div>
    <div class="ct-difficulty"><span class="ct-diff-badge diff-hard">Hard</span></div>
  </div>
  <div class="ct-row">
    <div class="ct-name"><h3 class="ct-name-text">Spaceman</h3></div>
    <div class="ct-playstyle"><p class="ct-playstyle-text">Black Hole (bugged XP passive)</p></div>
    <div class="ct-difficulty"><span class="ct-diff-badge diff-medium">Medium</span></div>
  </div>
  <div class="ct-row">
    <div class="ct-name"><h3 class="ct-name-text">Others</h3></div>
    <div class="ct-playstyle"><p class="ct-playstyle-text">Situational or niche playstyles</p></div>
    <div class="ct-difficulty"><span class="ct-diff-badge diff-varies">Varies</span></div>
  </div>

  <div class="ct-footer">
    Megabonk character tier list compiled by Rogue Ranker · rogueranker.com
  </div>

</div>

</body>
</html></p>



<p class="wp-block-paragraph">Their passive is everything.</p>



<p class="wp-block-paragraph">It shapes what tomes you want, what weapons synergize, and whether a given run feels coherent or completely off the rails.</p>



<p class="wp-block-paragraph">The community has settled on a fairly consistent tier list across sources like <a href="https://www.dexerto.com/wikis/megabonk/character-tier-list/">Dexerto</a>, Game Rant, and the <a href="https://megabonk.fandom.com/wiki/Megabonk_Wiki">Megabonk wiki</a>, even if specific placements shuffle between patches.</p>



<p class="wp-block-paragraph">One thing basically everyone agrees on: Dicehead, <a href="https://rogueranker.com/cl4nk-build-megabonk/">CL4NK</a>, <a href="https://rogueranker.com/robinette-build-megabonk/">Robinette</a>, and <a href="https://rogueranker.com/megachad-build-megabonk/">Megachad</a> are the top four.</p>



<p class="wp-block-paragraph">Here&#8217;s the quick breakdown before we get into the tier table:</p>



<ul class="wp-block-list">
<li><strong>Dicehead:</strong> His Gamba passive lets rolling a 6 permanently increase crit chance, creating theoretically unlimited scaling. He remains S-tier.</li>



<li><strong>CL4NK:</strong> Gains +1% crit chance per level through his Crit Happens passive. Extremely consistent once his Revolver build gets going.</li>



<li><strong>Robinette:</strong> Her Stonks passive gives +1% gold per level, and her damage scales directly with gold held. Long runs reward her exponentially more than other characters.</li>



<li><strong>Megachad:</strong> His Flex passive blocks damage and stuns enemies on cooldown. Perfect for AFK-style builds and genuinely one of the most fun characters to watch wreck a map.</li>
</ul>



<p class="wp-block-paragraph">For beginners, the community consensus <a href="https://rogueranker.com/megabonk-sir-oofie-build/">points to Sir Oofie</a> and Fox, but then again, those are the starting characters.</p>



<p class="wp-block-paragraph">Sir Oofie gets +1% armor per level, making him extremely hard to kill while you&#8217;re still learning positioning.</p>



<p class="wp-block-paragraph"><a href="https://rogueranker.com/fox-build-megabonk/">Fox brings +2% Luck per level</a> and a ranged playstyle that keeps you at a safe distance.</p>



<p class="wp-block-paragraph"><a href="https://rogueranker.com/monke-build-megabonk/">Monke comes up a lot</a> for newer players too; wall-climbing is a genuine mobility advantage, and the Bananarang is a top-tier starter weapon.<em>hest every 60 seconds, which makes him excellent for long runs and particularly strong in the AFK challenge.</em></p>



<h2 class="wp-block-heading"><strong>Best Megabonk Builds for Top Characters</strong></h2>



<p class="wp-block-paragraph">The core principle behind the best Megabonk builds is simple: find your character&#8217;s passive, build around it, and make everything multiply rather than add.</p>



<p class="wp-block-paragraph">The problem is, most players treat tomes as interchangeable, rather than as the architecture of their run.</p>



<p class="wp-block-paragraph">From what I&#8217;ve seen, every successful build runs through the same foundational decision: Holy Trinity (XP + Curse + Luck Tomes) or a character-specific route.</p>



<p class="wp-block-paragraph">The Holy Trinity creates a feedback loop where faster leveling gives better upgrades, better upgrades clear faster, faster clearing gives more XP, and more XP gives more levels.</p>



<p class="wp-block-paragraph">For leaderboard runs, it&#8217;s practically required.</p>



<p class="wp-block-paragraph">For newer players, it&#8217;s a trap.</p>



<p class="wp-block-paragraph">Curse Tome makes difficulty spike fast, and without a defensive foundation, you&#8217;ll die around minute 8 confused about what went wrong.</p>



<p class="wp-block-paragraph">The community&#8217;s standing advice: <strong>master a defensive build on Sir Oofie or Megachad first.</strong></p>



<p class="wp-block-paragraph">Once you&#8217;re comfortable surviving to the Final Swarm, introduce the Trinity.</p>



<p class="wp-block-paragraph">I learned this the hard way and I&#8217;d rather you didn&#8217;t have to.</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>Best Megabonk Builds</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-builds {
    font-family: 'Crimson Pro', Georgia, serif;
    background: #111318;
    color: #f2eedd;
    width: 100%;
    max-width: 900px;
    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-builds * { box-sizing: border-box; }

  .bd-topbar {
    height: 3px;
    background: linear-gradient(90deg, transparent, #FFBF00 40%, #FFBF00 60%, transparent);
  }

  .bd-header {
    background: #16161f;
    border-bottom: 1px solid #32324a;
    padding: 30px 28px 26px;
    text-align: center;
  }

  .bd-eyebrow {
    font-family: 'Cinzel', serif;
    font-size: 10px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: #FFBF00;
    display: block;
    margin-bottom: 10px;
  }

  .bd-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;
  }

  .bd-subtitle {
    font-family: 'Crimson Pro', Georgia, serif;
    font-size: 13px;
    color: #FFBF00;
    margin-top: 8px;
    letter-spacing: 0.05em;
    font-style: italic;
  }

  .bd-col-headers {
    display: grid;
    grid-template-columns: 110px 130px 160px 160px 130px 80px;
    background: #16161f;
    border-bottom: 1px solid #32324a;
  }

  .bd-col-header {
    padding: 11px 14px;
    font-family: 'Cinzel', serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #e8e4d8;
    border-right: 1px solid #32324a;
  }

  .bd-col-header:last-child { border-right: none; }

  .bd-row {
    display: grid;
    grid-template-columns: 110px 130px 160px 160px 130px 80px;
    border-bottom: 1px solid #1e1e2a;
    transition: background 0.15s;
  }

  .bd-row:last-child { border-bottom: none; }
  .bd-row:hover { background: #16161f; }

  .bd-cell {
    padding: 14px 14px;
    border-right: 1px solid #1e1e2a;
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    justify-content: center;
  }

  .bd-cell:last-child { border-right: none; }

  .bd-character {
    margin: 0;
    font-family: 'Crimson Pro', Georgia, serif;
    font-size: 16px;
    font-weight: 600;
    color: #FFBF00;
    line-height: 1.3;
  }

  .bd-passive {
    margin: 3px 0 0;
    font-size: 12px;
    color: #80786a;
    font-style: italic;
    line-height: 1.35;
  }

  .bd-text {
    margin: 0;
    font-size: 13px;
    color: #c8bfa0;
    line-height: 1.45;
  }

  .bd-tag {
    display: inline-block;
    font-family: 'Cinzel', serif;
    font-size: 8px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 2px 7px;
    border-radius: 3px;
    margin-bottom: 6px;
  }

  .tag-aoe      { color: #6fcf97; background: rgba(111,207,151,0.1); border: 1px solid rgba(111,207,151,0.25); }
  .tag-rng      { color: #bb6bd9; background: rgba(187,107,217,0.1); border: 1px solid rgba(187,107,217,0.2); }
  .tag-gold     { color: #FFBF00; background: rgba(255,191,0,0.08);  border: 1px solid rgba(255,191,0,0.2); }
  .tag-crit     { color: #eb5757; background: rgba(235,87,87,0.08);  border: 1px solid rgba(235,87,87,0.2); }
  .tag-sustain  { color: #56ccf2; background: rgba(86,204,242,0.08); border: 1px solid rgba(86,204,242,0.2); }
  .tag-speed    { color: #f2994a; background: rgba(242,153,74,0.08); border: 1px solid rgba(242,153,74,0.2); }
  .tag-afk      { color: #c8bfa0; background: rgba(200,191,160,0.08); border: 1px solid rgba(200,191,160,0.2); }

  .diff-easy     { color: #6fcf97; background: rgba(111,207,151,0.1); border: 1px solid rgba(111,207,151,0.25); }
  .diff-easy-med { color: #a8d5b5; background: rgba(168,213,181,0.1); border: 1px solid rgba(168,213,181,0.2); }
  .diff-medium   { color: #FFBF00; background: rgba(255,191,0,0.08);  border: 1px solid rgba(255,191,0,0.2); }
  .diff-hard     { color: #eb5757; background: rgba(235,87,87,0.08);  border: 1px solid rgba(235,87,87,0.2); }

  .bd-diff-badge {
    font-family: 'Cinzel', serif;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: 3px;
    text-align: center;
    white-space: nowrap;
  }

  .bd-footer {
    background: #16161f;
    border-top: 1px solid #32324a;
    padding: 13px 20px;
    font-size: 13px;
    color: #80786a;
    font-style: italic;
    text-align: center;
  }

  @media (max-width: 700px) {
    #rr-builds { font-size: 13px; }
    .bd-col-headers { grid-template-columns: 90px 110px 130px 130px 110px 70px; }
    .bd-row { grid-template-columns: 90px 110px 130px 130px 110px 70px; }
    .bd-col-header { padding: 9px 10px; font-size: 9px; }
    .bd-cell { padding: 11px 10px; }
    .bd-character { font-size: 14px; }
    .bd-text { font-size: 12px; }
    .bd-passive { font-size: 11px; }
  }
</style>
</head>
<body>

<div id="rr-builds">
  <div class="bd-topbar"></div>

  <div class="bd-header">
    <span class="bd-eyebrow">Rogue Ranker · Megabonk Guide</span>
    <p class="bd-title">Best Megabonk Builds for Top Characters</p>
    <div class="bd-subtitle">Community-tested builds based on guides, Steam discussions, and meta analysis</div>
  </div>

  <div class="bd-col-headers">
    <div class="bd-col-header">Character</div>
    <div class="bd-col-header">Priority Tomes</div>
    <div class="bd-col-header">Best Weapons</div>
    <div class="bd-col-header">Key Items</div>
    <div class="bd-col-header">Playstyle</div>
    <div class="bd-col-header">Difficulty</div>
  </div>

  <div class="bd-row">
    <div class="bd-cell">
      <p class="bd-character">Noelle</p>
      <p class="bd-passive">+1% size per level</p>
    </div>
    <div class="bd-cell"><p class="bd-text">Size, Damage, Quantity, XP</p></div>
    <div class="bd-cell"><p class="bd-text">Frostwalker, Aura, Lightning Staff</p></div>
    <div class="bd-cell"><p class="bd-text">Beefy Ring, Spiky Shield</p></div>
    <div class="bd-cell"><span class="bd-tag tag-aoe">AoE Tank</span></div>
    <div class="bd-cell"><span class="bd-diff-badge diff-easy-med">Easy-Med</span></div>
  </div>

  <div class="bd-row">
    <div class="bd-cell">
      <p class="bd-character">Fox</p>
      <p class="bd-passive">+1% Luck per level</p>
    </div>
    <div class="bd-cell"><p class="bd-text">Luck, Curse, XP, Damage</p></div>
    <div class="bd-cell"><p class="bd-text">Firestaff, Aura, Flamewalker</p></div>
    <div class="bd-cell"><p class="bd-text">Clovers, any legendary</p></div>
    <div class="bd-cell"><span class="bd-tag tag-rng">RNG Farming</span></div>
    <div class="bd-cell"><span class="bd-diff-badge diff-easy">Easy</span></div>
  </div>

  <div class="bd-row">
    <div class="bd-cell">
      <p class="bd-character">Robinette</p>
      <p class="bd-passive">+1% gold per level; damage scales with gold</p>
    </div>
    <div class="bd-cell"><p class="bd-text">XP, Luck, Quantity, Damage</p></div>
    <div class="bd-cell"><p class="bd-text">Bow, Lightning Staff, Dexecutioner</p></div>
    <div class="bd-cell"><p class="bd-text">Green Credit Card, Gold Nugget, Boss Buster</p></div>
    <div class="bd-cell"><span class="bd-tag tag-gold">Gold Scaling</span></div>
    <div class="bd-cell"><span class="bd-diff-badge diff-medium">Medium</span></div>
  </div>

  <div class="bd-row">
    <div class="bd-cell">
      <p class="bd-character">CL4NK</p>
      <p class="bd-passive">+1% crit chance per level</p>
    </div>
    <div class="bd-cell"><p class="bd-text">XP, Precision/Crit, Quantity, Cooldown</p></div>
    <div class="bd-cell"><p class="bd-text">Revolver, Bone, Sniper Rifle, Dexecutioner</p></div>
    <div class="bd-cell"><p class="bd-text">Giant Fork, Forbidden Juice, Boss Buster</p></div>
    <div class="bd-cell"><span class="bd-tag tag-crit">Crit Stacking</span></div>
    <div class="bd-cell"><span class="bd-diff-badge diff-easy-med">Easy-Med</span></div>
  </div>

  <div class="bd-row">
    <div class="bd-cell">
      <p class="bd-character">Vlad</p>
      <p class="bd-passive">HP scales with kills via Blood Magic</p>
    </div>
    <div class="bd-cell"><p class="bd-text">Lifesteal, HP, XP, Attack Speed</p></div>
    <div class="bd-cell"><p class="bd-text">Blood Magic, Aura, Aegis</p></div>
    <div class="bd-cell"><p class="bd-text">Leeching Crystal, Medkit</p></div>
    <div class="bd-cell"><span class="bd-tag tag-sustain">Sustain Tank</span></div>
    <div class="bd-cell"><span class="bd-diff-badge diff-medium">Medium</span></div>
  </div>

  <div class="bd-row">
    <div class="bd-cell">
      <p class="bd-character">Calcium</p>
      <p class="bd-passive">Damage scales with speed; resets on hit</p>
    </div>
    <div class="bd-cell"><p class="bd-text">Agility, Attack Speed, XP, Damage</p></div>
    <div class="bd-cell"><p class="bd-text">Flamewalker, Bone, Revolver</p></div>
    <div class="bd-cell"><p class="bd-text">Turbo Socks, Evasion Ring</p></div>
    <div class="bd-cell"><span class="bd-tag tag-speed">Speed DPS</span></div>
    <div class="bd-cell"><span class="bd-diff-badge diff-hard">Hard</span></div>
  </div>

  <div class="bd-row">
    <div class="bd-cell">
      <p class="bd-character">Megachad</p>
      <p class="bd-passive">Flex blocks damage and stuns on cooldown</p>
    </div>
    <div class="bd-cell"><p class="bd-text">XP, Attraction, Size, Shield</p></div>
    <div class="bd-cell"><p class="bd-text">Aura, Aegis, Sword, Axe</p></div>
    <div class="bd-cell"><p class="bd-text">Kevin, Mirror, Campfire, Idle Juice</p></div>
    <div class="bd-cell"><span class="bd-tag tag-afk">AFK Tank</span></div>
    <div class="bd-cell"><span class="bd-diff-badge diff-easy">Easy</span></div>
  </div>

  <div class="bd-footer">
    Megabonk builds compiled by Rogue Ranker · rogueranker.com
  </div>

</div>

</body>
</html></p>



<h3 class="wp-block-heading"><strong>Best Noelle Build</strong></h3>



<p class="wp-block-paragraph">Noelle&#8217;s passive increases her size +1% per level, and her Frostwalker weapon creates a damage-and-slow circle around her.</p>



<p class="wp-block-paragraph">The <a href="https://rogueranker.com/noelle-build-megabonk/">best Noelle builds</a> lean into this hard: Size Tome widens the ring, Damage and Quantity Tomes stack on top, and she can clear entire screens without much input from the player.</p>



<p class="wp-block-paragraph">She&#8217;s one of the more forgiving A-tier picks and a good stepping stone before you go anywhere near Calcium.</p>



<ul class="wp-block-list">
<li><strong>Priority tomes:</strong> Size, Damage, Quantity, XP</li>



<li><strong>Best weapons:</strong> Frostwalker (default), Aura, Lightning Staff</li>



<li><strong>Key items:</strong> Beefy Ring, Spiky Shield</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-Megabonk-Tips-Noelle.png" alt="Megabonk character selection screen showing Noelle selected. Her passive is Enduring — gain 1% Size per level and increase damage per currently frozen enemy. Starting weapon is Frostwalker." class="wp-image-756" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Megabonk-Tips-Noelle.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Megabonk-Tips-Noelle-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<h3 class="wp-block-heading"><strong>Best Fox Build</strong></h3>



<p class="wp-block-paragraph">Fox gains +1% Luck per level through her RNG Blessing passive, making her the best character in the game for farming legendary items.</p>



<p class="wp-block-paragraph">The strategy is simple: stack Luck and Curse Tomes early to maximize upgrade quality, then let whatever legendaries land do the heavy lifting.</p>



<p class="wp-block-paragraph">Fox is fragile, though.</p>



<p class="wp-block-paragraph">She&#8217;s not a tanky beginner pick despite showing up as a default character. Her builds can hit ridiculous power spikes, but only when the RNG cooperates.</p>



<p class="wp-block-paragraph">On bad runs, she feels like being punished for someone else&#8217;s choices.</p>



<ul class="wp-block-list">
<li><strong>Priority tomes:</strong> Luck, Curse, XP, Damage</li>



<li><strong>Best weapons:</strong> Firestaff (default), Aura, Flamewalker</li>



<li><strong>Key items:</strong> Clovers, any legendary</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-Megabonk-Tips-Fox.png" alt="Megabonk character selection screen showing Fox selected. His passive is RNG Blessing — gain 1% Luck per level. Starting weapon is Firestaff." class="wp-image-754" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Megabonk-Tips-Fox.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Megabonk-Tips-Fox-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<h3 class="wp-block-heading"><strong>Best Robinette Build</strong></h3>



<p class="wp-block-paragraph">Robinette&#8217;s entire identity is gold farming. Her Stonks passive adds +1% gold per level, and her damage scales directly with gold held.</p>



<p class="wp-block-paragraph">By the third stage of a long run, with tens of thousands of gold stacked, she deals game-breaking damage numbers.</p>



<p class="wp-block-paragraph">The build is: get XP Tome fast to level quickly, then stack gold-generating items aggressively. Green Credit Cards and Gold Nuggets are your highest priorities; the more gold you accumulate, the more damage Robinette&#8217;s passive converts it into. Her Bow is a strong wave-clearer that benefits from Quantity Tome for pierce and projectile count. She rewards patience; early game feels quiet, late game feels completely out of control.</p>



<ul class="wp-block-list">
<li><strong>Priority tomes:</strong> XP, Luck, Quantity, Damage</li>



<li><strong>Best weapons:</strong> Bow (default), Lightning Staff, Dexecutioner</li>



<li><strong>Key items:</strong> Green Credit Card, Gold Nugget, Boss Buster</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-Megabonk-Tips-Robinette.png" alt="Megabonk character selection screen showing Robinette selected. Her passive is Stonks — gain 1% Gold Gain per level and increase damage slightly by total gold in inventory. Starting weapon is Bow." class="wp-image-757" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Megabonk-Tips-Robinette.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Megabonk-Tips-Robinette-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<h3 class="wp-block-heading"><strong>Best CL4NK Build</strong></h3>



<p class="wp-block-paragraph">CL4NK is as consistent as it gets.</p>



<p class="wp-block-paragraph">His Crit Happens passive gives +1% crit chance per level, which means the longer a run goes, the more his crit builds come apart at the seams (in a good way).</p>



<p class="wp-block-paragraph">The best CL4NK builds stack crit-synergy items and high-projectile weapons so that crit chance is applied as often as possible. Revolver and Bone are the go-to weapons because they fire frequently. Sniper Rifle becomes excellent in CL4NK&#8217;s hands once crit chance gets high enough.</p>



<ul class="wp-block-list">
<li><strong>Priority tomes:</strong> XP, Precision/Crit, Quantity, Cooldown</li>



<li><strong>Best weapons:</strong> Revolver (default), Bone, Sniper Rifle, Dexecutioner</li>



<li><strong>Key items:</strong> Giant Fork (megacrits), Forbidden Juice (crit scaling), Boss Buster</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-Megabonk-Tips-CL4NK.png" alt="Megabonk character selection screen showing CL4NK selected. His passive is Crit Happens — gain 1% Crit Chance per level. Starting weapon is Revolver." class="wp-image-751" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Megabonk-Tips-CL4NK.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Megabonk-Tips-CL4NK-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<h3 class="wp-block-heading"><strong>Best Vlad Build</strong></h3>



<p class="wp-block-paragraph">Vlad&#8217;s Blood Magic increases max HP with kills at 5% per kill, which is lower than players expect.</p>



<p class="wp-block-paragraph">If you&#8217;ve never played Vlad, his builds center on lifesteal to make that HP regenerate fast enough to matter. The community considers him a B-tier pick; high HP counts mean you survive more hits, but he&#8217;s slow out of the gate and requires specific items to feel good.</p>



<p class="wp-block-paragraph">Also, lifesteal Tome is essential here.</p>



<p class="wp-block-paragraph">Hitting 100% lifesteal means every projectile hit heals you, and poison DoT counts as continuous hits for the calculation.</p>



<p class="wp-block-paragraph">If you&#8217;ve ever wanted to feel like an unkillable vampire, Vlad is your character.</p>



<ul class="wp-block-list">
<li><strong>Priority tomes:</strong> Lifesteal, HP, XP, Attack Speed</li>



<li><strong>Best weapons:</strong> Blood Magic (default), Aura, Aegis</li>



<li><strong>Key items:</strong> Leeching Crystal, Medkit</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-Megabonk-Tips-Vlad.png" alt="Megabonk character selection screen showing Vlad selected. His passive is Vampire — gain 1% Lifesteal per level. Starting weapon is Blood Magic, which has a 5% chance to increase Max HP upon killing enemies." class="wp-image-760" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Megabonk-Tips-Vlad.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Megabonk-Tips-Vlad-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<h3 class="wp-block-heading"><strong>Best Calcium Build</strong></h3>



<p class="wp-block-paragraph">Calcium&#8217;s Speed Demon passive scales damage with movement speed, but his speed resets (halved) when he takes damage. Mobbing around on his skateboard is fun as hell.</p>



<p class="wp-block-paragraph">From my experience, a clean Calcium run feels absolutely insane and a sloppy one feels like you&#8217;re getting punished every two seconds. The real caveat isn&#8217;t the skill floor though; it&#8217;s the late game. Staying in constant motion during the Final Swarm, when enemies come from every direction at once, is genuinely hard to sustain.</p>



<p class="wp-block-paragraph">The <a href="https://rogueranker.com/calcium-build-megabonk/">best Calcium builds</a> prioritize Agility Tome and evasion items above almost everything else. Flamewalker is perfect for him because it leaves fire trails as he moves, creating passive damage from his momentum.</p>



<p class="wp-block-paragraph">Calcium + Flamewalker is a well-documented top-tier speedrun combo.</p>



<ul class="wp-block-list">
<li><strong>Priority tomes:</strong> Agility, Attack Speed, XP, Damage</li>



<li><strong>Best weapons:</strong> Flamewalker (first grab if not default), Bone, Revolver</li>



<li><strong>Key items:</strong> Turbo Socks, Evasion Ring</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-Megabonk-Tips-Calcium.png" alt="Megabonk character selection screen showing Calcium selected. His passive is Speed Demon — speed builds up over time but halves when taking damage. Starting weapon is Bone." class="wp-image-749" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Megabonk-Tips-Calcium.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Megabonk-Tips-Calcium-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<h3 class="wp-block-heading"><strong>Best MegaChad Build</strong></h3>



<p class="wp-block-paragraph">Megachad&#8217;s Flex passive blocks damage and stuns enemies on a cooldown that decreases by 0.2 seconds per level.</p>



<p class="wp-block-paragraph">At max level, you have near-permanent invulnerability windows, which makes the Kevin + Mirror combo so devastating once acquired.</p>



<p class="wp-block-paragraph">Here&#8217;s why:<a href="https://megabonk.org/database/items/kevin"> Kevin</a> (unlocked by getting three Leeching Crystals in one run) damages you but can&#8217;t kill you. Mirror reflects damage back to enemies and triggers invulnerability when you take damage.</p>



<p class="wp-block-paragraph">Pre-patch, this made Megachad literally immortal, but post-patch, it&#8217;s &#8220;elite survivability&#8221; rather than true immortality. Still S-tier if you ask me.</p>



<p class="wp-block-paragraph">From what I&#8217;ve seen, here&#8217;s the best non-exploit Megachad build: Aura as his core weapon, Size Tome to widen the damage field, Attraction Tome to collect XP without chasing it, and Shield Tome for passive survivability.</p>



<p class="wp-block-paragraph">He&#8217;s also the go-to for the <a href="https://rogueranker.com/megabonk-afk-challenge/">AFK Gaming Challenge</a> (more on that below).</p>



<ul class="wp-block-list">
<li><strong>Priority tomes:</strong> XP, Attraction, Size, Shield</li>



<li><strong>Best weapons:</strong> Aura (default), Aegis, Sword, Axe</li>



<li><strong>Key items:</strong> Kevin, Mirror, Campfire, Idle Juice</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-Megabonk-Tips-Megachad.png" alt="Megabonk character selection screen showing Megachad selected. His passives are Aura (damages enemies in an area) and Flex (stops damage and stuns enemies, cooldown decreases 0.2s per level)." class="wp-image-755" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Megabonk-Tips-Megachad.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Megabonk-Tips-Megachad-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<h2 class="wp-block-heading"><strong>Megabonk Weapon Tier List: Best Weapons Ranked</strong></h2>



<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>Megabonk Weapon Quick Facts</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-weapon-facts {
    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-weapon-facts * { box-sizing: border-box; }

  .wf-topbar {
    height: 3px;
    background: linear-gradient(90deg, transparent, #FFBF00 40%, #FFBF00 60%, transparent);
  }

  .wf-header {
    background: #16161f;
    border-bottom: 1px solid #32324a;
    padding: 30px 28px 26px;
    text-align: center;
  }

  .wf-eyebrow {
    font-family: 'Cinzel', serif;
    font-size: 10px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: #FFBF00;
    display: block;
    margin-bottom: 10px;
  }

  .wf-title {
    font-family: 'Cinzel', serif;
    font-size: clamp(17px, 3.5vw, 22px);
    font-weight: 800;
    color: #f2eedd;
    margin: 0;
    line-height: 1.2;
  }

  .wf-row {
    display: grid;
    grid-template-columns: 200px 1fr;
    border-bottom: 1px solid #1e1e2a;
    transition: background 0.15s;
  }

  .wf-row:last-child { border-bottom: none; }
  .wf-row:hover { background: #16161f; }

  .wf-label {
    padding: 16px 20px;
    border-right: 1px solid #1e1e2a;
    display: flex;
    align-items: center;
  }

  .wf-label-text {
    margin: 0;
    font-family: 'Cinzel', serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #FFBF00;
    line-height: 1.35;
  }

  .wf-value {
    padding: 16px 20px;
    display: flex;
    align-items: center;
  }

  .wf-value-text {
    margin: 0;
    font-family: 'Crimson Pro', Georgia, serif;
    font-size: 16px;
    color: #e8e4d8;
    line-height: 1.45;
  }

  .wf-value-text.is-large {
    font-size: 28px;
    font-weight: 600;
    color: #FFBF00;
  }

  .wf-footer {
    background: #16161f;
    border-top: 1px solid #32324a;
    padding: 13px 20px;
    font-size: 13px;
    color: #80786a;
    font-style: italic;
    text-align: center;
  }

  @media (max-width: 520px) {
    .wf-row { grid-template-columns: 140px 1fr; }
    .wf-label { padding: 13px 14px; }
    .wf-label-text { font-size: 10px; }
    .wf-value { padding: 13px 14px; }
    .wf-value-text { font-size: 14px; }
    .wf-value-text.is-large { font-size: 22px; }
  }
</style>
</head>
<body>

<div id="rr-weapon-facts">
  <div class="wf-topbar"></div>

  <div class="wf-header">
    <span class="wf-eyebrow">Rogue Ranker · Megabonk Guide</span>
    <p class="wf-title">Megabonk Weapons at a Glance</p>
  </div>

  <div class="wf-row">
    <div class="wf-label"><p class="wf-label-text">Total Weapons</p></div>
    <div class="wf-value"><p class="wf-value-text is-large">29</p></div>
  </div>

  <div class="wf-row">
    <div class="wf-label"><p class="wf-label-text">Available by Default</p></div>
    <div class="wf-value"><p class="wf-value-text">7 — Flamewalker, Sword, Lightning Staff, Firestaff, Chunkers, Bone, Bow</p></div>
  </div>

  <div class="wf-row">
    <div class="wf-label"><p class="wf-label-text">Unlockable</p></div>
    <div class="wf-value"><p class="wf-value-text">22 via challenges, quests, or the Silver shop</p></div>
  </div>

  <div class="wf-row">
    <div class="wf-label"><p class="wf-label-text">Current S-Tier Core</p></div>
    <div class="wf-value"><p class="wf-value-text">Aura, Aegis, Dexecutioner, Flamewalker</p></div>
  </div>

  <div class="wf-row">
    <div class="wf-label"><p class="wf-label-text">Worst Weapons</p></div>
    <div class="wf-value"><p class="wf-value-text">Space Noodle, Mines, Chunkers</p></div>
  </div>

  <div class="wf-footer">
    Megabonk weapon stats compiled by Rogue Ranker · rogueranker.com
  </div>

</div>

</body>
</html></p>



<p class="wp-block-paragraph">The meta shifted hard after versions 1.0.7 and 1.0.12 moved things away from the Kevin + Mirror immortality exploit toward a more skill-based game. <a href="https://progameguides.com/megabonk/ultimate-megabonk-weapons-tier-list/">Pro Game Guides&#8217; weapon tier list</a> (updated December 2025) is one of the most actively maintained external resources if you want a deeper breakdown. </p>



<p class="wp-block-paragraph">We also have our own <a href="https://rogueranker.com/megabonk-tier-list/">Megabonk tier list</a> <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">From my research, here&#8217;s the broad community agreement on weapons, based on multiple tier lists and Steam threads:</p>



<ul class="wp-block-list">
<li><strong>Aura:</strong> Hits everything around you simultaneously with zero aiming required. Pairs with nearly every character and every tome. Perfect for beginners and still dominant in competitive runs.</li>



<li><strong>Aegis:</strong> S-tier for survivability and tank builds. Blocks attacks and counters with shockwaves; cooldown decreases with Attack Speed upgrades.</li>



<li><strong>Dexecutioner:</strong> The essential boss and Spooky Steve weapon. Instantly executes any target on proc, and that proc rate scales with Attack Speed, making it <a href="https://rogueranker.com/bandit-build-megabonk/">absurdly powerful on Bandit</a>.</li>



<li><strong>Flamewalker:</strong> S-tier for mobility builds. Leaves fire trails behind you as you move, creating passive AoE damage with zero input. Available by default; Calcium loves it.</li>



<li><strong>Black Hole:</strong> Critical support weapon in Tier 3 runs and boss fights. Pulls enemies into a central point, enabling CC-heavy builds to land concentrated damage. Pairs especially well with Dexecutioner.</li>



<li><strong>Hero Sword:</strong> Good raw damage but a slow attack rate, which limits its synergy with Attack Speed tomes and on-hit item effects. Most lists put it at B-tier.</li>



<li><strong>Space Noodle, Mines, Chunkers:</strong> The community&#8217;s consensus bottom tier. There&#8217;s debate on exact ranking but these three come up most consistently as weapons to avoid or skip.</li>
</ul>



<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>Megabonk Weapon Tier List</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-weapon-tier {
    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-weapon-tier * { box-sizing: border-box; }

  .wt-topbar {
    height: 3px;
    background: linear-gradient(90deg, transparent, #FFBF00 40%, #FFBF00 60%, transparent);
  }

  .wt-header {
    background: #16161f;
    border-bottom: 1px solid #32324a;
    padding: 30px 28px 26px;
    text-align: center;
  }

  .wt-eyebrow {
    font-family: 'Cinzel', serif;
    font-size: 10px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: #FFBF00;
    display: block;
    margin-bottom: 10px;
  }

  .wt-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;
  }

  .wt-subtitle {
    font-family: 'Crimson Pro', Georgia, serif;
    font-size: 13px;
    color: #FFBF00;
    margin-top: 8px;
    letter-spacing: 0.05em;
    font-style: italic;
  }

  .wt-col-headers {
    display: grid;
    grid-template-columns: 1fr 1.8fr 1.4fr;
    background: #16161f;
    border-bottom: 1px solid #32324a;
  }

  .wt-col-header {
    padding: 11px 20px;
    font-family: 'Cinzel', serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #e8e4d8;
    border-right: 1px solid #32324a;
  }

  .wt-col-header:last-child { border-right: none; }

  .wt-tier-header {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 10px 20px;
    border-bottom: 1px solid #32324a;
    background: #16161f;
  }

  .wt-tier-badge {
    font-family: 'Cinzel', serif;
    font-size: 20px;
    font-weight: 800;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    flex-shrink: 0;
  }

  .wt-tier-desc {
    font-family: 'Cinzel', serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #e8e4d8;
  }

  .tier-s .wt-tier-badge { color: #111318; background: #FFBF00; }
  .tier-a .wt-tier-badge { color: #111318; background: #c8bfa0; }
  .tier-b .wt-tier-badge { color: #f2eedd; background: #32324a; }
  .tier-c .wt-tier-badge { color: #80786a; background: #1e1e2a; border: 1px solid #32324a; }

  .wt-row {
    display: grid;
    grid-template-columns: 1fr 1.8fr 1.4fr;
    border-bottom: 1px solid #1e1e2a;
    transition: background 0.15s;
  }

  .wt-row:last-child { border-bottom: none; }
  .wt-row:hover { background: #16161f; }

  .wt-name {
    padding: 13px 20px;
    border-right: 1px solid #1e1e2a;
    display: flex;
    align-items: center;
  }

  .wt-name-text {
    margin: 0;
    font-family: 'Crimson Pro', Georgia, serif;
    font-size: 16px;
    font-weight: 600;
    color: #e8e4d8;
    line-height: 1.3;
  }

  .wt-name-text.is-s { color: #FFBF00; }

  .wt-best {
    padding: 13px 20px;
    border-right: 1px solid #1e1e2a;
    display: flex;
    align-items: center;
  }

  .wt-best-text {
    margin: 0;
    font-size: 14px;
    color: #c8bfa0;
    line-height: 1.4;
  }

  .wt-notes {
    padding: 13px 20px;
    display: flex;
    align-items: center;
  }

  .wt-notes-text {
    margin: 0;
    font-size: 13px;
    color: #c8bfa0;
    line-height: 1.4;
    font-style: italic;
  }

  .wt-footer {
    background: #16161f;
    border-top: 1px solid #32324a;
    padding: 13px 20px;
    font-size: 13px;
    color: #80786a;
    font-style: italic;
    text-align: center;
  }

  @media (max-width: 520px) {
    .wt-col-headers { grid-template-columns: 1fr 1.5fr 1.2fr; }
    .wt-row { grid-template-columns: 1fr 1.5fr 1.2fr; }
    .wt-col-header { padding: 9px 12px; font-size: 9px; }
    .wt-name { padding: 11px 12px; }
    .wt-name-text { font-size: 14px; }
    .wt-best { padding: 11px 12px; }
    .wt-best-text { font-size: 12px; }
    .wt-notes { padding: 11px 12px; }
    .wt-notes-text { font-size: 11px; }
    .wt-tier-header { padding: 9px 14px; gap: 10px; }
    .wt-tier-badge { font-size: 16px; width: 30px; height: 30px; }
    .wt-tier-desc { font-size: 9px; }
  }
</style>
</head>
<body>

<div id="rr-weapon-tier">
  <div class="wt-topbar"></div>

  <div class="wt-header">
    <span class="wt-eyebrow">Rogue Ranker · Megabonk Guide</span>
    <p class="wt-title">Megabonk Weapon Tier List</p>
    <div class="wt-subtitle">Community consensus across multiple tier lists and Steam threads</div>
  </div>

  <div class="wt-col-headers">
    <div class="wt-col-header">Weapon</div>
    <div class="wt-col-header">Best For</div>
    <div class="wt-col-header">Notes</div>
  </div>

  <!-- S Tier -->
  <div class="wt-tier-header tier-s">
    <div class="wt-tier-badge">S</div>
    <div class="wt-tier-desc">Best in class — dominant in most builds and competitive runs</div>
  </div>

  <div class="wt-row">
    <div class="wt-name"><h3 class="wt-name-text is-s">Aura</h3></div>
    <div class="wt-best"><p class="wt-best-text">Any character, AoE</p></div>
    <div class="wt-notes"><p class="wt-notes-text">No aiming required; beginner-safe and competitive</p></div>
  </div>
  <div class="wt-row">
    <div class="wt-name"><h3 class="wt-name-text is-s">Dexecutioner</h3></div>
    <div class="wt-best"><p class="wt-best-text">Boss kills, Spooky Steve</p></div>
    <div class="wt-notes"><p class="wt-notes-text">Execute proc scales with Attack Speed</p></div>
  </div>
  <div class="wt-row">
    <div class="wt-name"><h3 class="wt-name-text is-s">Flamewalker</h3></div>
    <div class="wt-best"><p class="wt-best-text">Mobility builds (Calcium)</p></div>
    <div class="wt-notes"><p class="wt-notes-text">Default weapon; fire trail passive AoE</p></div>
  </div>
  <div class="wt-row">
    <div class="wt-name"><h3 class="wt-name-text is-s">Aegis</h3></div>
    <div class="wt-best"><p class="wt-best-text">Tank/defensive builds</p></div>
    <div class="wt-notes"><p class="wt-notes-text">Blocks + shockwave; pairs with Shield Tome</p></div>
  </div>

  <!-- A Tier -->
  <div class="wt-tier-header tier-a">
    <div class="wt-tier-badge">A</div>
    <div class="wt-tier-desc">Strong — reliable in most situations with the right build</div>
  </div>

  <div class="wt-row">
    <div class="wt-name"><h3 class="wt-name-text">Black Hole</h3></div>
    <div class="wt-best"><p class="wt-best-text">CC/boss support</p></div>
    <div class="wt-notes"><p class="wt-notes-text">Needs positioning; pairs with Dexecutioner</p></div>
  </div>
  <div class="wt-row">
    <div class="wt-name"><h3 class="wt-name-text">Katana</h3></div>
    <div class="wt-best"><p class="wt-best-text">Bandit, Calcium</p></div>
    <div class="wt-notes"><p class="wt-notes-text">High attack speed melee; RNG unlock (Tumbleweed drop)</p></div>
  </div>
  <div class="wt-row">
    <div class="wt-name"><h3 class="wt-name-text">Lightning Staff</h3></div>
    <div class="wt-best"><p class="wt-best-text">Most builds</p></div>
    <div class="wt-notes"><p class="wt-notes-text">Solid consistent damage with Quantity Tome</p></div>
  </div>
  <div class="wt-row">
    <div class="wt-name"><h3 class="wt-name-text">Revolver</h3></div>
    <div class="wt-best"><p class="wt-best-text">CL4NK, crit builds</p></div>
    <div class="wt-notes"><p class="wt-notes-text">Bounce shots, strong crit synergy</p></div>
  </div>
  <div class="wt-row">
    <div class="wt-name"><h3 class="wt-name-text">Bone</h3></div>
    <div class="wt-best"><p class="wt-best-text">Default; crit builds</p></div>
    <div class="wt-notes"><p class="wt-notes-text">Improved knockback in v1.0.64</p></div>
  </div>
  <div class="wt-row">
    <div class="wt-name"><h3 class="wt-name-text">Shotgun</h3></div>
    <div class="wt-best"><p class="wt-best-text">Close-range burst</p></div>
    <div class="wt-notes"><p class="wt-notes-text">Knockback upgraded in v1.0.64</p></div>
  </div>
  <div class="wt-row">
    <div class="wt-name"><h3 class="wt-name-text">Dice</h3></div>
    <div class="wt-best"><p class="wt-best-text">Dicehead (best); viable on others</p></div>
    <div class="wt-notes"><p class="wt-notes-text">Crit scaling; RNG dependency limits universal ranking</p></div>
  </div>

  <!-- B Tier -->
  <div class="wt-tier-header tier-b">
    <div class="wt-tier-badge">B</div>
    <div class="wt-tier-desc">Decent — situational or outclassed by higher-tier options</div>
  </div>

  <div class="wt-row">
    <div class="wt-name"><h3 class="wt-name-text">Sword</h3></div>
    <div class="wt-best"><p class="wt-best-text">Beginner, AFK builds</p></div>
    <div class="wt-notes"><p class="wt-notes-text">Default; reliable but slow scaling</p></div>
  </div>
  <div class="wt-row">
    <div class="wt-name"><h3 class="wt-name-text">Hero Sword</h3></div>
    <div class="wt-best"><p class="wt-best-text">Melee builds</p></div>
    <div class="wt-notes"><p class="wt-notes-text">Good damage, very slow attack speed</p></div>
  </div>
  <div class="wt-row">
    <div class="wt-name"><h3 class="wt-name-text">Frostwalker</h3></div>
    <div class="wt-best"><p class="wt-best-text">Crowd control</p></div>
    <div class="wt-notes"><p class="wt-notes-text">Freeze effect strong for CC; weak raw damage</p></div>
  </div>
  <div class="wt-row">
    <div class="wt-name"><h3 class="wt-name-text">Corrupted Sword</h3></div>
    <div class="wt-best"><p class="wt-best-text">Damage builds</p></div>
    <div class="wt-notes"><p class="wt-notes-text">Hits hard; projectile speed scaling fixed in 1.0.64</p></div>
  </div>
  <div class="wt-row">
    <div class="wt-name"><h3 class="wt-name-text">Blood Magic</h3></div>
    <div class="wt-best"><p class="wt-best-text">Vlad, HP builds</p></div>
    <div class="wt-notes"><p class="wt-notes-text">HP gain rate (5%) is lower than it looks</p></div>
  </div>

  <!-- C Tier -->
  <div class="wt-tier-header tier-c">
    <div class="wt-tier-badge">C</div>
    <div class="wt-tier-desc">Avoid — community consensus bottom tier</div>
  </div>

  <div class="wt-row">
    <div class="wt-name"><h3 class="wt-name-text">Space Noodle</h3></div>
    <div class="wt-best"><p class="wt-best-text">Meme runs only</p></div>
    <div class="wt-notes"><p class="wt-notes-text">Community consensus: not worth the unlock grind</p></div>
  </div>
  <div class="wt-row">
    <div class="wt-name"><h3 class="wt-name-text">Mines</h3></div>
    <div class="wt-best"><p class="wt-best-text">Situational only</p></div>
    <div class="wt-notes"><p class="wt-notes-text">Low damage output; rarely worth a weapon slot</p></div>
  </div>
  <div class="wt-row">
    <div class="wt-name"><h3 class="wt-name-text">Chunkers</h3></div>
    <div class="wt-best"><p class="wt-best-text">Meme runs only</p></div>
    <div class="wt-notes"><p class="wt-notes-text">Knockback without the damage to back it up</p></div>
  </div>

  <div class="wt-footer">
    Megabonk weapon tier list compiled by Rogue Ranker · rogueranker.com
  </div>

</div>

</body>
</html></p>



<h3 class="wp-block-heading"><strong>Hero Sword</strong></h3>



<p class="wp-block-paragraph">The Hero Sword has good base damage, but the slow attack rate is its core problem.</p>



<p class="wp-block-paragraph">It doesn&#8217;t interact well with Attack Speed tomes, and most builds that want sword-style melee prefer the Sword (better knockback) or the Corrupted Sword (higher damage output).</p>



<p class="wp-block-paragraph">It&#8217;s worth grabbing if your alternatives are bad; not worth building around unless you&#8217;re running a Size + melee combo specifically.</p>



<h3 class="wp-block-heading"><strong>Anvil</strong></h3>



<p class="wp-block-paragraph">The Anvil is an item, not a weapon, and it&#8217;s worth flagging because it shows up in community build discussions regularly.</p>



<p class="wp-block-paragraph">Anvil upgrades a random equipped weapon; the impact is highly situational. Use it when your core weapon is already leveled and you want to push it further, not as an early-game priority.</p>



<h3 class="wp-block-heading"><strong>Bloodmark</strong></h3>



<p class="wp-block-paragraph">Bloodmark is an item that reduces enemy execution thresholds, making Dexecutioner procs happen at a higher HP percentage. If you&#8217;re running a Dexecutioner build (especially for Spooky Steve), finding Unstable Transfusion (which applies Bloodmark) is a priority. It&#8217;s the difference between executing enemies at 15% HP versus much earlier, and in boss fights that gap matters.</p>



<h2 class="wp-block-heading"><strong>Megabonk Items, Mods, and Tomes Explained</strong></h2>



<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>Megabonk Items & Tomes</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-items-tomes {
    font-family: 'Crimson Pro', Georgia, serif;
    background: #111318;
    color: #f2eedd;
    width: 100%;
    max-width: 780px;
    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-items-tomes * { box-sizing: border-box; }

  .it-topbar {
    height: 3px;
    background: linear-gradient(90deg, transparent, #FFBF00 40%, #FFBF00 60%, transparent);
  }

  .it-header {
    background: #16161f;
    border-bottom: 1px solid #32324a;
    padding: 30px 28px 26px;
    text-align: center;
  }

  .it-eyebrow {
    font-family: 'Cinzel', serif;
    font-size: 10px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: #FFBF00;
    display: block;
    margin-bottom: 10px;
  }

  .it-title {
    font-family: 'Cinzel', serif;
    font-size: clamp(17px, 3.5vw, 22px);
    font-weight: 800;
    color: #f2eedd;
    margin: 0;
    line-height: 1.2;
  }

  .it-hint {
    font-family: 'Crimson Pro', Georgia, serif;
    font-size: 13px;
    color: #80786a;
    margin-top: 10px;
    font-style: italic;
    letter-spacing: 0.02em;
  }

  /* Tabs */
  .it-tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #16161f;
    border-bottom: 1px solid #32324a;
  }

  @keyframes tab-pulse {
    0%, 100% { color: #80786a; }
    50% { color: #c8bfa0; text-shadow: 0 0 8px rgba(200,191,160,0.4); }
  }

  .it-tab {
    padding: 13px 20px;
    font-family: 'Cinzel', serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #80786a;
    text-align: center;
    cursor: pointer;
    border-right: 1px solid #32324a;
    transition: color 0.15s, background 0.15s;
    user-select: none;
    animation: tab-pulse 2.5s ease-in-out infinite;
  }

  .it-tab:last-child { border-right: none; }
  .it-tab:hover { color: #c8bfa0; animation: none; }
  .it-tab.active { color: #FFBF00; background: #111318; border-bottom: 2px solid #FFBF00; margin-bottom: -1px; animation: none; }

  /* Panels */
  .it-panel { display: none; }
  .it-panel.active { display: block; }

  /* Column headers */
  .it-col-headers-tomes {
    display: grid;
    grid-template-columns: 150px 130px 1fr 1fr;
    background: #16161f;
    border-bottom: 1px solid #32324a;
  }

  .it-col-headers-items {
    display: grid;
    grid-template-columns: 150px 130px 1fr 1fr;
    background: #16161f;
    border-bottom: 1px solid #32324a;
  }

  .it-col-header {
    padding: 11px 14px;
    font-family: 'Cinzel', serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #e8e4d8;
    border-right: 1px solid #32324a;
  }

  .it-col-header:last-child { border-right: none; }

  /* Tier section headers */
  .it-tier-header {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 10px 20px;
    border-bottom: 1px solid #32324a;
    background: #16161f;
  }

  .it-tier-badge {
    font-family: 'Cinzel', serif;
    font-size: 18px;
    font-weight: 800;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    flex-shrink: 0;
  }

  .it-tier-desc {
    font-family: 'Cinzel', serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #e8e4d8;
  }

  .tier-s .it-tier-badge { color: #111318; background: #FFBF00; }
  .tier-a .it-tier-badge { color: #111318; background: #c8bfa0; }
  .tier-b .it-tier-badge { color: #f2eedd; background: #32324a; }

  /* Rows - tomes */
  .it-row-tomes {
    display: grid;
    grid-template-columns: 150px 130px 1fr 1fr;
    border-bottom: 1px solid #1e1e2a;
    transition: background 0.15s;
  }

  /* Rows - items */
  .it-row-items {
    display: grid;
    grid-template-columns: 150px 130px 1fr 1fr;
    border-bottom: 1px solid #1e1e2a;
    transition: background 0.15s;
  }

  .it-row-tomes:last-child,
  .it-row-items:last-child { border-bottom: none; }

  .it-row-tomes:hover,
  .it-row-items:hover { background: #16161f; }

  .it-cell {
    padding: 13px 14px;
    border-right: 1px solid #1e1e2a;
    display: flex;
    align-items: center;
  }

  .it-cell:last-child { border-right: none; }

  .it-name {
    margin: 0;
    font-family: 'Crimson Pro', Georgia, serif;
    font-size: 15px;
    font-weight: 600;
    color: #e8e4d8;
    line-height: 1.3;
  }

  .it-name.is-s { color: #FFBF00; }

  .it-priority-badge {
    font-family: 'Cinzel', serif;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 3px 7px;
    border-radius: 3px;
    white-space: nowrap;
  }

  .pri-s       { color: #FFBF00; background: rgba(255,191,0,0.1);   border: 1px solid rgba(255,191,0,0.3); }
  .pri-s-holy  { color: #FFBF00; background: rgba(255,191,0,0.1);   border: 1px solid rgba(255,191,0,0.3); }
  .pri-s-adv   { color: #c8bfa0; background: rgba(200,191,160,0.1); border: 1px solid rgba(200,191,160,0.3); }
  .pri-s-steve { color: #eb5757; background: rgba(235,87,87,0.08);  border: 1px solid rgba(235,87,87,0.25); }
  .pri-a       { color: #c8bfa0; background: rgba(200,191,160,0.1); border: 1px solid rgba(200,191,160,0.25); }
  .pri-b       { color: #80786a; background: rgba(128,120,106,0.1); border: 1px solid rgba(128,120,106,0.2); }

  .it-text {
    margin: 0;
    font-size: 13px;
    color: #c8bfa0;
    line-height: 1.4;
  }

  .it-note {
    margin: 0;
    font-size: 12px;
    color: #c8bfa0;
    line-height: 1.4;
    font-style: italic;
  }

  .it-footer {
    background: #16161f;
    border-top: 1px solid #32324a;
    padding: 13px 20px;
    font-size: 13px;
    color: #80786a;
    font-style: italic;
    text-align: center;
  }

  @media (max-width: 560px) {
    .it-col-headers-tomes { grid-template-columns: 110px 110px 1fr 1fr; }
    .it-row-tomes { grid-template-columns: 110px 110px 1fr 1fr; }
    .it-col-headers-items { grid-template-columns: 110px 110px 1fr 1fr; }
    .it-row-items { grid-template-columns: 110px 110px 1fr 1fr; }
    .it-cell { padding: 11px 10px; }
    .it-name { font-size: 13px; }
    .it-text, .it-note { font-size: 11px; }
    .it-col-header { padding: 9px 10px; font-size: 9px; }
  }
</style>
</head>
<body>

<div id="rr-items-tomes">
  <div class="it-topbar"></div>

  <div class="it-header">
    <span class="it-eyebrow">Rogue Ranker · Megabonk Guide</span>
    <p class="it-title">Megabonk Items &amp; Tomes Explained</p>
    <div class="it-hint">Select a tab below to switch between Tomes and Items</div>
  </div>

  <div class="it-tabs">
    <div class="it-tab active" onclick="showPanel('tomes', this)">Tomes</div>
    <div class="it-tab" onclick="showPanel('items', this)">Items</div>
  </div>

  <!-- TOMES PANEL -->
  <div class="it-panel active" id="panel-tomes">
    <div class="it-col-headers-tomes">
      <div class="it-col-header">Tome</div>
      <div class="it-col-header">Priority</div>
      <div class="it-col-header">What It Does</div>
      <div class="it-col-header">Best For</div>
    </div>

    <div class="it-tier-header tier-s">
      <div class="it-tier-badge">S</div>
      <div class="it-tier-desc">Holy Trinity — backbone of every competitive build</div>
    </div>

    <div class="it-row-tomes">
      <div class="it-cell"><p class="it-name is-s">XP Tome</p></div>
      <div class="it-cell"><span class="it-priority-badge pri-s-holy">Holy Trinity</span></div>
      <div class="it-cell"><p class="it-text">+7% XP gain per level (cap: level 40)</p></div>
      <div class="it-cell"><p class="it-note">All leaderboard builds; engine of every competitive run</p></div>
    </div>
    <div class="it-row-tomes">
      <div class="it-cell"><p class="it-name is-s">Curse Tome</p></div>
      <div class="it-cell"><span class="it-priority-badge pri-s-holy">Holy Trinity</span></div>
      <div class="it-cell"><p class="it-text">Harder difficulty; dramatically improves drop rarity</p></div>
      <div class="it-cell"><p class="it-note">Experienced players only — deadly without a defensive base</p></div>
    </div>
    <div class="it-row-tomes">
      <div class="it-cell"><p class="it-name is-s">Luck Tome</p></div>
      <div class="it-cell"><span class="it-priority-badge pri-s-holy">Holy Trinity</span></div>
      <div class="it-cell"><p class="it-text">Improves upgrade quality at every level-up</p></div>
      <div class="it-cell"><p class="it-note">All builds; completes the Trinity feedback loop</p></div>
    </div>

    <div class="it-tier-header tier-a">
      <div class="it-tier-badge">A</div>
      <div class="it-tier-desc">Strong — character or situation-specific priorities</div>
    </div>

    <div class="it-row-tomes">
      <div class="it-cell"><p class="it-name">Cooldown Tome</p></div>
      <div class="it-cell"><span class="it-priority-badge pri-a">A</span></div>
      <div class="it-cell"><p class="it-text">+7.5% Attack Speed per level</p></div>
      <div class="it-cell"><p class="it-note">Beginners, Bandit, CL4NK; great first tome for new players</p></div>
    </div>
    <div class="it-row-tomes">
      <div class="it-cell"><p class="it-name">Attraction Tome</p></div>
      <div class="it-cell"><span class="it-priority-badge pri-a">A</span></div>
      <div class="it-cell"><p class="it-text">Increases XP pickup range</p></div>
      <div class="it-cell"><p class="it-note">Mandatory for AFK challenge; undervalued in regular runs</p></div>
    </div>
    <div class="it-row-tomes">
      <div class="it-cell"><p class="it-name">Lifesteal Tome</p></div>
      <div class="it-cell"><span class="it-priority-badge pri-a">A</span></div>
      <div class="it-cell"><p class="it-text">Heals on hit; poison DoT counts as continuous hits</p></div>
      <div class="it-cell"><p class="it-note">Vlad, sustain builds; hit 100% for near-immortality</p></div>
    </div>
    <div class="it-row-tomes">
      <div class="it-cell"><p class="it-name">Agility Tome</p></div>
      <div class="it-cell"><span class="it-priority-badge pri-a">A</span></div>
      <div class="it-cell"><p class="it-text">Movement speed</p></div>
      <div class="it-cell"><p class="it-note">Critical for Calcium; undervalued on everyone else</p></div>
    </div>
    <div class="it-row-tomes">
      <div class="it-cell"><p class="it-name">Duration Tome</p></div>
      <div class="it-cell"><span class="it-priority-badge pri-a">A</span></div>
      <div class="it-cell"><p class="it-text">Extends freeze and weapon effect duration</p></div>
      <div class="it-cell"><p class="it-note">Dexecutioner, Axe, Sword builds; stronger post-1.0.12</p></div>
    </div>
    <div class="it-row-tomes">
      <div class="it-cell"><p class="it-name">Quantity Tome</p></div>
      <div class="it-cell"><span class="it-priority-badge pri-a">A</span></div>
      <div class="it-cell"><p class="it-text">More projectiles per weapon</p></div>
      <div class="it-cell"><p class="it-note">CL4NK, Bandit, most builds; solid Curse Tome alternative for beginners</p></div>
    </div>

    <div class="it-tier-header tier-b">
      <div class="it-tier-badge">B</div>
      <div class="it-tier-desc">Situational — strong in specific builds</div>
    </div>

    <div class="it-row-tomes">
      <div class="it-cell"><p class="it-name">Size Tome</p></div>
      <div class="it-cell"><span class="it-priority-badge pri-b">B</span></div>
      <div class="it-cell"><p class="it-text">Increases weapon and AoE radius</p></div>
      <div class="it-cell"><p class="it-note">Noelle, Megachad, Aura builds</p></div>
    </div>
    <div class="it-row-tomes">
      <div class="it-cell"><p class="it-name">Shield Tome</p></div>
      <div class="it-cell"><span class="it-priority-badge pri-b">B</span></div>
      <div class="it-cell"><p class="it-text">Passive shield that recharges between waves</p></div>
      <div class="it-cell"><p class="it-note">Tank builds, AFK challenge; better than raw HP vs burst</p></div>
    </div>
  </div>

  <!-- ITEMS PANEL -->
  <div class="it-panel" id="panel-items">
    <div class="it-col-headers-items">
      <div class="it-col-header">Item</div>
      <div class="it-col-header">Priority</div>
      <div class="it-col-header">Best Builds</div>
      <div class="it-col-header">Notes</div>
    </div>

    <div class="it-tier-header tier-s">
      <div class="it-tier-badge">S</div>
      <div class="it-tier-desc">Essential — mandatory or near-mandatory in key situations</div>
    </div>

    <div class="it-row-items">
      <div class="it-cell"><p class="it-name is-s">Kevin</p></div>
      <div class="it-cell"><span class="it-priority-badge pri-s-adv">S (Advanced)</span></div>
      <div class="it-cell"><p class="it-text">Megachad, Athena</p></div>
      <div class="it-cell"><p class="it-note">Combine with Mirror; was literally game-breaking pre-patch</p></div>
    </div>
    <div class="it-row-items">
      <div class="it-cell"><p class="it-name is-s">Mirror</p></div>
      <div class="it-cell"><span class="it-priority-badge pri-s-adv">S (Advanced)</span></div>
      <div class="it-cell"><p class="it-text">Any with Kevin</p></div>
      <div class="it-cell"><p class="it-note">Invulnerability on damage; Kevin + Mirror core combo</p></div>
    </div>
    <div class="it-row-items">
      <div class="it-cell"><p class="it-name is-s">Boss Buster</p></div>
      <div class="it-cell"><span class="it-priority-badge pri-s">S</span></div>
      <div class="it-cell"><p class="it-text">Any boss-focused build</p></div>
      <div class="it-cell"><p class="it-note">+15% boss/elite damage; essentially mandatory for Spooky Steve</p></div>
    </div>
    <div class="it-row-items">
      <div class="it-cell"><p class="it-name is-s">Aegis Shield</p></div>
      <div class="it-cell"><span class="it-priority-badge pri-s">S</span></div>
      <div class="it-cell"><p class="it-text">Most builds</p></div>
      <div class="it-cell"><p class="it-note">Consistent damage block; one tick absorbs a full hit</p></div>
    </div>
    <div class="it-row-items">
      <div class="it-cell"><p class="it-name is-s">Za Warudo</p></div>
      <div class="it-cell"><span class="it-priority-badge pri-s-steve">S (Steve)</span></div>
      <div class="it-cell"><p class="it-text">Graveyard runs</p></div>
      <div class="it-cell"><p class="it-note">Legendary; freezes time on fatal damage</p></div>
    </div>

    <div class="it-tier-header tier-a">
      <div class="it-tier-badge">A</div>
      <div class="it-tier-desc">Strong — high value in specific builds or challenges</div>
    </div>

    <div class="it-row-items">
      <div class="it-cell"><p class="it-name">Campfire</p></div>
      <div class="it-cell"><span class="it-priority-badge pri-a">A</span></div>
      <div class="it-cell"><p class="it-text">AFK, tank builds</p></div>
      <div class="it-cell"><p class="it-note">Passive HP regen; crucial when you can't dodge</p></div>
    </div>
    <div class="it-row-items">
      <div class="it-cell"><p class="it-name">Idle Juice</p></div>
      <div class="it-cell"><span class="it-priority-badge pri-a">A</span></div>
      <div class="it-cell"><p class="it-text">AFK challenge</p></div>
      <div class="it-cell"><p class="it-note">Doubles damage while standing still</p></div>
    </div>
    <div class="it-row-items">
      <div class="it-cell"><p class="it-name">Joe's Dagger</p></div>
      <div class="it-cell"><span class="it-priority-badge pri-a">A</span></div>
      <div class="it-cell"><p class="it-text">Attack speed builds</p></div>
      <div class="it-cell"><p class="it-note">Capped at 2,000% post-patch; still strong</p></div>
    </div>
    <div class="it-row-items">
      <div class="it-cell"><p class="it-name">Gym Sauce</p></div>
      <div class="it-cell"><span class="it-priority-badge pri-a">A</span></div>
      <div class="it-cell"><p class="it-text">DPS scaling</p></div>
      <div class="it-cell"><p class="it-note">Base damage multiplier</p></div>
    </div>
    <div class="it-row-items">
      <div class="it-cell"><p class="it-name">Leeching Crystal</p></div>
      <div class="it-cell"><span class="it-priority-badge pri-a">A</span></div>
      <div class="it-cell"><p class="it-text">Vlad, lifesteal builds</p></div>
      <div class="it-cell"><p class="it-note">Collect three to unlock Kevin</p></div>
    </div>
  </div>

  <div class="it-footer">
    Megabonk items &amp; tomes compiled by Rogue Ranker · rogueranker.com
  </div>
</div>

<script>
  function showPanel(id, tab) {
    document.querySelectorAll('.it-panel').forEach(p => p.classList.remove('active'));
    document.querySelectorAll('.it-tab').forEach(t => t.classList.remove('active'));
    document.getElementById('panel-' + id).classList.add('active');
    tab.classList.add('active');
  }
</script>

</body>
</html></p>



<h3 class="wp-block-heading"><strong>Tomes</strong></h3>



<p class="wp-block-paragraph">Tomes are your long-term scaling mechanism. Each one levels up individually and compounds across a run. The three Holy Trinity tomes (XP, Curse, Luck) form the backbone of every competitive build; the rest are character or situation-specific.</p>



<p class="wp-block-paragraph"><strong>Do not run Holy Trinity as a beginner.</strong> The difficulty spike from Curse Tome without defensive foundations leads to deaths before the build even comes online.</p>



<h3 class="wp-block-heading"><strong>Items to Know</strong></h3>



<p class="wp-block-paragraph">A few items that get flagged across guides and Steam threads:</p>



<ul class="wp-block-list">
<li><strong>Kevin:</strong> &#8220;25% chance to punch yourself on hit (cannot kill you).&#8221; Sounds bad; combined with Mirror, creates near-invincibility through damage reflection. The immortality exploit was patched; the combo is still elite-tier defensive.</li>



<li><strong>Mirror:</strong> Reflects damage to enemies when you take damage. The Kevin + Mirror core.</li>



<li><strong>Boss Buster:</strong> +15% damage against bosses and elites. Essentially mandatory for Spooky Steve.</li>



<li><strong>Joe&#8217;s Dagger:</strong> Attack-speed scaling item; was uncapped and broke leaderboards pre-patch, now capped at 2,000% per dagger. Still strong.</li>



<li><strong>Za Warudo:</strong> Legendary item that freezes time on fatal damage. Required by some players for Spooky Steve runs.</li>



<li><strong>Campfire:</strong> Generates passive health regen; crucial for AFK builds where you can&#8217;t dodge.</li>



<li><strong>Idle Juice:</strong> Doubles damage while standing still. The AFK challenge&#8217;s dream item.</li>
</ul>



<h3 class="wp-block-heading"><strong>Mods</strong></h3>



<p class="wp-block-paragraph">Modding is in early stages for Megabonk given how recently it launched, but the community has already produced a few notable projects.</p>



<p class="wp-block-paragraph">The most-discussed mod is Bonk With Friends, which adds online co-op via Steam P2P lobbies. It&#8217;s unofficial and imperfect; synchronization is functional but buggy. It&#8217;s the only way to play with others until (or if) the developer adds native multiplayer.</p>



<p class="wp-block-paragraph">If mods are your thing, the Megabonk Steam community hub is where that conversation lives.</p>



<h2 class="wp-block-heading"><strong>Megabonk Multiplayer Tips</strong></h2>



<p class="wp-block-paragraph">Megabonk is single-player only as of the current version.</p>



<p class="wp-block-paragraph">The developer (Vedinad) has noted in community discussions that multiplayer is not currently planned, though it may be explored later if it fits the design. Right now, there&#8217;s no built-in co-op, online play, or PvP.</p>



<p class="wp-block-paragraph">The only current way to play with others is the unofficial <strong>Bonk With Friends</strong> mod, which adds co-op via Steam P2P lobbies. Synchronization of movement and map seeds works in current versions; it&#8217;s rough around the edges and not native, so use it at your own risk.</p>



<h3 class="wp-block-heading"><strong>Megabonk AFK Challenge</strong></h3>



<p class="wp-block-paragraph">The AFK Gaming Challenge is exactly what it sounds like: reach the Final Swarm without moving or jumping. It&#8217;s one of the hardest challenges in the game, alongside Pacifist mode, and the community has figured out a few consistent approaches.</p>



<p class="wp-block-paragraph">The core problem is XP collection. If you can&#8217;t move, most XP orbs will be out of reach unless you have Attraction Tome early.</p>



<p class="wp-block-paragraph">The near-universal community advice: if you don&#8217;t get Attraction Tome by level 3-4, restart. It&#8217;s that important.</p>



<p class="wp-block-paragraph">Best AFK challenge setup (community consensus from Steam discussions and multiple guides):</p>



<ul class="wp-block-list">
<li><strong>Character:</strong> Megachad (Aura + Flex passive is tailor-made for this; <a href="https://rogueranker.com/athena-build-megabonk/">Athena is a strong alternative</a> because enemies pushing her toward chests via Aegis shockwave is actually useful)</li>



<li><strong>Weapons:</strong> Aura (mandatory), Aegis, Sword/Axe for knockback</li>



<li><strong>Tomes:</strong> Attraction first, then Shield, then Knockback/Projectiles for damage</li>



<li><strong>Key items:</strong> Campfire (passive regen), Idle Juice (double damage while stationary), Boss Buster</li>
</ul>



<p class="wp-block-paragraph">One Steam user (u/TerraSleet) put it clearly: Aegis is mandatory for punting away elites and bosses that get too close, especially the stone golem&#8217;s ground attacks.</p>



<p class="wp-block-paragraph">The Attraction Tome is mandatory, or you don&#8217;t collect enough XP to reach the power level needed to survive the mid-game mini-bosses. And the RNG on your first few upgrade choices can make or break the entire run before you&#8217;ve had a chance to do anything about it.</p>



<p class="wp-block-paragraph">Expect to restart frequently. That&#8217;s just how it goes.</p>



<h2 class="wp-block-heading"><strong>How to Beat Spooky Steve in Megabonk</strong></h2>



<p class="wp-block-paragraph">Spooky Steve is a secret boss found in the Graveyard map, added in the Spooky Halloween update.</p>



<p class="wp-block-paragraph">He unlocks the character <a href="https://rogueranker.com/roberto-build-megabonk/">Roberto</a> and represents the hardest single-target encounter in the game by a significant margin.</p>



<p class="wp-block-paragraph">His health sits at approximately 340 undecillion HP, he moves faster as the fight progresses, and a single unblocked hit will often one-shot you regardless of how tanky your build is.</p>



<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-Megabonk-Tips-Spooky-Steve.png" alt="Megabonk Spooky Steve boss encounter inside the Crypt on the Graveyard map. Steve is a large glowing pink ghost with a health bar showing 340.3Ud / 340.3Ud HP." class="wp-image-759" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Megabonk-Tips-Spooky-Steve.png 700w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Megabonk-Tips-Spooky-Steve-300x140.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>



<p class="has-text-align-center wp-block-paragraph"><a href="https://progameguides.com/megabonk/how-to-defeat-spooky-steve-in-megabonk/">Source</a></p>



<h3 class="wp-block-heading"><strong>Getting to Spooky Steve</strong></h3>



<p class="wp-block-paragraph">You first need to unlock the Graveyard map by defeating &#8220;the undead boss&#8221; on Desert Tier 2 with Calcium.</p>



<p class="wp-block-paragraph">Once unlocked, runs on Graveyard begin inside a Crypt. Collect four Crypt Keys by activating four coffins scattered across the map; each coffin spawns a boss you have to defeat to get the key.</p>



<p class="wp-block-paragraph">After collecting all four, re-enter the Crypt for the second time to face Spooky Steve before the final Big Bob boss.</p>



<p class="wp-block-paragraph">Fully loot the Graveyard and first Crypt before entering. Those six chests and 19 pots are a huge advantage, and players who rush the second Crypt without farming them consistently struggle in the fight.</p>



<h3 class="wp-block-heading"><strong>The Core Strategy</strong></h3>



<p class="wp-block-paragraph">There are two proven approaches the community has documented. Which one works depends on your build, your RNG, and how comfortable you are with the fight.</p>



<p class="wp-block-paragraph"><strong>Strategy 1: Perma-Freeze (most common)</strong></p>



<p class="wp-block-paragraph">Stun Steve continuously and use Dexecutioner&#8217;s Execute ability to deal meaningful damage. Steve has so much HP that raw damage builds do nothing on their own; Execute mechanics bypass the HP scaling.</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>Megabonk Spooky Steve Strategy</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-steve {
    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-steve * { box-sizing: border-box; }

  .sv-topbar {
    height: 3px;
    background: linear-gradient(90deg, transparent, #FFBF00 40%, #FFBF00 60%, transparent);
  }

  .sv-header {
    background: #16161f;
    border-bottom: 1px solid #32324a;
    padding: 30px 28px 26px;
    text-align: center;
  }

  .sv-eyebrow {
    font-family: 'Cinzel', serif;
    font-size: 10px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: #FFBF00;
    display: block;
    margin-bottom: 10px;
  }

  .sv-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;
  }

  .sv-subtitle {
    font-family: 'Crimson Pro', Georgia, serif;
    font-size: 13px;
    color: #FFBF00;
    margin-top: 8px;
    letter-spacing: 0.05em;
    font-style: italic;
  }

  .sv-col-headers {
    display: grid;
    grid-template-columns: 120px 160px 1fr;
    background: #16161f;
    border-bottom: 1px solid #32324a;
  }

  .sv-col-header {
    padding: 11px 16px;
    font-family: 'Cinzel', serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #e8e4d8;
    border-right: 1px solid #32324a;
  }

  .sv-col-header:last-child { border-right: none; }

  /* Section dividers */
  .sv-section {
    padding: 9px 16px;
    font-family: 'Cinzel', serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: #FFBF00;
    background: #16161f;
    border-bottom: 1px solid #32324a;
  }

  .sv-row {
    display: grid;
    grid-template-columns: 120px 160px 1fr;
    border-bottom: 1px solid #1e1e2a;
    transition: background 0.15s;
  }

  .sv-row:last-child { border-bottom: none; }
  .sv-row:hover { background: #16161f; }

  .sv-cell {
    padding: 13px 16px;
    border-right: 1px solid #1e1e2a;
    display: flex;
    align-items: center;
  }

  .sv-cell:last-child { border-right: none; }

  .sv-slot {
    margin: 0;
    font-family: 'Cinzel', serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #80786a;
    line-height: 1.35;
  }

  .sv-pick {
    margin: 0;
    font-family: 'Crimson Pro', Georgia, serif;
    font-size: 16px;
    font-weight: 600;
    color: #FFBF00;
    line-height: 1.3;
  }

  .sv-pick.is-neutral {
    color: #e8e4d8;
  }

  .sv-pick-note {
    margin: 3px 0 0;
    font-size: 12px;
    color: #80786a;
    font-style: italic;
    line-height: 1.35;
  }

  .sv-why {
    margin: 0;
    font-size: 14px;
    color: #c8bfa0;
    line-height: 1.45;
  }

  .sv-mandatory {
    display: inline-block;
    font-family: 'Cinzel', serif;
    font-size: 8px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 2px 6px;
    border-radius: 3px;
    color: #eb5757;
    background: rgba(235,87,87,0.08);
    border: 1px solid rgba(235,87,87,0.25);
    margin-bottom: 4px;
    display: block;
    width: fit-content;
  }

  .sv-optional {
    display: inline-block;
    font-family: 'Cinzel', serif;
    font-size: 8px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 2px 6px;
    border-radius: 3px;
    color: #80786a;
    background: rgba(128,120,106,0.1);
    border: 1px solid rgba(128,120,106,0.2);
    margin-bottom: 4px;
    display: block;
    width: fit-content;
  }

  .sv-footer {
    background: #16161f;
    border-top: 1px solid #32324a;
    padding: 13px 20px;
    font-size: 13px;
    color: #80786a;
    font-style: italic;
    text-align: center;
  }

  @media (max-width: 520px) {
    .sv-col-headers { grid-template-columns: 90px 130px 1fr; }
    .sv-row { grid-template-columns: 90px 130px 1fr; }
    .sv-col-header { padding: 9px 10px; font-size: 9px; }
    .sv-cell { padding: 11px 10px; }
    .sv-slot { font-size: 10px; }
    .sv-pick { font-size: 14px; }
    .sv-why { font-size: 12px; }
  }
</style>
</head>
<body>

<div id="rr-steve">
  <div class="sv-topbar"></div>

  <div class="sv-header">
    <span class="sv-eyebrow">Rogue Ranker · Megabonk Guide</span>
    <p class="sv-title">How to Beat Spooky Steve</p>
    <div class="sv-subtitle">Strategy 1: Perma-Freeze (most common)</div>
  </div>

  <div class="sv-col-headers">
    <div class="sv-col-header">Slot</div>
    <div class="sv-col-header">Pick</div>
    <div class="sv-col-header">Why</div>
  </div>

  <div class="sv-section">Character</div>

  <div class="sv-row">
    <div class="sv-cell"><p class="sv-slot">Character</p></div>
    <div class="sv-cell">
      <div>
        <p class="sv-pick">Bandit</p>
        <p class="sv-pick-note">or Athena</p>
      </div>
    </div>
    <div class="sv-cell"><p class="sv-why">Bandit's Flowstate passive increases Attack Speed per level, directly scaling Dexecutioner proc rate. Athena's Aegis gives damage immunity windows as a fallback.</p></div>
  </div>

  <div class="sv-section">Weapons</div>

  <div class="sv-row">
    <div class="sv-cell"><p class="sv-slot">Weapon 1</p></div>
    <div class="sv-cell">
      <div>
        <span class="sv-mandatory">Mandatory</span>
        <p class="sv-pick">Dexecutioner</p>
      </div>
    </div>
    <div class="sv-cell"><p class="sv-why">Execute ability is the only meaningful damage source against Steve's 340 undecillion HP. Without it, the fight is unwinnable.</p></div>
  </div>

  <div class="sv-row">
    <div class="sv-cell"><p class="sv-slot">Weapon 2</p></div>
    <div class="sv-cell"><p class="sv-pick">Black Hole</p></div>
    <div class="sv-cell"><p class="sv-why">Pulls Steve into position and holds him in place for freeze and Execute to land consistently.</p></div>
  </div>

  <div class="sv-row">
    <div class="sv-cell"><p class="sv-slot">Weapon 3</p></div>
    <div class="sv-cell"><p class="sv-pick">Frostwalker</p></div>
    <div class="sv-cell"><p class="sv-why">Freezes Steve in place. Pairs with Duration Tome to extend stun uptime as long as possible.</p></div>
  </div>

  <div class="sv-row">
    <div class="sv-cell"><p class="sv-slot">Weapon 4</p></div>
    <div class="sv-cell">
      <div>
        <span class="sv-optional">Optional</span>
        <p class="sv-pick is-neutral">Dragon's Breath or Katana</p>
      </div>
    </div>
    <div class="sv-cell"><p class="sv-why">Extra DPS while Steve is frozen. Either works; take whichever you can get.</p></div>
  </div>

  <div class="sv-section">Tomes &amp; Items</div>

  <div class="sv-row">
    <div class="sv-cell"><p class="sv-slot">Tomes</p></div>
    <div class="sv-cell"><p class="sv-pick is-neutral">XP, Cooldown, Duration, Quantity</p></div>
    <div class="sv-cell"><p class="sv-why">Duration extends the freeze window. Quantity means more projectiles proc Execute per second.</p></div>
  </div>

  <div class="sv-row">
    <div class="sv-cell"><p class="sv-slot">Key Items</p></div>
    <div class="sv-cell"><p class="sv-pick is-neutral">Boss Buster, Ice Crystal, Thunder Mitts, Za Warudo</p></div>
    <div class="sv-cell"><p class="sv-why">CC stacking keeps Steve frozen. Boss Buster amplifies all damage dealt. Za Warudo is a lifesaver if stun drops.</p></div>
  </div>

  <div class="sv-footer">
    Strategy credited to Megabonk Reddit user Jeidoz · compiled by Rogue Ranker
  </div>

</div>

</body>
</html></p>



<p class="wp-block-paragraph">Black Hole pulls Steve into position. Frostwalker freezes him. Dexecutioner procs Execute while he&#8217;s stunned. Duration Tome extends the freeze window. Quantity Tome means more projectiles proc Execute per second. Once you cross around 20% HP removed, the rest of the fight accelerates quickly.</p>



<p class="wp-block-paragraph">One community Steam guide (credited to Megabonk Reddit user Jeidoz) documented the full Bandit run and it&#8217;s the most widely replicated success strategy in the threads.</p>



<p class="wp-block-paragraph"><strong>Strategy 2: Hit Negation + High DPS</strong></p>



<p class="wp-block-paragraph">Some players have beaten Steve without perma-freeze by stacking hit negation mechanics (Aegis, Kevin + Mirror, Za Warudo) to survive his one-shot hits, then dealing enough raw DPS with a maxed Dexecutioner to kill him before the fight becomes unmanageable. This requires a more developed build and better item RNG, but it&#8217;s a legitimate alternative if your freeze setup doesn&#8217;t come together.</p>



<h3 class="wp-block-heading"><strong>The Part People Miss</strong></h3>



<p class="wp-block-paragraph">Spooky Steve doesn&#8217;t have a fixed spawn location; you have to find him after entering the second Crypt.</p>



<p class="wp-block-paragraph">He also scales in speed during the fight, so if your stun uptime drops, he will catch you. Corners and walls are dangerous; he can push you through them in some versions of the game, which counts as a death.</p>



<h2 class="wp-block-heading"><strong>Megabonk Meta: What&#8217;s Working Right Now</strong></h2>



<p class="wp-block-paragraph"><em>This section is based on version 1.0.64 and community discussion through early 2026. Patch notes for the most recent updates are on the </em><a href="https://store.steampowered.com/app/3405340/Megabonk/"><em>Megabonk Steam page</em></a><em>.</em></p>



<p class="wp-block-paragraph">The meta has gone through three distinct phases since launch:</p>



<ol class="wp-block-list">
<li><strong>Launch (September 2025):</strong> Dicehead dominates at 99% leaderboard representation. Kevin + Mirror immortality exploit is functional. Joe&#8217;s Dagger uncapped, enabling absurd damage scaling.</li>



<li><strong>Post-patch (1.0.7 to 1.0.12):</strong> Immortality patched. Kevin + Mirror nerfed to &#8220;elite survivability.&#8221; XP Tome nerfed from 9% to 7% (max level 40). Joe&#8217;s Dagger capped at 2,000%. Final Swarm overhaul kills 5-hour marathon sessions. Character diversity dramatically increases.</li>



<li><strong>Current (1.0.64):</strong> Dexecutioner, Axe, and Sword builds unlocked by duration bug fix. Black Hole size increased. Bone and Shotgun received knockback and crit upgrades. Eight viable S/A-tier characters instead of one.</li>
</ol>



<p class="wp-block-paragraph"><strong>What&#8217;s actually working now:</strong></p>



<ul class="wp-block-list">
<li><strong>Holy Trinity</strong> (XP + Curse + Luck) remains the meta foundation for competitive runs. Standard and expected at Tier 3.</li>



<li><strong>Dicehead</strong> is still the strongest individual character, but nerfs are publicly discussed. His Gamba passive (unlimited crit via Dice) is the closest thing to a dominant solo pick in the current patch.</li>



<li><strong>Bandit</strong> has climbed significantly post-1.0.64 due to the Dexecutioner duration fix. Attack Speed scaling makes him terrifying in mid-to-late game.</li>



<li><strong>Leaderboards</strong> were reset after the Kevin immortality patch and now reflect skill-based rather than exploit-based runs.</li>
</ul>



<p class="wp-block-paragraph">The biggest current debate in Steam discussions is whether the meta is too rigid.</p>



<p class="wp-block-paragraph">One review noted the build paths feel constrained toward the Holy Trinity and specific weapon combos. It&#8217;s a fair criticism and the community is split on it.</p>



<p class="wp-block-paragraph">For what it&#8217;s worth, Vedinad has been responsive to feedback throughout; this game shipped at $10 and has already received multiple substantial free content updates.</p>



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



<p class="wp-block-paragraph">Here are some frequently asked questions I stumbled upon while researching this topic and writing the guide.</p>



<h3 class="wp-block-heading"><strong>What Is Megabonk?</strong></h3>



<p class="wp-block-paragraph">Megabonk is a 3D roguelite auto-shooter developed by solo developer Vedinad, released on Steam on September 18, 2025.</p>



<p class="wp-block-paragraph">Players navigate procedurally generated 3D maps with verticality, fighting waves of enemies while automatically attacking and selecting random upgrades to build out a character.</p>



<p class="wp-block-paragraph">It&#8217;s best described as Vampire Survivors meets Risk of Rain 2; same auto-combat bullet heaven loop, but with 3D movement, sliding, jumping, and speed boosts for positioning.</p>



<p class="wp-block-paragraph">It sold over one million copies in two weeks and peaked at 117,336 concurrent players.</p>



<h3 class="wp-block-heading"><strong>Is Megabonk Multiplayer?</strong></h3>



<p class="wp-block-paragraph">No, Megabonk is currently single-player only, and the developer has said multiplayer is not planned for the near future, though it may be explored later.</p>



<p class="wp-block-paragraph">An unofficial community mod called &#8220;Bonk With Friends&#8221; adds experimental Steam P2P co-op, but it&#8217;s not native and has synchronization issues.</p>



<h3 class="wp-block-heading"><strong>What Is the Best Build in Megabonk?</strong></h3>



<p class="wp-block-paragraph">The most universally recommended meta build is the Holy Trinity (XP Tome + Curse Tome + Luck Tome) as your tome foundation, paired with your character&#8217;s core weapon and passive-synergistic items.</p>



<p class="wp-block-paragraph">For beginners, skip the Holy Trinity and run a defensive build with Aura or Aegis and Shield or HP Tomes until you&#8217;re comfortable.</p>



<p class="wp-block-paragraph">For leaderboard runs, Holy Trinity + Dicehead or Bandit with Dexecutioner is the current community answer.</p>



<h3 class="wp-block-heading"><strong>What Is the Best Character in Megabonk?</strong></h3>



<p class="wp-block-paragraph"><a href="https://rogueranker.com/dicehead-build-megabonk/">Dicehead is the strongest character</a> in the current patch. His Gamba passive lets Dice rolls of 6 permanently increase crit chance, and that stacks indefinitely.</p>



<p class="wp-block-paragraph">CL4NK, Robinette, and Megachad are strong alternatives with more consistent (and less RNG-dependent) scaling.</p>



<p class="wp-block-paragraph">For beginners, Sir Oofie and Fox are the community&#8217;s top recommendations.</p>



<h3 class="wp-block-heading"><strong>What Platforms is Megabonk On?</strong></h3>



<p class="wp-block-paragraph">Megabonk is available on PC (Windows and Linux) via Steam. There are no console or mobile versions currently planned.</p>



<p class="wp-block-paragraph">The developer has mentioned console and Steam Deck compatibility as potential future considerations, but nothing is confirmed.</p>



<h3 class="wp-block-heading"><strong>How Do You Beat Spooky Steve in Megabonk?</strong></h3>



<p class="wp-block-paragraph">The most common community approach: use Bandit or Athena, equip Dexecutioner, Black Hole, and Frostwalker, and run Cooldown, Duration, Quantity, and XP Tomes.</p>



<p class="wp-block-paragraph">Grab Boss Buster and as many CC items (Ice Crystal, Thunder Mitts, Za Warudo if you can find it) as possible. Black Hole pulls Steve into position, Frostwalker freezes him, and Dexecutioner&#8217;s Execute ability deals the primary damage against his 340 undecillion HP.</p>



<p class="wp-block-paragraph">Some players have also beaten him using hit negation builds (Kevin + Mirror, Aegis, Za Warudo) with high raw DPS. See the full breakdown in the Spooky Steve section above.</p>



<h3 class="wp-block-heading"><strong>Is Megabonk on Xbox?</strong></h3>



<p class="wp-block-paragraph">No, Megabonk is not currently available on Xbox. It is PC-only (Windows and Linux via Steam) at the time of writing.</p>



<p class="wp-block-paragraph">The developer has mentioned console support as a potential future consideration, but nothing has been confirmed or announced.</p>



<h3 class="wp-block-heading"><strong>Is Megabonk on PS5?</strong></h3>



<p class="wp-block-paragraph">No, Megabonk is not on PS5. There is no PlayStation version currently planned.</p>



<p class="wp-block-paragraph">If console support is added in the future, Vedinad has said it may be explored; check the <a href="https://store.steampowered.com/app/3405340/Megabonk/">Megabonk Steam page</a> for official announcements.</p>



<h3 class="wp-block-heading"><strong>Is Megabonk on Console?</strong></h3>



<p class="wp-block-paragraph">Megabonk is not currently available on any console. It is a PC-exclusive title (Windows and Linux) as of the current version.</p>



<p class="wp-block-paragraph">Console and Steam Deck compatibility have been mentioned as possibilities, but no release date or platform announcement has been made.</p>



<h3 class="wp-block-heading"><strong>Is Megabonk Free?</strong></h3>



<p class="wp-block-paragraph">No, Megabonk is not free. It is priced at $9.99 on Steam.</p>



<p class="wp-block-paragraph">A free demo is available on Steam, which gives you a limited slice of the game to test performance and core combat before buying.</p>



<h3 class="wp-block-heading"><strong>How Much Is Megabonk?</strong></h3>



<p class="wp-block-paragraph">Megabonk costs $9.99 on Steam. There are no paid editions, DLC, or microtransactions.</p>



<p class="wp-block-paragraph">The developer has run introductory discounts at launch; check the Steam page for current pricing in your region.</p>



<h3 class="wp-block-heading"><strong>Who Made Megabonk?</strong></h3>



<p class="wp-block-paragraph">Megabonk was made by a solo developer who goes by<a href="https://www.youtube.com/@Vedinad"> Vedinad</a>. The entire game was built by one person.</p>



<p class="wp-block-paragraph">It was released on September 18, 2025 and sold over one million copies in its first two weeks, making it one of the most successful solo indie launches of 2025.</p>



<h3 class="wp-block-heading"><strong>What Does Difficulty Do in Megabonk?</strong></h3>



<p class="wp-block-paragraph">Difficulty in Megabonk (increased primarily through the Curse Tome and Difficulty shrines) raises enemy spawn rate, enemy HP, and damage, while significantly improving drop quality and upgrade rarity.</p>



<p class="wp-block-paragraph">The tradeoff is the core of high-level play: harder difficulty means better loot, but you need the build foundation to survive long enough to benefit from it.</p>



<h3 class="wp-block-heading"><strong>What Does Luck Do in Megabonk?</strong></h3>



<p class="wp-block-paragraph">Luck improves the quality of upgrade choices at every level-up, increasing the chances of seeing Epic and Legendary options instead of Common and Rare ones.</p>



<p class="wp-block-paragraph">It&#8217;s one of the highest-priority stats in the game.</p>



<h3 class="wp-block-heading"><strong>What Does Size Do in Megabonk?</strong></h3>



<p class="wp-block-paragraph">Size increases the radius of weapon effects and AoE attacks.</p>



<p class="wp-block-paragraph">For characters like Noelle whose Frostwalker ring scales with size, it&#8217;s a core stat; for others, it&#8217;s a secondary quality-of-life upgrade.</p>



<p class="wp-block-paragraph">The Size Tome is particularly important for Aura and Megachad builds, where a wider damage field covers more ground without requiring active positioning.</p>



<h3 class="wp-block-heading"><strong>How Do You Get The Hero Sword in Megabonk?</strong></h3>



<p class="wp-block-paragraph">The Hero Sword is an unlockable weapon, not available by default. It can be unlocked through the Silver shop or specific quest/challenge completion; check the in-game Unlocks tab for the exact current requirement.</p>



<p class="wp-block-paragraph">Once unlocked, it appears in your regular weapon rotation during runs.</p>



<p class="wp-block-paragraph">Note that it&#8217;s a B-tier weapon at best; the slow attack rate limits its synergy with most builds. See the Hero Sword section above for the full breakdown.</p>



<h3 class="wp-block-heading"><strong>What Does Bloodmark Do in Megabonk?</strong></h3>



<p class="wp-block-paragraph">Bloodmark is a debuff applied to enemies that lowers their execution threshold, making Dexecutioner&#8217;s Execute proc trigger at a higher HP percentage rather than waiting for enemies to be nearly dead.</p>



<p class="wp-block-paragraph">It&#8217;s applied by the item Unstable Transfusion and is particularly important for the Spooky Steve fight, where getting Execute to proc earlier is the difference between winning and losing. See the Bloodmark section above for more detail.</p>



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



<p class="wp-block-paragraph">Megabonk is the kind of game that snuck up on the entire roguelite community at once.</p>



<p class="wp-block-paragraph">If you&#8217;re looking for more context on where it sits in the genre, my <a href="https://rogueranker.com/roguelike-vs-roguelite/">Roguelike vs. Roguelite breakdown</a> and <a href="https://rogueranker.com/bullet-heaven-vs-bullet-hell/">Bullet Heaven vs. Bullet Hell guide</a> both cover the genre that made Megabonk possible.</p>



<p class="wp-block-paragraph">And if you want a list of games to play when you eventually need a break from bonking, my <a href="https://rogueranker.com/games-like-brotato/">Games Like Brotato article</a> covers the genre&#8217;s best by real community vote count.</p>



<p class="wp-block-paragraph">If you&#8217;ve beaten Spooky Steve or cracked a build that doesn&#8217;t show up here, let me know. The community&#8217;s figured out some genuinely weird solutions, and I&#8217;d rather hear about them than miss them.</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/megabonk-tips/">(Top 10) Megabonk Tips and Tricks From Reddit (Plus Extras)</a> appeared first on <a href="https://rogueranker.com">Rogue Ranker</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<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 loading="lazy" 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 loading="lazy" 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 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.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>(Top 57) Best Bullet Heaven Games &#8211; 1652 Reddit Votes</title>
		<link>https://rogueranker.com/best-bullet-heaven-games/</link>
		
		<dc:creator><![CDATA[Steven]]></dc:creator>
		<pubDate>Sun, 08 Mar 2026 04:13:05 +0000</pubDate>
				<category><![CDATA[Bullet Heaven]]></category>
		<guid isPermaLink="false">https://rogueranker.com/?p=498</guid>

					<description><![CDATA[<p>Most of the top bullet heaven game lists circulating the internet are trash.&#160; Not because suggestions are bad, mainly because Reddit is sort of random: whoever comments early gets upvoted, and that comment gets &#8220;pinned.&#8221;&#160; If you read my Games Like Brotato article, you&#8217;ll know that I spent some time reading through over a dozen [&#8230;]</p>
<p>The post <a href="https://rogueranker.com/best-bullet-heaven-games/">(Top 57) Best Bullet Heaven Games &#8211; 1652 Reddit Votes</a> appeared first on <a href="https://rogueranker.com">Rogue Ranker</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Most of the top bullet heaven game lists circulating the internet are trash.&nbsp;</p>



<p class="wp-block-paragraph">Not because suggestions are bad, mainly because Reddit is sort of random: whoever comments early gets upvoted, and that comment gets &#8220;pinned.&#8221;&nbsp;</p>



<p class="wp-block-paragraph">If you read my <a href="https://rogueranker.com/games-like-brotato/">Games Like Brotato</a> article, you&#8217;ll know that I spent some time reading through over a dozen threads, tallying votes (painful, I know), just to understand what &#8220;best&#8221; meant.&nbsp;</p>



<p class="wp-block-paragraph">So here I am, back at it. I read through 15 threads, collected 1,652 upvotes, and summarized data to determine the best bullet heaven games, ranked by the community.</p>



<p class="wp-block-paragraph">Not sure which game to choose? Take our quiz below <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>



<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>What Bullet Heaven 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;
  }

  /* Force everything inside to respect container width */
  #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;
  }

  /* letter / checkmark badge */
  .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;
  }

  /* Reveal banner */
  .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 */
  .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);
  }

  /* Rank-1 special treatment */
  .result-card.rank-1 {
    border-color: var(--accent);
  }

  .result-card.rank-1:hover {
    box-shadow: 0 4px 32px rgba(255,191,0,0.15);
  }

  /* Top accent bar */
  .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;
  }

  /* Rank header row */
  .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 & small desktop ── */
  @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; }
    .score-bar-bg { height: 6px; }
    .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 · 57 Games Analyzed</span>
    <h2 class="quiz-title">What Bullet Heaven Game Should I Play Next?</h2>
    <p class="quiz-subtitle">10 questions. Matched to 57 community-ranked games.</p>
  </div>
  <div id="quiz-body"></div>
</div>

<script>
// ─────────────────────────────────────────────
//  QUIZ DATA
// ─────────────────────────────────────────────

const questions = [
  {
    id: "q1",
    text: "How much time do you have for a single run?",
    options: [
      { label: "Quick — under 20 minutes",       tags: ["short_runs"] },
      { label: "Medium — 20 to 40 minutes",       tags: ["medium_runs"] },
      { label: "Long — 40 minutes to an hour+",   tags: ["long_runs"] },
      { label: "I don't care, just hook me",       tags: ["any_length"] }
    ]
  },
  {
    id: "q2",
    text: "What kind of power fantasy speaks to you most?",
    options: [
      { label: "I want to become an unstoppable damage machine", tags: ["auto_attack", "power_scale"] },
      { label: "I want to command an army that fights for me",   tags: ["minions", "passive"] },
      { label: "I want to aim, shoot, and feel like a gunslinger", tags: ["manual_aim", "skill_based"] },
      { label: "I want to build a bizarre combo of weird synergies", tags: ["synergy_deep", "build_variety"] }
    ]
  },
  {
    id: "q3",
    text: "How important is the visual/audio atmosphere to you?",
    options: [
      { label: "I want something dark, eerie, and unsettling",        tags: ["dark_atmosphere"] },
      { label: "I want something goofy and lighthearted",             tags: ["goofy"] },
      { label: "I want a polished, high-production look",             tags: ["polished_visuals"] },
      { label: "I don't care — just give me deep gameplay",           tags: ["gameplay_first"] }
    ]
  },
  {
    id: "q4",
    text: "How do you feel about meta progression (persistent unlocks between runs)?",
    options: [
      { label: "Essential — I need something to grind toward",     tags: ["meta_progression"] },
      { label: "Nice to have, but not required",                    tags: ["light_meta"] },
      { label: "I want each run to stand on its own",              tags: ["run_focused"] },
      { label: "I want RPG-level gear and persistent upgrades",    tags: ["rpg_depth", "meta_progression"] }
    ]
  },
  {
    id: "q5",
    text: "What's your budget for a new game?",
    options: [
      { label: "Free (I'll only try free-to-play)",   tags: ["free"] },
      { label: "Budget — under $5",                   tags: ["budget"] },
      { label: "Mid-range — $5–$12",                  tags: ["mid_price"] },
      { label: "Whatever — price doesn't matter",     tags: ["any_price"] }
    ]
  },
  {
    id: "q6",
    text: "How do you feel about challenge and difficulty?",
    options: [
      { label: "I want to relax and watch numbers go up",               tags: ["chill", "auto_attack"] },
      { label: "I want some challenge but nothing punishing",           tags: ["moderate_diff"] },
      { label: "I want to learn, die, and improve over many runs",      tags: ["high_diff", "skill_based"] },
      { label: "I want bosses that test me and aren't just sponges",    tags: ["boss_depth", "high_diff"] }
    ]
  },
  {
    id: "q7",
    text: "What kind of setting or theme draws you in?",
    options: [
      { label: "Fantasy / dark medieval",                tags: ["fantasy"] },
      { label: "Sci-fi / space / alien",                 tags: ["scifi"] },
      { label: "Horror / undead / occult",               tags: ["horror"] },
      { label: "Quirky / anything weird goes",           tags: ["quirky"] }
    ]
  },
  {
    id: "q8",
    text: "How deep do you want the build system to go?",
    options: [
      { label: "Simple — I want upgrades that feel good without thinking too hard",  tags: ["simple_builds"] },
      { label: "Medium — meaningful choices but not overwhelming",                   tags: ["medium_builds"] },
      { label: "Deep — I want to theory-craft and discover synergies for hours",     tags: ["synergy_deep", "build_variety"] },
      { label: "Extreme — give me items, gear, gods, and skill trees",               tags: ["rpg_depth", "synergy_deep"] }
    ]
  },
  {
    id: "q9",
    text: "Do you prefer a fixed arena or something more dynamic to explore?",
    options: [
      { label: "Fixed arena — I want pure horde-survival focus",     tags: ["fixed_arena"] },
      { label: "I want to move through environments and explore",    tags: ["exploration"] },
      { label: "Top-down dungeons with rooms to clear",              tags: ["dungeon_rooms"] },
      { label: "No preference",                                       tags: ["any_arena"] }
    ]
  },
  {
    id: "q10",
    text: "What matters most to you in long-term replayability?",
    options: [
      { label: "Huge roster of characters that all play differently",   tags: ["character_variety"] },
      { label: "Absurd build depth that I'll never fully exhaust",      tags: ["build_variety", "synergy_deep"] },
      { label: "A story or secrets to uncover",                         tags: ["story", "dark_atmosphere"] },
      { label: "Community and ongoing development updates",             tags: ["active_dev"] }
    ]
  }
];

// ─────────────────────────────────────────────
//  GAME DATABASE
//  Each game has tags + metadata used for matching + display
// ─────────────────────────────────────────────

const games = [
  {
    name: "Soulstone Survivors",
    tags: ["auto_attack","power_scale","synergy_deep","build_variety","meta_progression","polished_visuals","fantasy","long_runs","any_price","mid_price","character_variety","gameplay_first","moderate_diff","fixed_arena"],
    price: "$17",
    playtime: "9 hrs",
    votes: 195,
    why: "The deepest build system in the genre. Stacking the right skills together turns your run into a personal power fantasy — and no two runs feel the same."
  },
  {
    name: "Deep Rock Galactic: Survivor",
    tags: ["manual_aim","skill_based","exploration","polished_visuals","scifi","long_runs","budget","any_price","mid_price","moderate_diff","active_dev","build_variety","character_variety"],
    price: "$4",
    playtime: "4.5 hrs",
    votes: 121,
    why: "The only game in the genre where you mine terrain while holding off hordes. Directional aiming and biome variety make every run feel genuinely different."
  },
  {
    name: "20 Minutes Till Dawn",
    tags: ["manual_aim","synergy_deep","dark_atmosphere","horror","short_runs","budget","any_price","skill_based","moderate_diff","character_variety","build_variety"],
    price: "$1",
    playtime: "11.3 hrs",
    votes: 114,
    why: "Short focused runs with a striking dark pixelated atmosphere. The synergy-based build system rewards intentional play without overstaying its welcome."
  },
  {
    name: "Death Must Die",
    tags: ["rpg_depth","synergy_deep","build_variety","meta_progression","boss_depth","fantasy","mid_price","any_price","manual_aim","high_diff","skill_based","medium_runs","dark_atmosphere"],
    price: "$9",
    playtime: "6.5 hrs",
    votes: 105,
    why: "Vampire Survivors meets Hades. God blessings, persistent gear, and boss patterns you actually learn — the RPG layer separates it from the pack."
  },
  {
    name: "Boneraiser Minions",
    tags: ["minions","passive","goofy","quirky","horror","budget","any_price","meta_progression","simple_builds","medium_builds","character_variety","chill","fixed_arena","short_runs","medium_runs"],
    price: "$5",
    playtime: "5.1 hrs",
    votes: 104,
    why: "You don't fight — your skeleton army does. A completely fresh take on the genre with goofy charm and one of the best price-to-content ratios on the list."
  },
  {
    name: "Brotato",
    tags: ["character_variety","build_variety","synergy_deep","short_runs","budget","any_price","moderate_diff","fixed_arena","meta_progression","gameplay_first","any_arena","medium_builds"],
    price: "$3",
    playtime: "6.9 hrs",
    votes: 103,
    why: "The gold standard for tight wave-based bullet heaven. Huge character roster, short runs, and deep builds at a price that makes it impossible to skip."
  },
  {
    name: "Megabonk",
    tags: ["goofy","quirky","character_variety","active_dev","short_runs","medium_runs","mid_price","any_price","simple_builds","moderate_diff","fantasy","build_variety"],
    price: "$9",
    playtime: "2.9 hrs",
    votes: 92,
    why: "The newest breakout in the genre. Wacky characters, fast fun, and an actively engaged developer — it cracked the top 10 after just 6 months."
  },
  {
    name: "Picayune Dreams",
    tags: ["dark_atmosphere","horror","story","boss_depth","high_diff","skill_based","auto_attack","power_scale","mid_price","any_price","medium_runs","gameplay_first"],
    price: "$13",
    playtime: "5.3 hrs",
    votes: 80,
    why: "The genre's most unsettling experience. Boss fights, a real story, and an atmosphere so distinct that players consistently call it the genre's artistic peak."
  },
  {
    name: "Enter The Gungeon",
    tags: ["manual_aim","skill_based","dungeon_rooms","high_diff","synergy_deep","build_variety","quirky","goofy","any_price","mid_price","story","boss_depth","medium_runs"],
    price: "~$15",
    playtime: "~15 hrs",
    votes: 72,
    why: "Technically bullet hell, but the item synergies and run variety are enormous. If you've exhausted bullet heaven and want more challenge, this is the step up."
  },
  {
    name: "HoloCure",
    tags: ["free","meta_progression","character_variety","build_variety","auto_attack","power_scale","chill","simple_builds","medium_builds","any_arena","fixed_arena","medium_runs","active_dev"],
    price: "Free",
    playtime: "N/A",
    votes: 57,
    why: "Completely free with no paywalls — and genuinely good. Large character roster and weapon evolutions at a level of polish that would impress any paid title."
  },
  {
    name: "Yet Another Zombie Survivors",
    tags: ["horror","auto_attack","power_scale","meta_progression","mid_price","any_price","long_runs","build_variety","chill","fixed_arena","character_variety"],
    price: "$10",
    playtime: "12.8 hrs",
    votes: 56,
    why: "One of the longest median playtimes in the genre. A solid, approachable zombie-slaying experience for players who want familiar horror themes done well."
  },
  {
    name: "Halls of Torment",
    tags: ["dark_atmosphere","fantasy","boss_depth","high_diff","skill_based","moderate_diff","meta_progression","budget","any_price","long_runs","build_variety","medium_builds"],
    price: "$4",
    playtime: "N/A",
    votes: 54,
    why: "Diablo 2 aesthetic meets bullet heaven. Slower, deliberate, dark — boss mechanics create real tension and the progression system rewards patience."
  },
  {
    name: "I Am Legion",
    tags: ["horror","auto_attack","power_scale","minions","mid_price","any_price","long_runs","meta_progression","build_variety","chill","fixed_arena"],
    price: "$9",
    playtime: "10.6 hrs",
    votes: 45,
    why: "Commands swarms of demons against endless hordes. Deep meta progression and strong theming for players who want a darker, longer grind."
  },
  {
    name: "Nordic Ashes",
    tags: ["fantasy","auto_attack","build_variety","meta_progression","mid_price","any_price","character_variety","polished_visuals","short_runs","medium_runs","moderate_diff"],
    price: "$8",
    playtime: "2.9 hrs",
    votes: 40,
    why: "Norse mythology theming with a solid auto-attack loop. Good character variety and clean production values for the mid-tier price range."
  },
  {
    name: "God of Weapons",
    tags: ["build_variety","synergy_deep","mid_price","any_price","fantasy","gameplay_first","medium_builds","medium_runs","moderate_diff","meta_progression"],
    price: "$7",
    playtime: "N/A",
    votes: 39,
    why: "A weapons-focused build system that rewards players who enjoy kit experimentation. Underrated in the genre and worth trying for build-chasers."
  },
  {
    name: "Army of Ruin",
    tags: ["simple_builds","chill","budget","any_price","auto_attack","fixed_arena","short_runs","meta_progression","character_variety","moderate_diff"],
    price: "$2",
    playtime: "0.8 hrs",
    votes: 35,
    why: "One of the cheapest and most accessible entries in the genre. Low commitment runs, easy to pick up — perfect if you're new to bullet heaven."
  },
  {
    name: "Temtem: Swarm",
    tags: ["goofy","quirky","mid_price","any_price","meta_progression","build_variety","character_variety","medium_runs","moderate_diff","auto_attack","power_scale"],
    price: "$5",
    playtime: "6.7 hrs",
    votes: 29,
    why: "Temtem's creature-taming universe brought into bullet heaven. Fun if the creature-collecting angle appeals to you alongside solid core mechanics."
  },
  {
    name: "Rogue Genesia",
    tags: ["build_variety","synergy_deep","budget","any_price","meta_progression","fantasy","medium_runs","moderate_diff","character_variety","medium_builds"],
    price: "$4",
    playtime: "7.9 hrs",
    votes: 29,
    why: "A deep, rewarding system at a budget price — great value for players who want build depth without spending much."
  },
  {
    name: "Bioprototype",
    tags: ["scifi","build_variety","synergy_deep","mid_price","any_price","long_runs","meta_progression","gameplay_first","moderate_diff","auto_attack"],
    price: "$14",
    playtime: "8.5 hrs",
    votes: 19,
    why: "A sci-fi themed deep build experience. High price for the genre but rewarding for players who want something with a different aesthetic from the fantasy crowd."
  },
  {
    name: "Spell Disk Survivor",
    tags: ["synergy_deep","build_variety","mid_price","any_price","fantasy","medium_runs","moderate_diff","gameplay_first","medium_builds"],
    price: "$8",
    playtime: "8.8 hrs",
    votes: 19,
    why: "Spell-crafting mechanics make this one for players who love assembling unusual magical combinations and discovering what breaks the run."
  },
  {
    name: "Rock and Stone",
    tags: ["scifi","free","character_variety","auto_attack","chill","meta_progression","medium_runs","any_arena","moderate_diff"],
    price: "Free",
    playtime: "7.8 hrs",
    votes: 19,
    why: "Free content from the Deep Rock Galactic universe. If you loved DRG: Survivor, this is a no-cost companion piece to explore."
  },
  {
    name: "Vampire Survivors",
    tags: ["auto_attack","power_scale","build_variety","meta_progression","story","character_variety","free","budget","any_price","chill","moderate_diff","fixed_arena","long_runs","gameplay_first"],
    price: "$5",
    playtime: "11.6 hrs",
    votes: 18,
    why: "The game that started the modern genre. If you somehow haven't played it yet, this is the essential foundation every bullet heaven fan should experience."
  },
  {
    name: "Elemental Survivors",
    tags: ["budget","any_price","simple_builds","chill","auto_attack","short_runs","fantasy","moderate_diff","fixed_arena"],
    price: "$4",
    playtime: "3.8 hrs",
    votes: 16,
    why: "A no-fuss entry point into the genre. Simple build choices, low price, short runs — easy to recommend for anyone wanting a low-commitment start."
  },
  {
    name: "Nomad Survivor",
    tags: ["budget","any_price","short_runs","simple_builds","chill","auto_attack","exploration","moderate_diff","any_arena"],
    price: "$7",
    playtime: "1.3 hrs",
    votes: 14,
    why: "Quick, simple, and affordable. For players who just want to unwind with a no-pressure bullet heaven session."
  },
  {
    name: "Moonwatch",
    tags: ["polished_visuals","long_runs","mid_price","any_price","meta_progression","build_variety","character_variety","auto_attack","power_scale","moderate_diff","fixed_arena"],
    price: "$12",
    playtime: "14.3 hrs",
    votes: 12,
    why: "One of the highest median playtimes on the list. Gorgeous visuals and deep meta progression for players who want a long-term investment."
  },
  {
    name: "Time Wasters",
    tags: ["long_runs","mid_price","any_price","build_variety","auto_attack","chill","scifi","fixed_arena","meta_progression","simple_builds"],
    price: "$12",
    playtime: "18.6 hrs",
    votes: 11,
    why: "The highest median playtime of any game on the list at 18.6 hours. If you want sheer content depth, this delivers more hours than almost anything here."
  },
  {
    name: "Tiny Rogues",
    tags: ["dungeon_rooms","build_variety","synergy_deep","budget","any_price","long_runs","high_diff","skill_based","quirky","goofy","meta_progression","character_variety"],
    price: "$4",
    playtime: "12 hrs",
    votes: 9,
    why: "Dungeon rooms, deep builds, and punishing difficulty at a budget price. A hidden gem for players who want something more roguelike-adjacent."
  },
  {
    name: "Kill Knight",
    tags: ["manual_aim","skill_based","high_diff","boss_depth","dark_atmosphere","horror","gameplay_first","any_price","short_runs","active_dev"],
    price: "N/A",
    playtime: "N/A",
    votes: 7,
    why: "High-skill, action-focused, and brutally satisfying. For players who want precise combat and punishing challenges over passive build stacking."
  },
  {
    name: "Desktop Survivors 98",
    tags: ["quirky","goofy","mid_price","any_price","simple_builds","chill","auto_attack","short_runs","character_variety","moderate_diff"],
    price: "$9",
    playtime: "4.8 hrs",
    votes: 7,
    why: "A retro Windows 98 aesthetic that's pure novelty. The concept alone makes it memorable — good for players who love quirky presentation."
  },
  {
    name: "Renfield: Bring Your Own Blood",
    tags: ["horror","auto_attack","build_variety","mid_price","any_price","meta_progression","long_runs","moderate_diff","character_variety"],
    price: "$8",
    playtime: "11.6 hrs",
    votes: 7,
    why: "Strong horror theming with solid run length. A well-made entry for players who want a classic vampire-horror aesthetic with good depth."
  },
  {
    name: "Rocket Rats",
    tags: ["goofy","quirky","free","budget","short_runs","simple_builds","chill","moderate_diff","auto_attack"],
    price: "$1",
    playtime: "2 hrs",
    votes: 7,
    why: "Ultra cheap and very casual. The perfect zero-commitment entry if you just want to dip your toes into the genre for a dollar."
  },
  {
    name: "Crafty Survivors",
    tags: ["build_variety","synergy_deep","budget","any_price","medium_runs","moderate_diff","gameplay_first","medium_builds","fantasy"],
    price: "$3",
    playtime: "6.3 hrs",
    votes: 7,
    why: "Budget-friendly and build-focused — a good value pick for players who want meaningful upgrade decisions without the premium price tag."
  },
  {
    name: "Greedland",
    tags: ["scifi","auto_attack","power_scale","budget","any_price","meta_progression","character_variety","moderate_diff","chill","fixed_arena","short_runs"],
    price: "$3",
    playtime: "4.5 hrs",
    votes: 7,
    why: "Sci-fi setting, massive unit sales, and a budget price. Solid pick for players who want an accessible sci-fi flavored bullet heaven."
  },
  {
    name: "Achilles Survivors",
    tags: ["fantasy","auto_attack","build_variety","long_runs","mid_price","any_price","meta_progression","polished_visuals","character_variety","moderate_diff","power_scale"],
    price: "$15",
    playtime: "15 hrs",
    votes: 6,
    why: "Mythological Greek theming with strong long-term playtime stats. A solid choice if you want extended epic-feeling runs."
  },
  {
    name: "Sodaman",
    tags: ["quirky","goofy","mid_price","any_price","build_variety","short_runs","moderate_diff","simple_builds","auto_attack"],
    price: "$7",
    playtime: "3.8 hrs",
    votes: 6,
    why: "One of the genre's more ridiculous premises done earnestly. Good for players who want something light, weird, and different."
  },
  {
    name: "Twilight Survivors",
    tags: ["horror","auto_attack","build_variety","mid_price","any_price","meta_progression","long_runs","moderate_diff","character_variety","medium_builds"],
    price: "$5",
    playtime: "10.6 hrs",
    votes: 6,
    why: "Strong playtime per dollar value with a horror setting and solid meta progression loop. A dependable choice for horror fans."
  },
  {
    name: "Entropy Survivors",
    tags: ["scifi","build_variety","budget","any_price","medium_runs","moderate_diff","auto_attack","gameplay_first","medium_builds"],
    price: "$4",
    playtime: "7 hrs",
    votes: 6,
    why: "Solid sci-fi entry at a budget price. Consistent community praise and good hour-per-dollar value for patient players."
  },
  {
    name: "Dwarven Realms",
    tags: ["fantasy","build_variety","mid_price","any_price","meta_progression","auto_attack","gameplay_first","moderate_diff","medium_builds"],
    price: "$13",
    playtime: "N/A",
    votes: 6,
    why: "Dwarf-themed bullet heaven with a distinct personality. For players drawn to the fantasy subgenre who want something a little different."
  },
  {
    name: "Vampire Hunters",
    tags: ["horror","free","character_variety","auto_attack","chill","simple_builds","moderate_diff","fixed_arena","short_runs"],
    price: "Free",
    playtime: "N/A",
    votes: 5,
    why: "Free to play with vampire-hunting theming. A no-risk way to scratch the horror bullet heaven itch."
  },
  {
    name: "Ultra Blade",
    tags: ["budget","any_price","build_variety","auto_attack","short_runs","moderate_diff","simple_builds","medium_builds","gameplay_first","fantasy"],
    price: "$3",
    playtime: "5.8 hrs",
    votes: 5,
    why: "Affordable and action-focused. A budget-conscious pick for players who want a clean weapon-based loop without overcomplication."
  },
  {
    name: "Astral Hunter",
    tags: ["scifi","budget","any_price","build_variety","auto_attack","moderate_diff","medium_runs","medium_builds","gameplay_first"],
    price: "$4",
    playtime: "7.1 hrs",
    votes: 5,
    why: "Sci-fi theming with good build depth for the price. A solid under-the-radar pick for players looking outside the top 10."
  },
  {
    name: "Neon Spellstorm",
    tags: ["scifi","polished_visuals","mid_price","any_price","short_runs","manual_aim","skill_based","moderate_diff","build_variety"],
    price: "$14",
    playtime: "2.5 hrs",
    votes: 5,
    why: "A neon-drenched visual style that stands apart aesthetically. Good pick for players who prioritize distinct audiovisual presentation."
  },
  {
    name: "Deathstate",
    tags: ["horror","dark_atmosphere","long_runs","any_price","build_variety","auto_attack","skill_based","dungeon_rooms","gameplay_first","meta_progression"],
    price: "$7",
    playtime: "10 hrs",
    votes: 5,
    why: "Eldritch horror atmosphere and strong playtime. For players who want a darker, weirder experience with genuine longevity."
  },
  {
    name: "Armechgeddon",
    tags: ["scifi","auto_attack","mid_price","any_price","build_variety","short_runs","moderate_diff","simple_builds","chill"],
    price: "$10",
    playtime: "2.9 hrs",
    votes: 5,
    why: "Mech-themed bullet heaven with clean mechanical execution. A pick for sci-fi players who want to pilot something powerful."
  },
  {
    name: "Nirmods",
    tags: ["build_variety","synergy_deep","mid_price","any_price","meta_progression","any_arena","moderate_diff","auto_attack","character_variety","gameplay_first"],
    price: "$10",
    playtime: "6.2 hrs",
    votes: 5,
    why: "Strong build depth with massive commercial success despite low vote count. A sleeper pick for build-focused players."
  },
  {
    name: "Burst Heroes",
    tags: ["goofy","quirky","budget","any_price","character_variety","auto_attack","simple_builds","chill","short_runs","moderate_diff"],
    price: "$5",
    playtime: "N/A",
    votes: 5,
    why: "Lighthearted and affordable. Good for players who want variety in character styles without a high barrier to entry."
  },
  {
    name: "Returnal",
    tags: ["high_diff","skill_based","boss_depth","manual_aim","dungeon_rooms","dark_atmosphere","scifi","story","any_price","long_runs","active_dev"],
    price: "$4",
    playtime: "N/A",
    votes: 5,
    why: "More bullet hell than heaven, but one of the best in any adjacent genre. For players who want intense, precise, cinematic action."
  },
  {
    name: "Cast Out Colony",
    tags: ["free","budget","simple_builds","chill","auto_attack","short_runs","moderate_diff","any_arena"],
    price: "$1",
    playtime: "N/A",
    votes: 4,
    why: "Basically free and very casual — a zero-risk way to try the genre if you're on the fence about committing any money."
  },
  {
    name: "Kill The Crows",
    tags: ["goofy","quirky","simple_builds","chill","auto_attack","short_runs","any_price","moderate_diff"],
    price: "N/A",
    playtime: "N/A",
    votes: 3,
    why: "A quirky, casual entry worth trying if you love offbeat premises and aren't looking for complex build systems."
  },
  {
    name: "Sektori",
    tags: ["scifi","auto_attack","mid_price","any_price","build_variety","short_runs","moderate_diff","meta_progression","medium_builds"],
    price: "$8",
    playtime: "3.1 hrs",
    votes: 3,
    why: "Sci-fi survival with a distinctive look. For players who want something different from the usual fantasy setting."
  },
  {
    name: "Novadrift",
    tags: ["scifi","build_variety","synergy_deep","any_price","long_runs","moderate_diff","auto_attack","gameplay_first","meta_progression"],
    price: "$6",
    playtime: "10.2 hrs",
    votes: 3,
    why: "Space shooter mechanics merged with bullet heaven build depth. A strong pick for sci-fi fans who want to go deep on upgrades."
  },
  {
    name: "Outnumbered",
    tags: ["budget","any_price","simple_builds","chill","auto_attack","short_runs","moderate_diff","any_arena","mid_price"],
    price: "$8",
    playtime: "2.9 hrs",
    votes: 3,
    why: "Straightforward and affordable. Good as a low-commitment filler game between heavier titles."
  },
  {
    name: "Bounty of One",
    tags: ["goofy","quirky","budget","any_price","build_variety","character_variety","short_runs","moderate_diff","simple_builds"],
    price: "$4",
    playtime: "N/A",
    votes: 3,
    why: "Novelty concept done with care. A fun, cheap experiment for players who like unusual mechanical twists."
  },
  {
    name: "Project Lazarus",
    tags: ["scifi","auto_attack","mid_price","any_price","short_runs","simple_builds","moderate_diff","meta_progression","chill"],
    price: "$11",
    playtime: "1 hr",
    votes: 3,
    why: "Quick sci-fi runs — one of the shortest median playtimes on the list, but that makes it great for tight sessions."
  },
  {
    name: "Achilles Survivor",
    tags: ["fantasy","auto_attack","build_variety","mid_price","any_price","meta_progression","long_runs","moderate_diff","character_variety"],
    price: "$8",
    playtime: "11 hrs",
    votes: 2,
    why: "Greek mythology setting with strong long-term playtime. A dependable choice for mythology fans seeking depth."
  },
  {
    name: "Tower of Babel",
    tags: ["fantasy","build_variety","auto_attack","any_price","moderate_diff","medium_builds","meta_progression","medium_runs"],
    price: "N/A",
    playtime: "N/A",
    votes: 2,
    why: "Biblical-themed theming with a vertical challenge structure. Worth a look for players interested in a unique conceptual hook."
  },
  {
    name: "Valkyrie Rising",
    tags: ["fantasy","auto_attack","power_scale","long_runs","mid_price","any_price","meta_progression","polished_visuals","character_variety","build_variety","high_diff"],
    price: "$17",
    playtime: "16.8 hrs",
    votes: 2,
    why: "The highest median playtime and revenue among the lower-voted games. For players who want an epic, long-haul fantasy experience."
  }
];

// ─────────────────────────────────────────────
//  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 / 195) * 0.5;

    return { ...game, score };
  }).sort((a, b) => b.score - a.score);
}

// ─────────────────────────────────────────────
//  STATE
// ─────────────────────────────────────────────

let currentQ = 0;
let answers = []; // array of tag arrays, one per question
let selectedOption = null;

// ─────────────────────────────────────────────
//  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;

  // Update option styles directly — no re-render, no shake
  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);
    }
  });

  // Enable the Next button
  const btn = document.getElementById('btn-next');
  if (btn) btn.disabled = false;
}

function goNext() {
  if (answers[currentQ] == null) return;
  currentQ++;
  render();
  // Trigger progress bar pulse after render
  requestAnimationFrame(() => {
    const fill = document.querySelector('.progress-bar-fill');
    if (fill) {
      fill.classList.remove('pulse');
      void fill.offsetWidth; // force reflow to restart animation
      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 57 community-ranked bullet heaven 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">
                  ${game.price !== "N/A" ? `
                  <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>` : ''}
                  ${game.playtime !== "N/A" ? `
                  <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>
  `;

  // Staggered card reveal + bar animation
  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' });
}

// Boot
render();
</script>
</body>
</html>



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



<h2 class="wp-block-heading"><strong>TL;DR — What Are the Best Bullet Heaven Games?</strong></h2>



<p class="wp-block-paragraph">Based on 1652 total votes across 15 Reddit threads, here are the top 10 bullet heaven games ranked by community consensus:</p>



<ol class="wp-block-list">
<li><a href="https://store.steampowered.com/app/2066020/Soulstone_Survivors/">Soulstone Survivors</a></li>



<li><a href="https://store.steampowered.com/app/2321470/Deep_Rock_Galactic_Survivor/">Deep Rock Galactic Survivors</a></li>



<li><a href="https://store.steampowered.com/app/1966900/20_Minutes_Till_Dawn/">20 Minutes till Dawn</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/1944570/Boneraiser_Minions/">Boneraiser Minions</a></li>



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



<li><a href="https://store.steampowered.com/app/3405340/Megabonk/">Megabonk</a></li>



<li><a href="https://store.steampowered.com/app/2088840/Picayune_Dreams/">Picayune Dreams</a></li>



<li><a href="https://store.steampowered.com/app/311690/Enter_the_Gungeon/">Enter The Gungeon</a></li>



<li><a href="https://store.steampowered.com/app/2420510/HoloCure__Save_the_Fans/">Holocure</a></li>
</ol>



<div style="height:50px" 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" />

<!-- Styles -->
<style>
  :root {
    --accent:  #c0392b;
    --gold:    #b8892a;
    --text:    #1a1a24;
    --muted:   #888699;
    --border:  #e0dded;
    --stripe:  #f7f6fb;
    --cat-bg:  #1a1a24;
    --cat-text:#e8e4dc;
  }

  .table-header {
    text-align: center;
    margin-bottom: 1.6rem;
  }
  .table-header h2 {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(1rem, 3vw, 1.45rem);
    color: var(--gold);
    letter-spacing: 0.04em;
    margin-bottom: 0.3rem;
  }
  .table-header p {
    color: var(--muted);
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  .table-wrap {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    overflow-x: auto;
    border: 1px solid var(--border);
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
  }

  .table-wrap table {
    width: 100%;
    border-collapse: collapse;
    min-width: 460px;
    background: #fff;
  }

  .table-wrap thead tr {
    background: var(--cat-bg);
    border-bottom: 2px solid var(--accent);
  }
  .table-wrap thead th {
    padding: 0.8rem 1.1rem;
    text-align: left;
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.62rem;
    letter-spacing: 0.1em;
    color: #e8b94f;
    text-transform: uppercase;
    white-space: nowrap;
  }
  .table-wrap thead th:last-child { text-align: right; }

  .table-wrap tbody tr {
    border-bottom: 1px solid var(--border);
    transition: background 0.12s;
  }
  .table-wrap tbody tr:last-child { border-bottom: none; }
  .table-wrap tbody tr:nth-child(even) { background: var(--stripe); }
  .table-wrap tbody tr:hover { background: #f0eef8; }

  .table-wrap td {
    padding: 0.78rem 1.1rem;
    vertical-align: middle;
    color: var(--text);
    font-family: 'Barlow', sans-serif;
    font-size: 15px;
  }

  .table-wrap .cat {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    background: var(--cat-bg);
    color: var(--cat-text);
    white-space: nowrap;
    border-right: 2px solid var(--accent);
  }

  .table-wrap .label {
    color: #555466;
    font-weight: 400;
  }

  .table-wrap .val {
    text-align: right;
    font-weight: 600;
    color: var(--text);
    white-space: nowrap;
  }

  .table-wrap .val.top { color: var(--gold); }

  .table-footer {
    max-width: 780px;
    margin: 0.7rem auto 0;
    text-align: right;
    color: var(--muted);
    font-size: 0.72rem;
    letter-spacing: 0.04em;
    font-family: 'Barlow', sans-serif;
  }

  /* ── Mobile ── */
  @media (max-width: 560px) {
    .table-header h2 { font-size: 1rem; }

    .table-wrap thead th:first-child,
    .table-wrap tbody td.cat { display: none; }

    .table-wrap tbody tr { display: flex; flex-direction: column; padding: 0.6rem 0; }
    .table-wrap tbody td { display: block; padding: 0.15rem 1rem; border: none; }
    .table-wrap tbody td.label { font-size: 0.8rem; color: var(--muted); }
    .table-wrap tbody td.val   { text-align: left; font-size: 0.95rem; padding-top: 0; }

    .table-wrap tbody tr { border-bottom: 1px solid var(--border); }
    .table-wrap tbody tr:last-child { border-bottom: none; }

    .table-wrap thead tr { display: flex; }
    .table-wrap thead th { display: none; }
    .table-wrap thead th:nth-child(2) { display: block; padding: 0.7rem 1rem; font-size: 0.65rem; }

    .table-footer { text-align: left; }
  }
</style>

<!-- Table -->
<div class="table-header">
  <h2>Quick Stats — Best Bullet Heaven Games</h2>
  <p>Key stats at a glance</p>
</div>

<div class="table-wrap">
  <table>
    <thead>
      <tr>
        <th scope="col">Category</th>
        <th scope="col">Stat</th>
        <th scope="col">Value</th>
      </tr>
    </thead>
    <tbody>

      <tr>
        <td class="cat" rowspan="3">Survey Scope</td>
        <td class="label">Total votes collected</td>
        <td class="val">1,652</td>
      </tr>
      <tr>
        <td class="label">Reddit threads analyzed</td>
        <td class="val">15</td>
      </tr>
      <tr>
        <td class="label">Total games mentioned</td>
        <td class="val">57</td>
      </tr>

      <tr>
        <td class="cat" rowspan="3">Rankings</td>
        <td class="label">#1 ranked game</td>
        <td class="val top">Soulstone Survivors — 195 votes</td>
      </tr>
      <tr>
        <td class="label">Gap between #1 &amp; #2 (Deep Rock Galactic: Survivors)</td>
        <td class="val">74 votes</td>
      </tr>
      <tr>
        <td class="label">Closest race (Boneraiser Minions vs Death Must Die)</td>
        <td class="val">104 vs 105 votes</td>
      </tr>

      <tr>
        <td class="cat" rowspan="4">Standouts</td>
        <td class="label">Most threads appeared in</td>
        <td class="val">Soulstone Survivors — 9 threads</td>
      </tr>
      <tr>
        <td class="label">Highest grossing game (Vampire Survivors)</td>
        <td class="val">$35,400,000</td>
      </tr>
      <tr>
        <td class="label">Most units sold (Picayune Dreams)</td>
        <td class="val">2,200,000</td>
      </tr>
      <tr>
        <td class="label">Free to play</td>
        <td class="val">HoloCure</td>
      </tr>

      <tr>
        <td class="cat" rowspan="3">Playtime</td>
        <td class="label">Highest median playtime (Yet Another Zombie Survivors)</td>
        <td class="val">12.8 hrs</td>
      </tr>
      <tr>
        <td class="label">Lowest median playtime (Army of Ruin)</td>
        <td class="val">0.8 hrs</td>
      </tr>
      <tr>
        <td class="label">Best value (Boneraiser Minions)</td>
        <td class="val">$5 · 5.1 hr median</td>
      </tr>

    </tbody>
  </table>
</div>

<p class="table-footer">Data sourced from 15 Reddit threads · 1,652 total votes</p>



<h2 class="wp-block-heading"><strong>Top Bullet Heaven Games (Based on Reddit Votes)</strong></h2>



<p class="wp-block-paragraph">This chart ranks the most commonly suggested games from 15 Reddit threads, using a combined total of 1,652 upvotes. Soulstone Survivors came out on top with 195 votes, well ahead of the rest of the pack.</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>

<!-- Styles -->
<style>
  .rr-chart-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;
  }

  .rr-chart-header {
    text-align: center;
    margin-bottom: 1.4rem;
  }

  .rr-chart-header p.rr-chart-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.85rem, 2.5vw, 1.3rem);
    color: #b8892a;
    letter-spacing: 0.04em;
    margin: 0;
    text-align: center;
  }

  .rr-chart-container {
    position: relative;
    width: 100%;
  }
</style>

<!-- Chart -->
<div class="rr-chart-wrap">
  <div class="rr-chart-header">
    <p class="rr-chart-title">Top Bullet Heaven Games — Ranked by Reddit Votes</p>
  </div>
  <div class="rr-chart-container">
    <canvas id="rrChartVotes"></canvas>
  </div>
</div>

<script>
(function() {
  const votesData = [
    ["Soulstone Survivors", 195],
    ["Deep Rock Galactic: Survivor", 121],
    ["20 Minutes Till Dawn", 114],
    ["Death Must Die", 105],
    ["Boneraiser Minions", 104],
    ["Brotato", 103],
    ["Megabonk", 92],
    ["Picayune Dreams", 80],
    ["Enter The Gungeon", 72],
    ["Holocure", 57],
    ["Yet Another Zombie Survivors", 56],
    ["Halls of Torment", 54],
    ["I Am Legion", 45],
    ["Nordic Ashes", 40],
    ["God of Weapons", 39],
    ["Army of Ruin", 35],
    ["Temtem: Swarm", 29],
    ["Rogue Genesia", 29],
    ["Bioprototype", 19],
    ["Spell Disk Survivor", 19],
    ["Vampire Survivors", 18],
    ["Elemental Survivors", 16],
    ["Nomad Survivor", 14],
    ["Moonwatch", 12],
    ["Time Wasters", 11],
  ].sort((a, b) => b[1] - a[1]);

  // Gold for #1, dark navy for the rest
  const colors = votesData.map((d, i) =>
    i === 0 ? "#b8892a" : "#1a1a24"
  );

  new Chart(document.getElementById("rrChartVotes"), {
    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 Bullet Heaven Games (Median Playtime per Dollar Spent)</strong></h2>



<p class="wp-block-paragraph">If you care about getting the most game time for your money, this chart ranks bullet heaven games by the median hours of playtime you get per dollar spent. At $1, 20 Minutes Till Dawn wins by a significant margin.</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>

<!-- Styles -->
<style>
  .rr-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;
  }

  .rr-value-header {
    text-align: center;
    margin-bottom: 1.4rem;
  }

  .rr-value-header p.rr-value-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.85rem, 2.5vw, 1.3rem);
    color: #b8892a;
    letter-spacing: 0.04em;
    margin: 0;
    text-align: center;
  }

  .rr-value-container {
    position: relative;
    width: 100%;
  }
</style>

<!-- Chart -->
<div class="rr-value-wrap">
  <div class="rr-value-header">
    <p class="rr-value-title">Top Value Bullet Heaven Games — Median Playtime per Dollar</p>
  </div>
  <div class="rr-value-container">
    <canvas id="rrChartValue"></canvas>
  </div>
</div>

<script>
(function() {
  const rawValue = [
    ["20 Minutes Till Dawn", 11.3, 1],
    ["Tiny Rogues", 12, 4],
    ["Time Wasters", 18.6, 12],
    ["Moonwatch", 14.3, 12],
    ["Brotato", 6.9, 3],
    ["Rogue Genesia", 7.9, 4],
    ["Yet Another Zombie Survivors", 12.8, 10],
    ["Spell Disk Survivor", 8.8, 8],
    ["Bioprototype", 8.5, 14],
    ["Temtem: Swarm", 6.7, 5],
    ["Soulstone Survivors", 9, 17],
    ["Death Must Die", 6.5, 9],
    ["Boneraiser Minions", 5.1, 5],
    ["Deep Rock Galactic: Survivor", 4.5, 4],
    ["Picayune Dreams", 5.3, 13],
    ["Nordic Ashes", 2.9, 8],
    ["Megabonk", 2.9, 9],
    ["Nomad Survivor", 1.3, 7],
    ["Vampire Survivors", 11.6, 27],
    ["Army of Ruin", 0.8, 2],
  ]
  .map(d => ({ game: d[0], value: parseFloat((d[1] / d[2]).toFixed(2)) }))
  .sort((a, b) => b.value - a.value);

  const colors = rawValue.map((d, i) =>
    i === 0 ? "#b8892a" : "#1a1a24"
  );

  new Chart(document.getElementById("rrChartValue"), {
    type: "bar",
    data: {
      labels: rawValue.map(d => d.game),
      datasets: [{
        data: rawValue.map(d => d.value),
        backgroundColor: colors,
        borderRadius: 3,
      }]
    },
    options: {
      indexAxis: "y",
      responsive: true,
      plugins: {
        legend: { display: false },
        tooltip: {
          callbacks: {
            label: ctx => ` ${ctx.parsed.x} 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: "Median Playtime per Dollar Spent (hrs/$)",
            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 Bullet Heaven Games</strong></h2>



<p class="wp-block-paragraph">This histogram shows how long these games tend to keep players engaged based on their median playtimes. Most cluster between 4 and 10 hours, with a few outliers pushing well beyond that.</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>

<!-- Styles -->
<style>
  .rr-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;
  }

  .rr-hist-header {
    text-align: center;
    margin-bottom: 1.4rem;
  }

  .rr-hist-header p.rr-hist-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.85rem, 2.5vw, 1.3rem);
    color: #b8892a;
    letter-spacing: 0.04em;
    margin: 0;
    text-align: center;
  }

  .rr-hist-container {
    position: relative;
    width: 100%;
  }
</style>

<!-- Chart -->
<div class="rr-hist-wrap">
  <div class="rr-hist-header">
    <p class="rr-hist-title">Distribution of Median Playtime — Bullet Heaven Games</p>
  </div>
  <div class="rr-hist-container">
    <canvas id="rrChartHistogram"></canvas>
  </div>
</div>

<script>
(function() {
  const playtimes = [9,4.5,11.3,6.5,5.1,6.9,2.9,5.3,12.8,6.7,7.9,10.6,2.9,8.5,8.8,11.6,3.8,1.3,14.3,18.6,12,4.8,11.6,2,6.3,15,3.8,10.6,7,5.8,7.1,2.5,10,2.9,3.1,10.2,2.9,1,11,16.8];

  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);
  }

  // Highlight the tallest bin in gold
  const maxCount = Math.max(...bins);
  const colors = bins.map(v => v === maxCount ? "#b8892a" : "#1a1a24");

  new Chart(document.getElementById("rrChartHistogram"), {
    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>What is a Bullet Heaven Game?</strong></h2>



<p class="wp-block-paragraph">A bullet heaven game is a top-down survival game where you fight off endless waves of enemies, stack upgrades, and scale your damage until you&#8217;re the one causing the chaos on screen.</p>



<p class="wp-block-paragraph">The goal is to outlast the runs, not dodge your way through them.</p>



<h2 class="wp-block-heading"><strong>Bullet Heaven vs. Bullet Hell</strong></h2>



<p class="wp-block-paragraph">The short version: In bullet hell, enemies fire thousands of projectiles at you, and survival means dodging all of it.&nbsp;</p>



<p class="wp-block-paragraph">In bullet heaven, you flip the script and become the one unleashing the damage.</p>



<p class="wp-block-paragraph">We wrote a full breakdown if you want the complete picture: <a href="https://rogueranker.com/bullet-heaven-vs-bullet-hell/">bullet heaven vs. bullet hell</a></p>



<p class="wp-block-paragraph">If you find that you like these games, be sure to check out the <a href="https://rogueranker.com/best-roguelike-games/">top roguelike games</a> guide.</p>



<h2 class="wp-block-heading"><strong>When Did Bullet Heaven Games Become Popular?</strong></h2>



<p class="wp-block-paragraph">Most people point to Vampire Survivors as the game that kicked the genre into mainstream awareness around 2021.</p>



<p class="wp-block-paragraph">It wasn&#8217;t the first, though. <a href="https://magic-survival-rpg.fandom.com/wiki/Magic_Survival_Wiki">Magic Survival on mobile</a> holds that title, but <a href="https://store.steampowered.com/app/1794680/Vampire_Survivors/">Vampire Survivors</a> was the one that made bullet heaven a genre people actually talked about.</p>



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



<p class="wp-block-paragraph">The process here was identical to what I did for the Games Like Brotato guide, so if you read that one, this will feel familiar.</p>



<p class="wp-block-paragraph">Short version: I went to Reddit, found every relevant thread I could, and tallied every suggestion and every upvote by hand across 15 threads and 1,652 votes.</p>



<p class="wp-block-paragraph">Here&#8217;s how the specifics broke down.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="682" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Research-1024x682.png" alt="Hooded rogue writing notes by candlelight surrounded by open books and scrolls while researching the best bullet heaven games" class="wp-image-516" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Research-1024x682.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Research-300x200.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Research-768x511.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Research-1536x1023.png 1536w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Research.png 1886w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



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



<p class="wp-block-paragraph">I started with a Google search, collected every Reddit thread that came up, then went directly to Reddit and repeated the process to catch anything that didn&#8217;t surface the first time.</p>



<p class="wp-block-paragraph">I left out threads where people were asking for mobile-only, console-only, or handheld-only suggestions. Everything else was fair game.</p>



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



<p class="wp-block-paragraph">If a game showed up in the threads, it made the list. The only exceptions were games that other community members actively called out as not fitting the topic, and anyone doing obvious self-promotion got ignored, too.</p>



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



<p class="wp-block-paragraph">I didn&#8217;t rank anything personally; the community did.</p>



<p class="wp-block-paragraph">Every suggestion got the upvote count from its comment.&nbsp;</p>



<p class="wp-block-paragraph">If the same game was mentioned multiple times across a thread or across different threads, those votes were combined. A game with ten one-vote mentions counted the same as a game with one ten-vote comment.</p>



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



<p class="wp-block-paragraph">Once all the heavy lifting was done, I took it one step further and added some data from VGN Insights.</p>



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



<li>Average Cost</li>



<li>Gross Revenue</li>



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



<p class="wp-block-paragraph">This data was purely for me, but it was interesting to see in the end.</p>



<p class="wp-block-paragraph">Here are the averages from the data I could find (excluding free-to-play titles and some games with spotty Steam data on VGN Insights).</p>



<h3 class="wp-block-heading"><strong>Average Business Stats (57 Best Bullet Heaven Games):</strong></h3>



<ul class="wp-block-list">
<li>Units Sold = 987,889</li>



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



<li>Gross Revenue = $10,368,486</li>



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



<p class="wp-block-paragraph"><strong>Side note: </strong>If anyone has suggestions for finding the missing data that VGN Insights didn&#8217;t have, please help.&nbsp;</p>



<p class="wp-block-paragraph">I&#8217;m all ears and would love to fill in the gaps.</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>

<!-- Styles -->
<style>
  .rr-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;
  }
  .rr-rev-header { text-align: center; margin-bottom: 1.4rem; }
  .rr-rev-header p.rr-rev-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.85rem, 2.5vw, 1.3rem);
    color: #b8892a;
    letter-spacing: 0.04em;
    margin: 0;
  }
  .rr-rev-container { position: relative; width: 100%; }
</style>

<div class="rr-rev-wrap">
  <div class="rr-rev-header">
    <p class="rr-rev-title">Bullet Heaven Games — Gross Revenue</p>
  </div>
  <div class="rr-rev-container">
    <canvas id="rrChartRevenue"></canvas>
  </div>
</div>

<script>
(function() {
  const data = [
    ["Soulstone Survivors", 22500000],
    ["Deep Rock Galactic: Survivor", 164000],
    ["20 Minutes Till Dawn", 100000],
    ["Death Must Die", 1500000],
    ["Boneraiser Minions", 126000],
    ["Brotato", 2500000],
    ["Megabonk", 530000],
    ["Picayune Dreams", 27500000],
    ["Holocure", 16626],
    ["Yet Another Zombie Survivors", 5100000],
    ["Halls of Torment", 1678],
    ["I Am Legion", 4800000],
    ["Nordic Ashes", 13000000],
    ["God of Weapons", 16223],
    ["Army of Ruin", 227290],
    ["Temtem: Swarm", 381000],
    ["Rogue Genesia", 137000],
    ["Bioprototype", 1600000],
    ["Spell Disk Survivor", 457000],
    ["Vampire Survivors", 35400000],
    ["Elemental Survivors", 144000],
    ["Nomad Survivor", 751000],
    ["Moonwatch", 41600000],
    ["Time Wasters", 57900000],
    ["Tiny Rogues", 3300000],
    ["Desktop Survivors 98", 219000],
    ["Renfield: Bring Your Own Blood", 8600000],
    ["Rocket Rats", 148000],
    ["Crafty Survivors", 241000],
    ["Achilles Survivors", 38500000],
    ["Sodaman", 417000],
    ["Twilight Survivors", 3300000],
    ["Entropy Survivors", 263000],
    ["Dwarven Realms", 111000],
    ["Greedland", 27900000],
    ["Ultra Blade", 494000],
    ["Astral Hunter", 368000],
    ["Neon Spellstorm", 382000],
    ["Deathstate", 6200000],
    ["Armechgeddon", 4000000],
    ["Nirmods", 38600000],
    ["Burst Heroes", 2609],
    ["Returnal", 21899],
    ["Sektori", 6900000],
    ["Novadrift", 23100000],
    ["Outnumbered", 162000],
    ["Project Lazarus", 1300000],
    ["Achilles Survivor", 3300000],
    ["Valkyrie Rising", 144500000],
  ].sort((a, b) => b[1] - a[1]);

  const colors = data.map((d, i) => i === 0 ? "#b8892a" : "#1a1a24");

  new Chart(document.getElementById("rrChartRevenue"), {
    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>

<!-- Styles -->
<style>
  .rr-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;
  }
  .rr-units-header { text-align: center; margin-bottom: 1.4rem; }
  .rr-units-header p.rr-units-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.85rem, 2.5vw, 1.3rem);
    color: #b8892a;
    letter-spacing: 0.04em;
    margin: 0;
  }
  .rr-units-container { position: relative; width: 100%; }
</style>

<div class="rr-units-wrap">
  <div class="rr-units-header">
    <p class="rr-units-title">Bullet Heaven Games — Units Sold</p>
  </div>
  <div class="rr-units-container">
    <canvas id="rrChartUnits"></canvas>
  </div>
</div>

<script>
(function() {
  const data = [
    ["Soulstone Survivors", 1300000],
    ["Deep Rock Galactic: Survivor", 44040],
    ["20 Minutes Till Dawn", 157000],
    ["Death Must Die", 168000],
    ["Boneraiser Minions", 27960],
    ["Brotato", 840000],
    ["Megabonk", 60540],
    ["Picayune Dreams", 2200000],
    ["Holocure", 4590],
    ["Yet Another Zombie Survivors", 517000],
    ["Halls of Torment", 450],
    ["I Am Legion", 563000],
    ["Nordic Ashes", 1600000],
    ["God of Weapons", 2370],
    ["Army of Ruin", 104580],
    ["Temtem: Swarm", 75930],
    ["Rogue Genesia", 36330],
    ["Bioprototype", 112000],
    ["Spell Disk Survivor", 60300],
    ["Rock and Stone", 1200000],
    ["Vampire Survivors", 1300000],
    ["Elemental Survivors", 32430],
    ["Nomad Survivor", 108000],
    ["Moonwatch", 3600000],
    ["Time Wasters", 5000000],
    ["Tiny Rogues", 887000],
    ["Desktop Survivors 98", 25300],
    ["Renfield: Bring Your Own Blood", 1100000],
    ["Rocket Rats", 148000],
    ["Crafty Survivors", 71700],
    ["Achilles Survivors", 2500000],
    ["Sodaman", 62245],
    ["Twilight Survivors", 621000],
    ["Entropy Survivors", 67410],
    ["Greedland", 8500000],
    ["Ultra Blade", 155000],
    ["Astral Hunter", 86190],
    ["Neon Spellstorm", 27690],
    ["Deathstate", 833000],
    ["Armechgeddon", 416000],
    ["Nirmods", 4000000],
    ["Burst Heroes", 540],
    ["Sektori", 841000],
    ["Novadrift", 3800000],
    ["Outnumbered", 21270],
    ["Project Lazarus", 122000],
    ["Achilles Survivor", 437000],
    ["Valkyrie Rising", 8500000],
  ].sort((a, b) => b[1] - a[1]);

  const colors = data.map((d, i) => i === 0 ? "#b8892a" : "#1a1a24");

  new Chart(document.getElementById("rrChartUnits"), {
    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>

<!-- Styles -->
<style>
  .rr-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;
  }
  .rr-scatter-header { text-align: center; margin-bottom: 1.4rem; }
  .rr-scatter-header p.rr-scatter-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.85rem, 2.5vw, 1.3rem);
    color: #b8892a;
    letter-spacing: 0.04em;
    margin: 0;
  }
  .rr-scatter-container { position: relative; width: 100%; }
</style>

<div class="rr-scatter-wrap">
  <div class="rr-scatter-header">
    <p class="rr-scatter-title">Reddit Votes vs Gross Revenue — Bullet Heaven Games</p>
  </div>
  <div class="rr-scatter-container">
    <canvas id="rrChartScatter"></canvas>
  </div>
</div>

<script>
(function() {
  const games = [
    { game: "Soulstone Survivors",            votes: 195, revenue: 22500000 },
    { game: "Deep Rock Galactic: Survivor",   votes: 121, revenue: 164000 },
    { game: "20 Minutes Till Dawn",           votes: 114, revenue: 100000 },
    { game: "Death Must Die",                 votes: 105, revenue: 1500000 },
    { game: "Boneraiser Minions",             votes: 104, revenue: 126000 },
    { game: "Brotato",                        votes: 103, revenue: 2500000 },
    { game: "Megabonk",                       votes: 92,  revenue: 530000 },
    { game: "Picayune Dreams",                votes: 80,  revenue: 27500000 },
    { game: "Yet Another Zombie Survivors",   votes: 56,  revenue: 5100000 },
    { game: "Halls of Torment",               votes: 54,  revenue: 1678 },
    { game: "I Am Legion",                    votes: 45,  revenue: 4800000 },
    { game: "Nordic Ashes",                   votes: 40,  revenue: 13000000 },
    { game: "God of Weapons",                 votes: 39,  revenue: 16223 },
    { game: "Army of Ruin",                   votes: 35,  revenue: 227290 },
    { game: "Temtem: Swarm",                  votes: 29,  revenue: 381000 },
    { game: "Rogue Genesia",                  votes: 29,  revenue: 137000 },
    { game: "Bioprototype",                   votes: 19,  revenue: 1600000 },
    { game: "Spell Disk Survivor",            votes: 19,  revenue: 457000 },
    { game: "Vampire Survivors",              votes: 18,  revenue: 35400000 },
    { game: "Elemental Survivors",            votes: 16,  revenue: 144000 },
    { game: "Nomad Survivor",                 votes: 14,  revenue: 751000 },
    { game: "Moonwatch",                      votes: 12,  revenue: 41600000 },
    { game: "Time Wasters",                   votes: 11,  revenue: 57900000 },
    { game: "Tiny Rogues",                    votes: 9,   revenue: 3300000 },
    { game: "Renfield: Bring Your Own Blood", votes: 7,   revenue: 8600000 },
    { game: "Crafty Survivors",               votes: 7,   revenue: 241000 },
    { game: "Achilles Survivors",             votes: 6,   revenue: 38500000 },
    { game: "Twilight Survivors",             votes: 6,   revenue: 3300000 },
    { game: "Deathstate",                     votes: 5,   revenue: 6200000 },
    { game: "Armechgeddon",                   votes: 5,   revenue: 4000000 },
    { game: "Nirmods",                        votes: 5,   revenue: 38600000 },
    { game: "Novadrift",                      votes: 3,   revenue: 23100000 },
    { game: "Valkyrie Rising",                votes: 2,   revenue: 144500000 },
    { game: "Greedland",                      votes: 5,   revenue: 27900000 },
    { game: "Sektori",                        votes: 3,   revenue: 6900000 },
  ];

  new Chart(document.getElementById("rrChartScatter"), {
    type: "scatter",
    data: {
      datasets: [{
        data: games.map(d => ({ x: d.votes, y: d.revenue, game: d.game })),
        backgroundColor: games.map(d => d.game === "Soulstone Survivors" ? "#b8892a" : "rgba(26,26,36,0.7)"),
        pointRadius: 6,
        pointHoverRadius: 8,
      }]
    },
    options: {
      responsive: true,
      plugins: {
        legend: { display: false },
        tooltip: {
          callbacks: {
            label: ctx => {
              const g = ctx.raw.game;
              const v = ctx.raw.x;
              const r = "$" + ctx.raw.y.toLocaleString();
              return ` ${g} — ${v} votes · ${r}`;
            }
          },
          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 Bullet Heaven Games (Based on Real Data)</strong></h2>



<p class="wp-block-paragraph">There were 60 games that made the final list (full rankings below).</p>



<p class="wp-block-paragraph">I went through every thread twice, so it&#8217;s possible I missed something.&nbsp;</p>



<p class="wp-block-paragraph">Here&#8217;s a breakdown of the top 10 bullet heaven games based on real Reddit data, including the number of threads each game appeared in and a quick one-liner if you&#8217;re not familiar with it yet.</p>



<h3 class="wp-block-heading"><strong>1. Soulstone Survivors</strong></h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Soulstone-Survivors-1024x576.png" alt="Soulstone Survivors key art featuring a hooded mage wielding soulstone magic against a skeleton horde, the top-rated bullet heaven game on PC" class="wp-image-600" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Soulstone-Survivors-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Soulstone-Survivors-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Soulstone-Survivors-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Soulstone-Survivors.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Soulstone Survivors topped the list with 195 votes across 9 threads, pulling ahead of second-place Deep Rock Galactic Survivor by 74 votes (not exactly a close race).</p>



<p class="wp-block-paragraph">It kept coming up for one reason: the variety of builds is absurd. Stack the right skills together and runs take on a life of their own.</p>



<p class="wp-block-paragraph">The game leans into the chaos while giving you enough control to feel like the chaos is yours.</p>



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



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



<li>PlayStation 5</li>



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



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



<ul class="wp-block-list">
<li>Build depth and synergy system rewards experimentation and keeps runs feeling fresh</li>



<li>Power scaling feels satisfying; the ramp from scrappy survivor to screen-clearing machine is well-paced</li>



<li>Enemy variety keeps later waves from feeling like a slog</li>



<li>One of the more visually polished games in the genre</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Soulstone-Survivors-2-1024x576.png" alt="Soulstone Survivors top-down gameplay showing a character battling two massive bosses with multicolored magical explosions, the number one ranked best bullet heaven game" class="wp-image-599" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Soulstone-Survivors-2-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Soulstone-Survivors-2-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Soulstone-Survivors-2-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Soulstone-Survivors-2.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



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



<ul class="wp-block-list">
<li>Late game can feel repetitive once you&#8217;ve found a build that works</li>



<li>Some skill paths feel noticeably weaker than others, which narrows viable builds over time</li>



<li>The chaos can tip from fun into overwhelming, especially for newer players</li>



<li>Runs can drag longer than expected compared to tighter games like Brotato</li>
</ul>



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



<p class="wp-block-paragraph">&#8220;I think Soulstone is my favorite, followed closely by Brotato.&#8221; — u/Alternative-Way-8753</p>



<p class="wp-block-paragraph">&#8220;Perhaps not a titan, but I&#8217;ve been really enjoying Soulstone Survivors. Just the progression and stuff to grind has kept me going back to it for a while.&#8221; — u/AMetaphor</p>



<p class="wp-block-paragraph">&#8220;Soulstone Survivors is way too good and it kinda damaged me because all other bh games I&#8217;ve tried just don&#8217;t do it for me like SS.&#8221; — u/Isaiah8200</p>



<h3 class="wp-block-heading"><strong>2. Deep Rock Galactic: Survivor</strong></h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Deep-Rock-Galactic-Survivors-1024x576.png" alt="Deep Rock Galactic Survivor key art featuring a bearded dwarf in combat, one of the most unique best bullet heaven games available" class="wp-image-591" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Deep-Rock-Galactic-Survivors-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Deep-Rock-Galactic-Survivors-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Deep-Rock-Galactic-Survivors-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Deep-Rock-Galactic-Survivors.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Deep Rock Galactic: Survivor came in second with 121 votes across 7 threads, sitting 74 votes behind Soulstone Survivors but well clear of the rest of the pack.</p>



<p class="wp-block-paragraph">Nobody else in the genre does what this game does. Instead of a fixed arena, you&#8217;re actively mining through terrain while holding off hordes, which adds a layer of spatial strategy most games here don&#8217;t have.</p>



<p class="wp-block-paragraph">The DRG universe helps too. If you&#8217;ve put time into the original, this one feels like a natural extension.</p>



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



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



<li>Xbox Game Pass, Series X|S, Xbox Cloud</li>
</ul>



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



<ul class="wp-block-list">
<li>Mining through terrain while dodging hordes is genuinely unlike anything else in the genre</li>



<li>Biome variety means runs rarely feel like a copy of the last one</li>



<li>Visually one of the most polished games here, it shows</li>



<li>Directional aiming adds a skill gap that auto-attack games don&#8217;t have</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Deep-Rock-Galactic-Survivors-2-1024x576.png" alt="Deep Rock Galactic Survivor top-down gameplay showing a dwarf character fighting insect hordes in an alien cave, a standout bullet heaven game on PC and Game Pass" class="wp-image-590" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Deep-Rock-Galactic-Survivors-2-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Deep-Rock-Galactic-Survivors-2-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Deep-Rock-Galactic-Survivors-2-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Deep-Rock-Galactic-Survivors-2.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



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



<ul class="wp-block-list">
<li>Runs can push 45 minutes, which is long compared to most in this space</li>



<li>Early upgrades feel a little underwhelming before things open up</li>



<li>No mouse aiming trips up a lot of players coming from similar games</li>



<li>Certain weapons only shine in specific biomes, which can feel limiting</li>
</ul>



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



<p class="wp-block-paragraph">&#8220;Deep Rock Galactic Survivor has taken over my life lol&#8221; — u/191828</p>



<p class="wp-block-paragraph">&#8220;Nothing has come close to DRG Survivor for me.&#8221; — u/ThrawnGetsBuckets</p>



<p class="wp-block-paragraph">&#8220;I put a ton of hours into Deep Rock Galactic Survivor. It&#8217;s a blast and really satisfying.&#8221; — u/cparksrun</p>



<h3 class="wp-block-heading"><strong>3. 20 Minutes Till Dawn</strong></h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-20-Minutes-till-Dawn-1024x576.png" alt="20 Minutes Till Dawn key art featuring a gun-wielding character against a dark tentacled background, a top bullet heaven game on Steam and mobile" class="wp-image-582" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-20-Minutes-till-Dawn-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-20-Minutes-till-Dawn-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-20-Minutes-till-Dawn-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-20-Minutes-till-Dawn.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">20 Minutes Till Dawn came in third with 114 votes across 4 threads, a solid showing for a game that doesn&#8217;t always get the attention it deserves.</p>



<p class="wp-block-paragraph">The premise is exactly what it sounds like: survive until dawn.&nbsp;</p>



<p class="wp-block-paragraph">Runs are short, the dark pixelated art style sets a mood most games in this space don&#8217;t bother with, and the synergy system rewards players who actually think about their build rather than just grabbing whatever looks biggest.</p>



<p class="wp-block-paragraph">It sits in an interesting spot. Not as deep as Soulstone, not as mechanically unique as DRG Survivor, but for a lot of players it&#8217;s the one they keep coming back to.</p>



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



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



<li>Mobile (Android, iOS)</li>
</ul>



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



<ul class="wp-block-list">
<li>Short runs mean you&#8217;re back in action fast, no 45 minute commitments</li>



<li>Art style and atmosphere are genuinely distinct from most of the genre</li>



<li>Synergy-focused build system rewards intentional play</li>



<li>Music is consistently praised alongside the visuals</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-20-Minutes-till-Dawn-2-1024x576.png" alt="20 Minutes Till Dawn gameplay showing a character surrounded by a swirling vortex of enemies, a synergy-focused best bullet heaven game" class="wp-image-581" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-20-Minutes-till-Dawn-2-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-20-Minutes-till-Dawn-2-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-20-Minutes-till-Dawn-2-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-20-Minutes-till-Dawn-2.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



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



<ul class="wp-block-list">
<li>Build variety can feel limited compared to deeper games in the genre</li>



<li>Less meta progression than most, which puts off players who like a persistent grind</li>



<li>Manual aiming takes adjustment for players used to auto-attack games</li>
</ul>



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



<p class="wp-block-paragraph">&#8220;20 Minutes Till Dawn doesn&#8217;t get enough love. The art and music are top tier.&#8221; — u/Pitiful_Yogurt_5276</p>



<h3 class="wp-block-heading"><strong>4. Death Must Die</strong></h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Death-Must-Die-1024x576.png" alt="Death Must Die key art featuring an armored character with lightning effects, a bullet heaven game that blends Vampire Survivors with Hades" class="wp-image-588" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Death-Must-Die-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Death-Must-Die-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Death-Must-Die-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Death-Must-Die.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Death Must Die landed fourth with 105 votes across 6 threads, just 9 votes behind Boneraiser Minions in fifth.</p>



<p class="wp-block-paragraph">It sits in an interesting spot in the genre. The core loop borrows from Vampire Survivors, but the god blessing system and persistent gear give it an RPG layer that most games here skip entirely. Runs feel more deliberate because of it.</p>



<p class="wp-block-paragraph">The community consistently describes it as one of the more unique takes on the formula, which is a hard thing to pull off in a genre this crowded.</p>



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



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



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



<ul class="wp-block-list">
<li>God blessing system adds real build variety and keeps runs feeling different</li>



<li>Persistent gear carries meaningful power across runs without feeling like a grind</li>



<li>More interactive combat than most, manual aiming and boss pattern learning reward skill</li>



<li>Pixel art is consistently praised as some of the best in the genre</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Death-Must-Die-2-1024x576.png" alt="Death Must Die isometric gameplay showing a character surrounded by a ring of fire and skeleton enemies, one of the best bullet heaven games on Steam" class="wp-image-587" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Death-Must-Die-2-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Death-Must-Die-2-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Death-Must-Die-2-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Death-Must-Die-2.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



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



<ul class="wp-block-list">
<li>Reward loops can feel slow compared to faster-paced games in this space</li>



<li>Map and spawn patterns get repetitive in longer sessions</li>



<li>Still in early access, so content depth is limited compared to fully released titles</li>



<li>UI and polish lag behind the top games in the genre</li>
</ul>



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



<p class="wp-block-paragraph">&#8220;How has nobody suggested Death Must Die. It&#8217;s like a cross between Vampire Survivors and Hades.&#8221; — u/finlopes997</p>



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



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Boneraiser-Minions-1024x576.png" alt="Boneraiser Minions pixel art title screen with a graveyard backdrop, one of the best value bullet heaven games available" class="wp-image-584" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Boneraiser-Minions-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Boneraiser-Minions-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Boneraiser-Minions-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Boneraiser-Minions.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Boneraiser Minions finished fifth with 104 votes across 6 threads, just one vote behind Death Must Die.</p>



<p class="wp-block-paragraph">Most games in this genre put you in the middle of the chaos. Boneraiser hands you an army and lets the chaos fight for you. The minion-building loop is genuinely different from anything else on this list, and the deliberately goofy aesthetic makes it hard not to enjoy.</p>



<p class="wp-block-paragraph">It also punches above its weight financially, sitting at around $3 while most games here charge double.</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>Minion system is a genuinely fresh take on the genre&#8217;s formula</li>



<li>Goofy charm and chiptune soundtrack make it stand out visually and aurally</li>



<li>Deep unlock system keeps long-term players engaged</li>



<li>Exceptional value at its price point</li>
</ul>



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



<ul class="wp-block-list">
<li>Passive playstyle won&#8217;t appeal to players who want direct combat control</li>



<li>Art style is deliberately retro and lo-fi, which isn&#8217;t for everyone</li>



<li>Early runs can feel slow before the minion army scales up</li>



<li>Less approachable for newcomers to the genre</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Boneraiser-Minions-2-1024x576.png" alt="Boneraiser Minions gameplay showing a character commanding skeleton minions with purple lightning strikes against enemy hordes, a unique bullet heaven game" class="wp-image-583" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Boneraiser-Minions-2-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Boneraiser-Minions-2-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Boneraiser-Minions-2-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Boneraiser-Minions-2.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



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



<p class="wp-block-paragraph">&#8220;Boneraiser Minions is my favorite. I love pet classes and this game is all about them. Plus it&#8217;s goofy as hell.&#8221; — u/indiemosh</p>



<p class="wp-block-paragraph">&#8220;Boneraiser minions even at full price is a steal, but at $3.24 should be in everyone&#8217;s cart.&#8221; — u/plentyofswords</p>



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



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Brotato-1024x576.png" alt="Brotato key art featuring the potato mascot wielding dual guns surrounded by monsters, a top-rated bullet heaven game across all platforms" class="wp-image-586" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Brotato-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Brotato-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Brotato-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Brotato.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Brotato came in sixth with 103 votes across 5 threads, which is interesting given that most of these Reddit threads were posted in Brotato-adjacent communities. The fact that it still only ranked sixth says something about how strong the competition is.&nbsp;</p>



<p class="wp-block-paragraph">Brotato is still the gold standard for tight, wave-based bullet heaven gameplay. Short runs, deep build variety, and a price tag that makes it impossible to complain about.</p>



<p class="wp-block-paragraph">If this is your first time hearing about this game, be sure to check out our <a href="https://rogueranker.com/brotato-review/">Brotato review</a>.</p>



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



<ul class="wp-block-list">
<li>Xbox</li>



<li>PC (Steam, Epic Games Store)</li>



<li>Nintendo Switch</li>



<li>PlayStation (PS4/PS5)</li>



<li>Mobile (Android, iOS)</li>
</ul>



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



<ul class="wp-block-list">
<li>Wave-based format with shop segments creates a uniquely tight gameplay loop</li>



<li>Character roster is huge, with each one genuinely changing how you approach a run</li>



<li>Runs clock in around 25 minutes, making it easy to fit in one more</li>



<li>Build variety is deep without being overwhelming</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Brotato-2-1024x576.png" alt="Brotato top-down gameplay showing a potato character fighting waves of alien enemies on a barren map, one of the best bullet heaven games on Switch and PC" class="wp-image-585" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Brotato-2-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Brotato-2-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Brotato-2-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Brotato-2.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



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



<ul class="wp-block-list">
<li>Fixed arena map can feel limiting compared to games with more open environments</li>



<li>Some characters have steep difficulty curves that can frustrate newer players</li>



<li>Visual style won&#8217;t win any awards, though it gets the job done</li>
</ul>



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



<p class="wp-block-paragraph">&#8220;If I had to recommend just one it would be Brotato, simple but amazing.&#8221; — u/AnorakSirt</p>



<p class="wp-block-paragraph">&#8220;My only hundred hour game and I haven&#8217;t even played a round in the abyss yet. So good.&#8221; — u/Iggy_R3d</p>



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



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Megabonk-1024x576.png" alt="Megabonk key art featuring an armored warrior battling flaming enemies and skeletons, one of the newest best bullet heaven games in early access" class="wp-image-596" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Megabonk-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Megabonk-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Megabonk-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Megabonk.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Megabonk cracked the top ten with 92 votes across just 2 threads, which makes it one of the more interesting data points in the whole set.</p>



<p class="wp-block-paragraph">Why? Well, it was released on September 18, 2025, so at the time of writing and data collection, it had cracked the top 10 after 6 months of gameplay.</p>



<p class="wp-block-paragraph">And for good reason. I have to say, this is one of my new favorite games.</p>



<p class="wp-block-paragraph">Getting 92 votes from only 2 threads means the comments that suggested it were heavily upvoted. The community that knows Megabonk <em>really</em> knows Megabonk.</p>



<p class="wp-block-paragraph">It&#8217;s a newer entry in the genre, still in early access, but it’s hard to ignore (and for good reason).</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>Wacky characters and builds give it a personality most games in this space lack</li>



<li>Early access community is actively engaged and the developer is responsive</li>



<li>Fast-paced and immediately fun without a steep learning curve</li>



<li>Already receiving balance patches, showing active development</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Megabonk-2-1024x576.png" alt="Megabonk gameplay showing a knight character fighting a giant enemy with projectiles in an outdoor environment, a fast-paced bullet heaven game on Steam" class="wp-image-595" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Megabonk-2-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Megabonk-2-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Megabonk-2-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Megabonk-2.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



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



<ul class="wp-block-list">
<li>Still in early access, so content depth is limited</li>



<li>Smaller player base means less community resources and guides</li>



<li>Build variety is promising but not yet as deep as more established titles</li>
</ul>



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



<p class="wp-block-paragraph">&#8220;Megabonk has me fully addicted at the moment. Can&#8217;t wait to see it evolve, there&#8217;s already been a balance patch.&#8221; — u/a_naked_molerat</p>



<p class="wp-block-paragraph">&#8220;Megabonk is new and very fun.&#8221; — u/ghostyghostghostt</p>



<h3 class="wp-block-heading"><strong>8. Picayune Dreams</strong></h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Picayune-Dreams-1024x576.png" alt="Picayune Dreams key art featuring an unsettling close-up face with glowing eyes, the most atmospheric and unique bullet heaven game on Steam" class="wp-image-598" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Picayune-Dreams-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Picayune-Dreams-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Picayune-Dreams-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Picayune-Dreams.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Picayune Dreams finished eighth with 80 votes across 4 threads, and it consistently attracted a different kind of comment than most games on this list.</p>



<p class="wp-block-paragraph">Nobody called it the most fun or the most replayable. They called it the peak of the genre. That&#8217;s a different conversation, and it kept coming up because Picayune Dreams does something most bullet heaven games don&#8217;t bother with: it has a weird, unsettling atmosphere and a story worth paying attention to.</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>Atmosphere and art direction are genuinely unlike anything else in the genre</li>



<li>Bullet hell boss fights add a layer of challenge most games here skip</li>



<li>Soundtrack is consistently praised as one of the best</li>



<li>Has an actual story, which is rare for this type of game</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Picayune-Dreams-2-1024x576.png" alt="Picayune Dreams gameplay showing a tiny character unleashing a red energy explosion against waves of colorful alien enemies, one of the most artistic best bullet heaven games" class="wp-image-597" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Picayune-Dreams-2-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Picayune-Dreams-2-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Picayune-Dreams-2-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Picayune-Dreams-2.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



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



<ul class="wp-block-list">
<li>Niche aesthetic won&#8217;t appeal to players looking for something bright and accessible</li>



<li>More mechanically demanding than most bullet heaven games</li>



<li>Shorter content depth compared to longer-running titles in the genre</li>
</ul>



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



<p class="wp-block-paragraph">&#8220;Picayune Dreams is the absolute peak of the subgenre.&#8221; — u/King10910</p>



<h3 class="wp-block-heading"><strong>9. Enter the Gungeon</strong></h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Enter-The-Gungeon-1024x576.png" alt="Enter the Gungeon key art featuring the full character roster armed with weapons, a popular bullet heaven game on PS5, Switch, Xbox, and PC" class="wp-image-593" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Enter-The-Gungeon-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Enter-The-Gungeon-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Enter-The-Gungeon-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Enter-The-Gungeon.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Enter the Gungeon landed ninth with 72 votes across 2 threads, and it&#8217;s worth noting upfront that this is a bullet <em>hell</em> game that kept getting suggested in bullet <em>heaven</em> threads.</p>



<p class="wp-block-paragraph">The community was split on whether it belongs here, but the votes don&#8217;t lie.&nbsp;</p>



<p class="wp-block-paragraph">Gungeon players clearly feel the overlap, even if the mechanics lean harder into precision dodging than scaling damage. If you&#8217;ve exhausted the bullet heaven options above and want something that tests your reflexes a bit more, this is the natural next step.</p>



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



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



<li>PlayStation (PS4/PS5)</li>



<li>Nintendo Switch</li>



<li>Xbox</li>
</ul>



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



<ul class="wp-block-list">
<li>Combat feels incredibly tight and skill-based compared to most games on this list</li>



<li>Item and synergy variety is enormous; runs rarely play out the same way</li>



<li>High replay value once you understand the systems</li>



<li>Humor and gun puns are genuinely charming</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Enter-The-Gungeon-2-1024x576.png" alt="Enter the Gungeon pixel art gameplay showing a character dodging neon laser patterns in a dungeon room, a bullet heaven game with deep item synergies" class="wp-image-592" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Enter-The-Gungeon-2-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Enter-The-Gungeon-2-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Enter-The-Gungeon-2-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Enter-The-Gungeon-2.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



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



<ul class="wp-block-list">
<li>Steeper learning curve than anything else on this list</li>



<li>More bullet hell than bullet heaven, which isn&#8217;t what everyone is looking for</li>



<li>Early runs can feel punishing before the mechanics click</li>
</ul>



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



<p class="wp-block-paragraph">&#8220;Enter the Gungeon&#8221; — u/codhimself, listed as &#8220;worth the sale price&#8221;</p>



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



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-HoloCure-1024x576.png" alt="HoloCure Save the Fans logo, a free-to-play bullet heaven game with polished mechanics and a large character roster" class="wp-image-594" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-HoloCure-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-HoloCure-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-HoloCure-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-HoloCure.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">HoloCure rounded out the top ten with 57 votes across 5 threads, and it has one detail that separates it from everything else on this list: it&#8217;s completely free.</p>



<p class="wp-block-paragraph">Built around Hololive vtubers, it&#8217;s easy to assume the audience is niche. But the game keeps getting recommended outside of vtuber communities because the actual mechanics are genuinely good.&nbsp;</p>



<p class="wp-block-paragraph">Multiple characters that each play differently, weapon evolutions borrowed from Vampire Survivors, and a level of polish that would be impressive for a paid game.</p>



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



<ul class="wp-block-list">
<li>PC (Steam) &#8211; free to play</li>
</ul>



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



<ul class="wp-block-list">
<li>Free, with no paywalls or monetization</li>



<li>Character roster is large and each one plays differently</li>



<li>Weapon evolution system adds meaningful build depth</li>



<li>Surprisingly polished for a fan-made free game</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-HoloCure-2-1024x576.png" alt="HoloCure pixel art gameplay showing a character dodging enemies in a dungeon corridor, a free bullet heaven game on Steam" class="wp-image-578" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-HoloCure-2-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-HoloCure-2-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-HoloCure-2-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-HoloCure-2.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



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



<ul class="wp-block-list">
<li>Vtuber theme is a barrier for players with no interest in that community</li>



<li>Narrower appeal compared to games with more universal themes</li>



<li>Less content depth than paid titles that have been in development longer</li>
</ul>



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



<p class="wp-block-paragraph">&#8220;Hololive save the fans is amazing and free. It&#8217;s possibly the best one out there whether you like vtubers or not.&#8221; — u/BigPoulet</p>



<h2 class="wp-block-heading"><strong>Honorable Mentions</strong></h2>



<p class="wp-block-paragraph">Here are some ones we couldn’t leave out.</p>



<h3 class="wp-block-heading"><strong>Vampire Survivors</strong></h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Vampire-Survivors-1024x576.png" alt="Vampire Survivors key art featuring a character wielding magical weapons against a red sky, one of the best bullet heaven games ever made" class="wp-image-580" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Vampire-Survivors-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Vampire-Survivors-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Vampire-Survivors-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Vampire-Survivors.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Vampire Survivors finished with just 18 votes across 3 threads, which is one of the more surprising results in the entire data set.</p>



<p class="wp-block-paragraph">This is the game that made bullet heaven a genre people actually talk about. It didn&#8217;t invent it (Magic Survival on mobile holds that title), but it blew the doors open and inspired most of the games on this list.</p>



<p class="wp-block-paragraph">The low vote count probably says less about the game&#8217;s quality and more about who&#8217;s posting in these threads. If you&#8217;re already deep enough into bullet heaven to be asking Reddit for recommendations, you&#8217;ve almost certainly already played Vampire Survivors.</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>Xbox (Game Pass)</li>



<li>PlayStation (PS4/PS5)</li>



<li>Mobile (Android, iOS)</li>
</ul>



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



<ul class="wp-block-list">
<li>Weapon evolution system is still one of the best in the genre</li>



<li>Massive content depth with characters, stages, and secrets to unlock</li>



<li>Runs evolve over time in a way most games here don&#8217;t attempt</li>



<li>Available on everything, including mobile</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Vampire-Survivors-2-1024x576.png" alt="Vampire Survivors gameplay showing a lone character clearing a massive horde with blue magical energy, the bullet heaven game that defined the genre" class="wp-image-579" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Vampire-Survivors-2-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Vampire-Survivors-2-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Vampire-Survivors-2-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Vampire-Survivors-2.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



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



<ul class="wp-block-list">
<li>Slower paced compared to tighter games like Brotato</li>



<li>Meta progression can feel grindy for players who want to move fast</li>



<li>Visual chaos can get overwhelming mid-run</li>
</ul>



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



<p class="wp-block-paragraph">&#8220;The OG, but also the Weapon/Trinket pair combo style.&#8221; — u/xJazzHS</p>



<h3 class="wp-block-heading"><strong>Halls of Torment</strong></h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Halls-of-Torment-1024x576.png" alt="Halls of Torment key art featuring armored warriors fighting a skeleton horde, a Diablo-inspired bullet heaven game on PC and Xbox" class="wp-image-577" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Halls-of-Torment-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Halls-of-Torment-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Halls-of-Torment-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Halls-of-Torment.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Halls of Torment finished just outside the top ten with 54 votes across 6 threads, making it one of the most consistent performers that didn&#8217;t quite crack the list.</p>



<p class="wp-block-paragraph">It leans darker and slower than everything above it, borrowing more from Diablo than from Vampire Survivors. Runs are deliberate, the atmosphere is genuinely grim, and the boss mechanics add a layer of challenge most bullet heaven games skip entirely.</p>



<p class="wp-block-paragraph">It&#8217;s not the game you pick up for a quick 20-minute session; it&#8217;s the one you sink into for an hour without noticing.</p>



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



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



<li>Xbox</li>
</ul>



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



<ul class="wp-block-list">
<li>Boss mechanics create genuine tension rather than just wave scaling</li>



<li>D2-inspired art style and atmosphere are distinct from everything else on this list</li>



<li>Slower pace rewards thoughtful builds over pure reaction speed</li>



<li>Progression system takes time to open up but pays off when it does</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Halls-of-Torment-2-1024x576.png" alt="Halls of Torment gameplay showing a character surrounded by chaotic purple and blue projectiles in a dark dungeon, one of the best bullet heaven games" class="wp-image-576" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Halls-of-Torment-2-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Halls-of-Torment-2-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Halls-of-Torment-2-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Heaven-Games-Halls-of-Torment-2.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



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



<ul class="wp-block-list">
<li>Takes an hour or two before meaningful progression kicks in</li>



<li>Darker tone and slower pace aren&#8217;t for everyone</li>



<li>Steeper learning curve than most games on this list</li>
</ul>



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



<p class="wp-block-paragraph">&#8220;Halls of Torment is pretty solid!&#8221; — u/iskander1989</p>



<p class="wp-block-paragraph">&#8220;Halls of torment is basically Diablo 2 bullet heaven and it&#8217;s great.&#8221; — u/Inevitable_Fly1508</p>



<h2 class="wp-block-heading"><strong>All 57 Bullet Heaven Games Ranked With Sales Data</strong></h2>



<p class="wp-block-paragraph">These are every game that came up across the 15 threads I went through, ranked by total votes.&nbsp;</p>



<p class="wp-block-paragraph">I&#8217;ve layered in VGN Insights data where it was available to give you a sense of how each game is actually performing commercially.</p>



<p class="wp-block-paragraph">A few things worth noting before you dig in: gross revenue and units sold are estimates, not official figures.&nbsp;</p>



<p class="wp-block-paragraph">Median playtime is particularly interesting because it tells you how long people actually stick with a game, not just how long they played before refunding.</p>


<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700&family=Barlow:wght@400;500;600&display=swap" rel="stylesheet" />

<!-- Styles -->
<style>
  .rr-mega-wrap {
    width: 100%;
    max-width: 960px;
    margin: 0 auto;
    font-family: 'Barlow', sans-serif;
    font-size: 13px;
  }

  .rr-mega-intro {
    margin-bottom: 1.2rem;
    color: #1a1a24;
    line-height: 1.7;
  }
  .rr-mega-intro p { margin-bottom: 0.6rem; }
  .rr-mega-intro p.rr-mega-note {
    font-size: 0.82rem;
    color: #888699;
    font-style: italic;
  }

  .rr-mega-table-wrap {
    overflow-x: auto;
    border: 1px solid #e0dded;
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
  }

  .rr-mega-table-wrap table {
    width: 100%;
    border-collapse: collapse;
    min-width: 480px;
    background: #fff;
  }

  .rr-mega-table-wrap thead tr {
    background: #1a1a24;
    border-bottom: 2px solid #c0392b;
  }
  .rr-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;
  }
  .rr-mega-table-wrap thead th.num { text-align: right; }

  .rr-mega-table-wrap tbody tr {
    border-bottom: 1px solid #e0dded;
    transition: background 0.12s;
  }
  .rr-mega-table-wrap tbody tr:last-child { border-bottom: none; }
  .rr-mega-table-wrap tbody tr:nth-child(even) { background: #f7f6fb; }
  .rr-mega-table-wrap tbody tr:hover { background: #f0eef8; }

  /* Gold highlight for #1 */
  .rr-mega-table-wrap tbody tr.top-rank { background: #fffbf0; }
  .rr-mega-table-wrap tbody tr.top-rank:hover { background: #fff5d6; }
  .rr-mega-table-wrap tbody tr.top-rank td.rr-game { font-weight: 700; color: #b8892a; }

  .rr-mega-table-wrap td {
    padding: 0.55rem 0.75rem;
    vertical-align: middle;
    color: #1a1a24;
  }

  .rr-rank {
    font-weight: 700;
    color: #888699;
    text-align: center;
    width: 36px;
  }
  .rr-game { font-weight: 500; max-width: 160px; word-break: break-word; }
  .rr-num  { text-align: right; color: #333; white-space: nowrap; width: 90px; }
  .rr-na   { text-align: right; color: #bbb; font-style: italic; font-size: 0.8rem; white-space: nowrap; width: 90px; }

  /* Mobile */
  @media (max-width: 560px) {
    .rr-mega-table-wrap thead th,
    .rr-mega-table-wrap td { padding: 0.55rem 0.6rem; font-size: 0.78rem; }
    .rr-mega-table-wrap thead th { font-size: 0.52rem; }
  }
</style>

<!-- Intro -->
<div class="rr-mega-wrap">
  <div class="rr-mega-intro">
    <p class="rr-mega-note">Gross revenue and units sold are estimates, not official figures. Median playtime tells you how long people actually stick with a game — not just how long they played before refunding.</p>
  </div>

  <div class="rr-mega-table-wrap">
    <table>
    <colgroup>
      <col style="width:40px">
      <col style="width:160px">
      <col style="width:55px">
      <col style="width:110px">
      <col style="width:95px">
      <col style="width:75px">
      <col style="width:100px">
    </colgroup>
      <thead>
        <tr>
          <th scope="col">Rank</th>
          <th scope="col">Game</th>
          <th scope="col" class="num">Votes</th>
          <th scope="col" class="num">Gross Revenue</th>
          <th scope="col" class="num">Units Sold</th>
          <th scope="col" class="num">Avg Cost</th>
          <th scope="col" class="num">Median Playtime</th>
        </tr>
      </thead>
      <tbody>
        <tr class="top-rank">
          <td class="rr-rank">1</td><td class="rr-game">Soulstone Survivors</td><td class="rr-num">195</td><td class="rr-num">$22,500,000</td><td class="rr-num">1,300,000</td><td class="rr-num">$17</td><td class="rr-num">9.0 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">2</td><td class="rr-game">Deep Rock Galactic: Survivor</td><td class="rr-num">121</td><td class="rr-num">$164,000</td><td class="rr-num">44,040</td><td class="rr-num">$4</td><td class="rr-num">4.5 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">3</td><td class="rr-game">20 Minutes Till Dawn</td><td class="rr-num">114</td><td class="rr-num">$100,000</td><td class="rr-num">157,000</td><td class="rr-num">$1</td><td class="rr-num">11.3 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">4</td><td class="rr-game">Death Must Die</td><td class="rr-num">105</td><td class="rr-num">$1,500,000</td><td class="rr-num">168,000</td><td class="rr-num">$9</td><td class="rr-num">6.5 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">5</td><td class="rr-game">Boneraiser Minions</td><td class="rr-num">104</td><td class="rr-num">$126,000</td><td class="rr-num">27,960</td><td class="rr-num">$5</td><td class="rr-num">5.1 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">6</td><td class="rr-game">Brotato</td><td class="rr-num">103</td><td class="rr-num">$2,500,000</td><td class="rr-num">840,000</td><td class="rr-num">$3</td><td class="rr-num">6.9 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">7</td><td class="rr-game">Megabonk</td><td class="rr-num">92</td><td class="rr-num">$530,000</td><td class="rr-num">60,540</td><td class="rr-num">$9</td><td class="rr-num">2.9 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">8</td><td class="rr-game">Picayune Dreams</td><td class="rr-num">80</td><td class="rr-num">$27,500,000</td><td class="rr-num">2,200,000</td><td class="rr-num">$13</td><td class="rr-num">5.3 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">9</td><td class="rr-game">Enter The Gungeon</td><td class="rr-num">72</td><td class="rr-na">N/A</td><td class="rr-na">N/A</td><td class="rr-na">N/A</td><td class="rr-na">N/A</td>
        </tr>
        <tr>
          <td class="rr-rank">10</td><td class="rr-game">HoloCure</td><td class="rr-num">57</td><td class="rr-num">$16,626</td><td class="rr-num">4,590</td><td class="rr-num">$4</td><td class="rr-na">N/A</td>
        </tr>
        <tr>
          <td class="rr-rank">11</td><td class="rr-game">Yet Another Zombie Survivors</td><td class="rr-num">56</td><td class="rr-num">$5,100,000</td><td class="rr-num">517,000</td><td class="rr-num">$10</td><td class="rr-num">12.8 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">12</td><td class="rr-game">Halls of Torment</td><td class="rr-num">54</td><td class="rr-num">$1,678</td><td class="rr-num">450</td><td class="rr-num">$4</td><td class="rr-na">N/A</td>
        </tr>
        <tr>
          <td class="rr-rank">13</td><td class="rr-game">I Am Legion</td><td class="rr-num">45</td><td class="rr-num">$4,800,000</td><td class="rr-num">563,000</td><td class="rr-num">$9</td><td class="rr-num">10.6 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">14</td><td class="rr-game">Nordic Ashes</td><td class="rr-num">40</td><td class="rr-num">$13,000,000</td><td class="rr-num">1,600,000</td><td class="rr-num">$8</td><td class="rr-num">2.9 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">15</td><td class="rr-game">God of Weapons</td><td class="rr-num">39</td><td class="rr-num">$16,223</td><td class="rr-num">2,370</td><td class="rr-num">$7</td><td class="rr-na">N/A</td>
        </tr>
        <tr>
          <td class="rr-rank">16</td><td class="rr-game">Army of Ruin</td><td class="rr-num">35</td><td class="rr-num">$227,290</td><td class="rr-num">104,580</td><td class="rr-num">$2</td><td class="rr-num">0.8 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">17</td><td class="rr-game">Temtem: Swarm</td><td class="rr-num">29</td><td class="rr-num">$381,000</td><td class="rr-num">75,930</td><td class="rr-num">$5</td><td class="rr-num">6.7 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">18</td><td class="rr-game">Rogue Genesia</td><td class="rr-num">29</td><td class="rr-num">$137,000</td><td class="rr-num">36,330</td><td class="rr-num">$4</td><td class="rr-num">7.9 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">19</td><td class="rr-game">Bioprototype</td><td class="rr-num">19</td><td class="rr-num">$1,600,000</td><td class="rr-num">112,000</td><td class="rr-num">$14</td><td class="rr-num">8.5 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">20</td><td class="rr-game">Spell Disk Survivor</td><td class="rr-num">19</td><td class="rr-num">$457,000</td><td class="rr-num">60,300</td><td class="rr-num">$8</td><td class="rr-num">8.8 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">21</td><td class="rr-game">Rock and Stone</td><td class="rr-num">19</td><td class="rr-na">N/A</td><td class="rr-num">1,200,000</td><td class="rr-num">$0</td><td class="rr-num">7.8 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">22</td><td class="rr-game">Vampire Survivors</td><td class="rr-num">18</td><td class="rr-num">$35,400,000</td><td class="rr-num">1,300,000</td><td class="rr-num">$27</td><td class="rr-num">11.6 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">23</td><td class="rr-game">Elemental Survivors</td><td class="rr-num">16</td><td class="rr-num">$144,000</td><td class="rr-num">32,430</td><td class="rr-num">$4</td><td class="rr-num">3.8 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">24</td><td class="rr-game">Nomad Survivor</td><td class="rr-num">14</td><td class="rr-num">$751,000</td><td class="rr-num">108,000</td><td class="rr-num">$7</td><td class="rr-num">1.3 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">25</td><td class="rr-game">Moonwatch</td><td class="rr-num">12</td><td class="rr-num">$41,600,000</td><td class="rr-num">3,600,000</td><td class="rr-num">$12</td><td class="rr-num">14.3 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">26</td><td class="rr-game">Time Wasters</td><td class="rr-num">11</td><td class="rr-num">$57,900,000</td><td class="rr-num">5,000,000</td><td class="rr-num">$12</td><td class="rr-num">18.6 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">27</td><td class="rr-game">Tiny Rogues</td><td class="rr-num">9</td><td class="rr-num">$3,300,000</td><td class="rr-num">887,000</td><td class="rr-num">$4</td><td class="rr-num">12.0 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">28</td><td class="rr-game">Kill Knight</td><td class="rr-num">7</td><td class="rr-na">N/A</td><td class="rr-na">N/A</td><td class="rr-na">N/A</td><td class="rr-na">N/A</td>
        </tr>
        <tr>
          <td class="rr-rank">29</td><td class="rr-game">Desktop Survivors 98</td><td class="rr-num">7</td><td class="rr-num">$219,000</td><td class="rr-num">25,300</td><td class="rr-num">$9</td><td class="rr-num">4.8 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">30</td><td class="rr-game">Renfield: Bring Your Own Blood</td><td class="rr-num">7</td><td class="rr-num">$8,600,000</td><td class="rr-num">1,100,000</td><td class="rr-num">$8</td><td class="rr-num">11.6 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">31</td><td class="rr-game">Rocket Rats</td><td class="rr-num">7</td><td class="rr-num">$148,000</td><td class="rr-num">148,000</td><td class="rr-num">$1</td><td class="rr-num">2.0 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">32</td><td class="rr-game">Crafty Survivors</td><td class="rr-num">7</td><td class="rr-num">$241,000</td><td class="rr-num">71,700</td><td class="rr-num">$3</td><td class="rr-num">6.3 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">33</td><td class="rr-game">Greedland</td><td class="rr-num">7</td><td class="rr-num">$27,900,000</td><td class="rr-num">8,500,000</td><td class="rr-num">$3</td><td class="rr-num">4.5 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">34</td><td class="rr-game">Achilles Survivors</td><td class="rr-num">6</td><td class="rr-num">$38,500,000</td><td class="rr-num">2,500,000</td><td class="rr-num">$15</td><td class="rr-num">15.0 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">35</td><td class="rr-game">Sodaman</td><td class="rr-num">6</td><td class="rr-num">$417,000</td><td class="rr-num">62,245</td><td class="rr-num">$7</td><td class="rr-num">3.8 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">36</td><td class="rr-game">Twilight Survivors</td><td class="rr-num">6</td><td class="rr-num">$3,300,000</td><td class="rr-num">621,000</td><td class="rr-num">$5</td><td class="rr-num">10.6 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">37</td><td class="rr-game">Entropy Survivors</td><td class="rr-num">6</td><td class="rr-num">$263,000</td><td class="rr-num">67,410</td><td class="rr-num">$4</td><td class="rr-num">7.0 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">38</td><td class="rr-game">Dwarven Realms</td><td class="rr-num">6</td><td class="rr-num">$111,000</td><td class="rr-num">8,700</td><td class="rr-num">$13</td><td class="rr-na">N/A</td>
        </tr>
        <tr>
          <td class="rr-rank">39</td><td class="rr-game">Vampire Hunters</td><td class="rr-num">5</td><td class="rr-na">N/A</td><td class="rr-num">2,310</td><td class="rr-num">$0</td><td class="rr-na">N/A</td>
        </tr>
        <tr>
          <td class="rr-rank">40</td><td class="rr-game">Ultra Blade</td><td class="rr-num">5</td><td class="rr-num">$494,000</td><td class="rr-num">155,000</td><td class="rr-num">$3</td><td class="rr-num">5.8 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">41</td><td class="rr-game">Astral Hunter</td><td class="rr-num">5</td><td class="rr-num">$368,000</td><td class="rr-num">86,190</td><td class="rr-num">$4</td><td class="rr-num">7.1 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">42</td><td class="rr-game">Neon Spellstorm</td><td class="rr-num">5</td><td class="rr-num">$382,000</td><td class="rr-num">27,690</td><td class="rr-num">$14</td><td class="rr-num">2.5 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">43</td><td class="rr-game">Deathstate</td><td class="rr-num">5</td><td class="rr-num">$6,200,000</td><td class="rr-num">833,000</td><td class="rr-num">$7</td><td class="rr-num">10.0 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">44</td><td class="rr-game">Armechgeddon</td><td class="rr-num">5</td><td class="rr-num">$4,000,000</td><td class="rr-num">416,000</td><td class="rr-num">$10</td><td class="rr-num">2.9 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">45</td><td class="rr-game">Nirmods</td><td class="rr-num">5</td><td class="rr-num">$38,600,000</td><td class="rr-num">4,000,000</td><td class="rr-num">$10</td><td class="rr-num">6.2 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">46</td><td class="rr-game">Burst Heroes</td><td class="rr-num">5</td><td class="rr-num">$2,609</td><td class="rr-num">540</td><td class="rr-num">$5</td><td class="rr-na">N/A</td>
        </tr>
        <tr>
          <td class="rr-rank">47</td><td class="rr-game">Returnal</td><td class="rr-num">5</td><td class="rr-num">$21,899</td><td class="rr-num">6,000</td><td class="rr-num">$4</td><td class="rr-na">N/A</td>
        </tr>
        <tr>
          <td class="rr-rank">48</td><td class="rr-game">Cast Out Colony</td><td class="rr-num">4</td><td class="rr-num">$1,320</td><td class="rr-num">1,410</td><td class="rr-num">$1</td><td class="rr-na">N/A</td>
        </tr>
        <tr>
          <td class="rr-rank">49</td><td class="rr-game">Kill The Crows</td><td class="rr-num">3</td><td class="rr-na">N/A</td><td class="rr-na">N/A</td><td class="rr-na">N/A</td><td class="rr-na">N/A</td>
        </tr>
        <tr>
          <td class="rr-rank">50</td><td class="rr-game">Sektori</td><td class="rr-num">3</td><td class="rr-num">$6,900,000</td><td class="rr-num">841,000</td><td class="rr-num">$8</td><td class="rr-num">3.1 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">51</td><td class="rr-game">Novadrift</td><td class="rr-num">3</td><td class="rr-num">$23,100,000</td><td class="rr-num">3,800,000</td><td class="rr-num">$6</td><td class="rr-num">10.2 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">52</td><td class="rr-game">Outnumbered</td><td class="rr-num">3</td><td class="rr-num">$162,000</td><td class="rr-num">21,270</td><td class="rr-num">$8</td><td class="rr-num">2.9 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">53</td><td class="rr-game">Bounty of One</td><td class="rr-num">3</td><td class="rr-num">$10,134</td><td class="rr-num">2,850</td><td class="rr-num">$4</td><td class="rr-na">N/A</td>
        </tr>
        <tr>
          <td class="rr-rank">54</td><td class="rr-game">Project Lazarus</td><td class="rr-num">3</td><td class="rr-num">$1,300,000</td><td class="rr-num">122,000</td><td class="rr-num">$11</td><td class="rr-num">1.0 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">55</td><td class="rr-game">Achilles Survivor</td><td class="rr-num">2</td><td class="rr-num">$3,300,000</td><td class="rr-num">437,000</td><td class="rr-num">$8</td><td class="rr-num">11.0 hrs</td>
        </tr>
        <tr>
          <td class="rr-rank">56</td><td class="rr-game">Tower of Babel</td><td class="rr-num">2</td><td class="rr-na">N/A</td><td class="rr-na">N/A</td><td class="rr-na">N/A</td><td class="rr-na">N/A</td>
        </tr>
        <tr>
          <td class="rr-rank">57</td><td class="rr-game">Valkyrie Rising</td><td class="rr-num">2</td><td class="rr-num">$144,500,000</td><td class="rr-num">8,500,000</td><td class="rr-num">$17</td><td class="rr-num">16.8 hrs</td>
        </tr>
      </tbody>
    </table>
  </div>
</div>



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



<p class="wp-block-paragraph">That&#8217;s 1,652 votes across 15 threads and 57 games, which took longer to go through than I&#8217;m going to admit.</p>



<p class="wp-block-paragraph">The honest takeaway is that there&#8217;s no single answer. Soulstone Survivors won the vote count, but the game that&#8217;s right for you depends entirely on what you&#8217;re looking for. Want tight 25-minute runs? Brotato. Want something that feels genuinely different? Deep Rock Galactic: Survivor. Want to turn your brain off and watch an army do the work? Boneraiser Minions.</p>



<p class="wp-block-paragraph">The genre is in a good place right now. There are enough options that you can be picky, and enough variety that even if one style doesn&#8217;t click, something else probably will.</p>



<p class="wp-block-paragraph">If I missed a game you think deserved a spot, drop it in the comments. I read them all, and the next time I update this list, I&#8217;ll look at community suggestions.</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-bullet-heaven-games/">(Top 57) Best Bullet Heaven Games &#8211; 1652 Reddit Votes</a> appeared first on <a href="https://rogueranker.com">Rogue Ranker</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>(Top 83) Best Bullet Hell Games &#8211; 863 Reddit Votes</title>
		<link>https://rogueranker.com/best-bullet-hell-games/</link>
		
		<dc:creator><![CDATA[Steven]]></dc:creator>
		<pubDate>Sun, 08 Mar 2026 04:10:32 +0000</pubDate>
				<category><![CDATA[Bullet Hell]]></category>
		<guid isPermaLink="false">https://rogueranker.com/?p=521</guid>

					<description><![CDATA[<p>I compiled the top 15 Reddit threads, tallied 863 cumulative upvotes, and let the community create an ultimate guide to the 84 best bullet hell games.&#160; My background is in making old school “best of” blogs, but here’s the thing: how do you define “best” without a voting system? You find some rando on Reddit? [&#8230;]</p>
<p>The post <a href="https://rogueranker.com/best-bullet-hell-games/">(Top 83) Best Bullet Hell Games &#8211; 863 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 compiled the top 15 Reddit threads, tallied 863 cumulative upvotes, and let the community create an ultimate guide to the 84 best bullet hell games.&nbsp;</p>



<p class="wp-block-paragraph">My background is in making old school “best of” blogs, but here’s the thing: how do you define “best” without a voting system? You find some rando on Reddit? Oh, wait, that’s me.</p>



<p class="wp-block-paragraph">Well, if you read my <a href="https://rogueranker.com/games-like-brotato/">games like Brotato</a> article, I used the same process: collect, count, and summarize. I figured this is the most authentic way to find the answer.</p>



<p class="wp-block-paragraph">As noted above, there were 84 games in total, but for the sake of the discussion, I only dug into the top 10. If you scroll down to the bottom, you can see the full list in its entirety, along with the VGN Insights data (because I’m a mega finance nerd).</p>



<p class="wp-block-paragraph">These are super fun to make, and we’ll be making more in the near future, so stay tuned <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">If you want to see which game is best for you, take our quiz below.</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>What Bullet Hell 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;
  }

  /* Force everything inside to respect container width */
  #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;
  }

  /* letter / checkmark badge */
  .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;
  }

  /* Reveal banner */
  .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 */
  .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);
  }

  /* Rank-1 special treatment */
  .result-card.rank-1 {
    border-color: var(--accent);
  }

  .result-card.rank-1:hover {
    box-shadow: 0 4px 32px rgba(255,191,0,0.15);
  }

  /* Top accent bar */
  .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;
  }

  /* Rank header row */
  .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 & small desktop ── */
  @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; }
    .score-bar-bg { height: 6px; }
    .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 · 83 Games Analyzed</span>
    <h2 class="quiz-title">What Bullet Hell Game Should I Play Next?</h2>
    <p class="quiz-subtitle">10 questions. Matched to 83 community-ranked games.</p>
  </div>
  <div id="quiz-body"></div>
</div>

<script>
// ─────────────────────────────────────────────
//  QUIZ DATA
// ─────────────────────────────────────────────

const questions = [
  {
    id: "q1",
    text: "What kind of bullet hell experience are you looking for?",
    options: [
      { label: "Roguelite runs — build a loadout, die, try again with new tricks", tags: ["roguelite", "metaprogression", "builds"] },
      { label: "Pure arcade — learn the patterns, master the stage, no hand-holding", tags: ["arcade", "shmup", "pattern_mastery"] },
      { label: "Something that blends roguelite depth with genuine bullet pressure", tags: ["roguelite", "challenging", "builds"] },
      { label: "I'm new — I want something approachable before going deeper", tags: ["accessible", "metaprogression", "free"] }
    ]
  },
  {
    id: "q2",
    text: "What kind of combat feel speaks to you most?",
    options: [
      { label: "Threading through dense bullet curtains with precise movement", tags: ["dodge_focus", "pattern_mastery", "shmup"] },
      { label: "Building a ridiculous weapon loadout and watching it shred everything", tags: ["builds", "synergies", "roguelite"] },
      { label: "Fast, chaotic movement where reflexes are everything", tags: ["fast_paced", "game_feel", "challenging"] },
      { label: "Memorable boss encounters with patterns I can actually learn", tags: ["boss_rush", "pattern_mastery", "challenging"] }
    ]
  },
  {
    id: "q3",
    text: "How important is meta progression (unlocks that carry between runs)?",
    options: [
      { label: "Essential — I need something to grind toward between deaths", tags: ["metaprogression", "roguelite", "builds"] },
      { label: "Nice to have, but I'm fine if each run stands alone", tags: ["roguelite", "runs", "challenging"] },
      { label: "I want fixed stages I can master and replay without randomness", tags: ["pattern_mastery", "shmup", "arcade"] },
      { label: "I want deep persistent progression — gear, upgrades, the works", tags: ["metaprogression", "builds", "synergies"] }
    ]
  },
  {
    id: "q4",
    text: "How long do you want a typical session to last?",
    options: [
      { label: "Short — under 30 minutes, death comes fast and restarts are instant", tags: ["short_runs", "fast_paced", "arcade"] },
      { label: "Medium — 30 to 60 minutes feels right", tags: ["medium_runs", "roguelite", "builds"] },
      { label: "Long — I want a sprawling run with lots to discover", tags: ["deep_content", "metaprogression", "builds"] },
      { label: "I don't care about length — just make it gripping", tags: ["roguelite", "challenging", "pattern_mastery"] }
    ]
  },
  {
    id: "q5",
    text: "What's your budget?",
    options: [
      { label: "Free — I'll only try free-to-play", tags: ["free"] },
      { label: "Budget — under $5", tags: ["budget"] },
      { label: "Mid-range — $5 to $15", tags: ["mid_price"] },
      { label: "Whatever — price doesn't matter if it's good", tags: ["any_price"] }
    ]
  },
  {
    id: "q6",
    text: "How do you feel about difficulty?",
    options: [
      { label: "I want something I can pick up without dying constantly at first", tags: ["accessible", "metaprogression", "roguelite"] },
      { label: "I want challenge that rewards learning — hard but fair", tags: ["challenging", "pattern_mastery", "builds"] },
      { label: "I want punishing arcade-grade difficulty where mastery is everything", tags: ["arcade", "shmup", "pattern_mastery"] },
      { label: "I want brutal boss fights that test every skill I have", tags: ["boss_rush", "challenging", "pattern_mastery"] }
    ]
  },
  {
    id: "q7",
    text: "What setting draws you in most?",
    options: [
      { label: "Dungeon crawler — rooms, loot, dark corridors", tags: ["dungeon_crawler", "roguelite", "builds"] },
      { label: "Space / sci-fi — ships, alien worlds, bullet curtains from above", tags: ["space", "shmup", "arcade"] },
      { label: "Post-apocalyptic — mutants, wasteland, raw chaos", tags: ["fast_paced", "game_feel", "challenging"] },
      { label: "Atmospheric — I want the world to feel like something", tags: ["atmospheric", "boss_rush", "metaprogression"] }
    ]
  },
  {
    id: "q8",
    text: "What's your experience level with bullet hell games?",
    options: [
      { label: "Beginner — I've mostly played bullet heaven games like Vampire Survivors", tags: ["accessible", "free", "metaprogression"] },
      { label: "Intermediate — I can clear most games after some practice", tags: ["roguelite", "builds", "challenging"] },
      { label: "Experienced — I want something genuinely difficult", tags: ["challenging", "pattern_mastery", "shmup"] },
      { label: "Veteran — I want arcade-grade mastery with no safety net", tags: ["arcade", "shmup", "pattern_mastery"] }
    ]
  },
  {
    id: "q9",
    text: "Which core loop sounds most appealing?",
    options: [
      { label: "Boss rush — every run is a series of escalating boss encounters", tags: ["boss_rush", "challenging", "atmospheric"] },
      { label: "Room-to-room dungeon clearing with escalating power", tags: ["dungeon_crawler", "builds", "synergies"] },
      { label: "Classic shoot 'em up — scroll, dodge, survive the wave", tags: ["shmup", "arcade", "pattern_mastery"] },
      { label: "Auto-battle survival — pick upgrades and watch the chaos unfold", tags: ["accessible", "free", "metaprogression"] }
    ]
  },
  {
    id: "q10",
    text: "What matters most to you for long-term replayability?",
    options: [
      { label: "Build depth — absurd synergies I'll never fully exhaust", tags: ["builds", "synergies", "roguelite"] },
      { label: "Mastery — fixed content I can get better at until I clear it clean", tags: ["pattern_mastery", "shmup", "arcade"] },
      { label: "Community love — I want the game Reddit won't shut up about", tags: ["roguelite", "dungeon_crawler", "builds"] },
      { label: "Underrated gem status — I want something most people haven't played", tags: ["boss_rush", "space", "atmospheric"] }
    ]
  }
];

// ─────────────────────────────────────────────
//  GAME DATABASE
// ─────────────────────────────────────────────

const games = [
  {
    name: "Enter the Gungeon",
    tags: ["roguelite","dungeon_crawler","builds","synergies","challenging","metaprogression","game_feel","medium_runs","mid_price","any_price","pattern_mastery","boss_rush","fast_paced"],
    price: "$9",
    playtime: "2.9 hrs",
    votes: 116,
    why: "The undisputed community king — 116 Reddit votes across 8 threads. Every room hides weapon synergies inside a relentlessly inventive dungeon, and no two runs feel the same."
  },
  {
    name: "Star of Providence",
    tags: ["space","shmup","builds","synergies","challenging","boss_rush","atmospheric","pattern_mastery","budget","free","any_price","deep_content","mid_price"],
    price: "Free / EA",
    playtime: "N/A",
    votes: 63,
    why: "The community's favorite underrated pick — 63 votes mostly from threads asking for hidden gems. Deep weapon customization across 13+ ship types make every run feel genuinely distinct."
  },
  {
    name: "The Void Rains Upon Her Heart",
    tags: ["boss_rush","challenging","atmospheric","deep_content","metaprogression","pattern_mastery","medium_runs","builds","mid_price","any_price","shmup"],
    price: "$12",
    playtime: "14.3 hrs",
    votes: 57,
    why: "Pure boss rush bullet hell with extraordinary depth. 57 Reddit votes, and everyone who actually played it became a devoted evangelist for it."
  },
  {
    name: "Tiny Rogues",
    tags: ["dungeon_crawler","builds","synergies","roguelite","medium_runs","metaprogression","budget","any_price","mid_price","challenging","deep_content","fast_paced"],
    price: "$2",
    playtime: "0.8 hrs",
    votes: 44,
    why: "Room-by-room dungeon crawler where build synergies get gloriously broken. 44 votes and consistently praised for the kind of replayability you lose hours to."
  },
  {
    name: "HoloCure",
    tags: ["free","accessible","metaprogression","builds","short_runs","budget"],
    price: "Free",
    playtime: "N/A",
    votes: 40,
    why: "Completely free on Steam and polished far beyond what any fan game deserves. The perfect on-ramp if you're not sure you'll love the genre."
  },
  {
    name: "Nuclear Throne",
    tags: ["fast_paced","game_feel","challenging","roguelite","short_runs","mid_price","any_price","pattern_mastery","builds","accessible"],
    price: "$13",
    playtime: "5.3 hrs",
    votes: 36,
    why: "Fast, chaotic, post-apocalyptic perfection. 36 votes across 6 threads — the most consistently recommended game relative to its vote count in the entire dataset."
  },
  {
    name: "Returnal",
    tags: ["any_price","challenging","atmospheric","boss_rush","pattern_mastery","metaprogression","medium_runs","deep_content","shmup","space"],
    price: "~$40",
    playtime: "8.5 hrs",
    votes: 34,
    why: "AAA production values meet genuine bullet hell design. The most visually spectacular and mechanically demanding game on this list — and worth every penny."
  },
  {
    name: "Death Must Die",
    tags: ["accessible","builds","metaprogression","short_runs","roguelite","atmospheric","budget","any_price","mid_price","synergies"],
    price: "$3",
    playtime: "4.5 hrs",
    votes: 31,
    why: "Vampire Survivors meets Hades — god-tier blessings and persistent loot create a deeply satisfying progression loop at a remarkable price."
  },
  {
    name: "The Binding of Isaac",
    tags: ["dungeon_crawler","roguelite","builds","synergies","deep_content","metaprogression","mid_price","any_price","challenging","boss_rush","medium_runs","pattern_mastery"],
    price: "$6",
    playtime: "10.2 hrs",
    votes: 21,
    why: "One of the deepest roguelites ever made, with boss encounters that are pure bullet hell. Thousands of item synergies to discover — effectively infinite replayability."
  },
  {
    name: "Dodonpachi DaiOuJou",
    tags: ["arcade","shmup","pattern_mastery","challenging","space","short_runs","budget","any_price","mid_price","boss_rush"],
    price: "$5",
    playtime: "5.1 hrs",
    votes: 20,
    why: "Cave's flagship and the closest thing to a primary source for the genre. No roguelite padding — just pure pattern mastery. This is what bullet hell actually means."
  },
  {
    name: "Ikaruga",
    tags: ["arcade","shmup","pattern_mastery","challenging","boss_rush","atmospheric","budget","any_price","short_runs","space"],
    price: "$1",
    playtime: "2.0 hrs",
    votes: 13,
    why: "The thinking person's bullet hell — a polarity-switching mechanic transforms dodging into puzzle-solving. Short, brutal, and completely unlike anything else on this list."
  },
  {
    name: "Nex Machina",
    tags: ["arcade","shmup","fast_paced","game_feel","challenging","pattern_mastery","short_runs","mid_price","any_price","space","boss_rush"],
    price: "$7",
    playtime: "10.0 hrs",
    votes: 9,
    why: "A kinetic twin-stick shooter with tight, punishing patterns and exceptional game feel. One of the best-feeling games on this entire list to actually control."
  }
];

// ─────────────────────────────────────────────
//  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 / 116) * 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;

  // Update option styles directly — no re-render, no shake
  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 83 community-ranked bullet hell 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>
  `;

  // Staggered card reveal + bar animation
  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' });
}

// Boot
render();
</script>
</body>
</html>



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



<h2 class="wp-block-heading"><strong>TL;DR — What Are the Best Bullet Hell Games?</strong></h2>



<p class="wp-block-paragraph">Based on 863 total votes across 15 Reddit threads, here are the top 10 bullet hell games ranked by community consensus:</p>



<ol class="wp-block-list">
<li><a href="https://enterthegungeon.com/">Enter The Gungeon</a></li>



<li><a href="https://store.steampowered.com/app/603960/Star_of_Providence/">Star of Providence</a></li>



<li><a href="https://store.steampowered.com/app/790060/The_Void_Rains_Upon_Her_Heart/">The Void Rains Upon Her Heart</a></li>



<li><a href="https://store.steampowered.com/app/2088570/Tiny_Rogues/">Tiny Rogues</a></li>



<li><a href="https://store.steampowered.com/app/2420510/HoloCure__Save_the_Fans/">Holocure</a></li>



<li><a href="https://nuclearthrone.com/">Nuclear Throne</a></li>



<li><a href="https://store.steampowered.com/app/1649240/Returnal/">Returnal</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/113200/The_Binding_of_Isaac/">The Binding of Isaac</a></li>



<li><a href="https://www.nintendo.com/us/store/products/dodonpachi-resurrection-switch/?srsltid=AfmBOopwCHKOt_0iFS4VmK2giumHQZz6ua4Ro-0liCZ9i-ZbdukcDi80">Dodonpachi DaiOuJou</a></li>
</ol>



<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" />

<!-- Styles -->
<style>
  :root {
    --bh-accent:  #c0392b;
    --bh-gold:    #b8892a;
    --bh-text:    #1a1a24;
    --bh-muted:   #888699;
    --bh-border:  #e0dded;
    --bh-stripe:  #f7f6fb;
    --bh-cat-bg:  #1a1a24;
    --bh-cat-txt: #e8e4dc;
  }

  .bh-table-header {
    text-align: center;
    margin-bottom: 1.6rem;
  }
  .bh-table-header p.bh-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(1rem, 3vw, 1.45rem);
    color: var(--bh-gold);
    letter-spacing: 0.04em;
    margin: 0 0 0.3rem;
  }
  .bh-table-header p.bh-sub {
    color: var(--bh-muted);
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin: 0;
  }

  .bh-table-wrap {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    overflow-x: auto;
    border: 1px solid var(--bh-border);
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
  }

  .bh-table-wrap table {
    width: 100%;
    border-collapse: collapse;
    min-width: 460px;
    background: #fff;
  }

  .bh-table-wrap thead tr {
    background: var(--bh-cat-bg);
    border-bottom: 2px solid var(--bh-accent);
  }
  .bh-table-wrap thead th {
    padding: 0.8rem 1.1rem;
    text-align: left;
    font-family: 'Cinzel Decorative', serif;
    font-size: 0.62rem;
    letter-spacing: 0.1em;
    color: #e8b94f;
    text-transform: uppercase;
    white-space: nowrap;
  }
  .bh-table-wrap thead th:last-child { text-align: right; }

  .bh-table-wrap tbody tr {
    border-bottom: 1px solid var(--bh-border);
    transition: background 0.12s;
  }
  .bh-table-wrap tbody tr:last-child { border-bottom: none; }
  .bh-table-wrap tbody tr:nth-child(even) { background: var(--bh-stripe) !important; }
  .bh-table-wrap tbody tr:hover { background: #f0eef8 !important; }
  .bh-table-wrap thead tr { background: var(--bh-cat-bg) !important; }
  .bh-table-wrap td {
    padding: 0.78rem 1.1rem;
    vertical-align: middle;
    font-family: 'Barlow', sans-serif;
    font-size: 14px;
  }

  .bh-cat {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    background: var(--bh-cat-bg) !important;
    color: var(--bh-cat-txt) !important;
    white-space: nowrap;
    border-right: 2px solid var(--bh-accent);
  }

  .bh-label {
    color: #555466;
    font-weight: 400;
  }

  .bh-val {
    text-align: right;
    font-weight: 600;
    color: var(--bh-text);
    white-space: nowrap;
  }

  .bh-val.top { color: var(--bh-gold); }

  .bh-footer {
    max-width: 780px;
    margin: 0.7rem auto 0;
    text-align: right;
    color: var(--bh-muted);
    font-size: 0.72rem;
    letter-spacing: 0.04em;
    font-family: 'Barlow', sans-serif;
  }

  /* Mobile */
  @media (max-width: 560px) {
    .bh-table-wrap thead th:first-child,
    .bh-table-wrap tbody td.bh-cat { display: none; }

    .bh-table-wrap tbody tr { display: flex; flex-direction: column; padding: 0.6rem 0; }
    .bh-table-wrap tbody td { display: block; padding: 0.15rem 1rem; border: none; }
    .bh-table-wrap tbody td.bh-label { font-size: 0.8rem; color: var(--bh-muted); }
    .bh-table-wrap tbody td.bh-val { text-align: left; font-size: 0.95rem; padding-top: 0; }

    .bh-table-wrap tbody tr { border-bottom: 1px solid var(--bh-border); }
    .bh-table-wrap tbody tr:last-child { border-bottom: none; }

    .bh-table-wrap thead tr { display: flex; }
    .bh-table-wrap thead th { display: none; }
    .bh-table-wrap thead th:nth-child(2) { display: block; padding: 0.7rem 1rem; font-size: 0.65rem; }

    .bh-footer { text-align: left; }
  }
</style>

<div class="bh-table-header">
  <p class="bh-title">Quick Stats — Best Bullet Hell Games</p>
  <p class="bh-sub">Key stats at a glance</p>
</div>

<div class="bh-table-wrap">
  <table>
    <thead>
      <tr>
        <th scope="col">Category</th>
        <th scope="col">Stat</th>
        <th scope="col">Value</th>
      </tr>
    </thead>
    <tbody>

      <tr>
        <td class="bh-cat" rowspan="3">Survey Scope</td>
        <td class="bh-label">Total votes collected</td>
        <td class="bh-val">863</td>
      </tr>
      <tr>
        <td class="bh-label">Threads analyzed</td>
        <td class="bh-val">15</td>
      </tr>
      <tr>
        <td class="bh-label">Total games mentioned</td>
        <td class="bh-val">83</td>
      </tr>

      <tr>
        <td class="bh-cat" rowspan="3">Rankings</td>
        <td class="bh-label">#1 ranked game</td>
        <td class="bh-val top">Enter the Gungeon — 116 votes</td>
      </tr>
      <tr>
        <td class="bh-label">Biggest gap (#1 vs #2 Star of Providence)</td>
        <td class="bh-val">53 votes</td>
      </tr>
      <tr>
        <td class="bh-label">Closest race (Dodonpachi DaiOuJou vs Touhou)</td>
        <td class="bh-val">20 vs 18 votes</td>
      </tr>

      <tr>
        <td class="bh-cat" rowspan="3">Standouts</td>
        <td class="bh-label">Most threads appeared in</td>
        <td class="bh-val">Enter the Gungeon (8) &amp; Nuclear Throne (6)</td>
      </tr>
      <tr>
        <td class="bh-label">Biggest single-thread spike</td>
        <td class="bh-val">HoloCure — 40 votes, 1 thread</td>
      </tr>
      <tr>
        <td class="bh-label">Highest grossing game (Returnal)</td>
        <td class="bh-val">$144,500,000</td>
      </tr>

      <tr>
        <td class="bh-cat" rowspan="3">Playtime &amp; Cost</td>
        <td class="bh-label">Highest median playtime in top 10 (Returnal)</td>
        <td class="bh-val">16.8 hrs</td>
      </tr>
      <tr>
        <td class="bh-label">Lowest median playtime in top 10 (Binding of Isaac)</td>
        <td class="bh-val">4.5 hrs</td>
      </tr>
      <tr>
        <td class="bh-label">Most expensive</td>
        <td class="bh-val">Returnal — ~$60</td>
      </tr>

      <tr>
        <td class="bh-cat" rowspan="1">Free to Play</td>
        <td class="bh-label">Only free game in the list</td>
        <td class="bh-val">HoloCure — 40 votes</td>
      </tr>

    </tbody>
  </table>
</div>

<p class="bh-footer">Data sourced from 15 Reddit threads · 863 total votes</p>



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



<h2 class="wp-block-heading"><strong>Most Recommended Bullet Hell Games (Based on Reddit Votes)</strong></h2>



<p class="wp-block-paragraph">This chart ranks the top bullet hell games pulled from 15 Reddit threads, combining a total of 863 votes.&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" />

<!-- Chart.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.4.1/chart.umd.min.js"></script>

<style>
  .bh-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;
  }
  .bh-votes-header { text-align: center; margin-bottom: 1.4rem; }
  .bh-votes-header p.bh-votes-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.85rem, 2.5vw, 1.3rem);
    color: #b8892a;
    letter-spacing: 0.04em;
    margin: 0;
  }
  .bh-votes-container { position: relative; width: 100%; }
</style>

<div class="bh-votes-wrap">
  <div class="bh-votes-header">
    <p class="bh-votes-title">Most Recommended Bullet Hell Games</p>
  </div>
  <div class="bh-votes-container">
    <canvas id="bhChartVotes"></canvas>
  </div>
</div>

<script>
(function() {
  const votesData = [
    ["Enter the Gungeon", 116],
    ["Star of Providence", 63],
    ["The Void Rains Upon Her Heart", 57],
    ["Tiny Rogues", 44],
    ["Holocure", 40],
    ["Nuclear Throne", 36],
    ["Returnal", 34],
    ["Death Must Die", 31],
    ["The Binding of Isaac", 21],
    ["Dodonpachi DaiOuJou", 20],
    ["Touhou: Shoot the Bullet", 18],
    ["Soulstone Survivors", 17],
    ["Atomicrops", 17],
    ["Gigawing", 17],
    ["Super Smash TV", 11],
    ["Ikaruga", 13],
    ["Mars Matrix", 12],
    ["Rolling Gunner", 10],
    ["Danmaku", 10],
    ["Shape Shifter Formations", 10],
    ["Crimzon Clover", 9],
    ["Nex Machina", 9],
    ["Espgaluda", 9],
    ["Furi", 8],
    ["Progear", 8],
  ].sort((a, b) => b[1] - a[1]);

  const colors = votesData.map((d, i) =>
    i === 0 ? "#b8892a" : "#1a1a24"
  );

  new Chart(document.getElementById("bhChartVotes"), {
    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 Bullet Hell Games (Median Playtime per Dollar Spent)</strong></h2>



<p class="wp-block-paragraph">Reddit votes tell you what the community loves, but this chart asks a different question: which bullet hell games give you the most playtime per dollar spent?</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>
  .bh-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;
  }
  .bh-value-header { text-align: center; margin-bottom: 1.4rem; }
  .bh-value-header p.bh-value-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.85rem, 2.5vw, 1.3rem);
    color: #b8892a;
    letter-spacing: 0.04em;
    margin: 0;
  }
  .bh-value-container { position: relative; width: 100%; }
</style>

<div class="bh-value-wrap">
  <div class="bh-value-header">
    <p class="bh-value-title">Top Value Bullet Hell Games — Median Playtime per Dollar</p>
  </div>
  <div class="bh-value-container">
    <canvas id="bhChartValue"></canvas>
  </div>
</div>

<script>
(function() {
  const rawValue = [
    ["Enter the Gungeon", 2.9, 9],
    ["The Void Rains Upon Her Heart", 14.3, 12],
    ["Tiny Rogues", 0.8, 2],
    ["Nuclear Throne", 5.3, 13],
    ["Returnal", 8.5, 14],
    ["Death Must Die", 4.5, 3],
    ["The Binding of Isaac", 10.2, 6],
    ["Dodonpachi DaiOuJou", 5.1, 5],
    ["Touhou: Shoot the Bullet", 4.8, 9],
    ["Soulstone Survivors", 3.8, 7],
    ["Atomicrops", 8.8, 8],
    ["Ikaruga", 2.0, 1],
    ["Rolling Gunner", 12.8, 10],
    ["Crimzon Clover", 6.9, 3],
    ["Nex Machina", 10.0, 7],
    ["Espgaluda", 11.0, 13],
    ["Furi", 18.6, 12],
    ["Progear", 10.6, 8],
    ["Alienation", 6.5, 9],
    ["Brotato", 15.0, 15],
    ["Drainus", 8.1, 8],
    ["Rogue Genesia", 11.6, 27],
    ["Gunvein", 11.3, 1],
    ["Blue Revolver", 9.0, 17],
    ["Deathsmiles", 21.6, 10],
  ]
  .map(d => ({ game: d[0], value: parseFloat((d[1] / d[2]).toFixed(2)) }))
  .sort((a, b) => b.value - a.value);

  const colors = rawValue.map((d, i) => i === 0 ? "#b8892a" : "#1a1a24");

  new Chart(document.getElementById("bhChartValue"), {
    type: "bar",
    data: {
      labels: rawValue.map(d => d.game),
      datasets: [{
        data: rawValue.map(d => d.value),
        backgroundColor: colors,
        borderRadius: 3,
      }]
    },
    options: {
      indexAxis: "y",
      responsive: true,
      plugins: {
        legend: { display: false },
        tooltip: {
          callbacks: { label: ctx => ` ${ctx.parsed.x} 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: "Median Playtime per Dollar Spent (hrs/$)", 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 Bullet Hell Games</strong></h2>



<p class="wp-block-paragraph">Bullet hell games have a reputation for being short, punishing experiences, but the playtime data tells a more interesting story.</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>
  .bh-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;
  }
  .bh-hist-header { text-align: center; margin-bottom: 1.4rem; }
  .bh-hist-header p.bh-hist-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.85rem, 2.5vw, 1.3rem);
    color: #b8892a;
    letter-spacing: 0.04em;
    margin: 0;
  }
  .bh-hist-container { position: relative; width: 100%; }
</style>

<div class="bh-hist-wrap">
  <div class="bh-hist-header">
    <p class="bh-hist-title">Distribution of Median Playtime — Bullet Hell Games</p>
  </div>
  <div class="bh-hist-container">
    <canvas id="bhChartHistogram"></canvas>
  </div>
</div>

<script>
(function() {
  const playtimes = [
    2.9, 14.3, 0.8, 5.3, 8.5, 4.5, 10.2, 5.1, 4.8, 3.8,
    8.8, 2.0, 12.8, 6.9, 10.0, 11.0, 18.6, 10.6, 6.5, 15.0,
    8.1, 11.6, 11.3, 9.0, 21.6, 5.4, 5.0, 2.9, 1.3, 3.8,
    7.0, 3.1, 8.2, 1.7, 2.2, 4.9, 3.4, 8.0, 5.0, 12.1,
    2.6, 6.7, 11.2, 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("bhChartHistogram"), {
    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>What is a Bullet Hell Game?</strong></h2>



<p class="wp-block-paragraph">A bullet hell game is a shoot &#8217;em up where the screen fills with enemy projectiles and surviving means threading through the gaps with precise, small movements.&nbsp;</p>



<p class="wp-block-paragraph">The genre has roots in Japanese arcade games from the late 1980s and early 1990s, and the term itself comes from the Japanese word <em>Danmaku</em>, meaning &#8220;bullet curtain&#8221; or &#8220;barrage.&#8221;&nbsp;</p>



<p class="wp-block-paragraph">The defining characteristic is density: there are so many bullets on screen at once that survival feels impossible until you learn the patterns.</p>



<p class="wp-block-paragraph">It is the complete opposite of bullet <em>heaven</em> games like Vampire Survivors or Brotato, where you eventually become unkillable and clear the screen yourself.&nbsp;</p>



<p class="wp-block-paragraph">In a bullet hell, the bullets never stop, and neither does the pressure.</p>



<h2 class="wp-block-heading"><strong>Bullet Hell vs. Bullet Heaven</strong></h2>



<p class="wp-block-paragraph">These two genres get mixed up constantly, even by people who have played both.&nbsp;</p>



<p class="wp-block-paragraph">The short version: in a bullet hell, you survive the storm; in a bullet heaven, you create it.</p>



<p class="wp-block-paragraph">We have a dedicated guide on <a href="https://rogueranker.com/bullet-heaven-vs-bullet-hell/">bullet heaven vs. bullet hell</a> that covers the full breakdown, including where <a href="https://rogueranker.com/roguelike-vs-roguelite/">roguelikes and roguelites</a> fit into both. We also have an article on the <a href="https://rogueranker.com/best-roguelike-games/">best roguelike games</a>, which is a data-driven guide from Reddit threads and upvotes.</p>



<p class="wp-block-paragraph">Worth a read if the genre distinction is still fuzzy.</p>



<h2 class="wp-block-heading"><strong>When Did Bullet Hell Games Become Popular?</strong></h2>



<p class="wp-block-paragraph">The genre traces back to Batsugun (1993), a vertical arcade shooter by Toaplan that accidentally pushed bullet density to a new extreme.&nbsp;</p>



<p class="wp-block-paragraph">Cave, a studio formed by former Toaplan developers, ran with the idea and spent the next decade defining what bullet hell meant. DonPachi (1995), DoDonPachi (1997), and Mushihimesama (2004) are all Cave titles.</p>



<p class="wp-block-paragraph">In the West, the genre stayed niche until the late 2000s and early 2010s, when indie developers started bringing it into roguelike territory.</p>



<p class="wp-block-paragraph">The Binding of Isaac (2011) and Nuclear Throne (2015) introduced the genre to a new generation of players who had never touched a shmup. Enter the Gungeon (2016) made it mainstream.</p>



<p class="wp-block-paragraph">More recently, the lines between bullet hell and bullet heaven have blurred, which is half the reason threads asking for bullet hell recommendations regularly turn into genre debates.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="943" height="628" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Info-Section.png" alt="Hooded rogue reading a glowing parchment scroll at sunset overlooking a medieval castle, illustrating the best bullet hell games info section" class="wp-image-572" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Info-Section.png 943w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Info-Section-300x200.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Info-Section-768x511.png 768w" sizes="(max-width: 943px) 100vw, 943px" /></figure>



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



<p class="wp-block-paragraph">The methodology here is the same one used for the Games Like Brotato guide, with a few tweaks specific to this genre.</p>



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



<p class="wp-block-paragraph">I searched for bullet hell recommendation threads across Reddit and Google, essentially just searching for “best bullet hell games” as if I were someone going down that rabbit hole..</p>



<p class="wp-block-paragraph">I excluded threads where the question was clearly platform-specific (Switch only, mobile only) or where the OP was asking about a specific subgenre that didn&#8217;t overlap with bullet hell.&nbsp;</p>



<p class="wp-block-paragraph">I went with 15 threads because that’s how many I chose last time.&nbsp;</p>



<p class="wp-block-paragraph">It seems to be a good sweet spot for sufficient data.</p>



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



<p class="wp-block-paragraph">If a game was suggested in a thread and no one called it out as not a good fit, it made the list.&nbsp;</p>



<p class="wp-block-paragraph">If someone pushed back and the community agreed it didn&#8217;t belong, I left it out.</p>



<p class="wp-block-paragraph">I did <em>not</em> apply my own filter for what counts as a bullet hell.&nbsp;</p>



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



<p class="wp-block-paragraph">Each game&#8217;s total vote count is the sum of upvotes on every comment that mentioned it, including duplicate suggestions across different threads.&nbsp;</p>



<p class="wp-block-paragraph">For example, if three separate users in three different threads all suggested Nuclear Throne, each with a combined total of 36 upvotes, Nuclear Throne gets 36 votes.&nbsp;</p>



<p class="wp-block-paragraph">I didn&#8217;t rank anything personally beyond that.</p>



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



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



<ol class="wp-block-list">
<li>Bullet hell threads on Reddit frequently derail into bullet heaven territory.&nbsp;</li>



<li>Multiple threads in this data set had OPs asking for bullet hells while listing Vampire Survivors and Brotato as favorites.&nbsp;</li>



<li>Several commenters corrected them (sometimes firmly), which is why you see games like HoloCure and Death Must Die in the data despite not being traditional bullet hells. The community voted for them anyway.</li>



<li>HoloCure is the clearest example: 40 votes from a single thread, and it&#8217;s free-to-play. That kind of single-thread spike can skew a ranking, and it&#8217;s worth keeping in mind.</li>



<li>Star of Providence showed up consistently in threads specifically asking for underrated picks, which likely inflated it relative to bigger names that get taken for granted.</li>



<li>Classic arcade titles like Gigawing and Mars Matrix scored well in the r/shmups thread but barely appeared elsewhere, which reflects a clear split between the arcade purists and the roguelite crowd in these communities.</li>
</ol>



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



<p class="wp-block-paragraph">Once the Reddit data was sorted, I layered in some commercial data from VGN Insights to give a fuller picture of how these games are actually performing beyond community recommendations.</p>



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



<li>Average Cost</li>



<li>Gross Revenue</li>



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



<p class="wp-block-paragraph">Here are the averages from the data I could find (excluding free-to-play titles and games with incomplete Steam data on VGN Insights).</p>



<h3 class="wp-block-heading"><strong>Average Business Stats of the Best Bullet Hell Games (83 Total):</strong></h3>



<ul class="wp-block-list">
<li>Units Sold: 791,746</li>



<li>Average Cost: $7</li>



<li>Gross Revenue: $8,511,634</li>



<li>Median Playtime: 7.4 Hours</li>
</ul>



<p class="wp-block-paragraph">One thing that jumps out immediately: Enter the Gungeon dominates Reddit votes but sits at relatively modest revenue figures compared to outliers like Pathfinder Gallowspire Survivors and Furi. </p>



<p class="wp-block-paragraph">The scatter plot below makes that disconnect very clear: community love and commercial success don&#8217;t always point in the same direction in this genre.</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>
  .bh-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;
  }
  .bh-rev-header { text-align: center; margin-bottom: 1.4rem; }
  .bh-rev-header p.bh-rev-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.85rem, 2.5vw, 1.3rem);
    color: #b8892a;
    letter-spacing: 0.04em;
    margin: 0;
  }
  .bh-rev-container { position: relative; width: 100%; }
</style>

<div class="bh-rev-wrap">
  <div class="bh-rev-header">
    <p class="bh-rev-title">Bullet Hell Games — Gross Revenue</p>
  </div>
  <div class="bh-rev-container">
    <canvas id="bhChartRevenue"></canvas>
  </div>
</div>

<script>
(function() {
  const data = [
    ["Enter the Gungeon", 530000],
    ["The Void Rains Upon Her Heart", 41600000],
    ["Tiny Rogues", 227290],
    ["Nuclear Throne", 27500000],
    ["Returnal", 1600000],
    ["Death Must Die", 27900000],
    ["The Binding of Isaac", 23100000],
    ["Dodonpachi DaiOuJou", 126000],
    ["Touhou: Shoot the Bullet", 219000],
    ["Soulstone Survivors", 417000],
    ["Atomicrops", 457000],
    ["Gigawing", 11100000],
    ["Ikaruga", 148000],
    ["Mars Matrix", 10200000],
    ["Super Smash TV", 4800000],
    ["Rolling Gunner", 5100000],
    ["Shape Shifter Formations", 6700000],
    ["Crimzon Clover", 2500000],
    ["Nex Machina", 6200000],
    ["Espgaluda", 9300000],
    ["Furi", 57900000],
    ["Rogue Genesia", 35400000],
    ["Void Rain", 368000],
    ["Halls of Torment", 16223],
    ["Progear", 829000],
    ["Alienation", 1500000],
    ["Brotato", 38500000],
    ["Deathsmiles", 4200000],
    ["Schildmaid MX", 7768],
    ["Drainus", 336000],
    ["Samidare", 32700000],
    ["Undertale", 8600000],
    ["Kill Knight", 494000],
    ["God of Weapons", 382000],
    ["Mad God", 13000000],
    ["Deep Rock Galactic: Survivor", 3300000],
    ["Just Shapes and Beats", 6900000],
    ["Archvale", 3300000],
    ["Greedland", 751000],
    ["Nomad Survival", 144000],
    ["Scarlet Tower", 263000],
    ["Ravenswatch", 162000],
    ["REMEDIUM: Sentinels", 241000],
    ["SuperTotalCarnage", 1300000],
    ["Swarm Grinder", 630000],
    ["Time Wasters", 111000],
    ["Vampire Survivors", 264000],
    ["Gunfire Reborn", 15871],
    ["Jamestown", 168000],
    ["Like Dreamer", 381000],
    ["Children of Morta", 4000000],
    ["Grind Stormer", 6300000],
    ["Mothergunship", 74915],
    ["Risk of Rain 2", 3800000],
    ["Dodonpachi Resurrection", 69562],
    ["Blue Revolver", 22500000],
    ["Gunvein", 100000],
    ["Gunlocked", 38600000],
    ["Renfield", 21899],
    ["Pathfinder Gallowspire Survivors", 144500000],
    ["The Noobs Are Coming", 3300000],
    ["Loaded 95'", 1200000],
    ["Battle Garegga", 131000],
    ["Mushihimesama Futari", 296000],
    ["Bullet Hell Monday", 3500000],
    ["Cuphead Goated", 9400000],
  ].sort((a, b) => b[1] - a[1]);

  const colors = data.map((d, i) => i === 0 ? "#b8892a" : "#1a1a24");

  new Chart(document.getElementById("bhChartRevenue"), {
    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>
  .bh-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;
  }
  .bh-units-header { text-align: center; margin-bottom: 1.4rem; }
  .bh-units-header p.bh-units-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.85rem, 2.5vw, 1.3rem);
    color: #b8892a;
    letter-spacing: 0.04em;
    margin: 0;
  }
  .bh-units-container { position: relative; width: 100%; }
</style>

<div class="bh-units-wrap">
  <div class="bh-units-header">
    <p class="bh-units-title">Bullet Hell Games — Units Sold</p>
  </div>
  <div class="bh-units-container">
    <canvas id="bhChartUnits"></canvas>
  </div>
</div>

<script>
(function() {
  const data = [
    ["Enter the Gungeon", 60540],
    ["The Void Rains Upon Her Heart", 3600000],
    ["Tiny Rogues", 104580],
    ["Nuclear Throne", 2200000],
    ["Returnal", 112000],
    ["Death Must Die", 8500000],
    ["The Binding of Isaac", 3800000],
    ["Dodonpachi DaiOuJou", 27960],
    ["Touhou: Shoot the Bullet", 25300],
    ["Soulstone Survivors", 62245],
    ["Atomicrops", 60300],
    ["Gigawing", 664000],
    ["Ikaruga", 148000],
    ["Mars Matrix", 845000],
    ["Super Smash TV", 563000],
    ["Rolling Gunner", 517000],
    ["Shape Shifter Formations", 702000],
    ["Crimzon Clover", 840000],
    ["Nex Machina", 833000],
    ["Espgaluda", 700000],
    ["Furi", 5000000],
    ["Rogue Genesia", 1300000],
    ["Void Rain", 86190],
    ["Halls of Torment", 2370],
    ["Progear", 181000],
    ["Alienation", 168000],
    ["Brotato", 2500000],
    ["Deathsmiles", 427000],
    ["Schildmaid MX", 2370],
    ["Drainus", 44610],
    ["Samidare", 2400000],
    ["Undertale", 1100000],
    ["Kill Knight", 155000],
    ["God of Weapons", 27690],
    ["Mad God", 1600000],
    ["Deep Rock Galactic: Survivor", 621000],
    ["Just Shapes and Beats", 841000],
    ["Archvale", 437000],
    ["Greedland", 108000],
    ["Nomad Survival", 32430],
    ["Scarlet Tower", 67410],
    ["Ravenswatch", 21270],
    ["REMEDIUM: Sentinels", 71700],
    ["SuperTotalCarnage", 122000],
    ["Swarm Grinder", 144000],
    ["Time Wasters", 8700],
    ["Vampire Survivors", 73800],
    ["Gunfire Reborn", 2550],
    ["Jamestown", 63540],
    ["Like Dreamer", 75930],
    ["Children of Morta", 416000],
    ["Grind Stormer", 510000],
    ["Mothergunship", 17310],
    ["Risk of Rain 2", 571000],
    ["Dodonpachi Resurrection", 14280],
    ["Blue Revolver", 1300000],
    ["Gunvein", 157000],
    ["Gunlocked", 4000000],
    ["Renfield", 6000],
    ["Pathfinder Gallowspire Survivors", 8500000],
    ["The Noobs Are Coming", 887000],
    ["Loaded 95'", 152000],
    ["Battle Garegga", 43860],
    ["Mushihimesama Futari", 84480],
    ["Bullet Hell Monday", 334000],
    ["Cuphead Goated", 660000],
  ].sort((a, b) => b[1] - a[1]);

  const colors = data.map((d, i) => i === 0 ? "#b8892a" : "#1a1a24");

  new Chart(document.getElementById("bhChartUnits"), {
    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>
  .bh-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;
  }
  .bh-scatter-header { text-align: center; margin-bottom: 1.4rem; }
  .bh-scatter-header p.bh-scatter-title {
    font-family: 'Cinzel Decorative', serif;
    font-size: clamp(0.85rem, 2.5vw, 1.3rem);
    color: #b8892a;
    letter-spacing: 0.04em;
    margin: 0;
  }
  .bh-scatter-container { position: relative; width: 100%; }
</style>

<div class="bh-scatter-wrap">
  <div class="bh-scatter-header">
    <p class="bh-scatter-title">Reddit Votes vs Gross Revenue — Bullet Hell Games</p>
  </div>
  <div class="bh-scatter-container">
    <canvas id="bhChartScatter"></canvas>
  </div>
</div>

<script>
(function() {
  const games = [
    { game: "Enter the Gungeon",            votes: 116, revenue: 530000 },
    { game: "Star of Providence",           votes: 63,  revenue: 0 },
    { game: "The Void Rains Upon Her Heart",votes: 57,  revenue: 41600000 },
    { game: "Tiny Rogues",                  votes: 44,  revenue: 227290 },
    { game: "Nuclear Throne",               votes: 36,  revenue: 27500000 },
    { game: "Returnal",                     votes: 34,  revenue: 1600000 },
    { game: "Death Must Die",               votes: 31,  revenue: 27900000 },
    { game: "The Binding of Isaac",         votes: 21,  revenue: 23100000 },
    { game: "Dodonpachi DaiOuJou",          votes: 20,  revenue: 126000 },
    { game: "Touhou: Shoot the Bullet",     votes: 18,  revenue: 219000 },
    { game: "Soulstone Survivors",          votes: 17,  revenue: 417000 },
    { game: "Atomicrops",                   votes: 17,  revenue: 457000 },
    { game: "Gigawing",                     votes: 17,  revenue: 11100000 },
    { game: "Ikaruga",                      votes: 13,  revenue: 148000 },
    { game: "Mars Matrix",                  votes: 12,  revenue: 10200000 },
    { game: "Super Smash TV",               votes: 11,  revenue: 4800000 },
    { game: "Rolling Gunner",               votes: 10,  revenue: 5100000 },
    { game: "Shape Shifter Formations",     votes: 10,  revenue: 6700000 },
    { game: "Crimzon Clover",               votes: 9,   revenue: 2500000 },
    { game: "Nex Machina",                  votes: 9,   revenue: 6200000 },
    { game: "Espgaluda",                    votes: 9,   revenue: 9300000 },
    { game: "Furi",                         votes: 8,   revenue: 57900000 },
    { game: "Rogue Genesia",                votes: 8,   revenue: 35400000 },
    { game: "Progear",                      votes: 8,   revenue: 829000 },
    { game: "Alienation",                   votes: 7,   revenue: 1500000 },
    { game: "Brotato",                      votes: 7,   revenue: 38500000 },
    { game: "Deathsmiles",                  votes: 7,   revenue: 4200000 },
    { game: "Pathfinder Gallowspire Survivors", votes: 2, revenue: 144500000 },
    { game: "Gunlocked",                    votes: 2,   revenue: 38600000 },
    { game: "Samidare",                     votes: 6,   revenue: 32700000 },
    { game: "Just Shapes and Beats",        votes: 4,   revenue: 6900000 },
    { game: "Mad God",                      votes: 4,   revenue: 13000000 },
    { game: "Grind Stormer",                votes: 3,   revenue: 6300000 },
    { game: "Risk of Rain 2",               votes: 3,   revenue: 3800000 },
    { game: "Blue Revolver",                votes: 2,   revenue: 22500000 },
    { game: "Bullet Hell Monday",           votes: 2,   revenue: 3500000 },
    { game: "Cuphead Goated",               votes: 2,   revenue: 9400000 },
  ];

  new Chart(document.getElementById("bhChartScatter"), {
    type: "scatter",
    data: {
      datasets: [{
        data: games.map(d => ({ x: d.votes, y: d.revenue, game: d.game })),
        backgroundColor: games.map(d => d.game === "Enter the Gungeon" ? "#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 Bullet Hell Games Based on Real Votes</strong></h2>



<p class="wp-block-paragraph">Here&#8217;s the summary of the top 10 bullet hell games ranked by total community votes:</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 {
    --bh-accent:  #c0392b;
    --bh-gold:    #b8892a;
    --bh-text:    #1a1a24;
    --bh-muted:   #888699;
    --bh-border:  #e0dded;
    --bh-stripe:  #f7f6fb;
    --bh-head-bg: #1a1a24;
  }

  .bh-top10-wrap {
    width: 100%;
    max-width: 780px;
    margin: 0 auto;
    overflow-x: auto;
    border: 1px solid var(--bh-border);
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
  }

  .bh-top10-wrap table {
    width: 100%;
    border-collapse: collapse;
    min-width: 480px;
    background: #fff;
    font-family: 'Barlow', sans-serif;
    font-size: 14px;
  }

  .bh-top10-wrap thead tr {
    background: var(--bh-head-bg) !important;
    border-bottom: 2px solid var(--bh-accent);
  }
  .bh-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;
  }
  .bh-top10-wrap thead th.num { text-align: right; }

  .bh-top10-wrap tbody tr {
    border-bottom: 1px solid var(--bh-border);
    transition: background 0.12s;
  }
  .bh-top10-wrap tbody tr:last-child { border-bottom: none; }
  .bh-top10-wrap tbody tr:nth-child(even) { background: var(--bh-stripe) !important; }
  .bh-top10-wrap tbody tr:hover { background: #f0eef8 !important; }

  /* Gold row for #1 */
  .bh-top10-wrap tbody tr.bh-top { background: #fffbf0 !important; }
  .bh-top10-wrap tbody tr.bh-top:hover { background: #fff5d6 !important; }
  .bh-top10-wrap tbody tr.bh-top .bh-game { color: var(--bh-gold); font-weight: 700; }

  .bh-top10-wrap td {
    padding: 0.7rem 1rem;
    vertical-align: middle;
    color: var(--bh-text);
  }

  .bh-rank {
    font-weight: 700;
    color: var(--bh-muted);
    text-align: center;
    width: 36px;
  }
  .bh-game { font-weight: 600; }
  .bh-num  { text-align: right; font-weight: 600; white-space: nowrap; }
  .bh-desc { color: #555466; font-style: italic; font-size: 0.88rem; }

  /* Mobile */
  @media (max-width: 560px) {
    .bh-top10-wrap thead th,
    .bh-top10-wrap td { padding: 0.55rem 0.65rem; font-size: 0.78rem; }
    .bh-top10-wrap thead th { font-size: 0.52rem; }
    .bh-desc { font-size: 0.78rem; }
  }
</style>

<div class="bh-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="bh-top">
        <td class="bh-rank">1</td>
        <td class="bh-game">Enter the Gungeon</td>
        <td class="bh-num">116</td>
        <td class="bh-num">8</td>
        <td class="bh-desc">The gold standard roguelite bullet hell.</td>
      </tr>
      <tr>
        <td class="bh-rank">2</td>
        <td class="bh-game">Star of Providence</td>
        <td class="bh-num">63</td>
        <td class="bh-num">3</td>
        <td class="bh-desc">Deep, underrated space shooter with serious build variety.</td>
      </tr>
      <tr>
        <td class="bh-rank">3</td>
        <td class="bh-game">The Void Rains Upon Her Heart</td>
        <td class="bh-num">57</td>
        <td class="bh-num">3</td>
        <td class="bh-desc">Boss rush bullet hell with massive content depth.</td>
      </tr>
      <tr>
        <td class="bh-rank">4</td>
        <td class="bh-game">Tiny Rogues</td>
        <td class="bh-num">44</td>
        <td class="bh-num">3</td>
        <td class="bh-desc">Dungeon crawler bullet hell with insane synergies.</td>
      </tr>
      <tr>
        <td class="bh-rank">5</td>
        <td class="bh-game">HoloCure</td>
        <td class="bh-num">40</td>
        <td class="bh-num">1</td>
        <td class="bh-desc">Free Vampire Survivors-style game with VTuber characters.</td>
      </tr>
      <tr>
        <td class="bh-rank">6</td>
        <td class="bh-game">Nuclear Throne</td>
        <td class="bh-num">36</td>
        <td class="bh-num">6</td>
        <td class="bh-desc">Fast, chaotic, post-apocalyptic. Criminally good.</td>
      </tr>
      <tr>
        <td class="bh-rank">7</td>
        <td class="bh-game">Returnal</td>
        <td class="bh-num">34</td>
        <td class="bh-num">4</td>
        <td class="bh-desc">The premium bullet hell. PS5/PC. Stunning and brutal.</td>
      </tr>
      <tr>
        <td class="bh-rank">8</td>
        <td class="bh-game">Death Must Die</td>
        <td class="bh-num">31</td>
        <td class="bh-num">1</td>
        <td class="bh-desc">Bullet heaven hybrid with god-tier build options.</td>
      </tr>
      <tr>
        <td class="bh-rank">9</td>
        <td class="bh-game">The Binding of Isaac</td>
        <td class="bh-num">21</td>
        <td class="bh-num">3</td>
        <td class="bh-desc">Roguelite with serious bullet hell boss moments.</td>
      </tr>
      <tr>
        <td class="bh-rank">10</td>
        <td class="bh-game">Dodonpachi DaiOuJou</td>
        <td class="bh-num">20</td>
        <td class="bh-num">3</td>
        <td class="bh-desc">Classic Cave arcade shmup. Pure bullet hell lineage.</td>
      </tr>
    </tbody>
  </table>
</div>



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



<h2 class="wp-block-heading"><strong>What People Said About The Top 10 Games</strong></h2>



<p class="wp-block-paragraph">Enter the Gungeon ran away with this one. It finished with 116 votes across 8 threads, more than double the second-place game.&nbsp;</p>



<p class="wp-block-paragraph">Everything from rank 2 to rank 10 was a much closer race, with Star of Providence (63), The Void Rains Upon Her Heart (57), and Tiny Rogues (44) all clustering in a competitive second tier.</p>



<p class="wp-block-paragraph">The other thing that stood out was how clearly the community split into two camps: the roguelite bullet hell crowd (Gungeon, Nuclear Throne, Isaac, Tiny Rogues) and the pure shmup crowd (Dodonpachi, Ikaruga, Gigawing).&nbsp;</p>



<p class="wp-block-paragraph">Those two groups rarely overlapped in the threads, which made ranking them on the same list a bit odd, but that&#8217;s what the data said.</p>



<h3 class="wp-block-heading"><strong>1. Enter the Gungeon</strong></h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Enter-The-Gungeon-1024x576.png" alt="Enter the Gungeon top-down pixel art gameplay with characters fighting in a dungeon room, one of the best bullet hell games on Steam" class="wp-image-553" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Enter-The-Gungeon-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Enter-The-Gungeon-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Enter-The-Gungeon-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Enter-The-Gungeon.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Enter the Gungeon received 116 votes across 8 threads, and second place finished with 63 (which is crazy).</p>



<p class="wp-block-paragraph">That gap tells you everything about how the community truly feels about the game.</p>



<p class="wp-block-paragraph">It&#8217;s a roguelite bullet hell <a href="https://en.wikipedia.org/wiki/Dungeon_crawl">dungeon crawler</a> where you descend into an endlessly shifting gun-filled dungeon in search of a bullet that can kill your past.&nbsp;</p>



<p class="wp-block-paragraph">Every item is a gun or gun-adjacent, the enemies are bullets,&nbsp; and the floor is bullets. What’s not to love?&nbsp;</p>



<p class="wp-block-paragraph">Runs clock in around 30 to 45 minutes and the item pool is enormous; people have logged hundreds of hours and still haven&#8217;t found everything.&nbsp;</p>



<p class="wp-block-paragraph">It is, by almost every measure, the entry point for this genre.</p>



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



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



<li>PlayStation 4, PlayStation 5</li>



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



<li>Nintendo Switch</li>



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



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



<ul class="wp-block-list">
<li>Absurd item variety keeps every run genuinely different</li>



<li>Combat patterns are readable but demanding; skill matters</li>



<li>The gun theming is committed and genuinely funny throughout</li>



<li>Co-op support for 2 players adds a completely different dynamic</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Enter-The-Gungeon-2-1024x576.png" alt="Enter the Gungeon and Exit the Gungeon key art featuring the full character roster, a popular bullet hell game with deep item synergies" class="wp-image-552" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Enter-The-Gungeon-2-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Enter-The-Gungeon-2-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Enter-The-Gungeon-2-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Enter-The-Gungeon-2.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



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



<p class="wp-block-paragraph">Early runs can feel punishing before you know the item pool</p>



<ul class="wp-block-list">
<li>RNG can occasionally hand you a run with no synergies</li>



<li>Some floors feel more irritating than fun (Hollow, looking at you)</li>



<li>The final boss is a significant difficulty spike from everything before it</li>
</ul>



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



<p class="wp-block-paragraph"><em>&#8220;Enter the Gungeon! You enter an endlessly shifting dungeon where EVERYTHING is guns, in search of a bullet that can kill your past. Over multiple runs you build out an arsenal of potential loot from an insanely deep reference pool. I&#8217;ve been going back to it when I get bored of other games for years now, and I still haven&#8217;t found everything.&#8221;</em> — u/SeriouslySuspect</p>



<p class="wp-block-paragraph"><em>&#8220;Enter the gungeon is what you want &amp; need.&#8221;</em> — u/YugLee</p>



<p class="wp-block-paragraph"><em>&#8220;The best bullet hell game.&#8221;</em> — u/Bluecutlery</p>



<h3 class="wp-block-heading"><strong>2. Star of Providence</strong></h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Star-of-Providence-1024x576.png" alt="Star of Providence pixel art gameplay showing a boss fight with radiating bullet hell patterns in a dark dungeon" class="wp-image-561" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Star-of-Providence-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Star-of-Providence-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Star-of-Providence-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Star-of-Providence.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Star of Providence got 63 votes across 3 threads and finished 53 votes behind Gungeon, but the way it showed up tells a more interesting story, IMO.</p>



<p class="wp-block-paragraph">Star of Providence is a top-down roguelite space shooter with deep weapon customization and multiple playable ships, each with distinct mechanics.&nbsp;</p>



<p class="wp-block-paragraph">It lives in the corner of bullet hell where the game is genuinely punishing, but the build depth keeps pulling you back. It showed up almost exclusively in threads asking for lesser-known picks, which is to be expected.&nbsp;</p>



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



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



<li>Nintendo Switch (planned)</li>
</ul>



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



<ul class="wp-block-list">
<li>13 base weapons plus 44 unique weapons creates serious variety</li>



<li>Each ship plays completely differently; Arena Blaster and Skully are fan favorites</li>



<li>Deep keyword and upgrade system rewards learning the mechanics</li>



<li>Boss encounters are varied and genuinely fun</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Star-of-Providence-2-1024x576.png" alt="Star of Providence key art with robot enemies and skull motifs, an underrated bullet hell game in the top bullet hell games conversation" class="wp-image-560" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Star-of-Providence-2-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Star-of-Providence-2-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Star-of-Providence-2-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Star-of-Providence-2.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



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



<ul class="wp-block-list">
<li>Progression can feel slow before mechanics click</li>



<li>Still in early access, which gives some players pause</li>



<li>Console release still pending; PC only for now</li>



<li>The weapon depth takes time to fully appreciate</li>
</ul>



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



<p class="wp-block-paragraph"><em>&#8220;Maybe not underrated but definitely lesser known and excellent — Star of Providence.&#8221;</em> — u/ciawal</p>



<p class="wp-block-paragraph"><em>&#8220;Star of Providence is the best one and it&#8217;s not even close.&#8221;</em> — u/IndianaMJP</p>



<p class="wp-block-paragraph"><em>&#8220;If you want a lot of bullets (and a lot of hell), play Star of Providence.&#8221;</em> — u/NoOn3_1415</p>



<h3 class="wp-block-heading"><strong>3. The Void Rains Upon Her Heart</strong></h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-The-Void-Rains-Upon-Her-Heart-1024x576.png" alt="The Void Rains Upon Her Heart gameplay showing colorful bullet hell patterns against a cosmic night sky background" class="wp-image-565" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-The-Void-Rains-Upon-Her-Heart-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-The-Void-Rains-Upon-Her-Heart-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-The-Void-Rains-Upon-Her-Heart-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-The-Void-Rains-Upon-Her-Heart.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">The Void Rains Upon Her Heart captured 57 votes across 3 threads, which is one vote behind Star of Providence in thread count, and only 6 votes back in total. A genuinely close race for second and third.</p>



<p class="wp-block-paragraph">This is a boss rush bullet hell roguelite where every run is a series of encounters, each with its own bullet patterns and escalating difficulty.&nbsp;</p>



<p class="wp-block-paragraph">The name is unusual, the art style is not for everyone, and the game is excellent. Multiple people in these threads admitted they had avoided it for months based on how it looked, then loved it once they played it.&nbsp;</p>



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



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



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



<ul class="wp-block-list">
<li>Boss encounters are the whole game; no filler, just escalating challenge</li>



<li>Massive content depth for an early access title</li>



<li>Meta progression is satisfying and keeps runs meaningful</li>



<li>OST is consistently praised as one of the best in the genre</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-The-Void-Rains-Upon-Her-Heart-2-1024x576.png" alt="The Void Rains Upon Her Heart key art with a silhouetted figure holding a glowing heart, a unique emotional entry in the bullet hell genre" class="wp-image-564" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-The-Void-Rains-Upon-Her-Heart-2-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-The-Void-Rains-Upon-Her-Heart-2-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-The-Void-Rains-Upon-Her-Heart-2-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-The-Void-Rains-Upon-Her-Heart-2.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



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



<ul class="wp-block-list">
<li>Art style is divisive</li>



<li>Boss rush format isn&#8217;t for everyone who wants traditional wave-based runs</li>



<li>PC only; no console version yet</li>



<li>Early access means content gaps depending on when you play</li>
</ul>



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



<p class="wp-block-paragraph"><em>&#8220;Absolutely, without a doubt, &#8216;The Void Rains Upon Her Heart.&#8217; The name is odd. It looks a little basic in the trailers. But it&#8217;s so, so good. I was surprised how much I loved it when I finally gave it a chance. So much to unlock, and it&#8217;s just fun.&#8221;</em> — u/Rivent</p>



<p class="wp-block-paragraph"><em>&#8220;Void rains upon her heart is such a great game that honestly I hope anyone who reads this checks it out. It&#8217;s just such a good time I&#8217;ll play it for the rest of my days on earth.&#8221;</em> — u/Tanner11130</p>



<p class="wp-block-paragraph"><em>&#8220;The void rains upon her heart. Impressive metaprogression, tough and best OST. Ignore the art style if you don&#8217;t like it.&#8221;</em> — u/_powneyd</p>



<h3 class="wp-block-heading"><strong>4. Tiny Rogues</strong></h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Tiny-Rogues-1024x576.png" alt="Tiny Rogues top-down pixel art gameplay showing a character battling enemies in a dungeon room, a compact bullet hell roguelite" class="wp-image-567" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Tiny-Rogues-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Tiny-Rogues-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Tiny-Rogues-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Tiny-Rogues.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Tiny Rogues received 44 votes across 3 threads, and finished 13 votes behind The Void Rains Upon Her Heart, and 22 votes ahead of HoloCure. I guess that’s solidly mid-pack, but the people recommending it were consistent about why.</p>



<p class="wp-block-paragraph">Tiny Rogues is a dungeon crawler roguelite with bullet hell combat. You move room to room, fight enemies, collect gear, and build toward an increasingly absurd power ceiling.&nbsp;</p>



<p class="wp-block-paragraph">The build variety is the hook; people regularly describe breaking the game in satisfying ways, which is high praise in this genre.&nbsp;</p>



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



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



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



<ul class="wp-block-list">
<li>Build depth is exceptional; synergies can get genuinely broken in fun ways</li>



<li>Room-by-room dungeon format keeps pacing tight and decisions frequent</li>



<li>Active development means new content arrives regularly</li>



<li>Replayability is high thanks to diverse builds and item combinations</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Tiny-Rogues-2-1024x576.png" alt="Tiny Rogues key art featuring an armored rogue character with weapons, one of the best bullet hell games on Steam for roguelite fans" class="wp-image-566" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Tiny-Rogues-2-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Tiny-Rogues-2-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Tiny-Rogues-2-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Tiny-Rogues-2.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



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



<ul class="wp-block-list">
<li>Item descriptions can be dense and hard to parse at first</li>



<li>Learning curve is steep; the first few hours can feel punishing</li>



<li>Early access means occasional balance issues</li>



<li>Not a traditional bullet hell; bullet density is lower than genre purists expect</li>
</ul>



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



<p class="wp-block-paragraph"><em>&#8220;Tiny Rogues — if you like breaking the game beyond belief, you&#8217;ll love this. Tons of replayability as well.&#8221;</em> — u/Hexbladedad</p>



<p class="wp-block-paragraph"><em>&#8220;You have to try Tiny Rogues! It&#8217;s amazing.&#8221;</em> — u/Peauu</p>



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



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Holocure-1024x576.png" alt="HoloCure gameplay showing a character dodging waves of cute enemies with angel wings, a free popular bullet hell game on Steam" class="wp-image-555" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Holocure-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Holocure-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Holocure-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Holocure.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">HoloCure got 40 votes from a single thread, so there’s a bit of an asterisk on this one.</p>



<p class="wp-block-paragraph">HoloCure is a free fan game built around Hololive VTubers, and it plays like a polished Vampire Survivors clone with added character depth and build variety.&nbsp;</p>



<p class="wp-block-paragraph">It does not fit the traditional bullet hell definition; it&#8217;s solidly bullet heaven territory. But it showed up in a bullet hell thread, nobody called it out, and 40 people upvoted it.&nbsp;</p>



<p class="wp-block-paragraph">The free price point does a lot of work here. If you have any interest in Hololive, the references add an extra layer. If you don&#8217;t, you can still play it without knowing any of them.</p>



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



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



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



<ul class="wp-block-list">
<li>Free, full stop</li>



<li>Well-polished for a fan game; feels professional</li>



<li>Strong character variety with meaningfully different playstyles</li>



<li>Active updates and a passionate community</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Holocure-2-1024x576.png" alt="HoloCure Save the Fans logo, a free-to-play bullet hell game inspired by Hololive vtubers" class="wp-image-554" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Holocure-2-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Holocure-2-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Holocure-2-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Holocure-2.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



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



<ul class="wp-block-list">
<li>It&#8217;s a bullet heaven, not a bullet hell</li>



<li>VTuber theme is niche and puts some people off immediately</li>



<li>Votes came from a single thread, so the ranking may overstate community-wide consensus</li>



<li>Feels like Vampire Survivors with an IP coat of paint if you&#8217;re not into Hololive</li>
</ul>



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



<p class="wp-block-paragraph"><em>&#8220;Holocure is fun and free on steam.&#8221;</em> — u/fazzTR</p>



<p class="wp-block-paragraph"><em>&#8220;HoloCure for sure. It&#8217;s a free-to-play fan game about the Hololive Vtubers. If you&#8217;ve never watched any of them, you can still play and have fun with the game.&#8221;</em> — u/Ryokupo</p>



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



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Nuclear-Throne-1024x576.png" alt="Nuclear Throne top-down pixel art gameplay with a character firing a beam weapon at enemies in a snowy level" class="wp-image-557" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Nuclear-Throne-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Nuclear-Throne-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Nuclear-Throne-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Nuclear-Throne.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Nuclear Throne had 36 votes in 6 threads.&nbsp;</p>



<p class="wp-block-paragraph">No other game in the top 10 appeared in more threads relative to its vote total, which tells you something about how consistently it gets recommended, even when individual mentions don&#8217;t carry a lot of weight.</p>



<p class="wp-block-paragraph">Nuclear Throne is a post-apocalyptic top-down shooter where you pick a mutant and fight through procedurally generated levels at a pace that feels almost violent.&nbsp;</p>



<p class="wp-block-paragraph">Runs are short, sometimes brutally short. The game is fast, chaotic, and demands reflexes over planning. It predates the bullet heaven explosion and feels like a product of a different era of roguelite design..</p>



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



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



<li>PlayStation 4, PlayStation Vita</li>
</ul>



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



<ul class="wp-block-list">
<li>Runs are fast; death is quick, so restarts feel painless</li>



<li>Each character plays genuinely differently and rewards different strategies</li>



<li>Game feel is excellent; weapons have satisfying feedback</li>



<li>Procedural generation keeps layouts fresh across runs</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Nuclear-Throne-2-1024x576.png" alt="Nuclear Throne key art featuring the game's quirky mutant character roster, one of the best bullet hell games in the roguelite genre" class="wp-image-556" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Nuclear-Throne-2-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Nuclear-Throne-2-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Nuclear-Throne-2-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Nuclear-Throne-2.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



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



<ul class="wp-block-list">
<li>Development ended when Vlambeer dissolved; the game is complete but won&#8217;t grow</li>



<li>RNG can occasionally hand you an early-run death that feels unwinnable</li>



<li>Less build depth than Gungeon or Tiny Rogues</li>



<li>Faster and more chaotic than what players coming from Vampire Survivors expect</li>
</ul>



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



<p class="wp-block-paragraph"><em>&#8220;Nuclear throne is the best.&#8221;</em> — u/Dicastes</p>



<p class="wp-block-paragraph"><em>&#8220;Try Nuclear Throne. You&#8217;re welcome.&#8221;</em> — u/Tiz396</p>



<p class="wp-block-paragraph"><em>&#8220;Nuclear Throne has great gamefeel and is faster paced.&#8221;</em> — u/Fernbeck</p>



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



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Returnal-1024x576.png" alt="Returnal gameplay showing a 3D bullet hell boss fight with massive waves of cyan projectiles in a fiery alien arena" class="wp-image-559" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Returnal-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Returnal-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Returnal-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Returnal.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Returnal received 32 votes across 3 threads, and surprisingly, it&#8217;s the most expensive game in the top 10, and the only one with AAA production values, which makes its presence here feel a little different from everything around it.</p>



<p class="wp-block-paragraph">Returnal is a third-person bullet hell action roguelite from <a href="https://housemarque.com/">Housemarque</a>, where you play an astronaut trapped in a time loop on an alien planet.&nbsp;</p>



<p class="wp-block-paragraph">The bullet hell elements are unmistakable: enemies fire dense, patterned projectiles that fill the screen, and survival depends on reading those patterns and moving through them precisely.&nbsp;</p>



<p class="wp-block-paragraph">It runs at 60fps, looks stunning, and the sense of weight and impact in the gameplay is something most indie bullet hells can&#8217;t match.</p>



<p class="wp-block-paragraph">The most common criticism was that the endgame gets repetitive as later biomes lean more on enemy aggression than clever patterns, but almost nobody said it wasn&#8217;t worth playing.</p>



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



<ul class="wp-block-list">
<li>PlayStation 5</li>



<li>PC (Steam)</li>
</ul>



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



<ul class="wp-block-list">
<li>Production quality is in a different league from the rest of this list</li>



<li>Bullet patterns are genuinely creative and visually spectacular</li>



<li>The Sisyphean atmosphere and story loop add meaning to the roguelite structure</li>



<li>Tower of Sisyphus endless mode is excellent for players who want to just fight</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Returnal-2-1024x576.png" alt="Returnal key art featuring astronaut Selene in a sci-fi setting, one of the best 3D bullet hell games available on PC and PlayStation" class="wp-image-558" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Returnal-2-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Returnal-2-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Returnal-2-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Returnal-2.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



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



<ul class="wp-block-list">
<li>~$60 price point; the highest cost entry on this list by a wide margin</li>



<li>Later biomes become repetitive as novelty wears off</li>



<li>The loop structure can feel frustrating to players who want narrative momentum</li>



<li>PS5/PC only</li>
</ul>



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



<p class="wp-block-paragraph"><em>&#8220;Returnal is still the best one.&#8221;</em> — u/Rhinoserious95</p>



<p class="wp-block-paragraph"><em>&#8220;Easily the best suggestion. This will keep you busy for a long time, it&#8217;s hard, it&#8217;s extremely well designed and the presentation is top notch.&#8221;</em> — u/cunnning_stunts</p>



<h3 class="wp-block-heading"><strong>8. Death Must Die</strong></h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Death-Must-Die-1024x576.png" alt="Death Must Die gameplay showing a character surrounded by a ring of fire and enemies, one of the best bullet hell games on Steam" class="wp-image-549" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Death-Must-Die-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Death-Must-Die-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Death-Must-Die-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Death-Must-Die.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Death Must Die is a classic favorite, but it received only 31 votes in a single thread. Like HoloCure, that single-thread caveat matters, but 31 votes in one place is legit.</p>



<p class="wp-block-paragraph">Death Must Die is another bullet heaven that got lumped into bullet hell threads and stuck. It&#8217;s a Vampire Survivors-style game where god-tier blessings and loot that carries across runs create a slower, more deliberate power fantasy than most games in the genre.&nbsp;</p>



<p class="wp-block-paragraph">People describe it as Vampire Survivors meets Hades, which is accurate. It landed here because one well-upvoted comment in the right thread can carry a game far in this kind of data collection.</p>



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



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



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



<ul class="wp-block-list">
<li>God blessing system creates genuinely interesting build variety</li>



<li>Loot that carries over between runs gives it a satisfying progression loop</li>



<li>Shorter runs keep sessions tight and replayable</li>



<li>God-tier builds feel earned rather than just handed to you</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Death-Must-Die-2-1024x576.png" alt="Death Must Die key art featuring an armored character with lightning effects, a top bullet hell game with RPG elements" class="wp-image-547" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Death-Must-Die-2-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Death-Must-Die-2-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Death-Must-Die-2-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Death-Must-Die-2.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



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



<ul class="wp-block-list">
<li>It&#8217;s a bullet heaven; genre mismatch if you&#8217;re here for dense projectile dodging</li>



<li>Late-run synergies are less developed than the early-game promise suggests</li>



<li>Map variety is limited; spawn patterns can make later runs feel samey</li>



<li>PC only for now</li>
</ul>



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



<p class="wp-block-paragraph"><em>&#8220;Death must die is a pretty good one, kinda like brotato mixed with Hades.&#8221;</em> — u/Double_Reward3885</p>



<p class="wp-block-paragraph"><em>&#8220;Death Must Die is a pretty fun &amp; unique take on the genre, it&#8217;s got a loot system that carries over into future rounds.&#8221;</em> — u/Unusual_Boot6839</p>



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



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-The-Binding-of-Isaac-1024x576.png" alt="The Binding of Isaac gameplay showing Isaac navigating a dungeon room surrounded by enemies, a defining classic bullet hell game" class="wp-image-563" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-The-Binding-of-Isaac-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-The-Binding-of-Isaac-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-The-Binding-of-Isaac-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-The-Binding-of-Isaac.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">The Binding of Isaac is another wildly successful game, but only received 21 votes across 3 threads. It ranked ninth, which will feel wrong to many people. Honestly, I get it.</p>



<p class="wp-block-paragraph">The Binding of Isaac is a roguelite dungeon crawler with heavy bullet hell influence. The boss fights in particular are genuinely dense projectile encounters that require real dodging and pattern recognition.&nbsp;</p>



<p class="wp-block-paragraph">Where it differs from pure bullet hell is in the room-by-room structure and the enormous item synergy system, which is less about reflexes and more about build theory. If you&#8217;re new to it, go straight to<a href="https://store.steampowered.com/app/1426300/The_Binding_of_Isaac_Repentance/"> Repentance</a>. Don&#8217;t overthink the version history.</p>



<p class="wp-block-paragraph">The lower vote total relative to its reputation probably reflects that people in these threads were treating it as a known quantity rather than actively campaigning for it.</p>



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



<ul class="wp-block-list">
<li>PC (Windows, macOS, Linux)</li>



<li>PlayStation 4, PlayStation 5, PlayStation Vita</li>



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



<li>Nintendo Switch</li>
</ul>



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



<ul class="wp-block-list">
<li>Item variety is unmatched; thousands of synergies to discover</li>



<li>Boss patterns are legitimately bullet hell in the best sense</li>



<li>Replayability is essentially infinite across the full Repentance content</li>



<li>The dark, weird atmosphere makes it unlike anything else on this list</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-The-Binding-of-Isaac-2-1024x576.png" alt="The Binding of Isaac key art featuring Isaac surrounded by grotesque monsters, one of the most popular and hardest bullet hell games ever made" class="wp-image-562" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-The-Binding-of-Isaac-2-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-The-Binding-of-Isaac-2-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-The-Binding-of-Isaac-2-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-The-Binding-of-Isaac-2.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



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



<ul class="wp-block-list">
<li>The learning curve is steep and the early hours can feel completely random</li>



<li>RNG can hand you a run that&#8217;s impossible to save regardless of skill</li>



<li>The version history is confusing for newcomers (get Repentance)</li>



<li>Not a traditional bullet hell; purists will note this</li>
</ul>



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



<p class="wp-block-paragraph"><em>&#8220;The Binding of Isaac is by far the best game similar to this genre ever made. There&#8217;s no close second.&#8221;</em> — u/shittyballsacks</p>



<p class="wp-block-paragraph"><em>&#8220;Always suggest The Binding of Isaac. It&#8217;s not 3D but it has some serious bullet hell moments for sure.&#8221;</em> — u/Significant_Book9930</p>



<h3 class="wp-block-heading"><strong>10. Dodonpachi DaiOuJou</strong></h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Dodonpachi-DaiOuJou-1024x576.png" alt="Dodonpachi DaiOuJou gameplay showing classic bullet hell patterns with a boss firing waves of blue projectiles" class="wp-image-551" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Dodonpachi-DaiOuJou-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Dodonpachi-DaiOuJou-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Dodonpachi-DaiOuJou-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Dodonpachi-DaiOuJou.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Dodonpachi DaiOuJou got 20 votes in 3 threads. It finished just two votes ahead of the Touhou recommendation in the data, making it the closest race in the top 10.</p>



<p class="wp-block-paragraph">Dodonpachi DaiOuJou is the fourth entry in Cave&#8217;s flagship bullet hell series and widely considered one of the best the genre has ever produced.&nbsp;</p>



<p class="wp-block-paragraph">You pilot a fighter aircraft through waves of enemies and bosses, each firing dense, patterned bullet curtains that fill the screen.&nbsp;</p>



<p class="wp-block-paragraph">There is no roguelite here, no meta progression, no builds. You learn the patterns, and you survive them. For the most accessible modern entry, <a href="https://store.steampowered.com/app/1726010/DoDonPachi_Resurrection/">DoDonPachi Resurrection on Steam</a> is the best starting point.</p>



<p class="wp-block-paragraph">It&#8217;s the most traditional bullet hell on this list and the hardest to get into for players coming from the roguelite side. It&#8217;s also the closest thing to a primary source if you want to understand what bullet hell actually means as a genre.</p>



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



<ul class="wp-block-list">
<li>Arcade original (1997, Cave)</li>



<li>PlayStation 2 port</li>



<li>PC (DoDonPachi Resurrection on Steam)</li>
</ul>



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



<ul class="wp-block-list">
<li>Pure bullet hell design; no roguelite padding, just pattern mastery</li>



<li>Historically significant; understanding this game is understanding the genre</li>



<li>Scoring systems reward mastery in ways most modern games don&#8217;t attempt</li>



<li>Bullet patterns are elaborate and satisfying to navigate once learned</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Dodonpachi-DaiOuJou-2-1024x576.png" alt="Dodonpachi DaiOuJou key art, one of the most iconic classic bullet hell games in the genre's history" class="wp-image-550" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Dodonpachi-DaiOuJou-2-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Dodonpachi-DaiOuJou-2-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Dodonpachi-DaiOuJou-2-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-Dodonpachi-DaiOuJou-2.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



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



<ul class="wp-block-list">
<li>Steep barrier to entry for players unfamiliar with arcade shmup conventions</li>



<li>No meta progression means every run starts completely fresh</li>



<li>Accessibility on modern platforms is limited</li>



<li>This is not a beginner bullet hell</li>
</ul>



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



<p class="wp-block-paragraph"><em>&#8220;DonPachi and Do DonPachi&#8221;</em> — u/Cax6ton</p>



<p class="wp-block-paragraph"><em>&#8220;This is the way! DDP 2: Bee Storm gets a lot of flack due to not being a &#8216;real&#8217; Cave game, but it&#8217;s also damn good.&#8221;</em> — u/CelticDeckard</p>



<h2 class="wp-block-heading"><strong>Honorable Mention</strong></h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-ikaruga-1024x576.png" alt="Ikaruga key art featuring a warrior beside a spacecraft, a legendary classic bullet hell game in the bullet hell genre" class="wp-image-571" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-ikaruga-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-ikaruga-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-ikaruga-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-ikaruga.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Ikaruga is our honorable mention with 13 votes across 4 threads. It finished 11th overall and earned its mention for a different reason than most games on this list.</p>



<p class="wp-block-paragraph">Ikaruga is one of the most well-known bullet hell games in the world, and the only game here genuinely famous for a mechanic that changes how you interact with bullets rather than just dodge them.&nbsp;</p>



<p class="wp-block-paragraph">The polarity system (switching between black and white to absorb matching colored bullets while dealing extra damage) turns bullet hell from a reflex test into a rhythm and puzzle game. It&#8217;s unlike anything else on this list.<a href="https://store.steampowered.com/app/251470/Ikaruga/">&nbsp;</a></p>



<p class="wp-block-paragraph">It showed up in 4 threads and earned 13 consistent votes from a crowd that clearly knew what it was recommending. Given how differently it plays from the rest of the top 10, it felt right to call it out separately.</p>



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



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



<li>Nintendo Switch</li>



<li>Xbox (backward compatible)</li>
</ul>



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



<ul class="wp-block-list">
<li>The polarity mechanic is genuinely clever and changes how you think about bullets</li>



<li>Visually striking; the black/white aesthetic is iconic for a reason</li>



<li>Short and completable; not a grind, just a gauntlet</li>



<li>One of the most referenced bullet hells in any genre conversation</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-ikaruga-2-1024x576.png" alt="Ikaruga vertical shooter gameplay showing polarity-based bullet hell patterns with blue and orange projectiles, one of the hardest bullet hell games ever made" class="wp-image-570" srcset="https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-ikaruga-2-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-ikaruga-2-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-ikaruga-2-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2026/03/Rogue-Ranker-Best-Bullet-Hell-Games-ikaruga-2.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



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



<ul class="wp-block-list">
<li>Extremely difficult, especially the later stages</li>



<li>Co-op play can feel chaotic and uncoordinated</li>



<li>Short runtime for the price compared to roguelite alternatives</li>



<li>The mechanic is brilliant but the moment-to-moment experience is taxing</li>
</ul>



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



<p class="wp-block-paragraph"><em>&#8220;Ikaruga for the thinking man&#8217;s bullet hell game.&#8221;</em> — u/icemage_999</p>



<p class="wp-block-paragraph"><em>&#8220;Speaking of bullet hell, did you try the old classics like Ikaruga?&#8221;</em> — u/faifai6071</p>



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



<p class="wp-block-paragraph">Below is the complete list of all 83 games that appeared in the data, ranked by total community votes. Sales data is sourced from VGN Insights, where available.</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>
  .bh-mega-wrap {
    width: 100%;
    max-width: 960px;
    margin: 0 auto;
    font-family: 'Barlow', sans-serif;
    font-size: 13px;
  }
  .bh-mega-note {
    font-size: 0.82rem;
    color: #888699;
    font-style: italic;
    margin: 0 0 1.2rem;
  }
  .bh-mega-table-wrap {
    overflow-x: auto;
    border: 1px solid #e0dded;
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
  }
  .bh-mega-table-wrap table {
    width: 100%;
    border-collapse: collapse;
    min-width: 480px;
    background: #fff;
  }
  .bh-mega-table-wrap thead tr {
    background: #1a1a24 !important;
    border-bottom: 2px solid #c0392b;
  }
  .bh-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;
  }
  .bh-mega-table-wrap thead th.num { text-align: right; }
  .bh-mega-table-wrap tbody tr {
    border-bottom: 1px solid #e0dded;
    transition: background 0.12s;
  }
  .bh-mega-table-wrap tbody tr:last-child { border-bottom: none; }
  .bh-mega-table-wrap tbody tr:nth-child(even) { background: #f7f6fb !important; }
  .bh-mega-table-wrap tbody tr:hover { background: #f0eef8 !important; }
  .bh-mega-table-wrap tbody tr.bh-top { background: #fffbf0 !important; }
  .bh-mega-table-wrap tbody tr.bh-top:hover { background: #fff5d6 !important; }
  .bh-mega-table-wrap tbody tr.bh-top .bh-mg-game { color: #b8892a; font-weight: 700; }
  .bh-mega-table-wrap td { padding: 0.55rem 0.75rem; vertical-align: middle; color: #1a1a24; }
  .bh-mg-rank { font-weight: 700; color: #888699; text-align: center; width: 36px; }
  .bh-mg-game { font-weight: 500; max-width: 160px; word-break: break-word; }
  .bh-mg-num  { text-align: right; font-weight: 600; white-space: nowrap; width: 90px; color: #333; }
  .bh-mg-na   { text-align: right; color: #bbb; font-style: italic; font-size: 0.8rem; white-space: nowrap; width: 90px; }
  @media (max-width: 560px) {
    .bh-mega-table-wrap thead th,
    .bh-mega-table-wrap td { padding: 0.5rem 0.6rem; font-size: 0.75rem; }
    .bh-mega-table-wrap thead th { font-size: 0.5rem; }
  }
</style>

<div class="bh-mega-wrap">
  <p class="bh-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="bh-mega-table-wrap">
    <table>
      <colgroup>
        <col style="width:36px">
        <col style="width:160px">
        <col style="width:55px">
        <col style="width:110px">
        <col style="width:95px">
        <col style="width:75px">
        <col style="width:100px">
      </colgroup>
      <thead>
        <tr>
          <th>Rank</th>
          <th>Game</th>
          <th class="num">Votes</th>
          <th class="num">Gross Revenue</th>
          <th class="num">Units Sold</th>
          <th class="num">Avg Cost</th>
          <th class="num">Median Playtime</th>
        </tr>
      </thead>
      <tbody>
        <tr class="bh-top">
          <td class="bh-mg-rank">1</td><td class="bh-mg-game">Enter The Gungeon</td><td class="bh-mg-num">116</td><td class="bh-mg-num">$530,000</td><td class="bh-mg-num">60,540</td><td class="bh-mg-num">$9</td><td class="bh-mg-num">2.9 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">2</td><td class="bh-mg-game">Star of Providence</td><td class="bh-mg-num">63</td><td class="bh-mg-na">N/A</td><td class="bh-mg-num">2,310</td><td class="bh-mg-num">$0</td><td class="bh-mg-na">N/A</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">3</td><td class="bh-mg-game">The Void Rains Upon Her Heart</td><td class="bh-mg-num">57</td><td class="bh-mg-num">$41,600,000</td><td class="bh-mg-num">3,600,000</td><td class="bh-mg-num">$12</td><td class="bh-mg-num">14.3 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">4</td><td class="bh-mg-game">Tiny Rogues</td><td class="bh-mg-num">44</td><td class="bh-mg-num">$227,290</td><td class="bh-mg-num">104,580</td><td class="bh-mg-num">$2</td><td class="bh-mg-num">0.8 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">5</td><td class="bh-mg-game">Holocure</td><td class="bh-mg-num">40</td><td class="bh-mg-na">N/A</td><td class="bh-mg-na">N/A</td><td class="bh-mg-num">$0</td><td class="bh-mg-na">N/A</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">6</td><td class="bh-mg-game">Nuclear Throne</td><td class="bh-mg-num">36</td><td class="bh-mg-num">$27,500,000</td><td class="bh-mg-num">2,200,000</td><td class="bh-mg-num">$13</td><td class="bh-mg-num">5.3 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">7</td><td class="bh-mg-game">Returnal</td><td class="bh-mg-num">34</td><td class="bh-mg-num">$1,600,000</td><td class="bh-mg-num">112,000</td><td class="bh-mg-num">$14</td><td class="bh-mg-num">8.5 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">8</td><td class="bh-mg-game">Death Must Die</td><td class="bh-mg-num">31</td><td class="bh-mg-num">$27,900,000</td><td class="bh-mg-num">8,500,000</td><td class="bh-mg-num">$3</td><td class="bh-mg-num">4.5 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">9</td><td class="bh-mg-game">The Binding of Isaac</td><td class="bh-mg-num">21</td><td class="bh-mg-num">$23,100,000</td><td class="bh-mg-num">3,800,000</td><td class="bh-mg-num">$6</td><td class="bh-mg-num">10.2 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">10</td><td class="bh-mg-game">Dodonpachi DaiOuJou</td><td class="bh-mg-num">20</td><td class="bh-mg-num">$126,000</td><td class="bh-mg-num">27,960</td><td class="bh-mg-num">$5</td><td class="bh-mg-num">5.1 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">11</td><td class="bh-mg-game">Touhou: Shoot the Bullet</td><td class="bh-mg-num">18</td><td class="bh-mg-num">$219,000</td><td class="bh-mg-num">25,300</td><td class="bh-mg-num">$9</td><td class="bh-mg-num">4.8 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">12</td><td class="bh-mg-game">Atomicrops</td><td class="bh-mg-num">17</td><td class="bh-mg-num">$457,000</td><td class="bh-mg-num">60,300</td><td class="bh-mg-num">$8</td><td class="bh-mg-num">8.8 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">13</td><td class="bh-mg-game">Gigawing</td><td class="bh-mg-num">17</td><td class="bh-mg-num">$11,100,000</td><td class="bh-mg-num">664,000</td><td class="bh-mg-num">$17</td><td class="bh-mg-num">12.1 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">14</td><td class="bh-mg-game">Soulstone Survivors</td><td class="bh-mg-num">17</td><td class="bh-mg-num">$417,000</td><td class="bh-mg-num">62,245</td><td class="bh-mg-num">$7</td><td class="bh-mg-num">3.8 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">15</td><td class="bh-mg-game">Ikaruga</td><td class="bh-mg-num">13</td><td class="bh-mg-num">$148,000</td><td class="bh-mg-num">148,000</td><td class="bh-mg-num">$1</td><td class="bh-mg-num">2.0 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">16</td><td class="bh-mg-game">Mars Matrix</td><td class="bh-mg-num">12</td><td class="bh-mg-num">$10,200,000</td><td class="bh-mg-num">845,000</td><td class="bh-mg-num">$12</td><td class="bh-mg-num">5.0 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">17</td><td class="bh-mg-game">Super Smash TV</td><td class="bh-mg-num">11</td><td class="bh-mg-num">$4,800,000</td><td class="bh-mg-num">563,000</td><td class="bh-mg-num">$9</td><td class="bh-mg-num">10.6 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">18</td><td class="bh-mg-game">Danmaku</td><td class="bh-mg-num">10</td><td class="bh-mg-na">N/A</td><td class="bh-mg-na">N/A</td><td class="bh-mg-na">N/A</td><td class="bh-mg-na">N/A</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">19</td><td class="bh-mg-game">Rolling Gunner</td><td class="bh-mg-num">10</td><td class="bh-mg-num">$5,100,000</td><td class="bh-mg-num">517,000</td><td class="bh-mg-num">$10</td><td class="bh-mg-num">12.8 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">20</td><td class="bh-mg-game">Shape Shifter Formations</td><td class="bh-mg-num">10</td><td class="bh-mg-num">$6,700,000</td><td class="bh-mg-num">702,000</td><td class="bh-mg-num">$10</td><td class="bh-mg-num">5.3 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">21</td><td class="bh-mg-game">Crimzon Clover</td><td class="bh-mg-num">9</td><td class="bh-mg-num">$2,500,000</td><td class="bh-mg-num">840,000</td><td class="bh-mg-num">$3</td><td class="bh-mg-num">6.9 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">22</td><td class="bh-mg-game">Espgaluda</td><td class="bh-mg-num">9</td><td class="bh-mg-num">$9,300,000</td><td class="bh-mg-num">700,000</td><td class="bh-mg-num">$13</td><td class="bh-mg-num">11.0 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">23</td><td class="bh-mg-game">Nex Machina</td><td class="bh-mg-num">9</td><td class="bh-mg-num">$6,200,000</td><td class="bh-mg-num">833,000</td><td class="bh-mg-num">$7</td><td class="bh-mg-num">10.0 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">24</td><td class="bh-mg-game">Furi</td><td class="bh-mg-num">8</td><td class="bh-mg-num">$57,900,000</td><td class="bh-mg-num">5,000,000</td><td class="bh-mg-num">$12</td><td class="bh-mg-num">18.6 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">25</td><td class="bh-mg-game">Halls of Torment</td><td class="bh-mg-num">8</td><td class="bh-mg-num">$16,223</td><td class="bh-mg-num">2,370</td><td class="bh-mg-num">$7</td><td class="bh-mg-na">N/A</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">26</td><td class="bh-mg-game">Progear</td><td class="bh-mg-num">8</td><td class="bh-mg-num">$829,000</td><td class="bh-mg-num">181,000</td><td class="bh-mg-num">$5</td><td class="bh-mg-num">10.6 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">27</td><td class="bh-mg-game">Rogue Genesia</td><td class="bh-mg-num">8</td><td class="bh-mg-num">$35,400,000</td><td class="bh-mg-num">1,300,000</td><td class="bh-mg-num">$27</td><td class="bh-mg-num">11.6 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">28</td><td class="bh-mg-game">Void Rain</td><td class="bh-mg-num">8</td><td class="bh-mg-num">$368,000</td><td class="bh-mg-num">86,190</td><td class="bh-mg-num">$4</td><td class="bh-mg-num">7.1 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">29</td><td class="bh-mg-game">Alienation</td><td class="bh-mg-num">7</td><td class="bh-mg-num">$1,500,000</td><td class="bh-mg-num">168,000</td><td class="bh-mg-num">$9</td><td class="bh-mg-num">6.5 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">30</td><td class="bh-mg-game">Brotato</td><td class="bh-mg-num">7</td><td class="bh-mg-num">$38,500,000</td><td class="bh-mg-num">2,500,000</td><td class="bh-mg-num">$15</td><td class="bh-mg-num">15.0 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">31</td><td class="bh-mg-game">Deathsmiles</td><td class="bh-mg-num">7</td><td class="bh-mg-num">$4,200,000</td><td class="bh-mg-num">427,000</td><td class="bh-mg-num">$10</td><td class="bh-mg-num">21.6 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">32</td><td class="bh-mg-game">Drainus</td><td class="bh-mg-num">7</td><td class="bh-mg-num">$336,000</td><td class="bh-mg-num">44,610</td><td class="bh-mg-num">$8</td><td class="bh-mg-num">8.1 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">33</td><td class="bh-mg-game">Schildmaid MX</td><td class="bh-mg-num">7</td><td class="bh-mg-num">$7,768</td><td class="bh-mg-num">2,370</td><td class="bh-mg-num">$3</td><td class="bh-mg-na">N/A</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">34</td><td class="bh-mg-game">Samidare</td><td class="bh-mg-num">6</td><td class="bh-mg-num">$32,700,000</td><td class="bh-mg-num">2,400,000</td><td class="bh-mg-num">$14</td><td class="bh-mg-num">5.1 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">35</td><td class="bh-mg-game">Voidigo</td><td class="bh-mg-num">6</td><td class="bh-mg-na">N/A</td><td class="bh-mg-num">7,110</td><td class="bh-mg-num">$0</td><td class="bh-mg-na">N/A</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">36</td><td class="bh-mg-game">Undertale</td><td class="bh-mg-num">5</td><td class="bh-mg-num">$8,600,000</td><td class="bh-mg-num">1,100,000</td><td class="bh-mg-num">$8</td><td class="bh-mg-num">11.6 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">37</td><td class="bh-mg-game">Archvale</td><td class="bh-mg-num">4</td><td class="bh-mg-num">$3,300,000</td><td class="bh-mg-num">437,000</td><td class="bh-mg-num">$8</td><td class="bh-mg-num">11.0 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">38</td><td class="bh-mg-game">Crimson Dawn</td><td class="bh-mg-num">4</td><td class="bh-mg-na">N/A</td><td class="bh-mg-na">N/A</td><td class="bh-mg-na">N/A</td><td class="bh-mg-na">N/A</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">39</td><td class="bh-mg-game">Deep Rock Galactic Survivors</td><td class="bh-mg-num">4</td><td class="bh-mg-num">$3,300,000</td><td class="bh-mg-num">621,000</td><td class="bh-mg-num">$5</td><td class="bh-mg-num">10.6 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">40</td><td class="bh-mg-game">God of Weapons</td><td class="bh-mg-num">4</td><td class="bh-mg-num">$382,000</td><td class="bh-mg-num">27,690</td><td class="bh-mg-num">$14</td><td class="bh-mg-num">2.5 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">41</td><td class="bh-mg-game">Greedland</td><td class="bh-mg-num">4</td><td class="bh-mg-num">$751,000</td><td class="bh-mg-num">108,000</td><td class="bh-mg-num">$7</td><td class="bh-mg-num">1.3 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">42</td><td class="bh-mg-game">Gunfire Reborn</td><td class="bh-mg-num">4</td><td class="bh-mg-num">$15,871</td><td class="bh-mg-num">2,550</td><td class="bh-mg-num">$6</td><td class="bh-mg-na">N/A</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">43</td><td class="bh-mg-game">Jamestown</td><td class="bh-mg-num">4</td><td class="bh-mg-num">$168,000</td><td class="bh-mg-num">63,540</td><td class="bh-mg-num">$3</td><td class="bh-mg-num">5.4 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">44</td><td class="bh-mg-game">Just Shapes and Beats</td><td class="bh-mg-num">4</td><td class="bh-mg-num">$6,900,000</td><td class="bh-mg-num">841,000</td><td class="bh-mg-num">$8</td><td class="bh-mg-num">3.1 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">45</td><td class="bh-mg-game">Kill Knight</td><td class="bh-mg-num">4</td><td class="bh-mg-num">$494,000</td><td class="bh-mg-num">155,000</td><td class="bh-mg-num">$3</td><td class="bh-mg-num">5.8 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">46</td><td class="bh-mg-game">Mad God</td><td class="bh-mg-num">4</td><td class="bh-mg-num">$13,000,000</td><td class="bh-mg-num">1,600,000</td><td class="bh-mg-num">$8</td><td class="bh-mg-num">2.9 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">47</td><td class="bh-mg-game">Magicraft</td><td class="bh-mg-num">4</td><td class="bh-mg-na">N/A</td><td class="bh-mg-na">N/A</td><td class="bh-mg-na">N/A</td><td class="bh-mg-na">N/A</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">48</td><td class="bh-mg-game">Nomad Survivor</td><td class="bh-mg-num">4</td><td class="bh-mg-num">$144,000</td><td class="bh-mg-num">32,430</td><td class="bh-mg-num">$4</td><td class="bh-mg-num">3.8 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">49</td><td class="bh-mg-game">Nova Drift</td><td class="bh-mg-num">4</td><td class="bh-mg-na">N/A</td><td class="bh-mg-na">N/A</td><td class="bh-mg-na">N/A</td><td class="bh-mg-na">N/A</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">50</td><td class="bh-mg-game">Ravenswatch</td><td class="bh-mg-num">4</td><td class="bh-mg-num">$162,000</td><td class="bh-mg-num">21,270</td><td class="bh-mg-num">$8</td><td class="bh-mg-num">2.9 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">51</td><td class="bh-mg-game">REMEDIUM: Sentinels</td><td class="bh-mg-num">4</td><td class="bh-mg-num">$241,000</td><td class="bh-mg-num">71,700</td><td class="bh-mg-num">$3</td><td class="bh-mg-num">6.3 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">52</td><td class="bh-mg-game">Scarlet Tower</td><td class="bh-mg-num">4</td><td class="bh-mg-num">$263,000</td><td class="bh-mg-num">67,410</td><td class="bh-mg-num">$4</td><td class="bh-mg-num">7.0 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">53</td><td class="bh-mg-game">Sole Saga</td><td class="bh-mg-num">4</td><td class="bh-mg-num">$10,134</td><td class="bh-mg-num">2,850</td><td class="bh-mg-num">$4</td><td class="bh-mg-na">N/A</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">54</td><td class="bh-mg-game">Star Survivor</td><td class="bh-mg-num">4</td><td class="bh-mg-num">$2,609</td><td class="bh-mg-num">540</td><td class="bh-mg-num">$5</td><td class="bh-mg-na">N/A</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">55</td><td class="bh-mg-game">SuperTotalCarnage</td><td class="bh-mg-num">4</td><td class="bh-mg-num">$1,300,000</td><td class="bh-mg-num">122,000</td><td class="bh-mg-num">$11</td><td class="bh-mg-num">1.0 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">56</td><td class="bh-mg-game">Swarm Grinder</td><td class="bh-mg-num">4</td><td class="bh-mg-num">$630,000</td><td class="bh-mg-num">144,000</td><td class="bh-mg-num">$4</td><td class="bh-mg-num">8.2 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">57</td><td class="bh-mg-game">Time Wasters</td><td class="bh-mg-num">4</td><td class="bh-mg-num">$111,000</td><td class="bh-mg-num">8,700</td><td class="bh-mg-num">$13</td><td class="bh-mg-na">N/A</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">58</td><td class="bh-mg-game">Vampire Survivors</td><td class="bh-mg-num">4</td><td class="bh-mg-num">$264,000</td><td class="bh-mg-num">73,800</td><td class="bh-mg-num">$4</td><td class="bh-mg-num">1.7 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">59</td><td class="bh-mg-game">Alcon</td><td class="bh-mg-num">3</td><td class="bh-mg-na">N/A</td><td class="bh-mg-num">1,200,000</td><td class="bh-mg-num">$0</td><td class="bh-mg-num">7.8 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">60</td><td class="bh-mg-game">Batsugun</td><td class="bh-mg-num">3</td><td class="bh-mg-num">$5,602</td><td class="bh-mg-num">1,830</td><td class="bh-mg-num">$3</td><td class="bh-mg-na">N/A</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">61</td><td class="bh-mg-game">Children of Morta</td><td class="bh-mg-num">3</td><td class="bh-mg-num">$4,000,000</td><td class="bh-mg-num">416,000</td><td class="bh-mg-num">$10</td><td class="bh-mg-num">2.9 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">62</td><td class="bh-mg-game">Dodonpachi Resurrection</td><td class="bh-mg-num">3</td><td class="bh-mg-num">$69,562</td><td class="bh-mg-num">14,280</td><td class="bh-mg-num">$5</td><td class="bh-mg-num">5.0 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">63</td><td class="bh-mg-game">Grind Stormer</td><td class="bh-mg-num">3</td><td class="bh-mg-num">$6,300,000</td><td class="bh-mg-num">510,000</td><td class="bh-mg-num">$12</td><td class="bh-mg-num">2.6 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">64</td><td class="bh-mg-game">Like Dreamer</td><td class="bh-mg-num">3</td><td class="bh-mg-num">$381,000</td><td class="bh-mg-num">75,930</td><td class="bh-mg-num">$5</td><td class="bh-mg-num">6.7 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">65</td><td class="bh-mg-game">Mothergunship</td><td class="bh-mg-num">3</td><td class="bh-mg-num">$74,915</td><td class="bh-mg-num">17,310</td><td class="bh-mg-num">$4</td><td class="bh-mg-num">3.4 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">66</td><td class="bh-mg-game">Risk of Rain 2</td><td class="bh-mg-num">3</td><td class="bh-mg-num">$3,800,000</td><td class="bh-mg-num">571,000</td><td class="bh-mg-num">$7</td><td class="bh-mg-num">8.0 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">67</td><td class="bh-mg-game">Truxton</td><td class="bh-mg-num">3</td><td class="bh-mg-num">$1,320</td><td class="bh-mg-num">1,410</td><td class="bh-mg-num">$1</td><td class="bh-mg-na">N/A</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">68</td><td class="bh-mg-game">Army of Ruin</td><td class="bh-mg-num">2</td><td class="bh-mg-num">$16,626</td><td class="bh-mg-num">4,590</td><td class="bh-mg-num">$4</td><td class="bh-mg-na">N/A</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">69</td><td class="bh-mg-game">Ball X Pit</td><td class="bh-mg-num">2</td><td class="bh-mg-num">$137,000</td><td class="bh-mg-num">36,330</td><td class="bh-mg-num">$4</td><td class="bh-mg-num">7.9 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">70</td><td class="bh-mg-game">Battle Garegga</td><td class="bh-mg-num">2</td><td class="bh-mg-num">$131,000</td><td class="bh-mg-num">43,860</td><td class="bh-mg-num">$3</td><td class="bh-mg-num">2.2 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">71</td><td class="bh-mg-game">Blue Revolver</td><td class="bh-mg-num">2</td><td class="bh-mg-num">$22,500,000</td><td class="bh-mg-num">1,300,000</td><td class="bh-mg-num">$17</td><td class="bh-mg-num">9.0 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">72</td><td class="bh-mg-game">Bullet Hell Monday</td><td class="bh-mg-num">2</td><td class="bh-mg-num">$3,500,000</td><td class="bh-mg-num">334,000</td><td class="bh-mg-num">$10</td><td class="bh-mg-num">6.7 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">73</td><td class="bh-mg-game">Cuphead Goated</td><td class="bh-mg-num">2</td><td class="bh-mg-num">$9,400,000</td><td class="bh-mg-num">660,000</td><td class="bh-mg-num">$14</td><td class="bh-mg-num">11.2 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">74</td><td class="bh-mg-game">Gunlocked</td><td class="bh-mg-num">2</td><td class="bh-mg-num">$38,600,000</td><td class="bh-mg-num">4,000,000</td><td class="bh-mg-num">$10</td><td class="bh-mg-num">6.2 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">75</td><td class="bh-mg-game">Gunvein</td><td class="bh-mg-num">2</td><td class="bh-mg-num">$100,000</td><td class="bh-mg-num">157,000</td><td class="bh-mg-num">$1</td><td class="bh-mg-num">11.3 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">76</td><td class="bh-mg-game">Loaded 95'</td><td class="bh-mg-num">2</td><td class="bh-mg-num">$1,200,000</td><td class="bh-mg-num">152,000</td><td class="bh-mg-num">$8</td><td class="bh-mg-num">4.8 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">77</td><td class="bh-mg-game">Mushihimesama Futari</td><td class="bh-mg-num">2</td><td class="bh-mg-num">$296,000</td><td class="bh-mg-num">84,480</td><td class="bh-mg-num">$4</td><td class="bh-mg-num">4.9 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">78</td><td class="bh-mg-game">Pathfinder Gallowspire Survivors</td><td class="bh-mg-num">2</td><td class="bh-mg-num">$144,500,000</td><td class="bh-mg-num">8,500,000</td><td class="bh-mg-num">$17</td><td class="bh-mg-num">16.8 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">79</td><td class="bh-mg-game">Rabi Rabi</td><td class="bh-mg-num">2</td><td class="bh-mg-na">N/A</td><td class="bh-mg-na">N/A</td><td class="bh-mg-na">N/A</td><td class="bh-mg-na">N/A</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">80</td><td class="bh-mg-game">Renfield</td><td class="bh-mg-num">2</td><td class="bh-mg-num">$21,899</td><td class="bh-mg-num">6,000</td><td class="bh-mg-num">$4</td><td class="bh-mg-na">N/A</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">81</td><td class="bh-mg-game">Streets of Rogue</td><td class="bh-mg-num">2</td><td class="bh-mg-num">$4,421</td><td class="bh-mg-num">4,590</td><td class="bh-mg-num">$1</td><td class="bh-mg-na">N/A</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">82</td><td class="bh-mg-game">The Noobs Are Coming</td><td class="bh-mg-num">2</td><td class="bh-mg-num">$3,300,000</td><td class="bh-mg-num">887,000</td><td class="bh-mg-num">$4</td><td class="bh-mg-num">12.0 hrs</td>
        </tr>
        <tr>
          <td class="bh-mg-rank">83</td><td class="bh-mg-game">The Spell Brigade</td><td class="bh-mg-num">2</td><td class="bh-mg-num">$1,678</td><td class="bh-mg-num">450</td><td class="bh-mg-num">$4</td><td class="bh-mg-na">N/A</td>
        </tr>
      </tbody>
    </table>
  </div>
</div>



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



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



<p class="wp-block-paragraph">Enter the Gungeon is the obvious answer, and the data backs it up with a lot of conviction, but Star of Providence and The Void Rains Upon Her Heart both earned their spots through consistent community enthusiasm rather than name recognition, and those two are worth paying attention to.</p>



<p class="wp-block-paragraph">The split between the roguelite crowd and the shmup purists also made this list more interesting than I expected.&nbsp;</p>



<p class="wp-block-paragraph">If you&#8217;ve only played Gungeon and Nuclear Throne and think you know bullet hell, Dodonpachi and Ikaruga will have something to say about that.&nbsp;</p>



<p class="wp-block-paragraph">And if you&#8217;re still figuring out where bullet hell ends and bullet heaven begins, the Bullet Heaven vs. Bullet Hell guide is a good place to sort it out.</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-bullet-hell-games/">(Top 83) Best Bullet Hell Games &#8211; 863 Reddit Votes</a> appeared first on <a href="https://rogueranker.com">Rogue Ranker</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>(Top 125) Games Like Brotato Ranked &#8211; 2419 Reddit Votes</title>
		<link>https://rogueranker.com/games-like-brotato/</link>
					<comments>https://rogueranker.com/games-like-brotato/#respond</comments>
		
		<dc:creator><![CDATA[Steven]]></dc:creator>
		<pubDate>Sat, 20 Sep 2025 16:23:55 +0000</pubDate>
				<category><![CDATA[Brotato]]></category>
		<guid isPermaLink="false">https://rogueranker.com/?p=296</guid>

					<description><![CDATA[<p>I spent 15+ hours analyzing the top 125 games like Brotato from real Reddit threads, then ranked them based on 2419 cumulative upvotes.&#160; Why? Because we have all seen those threads: “If I like {insert game here}, what else will I like?” Suggestions are usually on par, but I’ve noticed two trends: The second note [&#8230;]</p>
<p>The post <a href="https://rogueranker.com/games-like-brotato/">(Top 125) Games Like Brotato Ranked &#8211; 2419 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 15+ hours analyzing the top 125 games like Brotato from real Reddit threads, then ranked them based on 2419 cumulative upvotes.&nbsp;</p>



<p class="wp-block-paragraph">Why? Because we have all seen those threads:</p>



<p class="wp-block-paragraph">“If I like {insert game here}, what else will I like?”</p>



<p class="wp-block-paragraph">Suggestions are usually on par, but I’ve noticed two trends:</p>



<ol class="wp-block-list">
<li>Many one-off comments get pushed down because they aren’t upvoted</li>



<li>Duplicate suggestions with a few upvotes aren’t considered</li>
</ol>



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



<p class="wp-block-paragraph">The second note is more interesting to me.</p>



<p class="wp-block-paragraph">Feel free to play around with our quiz below to learn what game is best for you <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>



<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>What Game Like Brotato Should I Play Next?</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>
  #quiz-root {
    --bg:             #111318;
    --surface:        #16161f;
    --surface-raised: #1e1e2a;
    --border:         #32324a;
    --border-hover:   #52527a;
    --accent:         #FFBF00;
    --accent-dim:     #b08800;
    --text:           #f2eedd;
    --text-body:      #cbc4b0;
    --text-muted:     #80786a;
    --text-dim:       #3e3c36;

    font-family: 'Crimson Pro', Georgia, serif;
    font-size: 18px;
    line-height: 1.6;
    background: #111318;
    color: #f2eedd;
    width: 100%;
    max-width: 700px;
    margin: 32px auto;
    padding: 40px 28px 56px;
    border-radius: 8px;
    border: 1px solid #22222e;
    box-shadow: 0 8px 48px rgba(0,0,0,0.45);
    overflow: hidden;
    box-sizing: border-box;
    position: relative;
  }

  #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: #FFBF00;
    margin-bottom: 12px;
    display: block;
  }

  .quiz-title {
    font-family: 'Cinzel', serif;
    font-size: clamp(22px, 5vw, 34px);
    font-weight: 800;
    color: #f2eedd;
    line-height: 1.2;
    margin-bottom: 12px;
  }

  .quiz-subtitle {
    color: #80786a;
    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: #32324a;
    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: #80786a;
    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: #b08800;
    text-transform: uppercase;
    margin-bottom: 10px;
    display: block;
  }

  .question-text {
    font-family: 'Cinzel', serif;
    font-size: clamp(16px, 3vw, 20px);
    font-weight: 600;
    color: #f2eedd;
    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 ── */
  .nav-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 28px;
    gap: 12px;
  }

  .btn-back {
    background: transparent;
    border: 1px solid #32324a;
    border-radius: 4px;
    padding: 10px 20px;
    color: #80786a;
    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: #52527a;
    color: #f2eedd;
  }

  .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: #FFBF00;
    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: #FFBF00;
    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: #f2eedd;
    margin-bottom: 10px;
    opacity: 0;
    animation: fadeUp 0.5s ease 0.35s forwards;
  }

  .results-sub {
    color: #80786a;
    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: #16161f;
    border: 1px solid #32324a;
    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: #52527a;
    box-shadow: 0 4px 24px rgba(0,0,0,0.4);
  }

  .result-card.rank-1 {
    border-color: #FFBF00;
  }

  .result-card.rank-1:hover {
    box-shadow: 0 4px 32px rgba(255,191,0,0.15);
  }

  .result-card-topbar {
    height: 3px;
    background: #32324a;
  }

  .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 #32324a;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Cinzel', serif;
    font-size: 11px;
    font-weight: 700;
    color: #80786a;
    flex-shrink: 0;
  }

  .result-card.rank-1 .result-rank-pip {
    background: #FFBF00;
    border-color: #FFBF00;
    color: #0d0d0f;
  }

  .result-rank-label {
    font-family: 'Cinzel', serif;
    font-size: 11px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #80786a;
  }

  .result-card.rank-1 .result-rank-label { color: #FFBF00; }

  .result-game-name {
    font-family: 'Cinzel', serif;
    font-size: clamp(20px, 4vw, 26px);
    font-weight: 700;
    color: #f2eedd;
    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;
  }

  .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, .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, .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, .meta-pill.pill-votes  .meta-pill-icon { color: #7ac87a; }

  .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: #80786a;
    white-space: nowrap;
    min-width: 75px;
  }

  .score-bar-bg {
    flex: 1;
    height: 6px;
    background: #32324a;
    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: #FFBF00;
    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-row {
    text-align: center;
    margin-top: 36px;
    padding-top: 28px;
    border-top: 1px solid #32324a;
  }

  .restart-label {
    display: block;
    font-style: italic;
    color: #80786a;
    font-size: 16px;
    margin-bottom: 14px;
  }

  .btn-restart {
    background: transparent;
    border: 1px solid #32324a;
    border-radius: 4px;
    padding: 13px 32px;
    color: #80786a;
    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: #52527a;
    color: #f2eedd;
  }

  /* ── 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: 7px; }
    .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 · 125 Games Analyzed</span>
    <h2 class="quiz-title">What Game Like Brotato Should I Play Next?</h2>
    <p class="quiz-subtitle">10 questions. Matched to 125 community-ranked games.</p>
  </div>
  <div id="quiz-body"></div>
</div>

<script>
// ─────────────────────────────────────────────
//  QUESTIONS
// ─────────────────────────────────────────────
const questions = [
  {
    id: "q1",
    text: "What do you love most about Brotato?",
    options: [
      { label: "The insane build synergies and stat-stacking",         tags: ["builds", "synergies", "stats"] },
      { label: "Short, punchy runs I can jump into fast",              tags: ["short_runs", "fast_paced"] },
      { label: "The wave-based arena survival loop",                   tags: ["arena", "waves", "survival"] },
      { label: "The constant upgrades and power creep",               tags: ["upgrades", "meta_prog", "scaling"] }
    ]
  },
  {
    id: "q2",
    text: "How long do you want a typical run to last?",
    options: [
      { label: "Under 20 minutes — quick and snappy",                  tags: ["short_runs", "fast_paced"] },
      { label: "20–40 minutes — similar to Brotato",                  tags: ["medium_runs"] },
      { label: "40–60 minutes — I like to settle in",                 tags: ["long_runs"] },
      { label: "I don't mind — just make it good",                    tags: ["any_length", "builds", "meta_prog"] }
    ]
  },
  {
    id: "q3",
    text: "How important is story and atmosphere to you?",
    options: [
      { label: "I want pure gameplay — story is a bonus at best",      tags: ["arena", "waves", "fast_paced"] },
      { label: "A little atmosphere goes a long way",                  tags: ["dark_theme", "medium_runs"] },
      { label: "I love a moody, immersive world to get lost in",       tags: ["dark_theme", "atmospheric", "long_runs"] },
      { label: "I want a deep narrative that rewards every run",       tags: ["story", "atmospheric", "meta_prog"] }
    ]
  },
  {
    id: "q4",
    text: "What's your preferred combat style?",
    options: [
      { label: "Auto-attack chaos — let my build do the work",         tags: ["auto_attack", "builds", "scaling"] },
      { label: "Manual aiming with tight, skill-based play",           tags: ["manual_aim", "skill_based", "fast_paced"] },
      { label: "Room-by-room dungeon crawling",                        tags: ["dungeon", "roguelite", "builds"] },
      { label: "Card or strategy-based — I like to think it through", tags: ["card_game", "strategy", "synergies"] }
    ]
  },
  {
    id: "q5",
    text: "How do you feel about meta-progression between runs?",
    options: [
      { label: "Essential — I want permanent unlocks that carry over", tags: ["meta_prog", "upgrades", "long_runs"] },
      { label: "Nice to have, but not required",                       tags: ["medium_runs", "builds", "any_length"] },
      { label: "I prefer every run to feel equal and fresh",           tags: ["short_runs", "roguelite", "fast_paced"] },
      { label: "I want deep loot that changes future runs",            tags: ["loot", "meta_prog", "scaling"] }
    ]
  },
  {
    id: "q6",
    text: "What visual or tonal style appeals to you?",
    options: [
      { label: "Bright, cartoonish, and chaotic",                     tags: ["colorful", "waves", "auto_attack"] },
      { label: "Dark, gritty, and atmospheric",                       tags: ["dark_theme", "atmospheric", "dungeon"] },
      { label: "Pixel art or indie charm",                            tags: ["pixel_art", "roguelite", "short_runs"] },
      { label: "Polished 3D with satisfying weight and impact",       tags: ["polished", "manual_aim", "scaling"] }
    ]
  },
  {
    id: "q7",
    text: "How much do you want to think about your build?",
    options: [
      { label: "Hyper-deep — I want inventory management and theory crafting", tags: ["builds", "synergies", "strategy"] },
      { label: "Moderate depth — pick upgrades, watch things explode",          tags: ["builds", "auto_attack", "scaling"] },
      { label: "Light and breezy — just vibe and survive",                      tags: ["short_runs", "fast_paced", "colorful"] },
      { label: "Card-driven builds where every choice matters",                  tags: ["card_game", "strategy", "synergies"] }
    ]
  },
  {
    id: "q8",
    text: "What setting or theme sounds most fun right now?",
    options: [
      { label: "Fantasy / dark dungeon with Diablo vibes",            tags: ["dark_theme", "dungeon", "atmospheric"] },
      { label: "Sci-fi or space — mining, aliens, future tech",       tags: ["scifi", "polished", "manual_aim"] },
      { label: "Norse mythology or epic historical settings",         tags: ["dark_theme", "builds", "meta_prog"] },
      { label: "Zombie apocalypse or post-apocalyptic chaos",         tags: ["waves", "fast_paced", "manual_aim"] }
    ]
  },
  {
    id: "q9",
    text: "How important is price to you right now?",
    options: [
      { label: "Free is king — show me the freebies",                 tags: ["free"] },
      { label: "Under $5 — budget-friendly only",                    tags: ["budget", "pixel_art"] },
      { label: "$5–$15 — happy to pay for quality",                   tags: ["mid_price", "polished"] },
      { label: "Price doesn't matter if the game earns it",           tags: ["any_price", "polished", "meta_prog"] }
    ]
  },
  {
    id: "q10",
    text: "Which of these describes your next gaming session?",
    options: [
      { label: "I want the game everyone is obsessed with right now",  tags: ["popular", "polished", "scaling"] },
      { label: "I want a deep hidden gem most people haven't played",  tags: ["hidden_gem", "builds", "synergies"] },
      { label: "I want Brotato with one specific twist added",        tags: ["arena", "builds", "auto_attack"] },
      { label: "I want something totally different but still scratches the itch", tags: ["story", "card_game", "roguelite"] }
    ]
  }
];

// ─────────────────────────────────────────────
//  GAMES DATASET
// ─────────────────────────────────────────────
const games = [
  {
    name: "Deep Rock Galactic: Survivor",
    tags: ["scifi","polished","manual_aim","medium_runs","long_runs","builds","scaling","meta_prog","popular","any_price","mid_price","waves"],
    price: "$8",
    playtime: "11.6 hrs",
    votes: 235,
    why: "The #1 Brotato-like by a mile — 235 votes across 12 threads. Brotato's build depth meets DRG's polish and mining mechanics. If you want one upgrade, this is it."
  },
  {
    name: "God of Weapons",
    tags: ["builds","synergies","strategy","arena","waves","auto_attack","short_runs","medium_runs","budget","mid_price","colorful","hidden_gem","polished"],
    price: "$4",
    playtime: "8.2 hrs",
    votes: 164,
    why: "Brotato's closest DNA match. Nearly identical stat system and wave loop, but adds a backpack grid for inventory management. 164 votes and consistently called the most underrated game in the genre."
  },
  {
    name: "Halls of Torment",
    tags: ["dark_theme","atmospheric","dungeon","builds","meta_prog","long_runs","any_length","mid_price","budget","scaling","waves","popular"],
    price: "$4",
    playtime: "12 hrs",
    votes: 163,
    why: "Diablo aesthetics meet bullet heaven chaos. 163 votes across 11 threads — the go-to pick for players who want Brotato's power scaling with a dark, moody atmosphere."
  },
  {
    name: "Soulstone Survivors",
    tags: ["builds","synergies","scaling","colorful","polished","auto_attack","meta_prog","any_length","long_runs","mid_price","any_price","popular","waves"],
    price: "$8",
    playtime: "19 hrs",
    votes: 153,
    why: "Flashy, build-heavy, and enormous in scope. 153 votes from all 15 threads — the best pick if you want Brotato's power fantasy cranked up and never ending."
  },
  {
    name: "20 Minutes Till Dawn",
    tags: ["short_runs","fast_paced","dark_theme","pixel_art","builds","waves","auto_attack","budget","mid_price","synergies","arena"],
    price: "$3",
    playtime: "6.9 hrs",
    votes: 137,
    why: "Shorter, snappier runs with Brotato's synergy emphasis and a dark pixel-art style. 137 votes — the top pick for players who want quick sessions with deep build choices."
  },
  {
    name: "Death Must Die",
    tags: ["dark_theme","atmospheric","builds","loot","meta_prog","manual_aim","medium_runs","long_runs","budget","mid_price","scaling","dungeon","story"],
    price: "$5",
    playtime: "10.6 hrs",
    votes: 110,
    why: "Vampire Survivors meets Hades. God blessings, persistent loot, and RPG depth separate it from the crowd. 110 votes — the top pick for players who want Brotato with more narrative weight."
  },
  {
    name: "Vampire Survivors",
    tags: ["auto_attack","scaling","meta_prog","colorful","short_runs","medium_runs","any_length","budget","pixel_art","waves","popular","free"],
    price: "$3",
    playtime: "18.5 hrs",
    votes: 98,
    why: "The game that spawned the genre — and still one of the best. If you haven't played it, do. 98 votes across 8 threads; almost everyone who likes Brotato loves this too."
  },
  {
    name: "Yet Another Zombie Survivors",
    tags: ["manual_aim","waves","fast_paced","medium_runs","builds","meta_prog","mid_price","any_price","polished","scaling","popular"],
    price: "$7",
    playtime: "10.5 hrs",
    votes: 75,
    why: "Squad-based zombie survival with Brotato's upgrade loop. 75 votes — the top pick for players who want manual aiming, military vibes, and familiar wave-clearing structure."
  },
  {
    name: "Hades",
    tags: ["story","atmospheric","roguelite","skill_based","manual_aim","medium_runs","any_length","any_price","mid_price","popular","scaling","dark_theme","meta_prog"],
    price: "$17",
    playtime: "16.8 hrs",
    votes: 59,
    why: "Not a bullet heaven — but the best roguelite ever made. If you love Brotato's build variety and want to add a gripping narrative, Hades is the leap worth taking."
  },
  {
    name: "Nordic Ashes",
    tags: ["dark_theme","builds","meta_prog","long_runs","any_length","mid_price","budget","scaling","pixel_art","waves","auto_attack"],
    price: "$5",
    playtime: "10.6 hrs",
    votes: 58,
    why: "Norse-themed bullet heaven with deep skill trees and more tactical pacing than most. 58 votes — ideal for players who want Brotato's build depth with a slower, more deliberate rhythm."
  },
  {
    name: "Binding of Isaac",
    tags: ["dungeon","roguelite","builds","synergies","dark_theme","pixel_art","long_runs","any_length","budget","mid_price","skill_based","hidden_gem","manual_aim"],
    price: "$3",
    playtime: "4.5 hrs",
    votes: 56,
    why: "Thousands of item synergies, infinite replayability, and the weirdest dungeon ever built. 56 votes — the top pick for players who want Brotato's chaos channeled through a room-by-room roguelike."
  },
  {
    name: "Boneraiser Minions",
    tags: ["auto_attack","builds","colorful","pixel_art","short_runs","medium_runs","budget","waves","arena","synergies","hidden_gem"],
    price: "$3",
    playtime: "5.8 hrs",
    votes: 56,
    why: "Brotato with an undead minion army — raise skeletons, stack buffs, and watch the screen fill with chaos. 56 votes, and one of the most charming games on this list."
  },
  {
    name: "Slay the Spire",
    tags: ["card_game","strategy","synergies","roguelite","medium_runs","any_length","mid_price","any_price","popular","builds","hidden_gem"],
    price: "$15",
    playtime: "27.3 hrs",
    votes: 50,
    why: "The gold standard of card roguelikes. If Brotato's build theorycrafting excites you more than the shooting itself, Slay the Spire is where you belong."
  },
  {
    name: "Rogue: Genesia",
    tags: ["builds","synergies","auto_attack","waves","arena","short_runs","medium_runs","budget","meta_prog","pixel_art","hidden_gem","scaling"],
    price: "$5",
    playtime: "14.2 hrs",
    votes: 34,
    why: "One of the closest Brotato matches in the dataset — familiar arena loop, strong build variety, and deeply satisfying progression. 34 votes; criminally underplayed."
  },
  {
    name: "Tiny Rogues",
    tags: ["dungeon","builds","synergies","roguelite","pixel_art","short_runs","medium_runs","budget","hidden_gem","strategy","dark_theme"],
    price: "$6",
    playtime: "12.2 hrs",
    votes: 32,
    why: "Room-by-room pixel roguelike with RPG depth and gloriously broken build combos. 32 votes and consistent praise for how much it rewards creative min-maxing."
  },
  {
    name: "Balatro",
    tags: ["card_game","strategy","synergies","any_length","mid_price","any_price","popular","scaling","builds","hidden_gem"],
    price: "$12",
    playtime: "18.6 hrs",
    votes: 44,
    why: "Poker roguelike with synergy combos that rival anything in Brotato. Not a shooter — but if chasing ridiculous build interactions is your thing, Balatro will consume you."
  },
  {
    name: "Holocure",
    tags: ["free","auto_attack","waves","builds","meta_prog","short_runs","medium_runs","colorful","pixel_art","budget","arena"],
    price: "Free",
    playtime: "7.8 hrs",
    votes: 22,
    why: "Completely free on Steam and more polished than most paid games in the genre. The easiest recommendation if you want to try Brotato-style play without spending a cent."
  },
  {
    name: "SNKRX",
    tags: ["strategy","builds","synergies","short_runs","fast_paced","budget","pixel_art","hidden_gem","auto_attack","waves"],
    price: "$2",
    playtime: "4 hrs",
    votes: 37,
    why: "Minimalist auto-battler with a snake-movement twist and surprisingly deep build variety. $2 and 37 votes — the best value hidden gem on this list."
  },
  {
    name: "Time Wasters",
    tags: ["scifi","auto_attack","waves","arena","short_runs","builds","budget","pixel_art","hidden_gem","synergies"],
    price: "$3",
    playtime: "10.3 hrs",
    votes: 40,
    why: "Space-themed bullet heaven with Brotato's wave structure and strong build variety. 40 votes and one of the most consistently satisfying budget picks."
  },
  {
    name: "Army of Ruin",
    tags: ["colorful","polished","auto_attack","waves","short_runs","fast_paced","budget","mid_price","arena","scaling","synergies"],
    price: "$5",
    playtime: "6.7 hrs",
    votes: 46,
    why: "Shiny, fast-paced Vampire Survivors-style with satisfying weapon combos. 46 votes — the best pick for players who want a polished, visually clean bullet heaven with zero friction."
  }
];

// ─────────────────────────────────────────────
//  SCORING ENGINE
// ─────────────────────────────────────────────
function scoreGames(tagSets) {
  const maxVotes = Math.max(...games.map(g => g.votes));
  return games.map(game => {
    let score = 0;
    tagSets.forEach(answerTags => {
      answerTags.forEach(tag => {
        if (game.tags.includes(tag)) score++;
      });
    });
    score += (game.votes / maxVotes) * 0.5;
    return { ...game, score };
  }).sort((a, b) => b.score - a.score);
}

// ─────────────────────────────────────────────
//  GA4 TRACKING — update QUIZ_NAME per quiz
// ─────────────────────────────────────────────
const QUIZ_NAME = 'games_like_brotato';

function trackEvent(eventName, params) {
  if (typeof gtag === 'function') {
    gtag('event', eventName, params);
  }
}

// ─────────────────────────────────────────────
//  STATE
// ─────────────────────────────────────────────
let currentQ = 0;
let answers = [];
let quizStarted = false;

// ─────────────────────────────────────────────
//  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;
  const saved = answers[currentQ];

  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${saved === i ? ' selected' : ''}"
               role="button" tabindex="0"
               onclick="selectOption(${i})"
               onkeydown="if(event.key==='Enter'||event.key===' '){event.preventDefault();selectOption(${i});}">
            <div class="option-marker">${saved === 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()" ${saved == null ? 'disabled' : ''}>
          ${currentQ === questions.length - 1 ? 'See My Results →' : 'Next →'}
        </button>
      </div>
    </div>
  `;
}

function selectOption(i) {
  answers[currentQ] = i;

  // Update DOM directly — no re-render, no shake
  document.querySelectorAll('#quiz-root .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;

  // Fire quiz_started on the very first Next click
  if (!quizStarted) {
    quizStarted = true;
    trackEvent(QUIZ_NAME + '_quiz_started', { quiz_name: QUIZ_NAME });
  }

  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' });
  }
}

// ─────────────────────────────────────────────
//  RESULTS
// ─────────────────────────────────────────────
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;

  // Fire quiz_completed with the top matched game
  trackEvent(QUIZ_NAME + '_quiz_completed', {
    quiz_name: QUIZ_NAME,
    top_match: top3[0].name
  });

  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 125 community-ranked games like Brotato.</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">
                  ${game.price !== "N/A" ? `
                  <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>` : ''}
                  ${game.playtime !== "N/A" ? `
                  <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>
  `;

  // Staggered card reveal + bar animation
  const cards = body.querySelectorAll('.result-card');
  cards.forEach((card, i) => {
    setTimeout(() => {
      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' });
}

// Boot
render();
</script>
</body>
</html>



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



<h2 class="wp-block-heading">TL;DR &#8211; Quick Stats</h2>



<p class="wp-block-paragraph">Before we get into the good stuff, I wanted to offer a bit of quick data. </p>



<p class="wp-block-paragraph">Below are some of the more interesting stats I noticed after analyzing everything.</p>



<h3 class="wp-block-heading">Top 25 Most Recommended Games Like Brotato (Based on Reddit Votes)</h3>



<p class="wp-block-paragraph">This chart ranks the most commonly suggested games from 15 Reddit threads asking for &#8220;games like Brotato,&#8221; using a combined total of 2,419 upvotes. </p>



<p class="wp-block-paragraph">Community favorites like Deep Rock Galactic: Survivor, God of Weapons, and Halls of Torment rise to the top with widespread support across multiple threads.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6ab0feb74bea1&quot;}" data-wp-interactive="core/image" data-wp-key="6ab0feb74bea1" class="wp-block-image aligncenter size-full wp-lightbox-container"><img loading="lazy" decoding="async" width="960" height="700" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://rogueranker.com/wp-content/uploads/2025/09/top-25-games-like-brotato-ranked-by-reddit-votes-1.png" alt="Horizontal bar chart ranking the top 25 most recommended games like Brotato based on total Reddit votes. Deep Rock Galactic: Survivor, God of Weapons, and Halls of Torment lead the list." class="wp-image-376" srcset="https://rogueranker.com/wp-content/uploads/2025/09/top-25-games-like-brotato-ranked-by-reddit-votes-1.png 960w, https://rogueranker.com/wp-content/uploads/2025/09/top-25-games-like-brotato-ranked-by-reddit-votes-1-300x219.png 300w, https://rogueranker.com/wp-content/uploads/2025/09/top-25-games-like-brotato-ranked-by-reddit-votes-1-768x560.png 768w" sizes="(max-width: 960px) 100vw, 960px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<h3 class="wp-block-heading">Top Value Games Like Brotato (Playtime per Dollar)</h3>



<p class="wp-block-paragraph">If you care about getting the most game time for your money, this chart ranks Brotato-like games by how many hours of median playtime you get per dollar spent.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6ab0feb74c4cc&quot;}" data-wp-interactive="core/image" data-wp-key="6ab0feb74c4cc" class="wp-block-image size-full wp-lightbox-container"><img loading="lazy" decoding="async" width="960" height="700" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://rogueranker.com/wp-content/uploads/2025/09/top-value-games-like-brotato-playtime-per-dollar-chart-1.png" alt="Bar chart showing the top value games like Brotato ranked by median playtime per dollar. Highlights include Apocalypse Party, Vampire Survivors, and Time Wasters as the best value picks." class="wp-image-377" srcset="https://rogueranker.com/wp-content/uploads/2025/09/top-value-games-like-brotato-playtime-per-dollar-chart-1.png 960w, https://rogueranker.com/wp-content/uploads/2025/09/top-value-games-like-brotato-playtime-per-dollar-chart-1-300x219.png 300w, https://rogueranker.com/wp-content/uploads/2025/09/top-value-games-like-brotato-playtime-per-dollar-chart-1-768x560.png 768w" sizes="(max-width: 960px) 100vw, 960px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<h3 class="wp-block-heading">Distribution of Median Playtime Among Brotato-Like Games</h3>



<p class="wp-block-paragraph">This histogram shows how long these games tend to keep players engaged based on their median playtimes. </p>



<p class="wp-block-paragraph">Most games cluster between 5 to 15 hours, with a few outliers offering significantly longer replay value.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6ab0feb74cc88&quot;}" data-wp-interactive="core/image" data-wp-key="6ab0feb74cc88" class="wp-block-image aligncenter size-full wp-lightbox-container"><img loading="lazy" decoding="async" width="960" height="595" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://rogueranker.com/wp-content/uploads/2025/09/median-playtime-distribution-games-like-brotato-1-e1758382610172.png" alt="Histogram showing the distribution of median playtimes for games like Brotato. Most titles cluster between 5 and 15 hours, with a few outliers reaching beyond 20 hours." class="wp-image-375" srcset="https://rogueranker.com/wp-content/uploads/2025/09/median-playtime-distribution-games-like-brotato-1-e1758382610172.png 960w, https://rogueranker.com/wp-content/uploads/2025/09/median-playtime-distribution-games-like-brotato-1-e1758382610172-300x186.png 300w, https://rogueranker.com/wp-content/uploads/2025/09/median-playtime-distribution-games-like-brotato-1-e1758382610172-768x476.png 768w" sizes="(max-width: 960px) 100vw, 960px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<h2 class="wp-block-heading">Why I Collected This Data</h2>



<p class="wp-block-paragraph">When I&nbsp;set out to create an article on the best games like Brotato, the idea of summarizing Reddit threads seemed interesting. Sure, I’ve played most, but I haven’t played all of them.&nbsp;</p>



<p class="wp-block-paragraph">So I went to Reddit and saw what others suggested.</p>



<p class="wp-block-paragraph">During that process, I noticed a surprising number of comments that didn’t receive a lot of attention. However, their collective impact made a significant contribution to the discussion (but that wasn’t tallied or considered).</p>



<p class="wp-block-paragraph">Now, perhaps this isn’t an issue.&nbsp;</p>



<p class="wp-block-paragraph">People ask questions, get answers, and move on with their lives. I get it.</p>



<p class="wp-block-paragraph">But what if 10 people, scattered throughout the thread, all suggest the same game, but each only has 1 upvote?&nbsp;</p>



<p class="wp-block-paragraph">Answer: Those individual suggestions don’t carry as much weight compared to the comment with 9 upvotes. And yes, this assumes people just read the top comment and not the entire thread, but humor me.</p>



<p class="wp-block-paragraph">So, essentially, visibility and suggestions are skewed.&nbsp;</p>



<p class="wp-block-paragraph">On the other hand, there are numerous threads like this on Reddit, and I was curious to see where the overlap lay.</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/Games-Like-Brotato-Why-I-Collected-This-Data-1024x683.png" alt="Semi-realistic fantasy painting of a researcher studying game data, symbolizing the motivation behind collecting and analyzing roguelike game recommendations." class="wp-image-334" srcset="https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-Why-I-Collected-This-Data-1024x683.png 1024w, https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-Why-I-Collected-This-Data-300x200.png 300w, https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-Why-I-Collected-This-Data-768x512.png 768w, https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-Why-I-Collected-This-Data.png 1536w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">Some Nuances of the Data Explained</h2>



<p class="wp-block-paragraph">I started with a quick Google search for “Games Like Brotato.”</p>



<p class="wp-block-paragraph">From there, I collected all the Reddit threads within reach, then headed to Reddit and did the same thing to gather extras.&nbsp;</p>



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



<p class="wp-block-paragraph">There are more Reddit threads than the 15 I used, but <strong>I disregarded most</strong>:&nbsp;</p>



<ul class="wp-block-list">
<li>Threads where people wanted <strong>mobile</strong> suggestions only</li>



<li>Threads where people wanted <strong>console</strong> suggestions only</li>



<li>Threads where people wanted <strong>handheld</strong> suggestions only (e.g., Switch only)</li>
</ul>



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



<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/Games-Like-Brotato-Some-Nuances-of-the-Data-Collection-1024x683.png" alt="Digital fantasy artwork of a hooded rogue character studying a parchment map by candlelight, evoking the dark, adventurous atmosphere of roguelike games like Brotato and other indie action roguelites." class="wp-image-335" srcset="https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-Some-Nuances-of-the-Data-Collection-1024x683.png 1024w, https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-Some-Nuances-of-the-Data-Collection-300x200.png 300w, https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-Some-Nuances-of-the-Data-Collection-768x512.png 768w, https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-Some-Nuances-of-the-Data-Collection.png 1536w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



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



<p class="wp-block-paragraph">If a game was suggested frequently, such as <a href="https://www.reddit.com/r/Pickle_Pete/">Pickle Pete</a> (iOS, Android, Google), then it made the list. I couldn’t deny it.&nbsp;</p>



<p class="wp-block-paragraph">There were also games like <a href="https://www.supergiantgames.com/games/hades/">Hades</a>, where people rarely said whether they were referring to the first or second game. The data in such cases might be a little muddy, but I did my best here. I’ve also added notes to the cells within the spreadsheet if you want specifics.</p>



<p class="wp-block-paragraph">And finally, some games sparked debate in threads:</p>



<p class="wp-block-paragraph">“{Game} isn’t really like Brotato. It doesn’t share any roguelite bullet heaven mechanics.”&nbsp;</p>



<p class="wp-block-paragraph">“Yeah, but if they like playing Brotato, there’s a strong chance they’ll like this.”</p>



<p class="wp-block-paragraph">These games did not make the list.&nbsp;</p>



<p class="wp-block-paragraph"><em>Important:</em> I only disregarded a suggestion if another community member called it out.&nbsp;</p>



<p class="wp-block-paragraph">I did not want my opinion to sway the process. I was there to collect data.&nbsp;</p>



<p class="wp-block-paragraph">I also did not include games if someone said something like, “Shameless self-promotion. You should try my new game {name}.” Nope, sorry bud.</p>



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



<p class="wp-block-paragraph">I personally did not rank any games. I let the community rank games.&nbsp;</p>



<p class="wp-block-paragraph">After adding a game to the list, the “count” represented is based on the number of upvotes that the comment received.&nbsp;</p>



<p class="wp-block-paragraph">Moreover, if there were any other mentions of the game within the thread (duplicate suggestions) or replies in support of it, I took the sum of their parts. Even if there were multiple games mentioned in one comment.&nbsp;</p>



<p class="wp-block-paragraph">For example:</p>



<ul class="wp-block-list">
<li>User383413: “You gotta try Vampire Survivors” → 19 upvotes
<ul class="wp-block-list">
<li>User69420: “Totally love that game, bro” → 6 upvotes<br></li>
</ul>
</li>



<li>User374312: “Check out Vampire Survivors, God of Weapons, Death Must Die, Nordic Ashes, and Balatro. All are worth checking out, IMO” → 30 upvotes</li>
</ul>



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



<p class="wp-block-paragraph">Based on this:</p>



<ul class="wp-block-list">
<li>Vampire Survivors = 19+6+30 = 55</li>



<li>God of Weapons = 30</li>



<li>Death Must Die = 30</li>



<li>Nordic Ashes = 30</li>



<li>Balatro = 30</li>
</ul>



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



<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/Games-Like-Brotato-How-I-Ranked-Games-1024x683.png" alt="Fantasy-inspired image of a character sorting floating game icons with magical energy, representing the custom ranking system used to analyze Reddit game suggestions." class="wp-image-336" srcset="https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-How-I-Ranked-Games-1024x683.png 1024w, https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-How-I-Ranked-Games-300x200.png 300w, https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-How-I-Ranked-Games-768x512.png 768w, https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-How-I-Ranked-Games.png 1536w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">I decided it was best to keep things consistent.&nbsp;</p>



<p class="wp-block-paragraph">However, some caveats are worth explaining:&nbsp;</p>



<ol class="wp-block-list">
<li>If a comment suggests multiple games, then all get that many votes</li>



<li>If a game isn’t closely related to Brotato (e.g., Balatro), it still made the list.&nbsp;</li>
</ol>



<p class="wp-block-paragraph">Now, I’m not a massive fan of the second point above. I’ll be honest. Some games made the list that, in my opinion, are not like Brotato. There, I said it.&nbsp;</p>



<p class="wp-block-paragraph">BUT, and a big but, if a lot of people were suggesting it, there seemed to be some validity.&nbsp;</p>



<p class="wp-block-paragraph">From reading comments, some people agreed and called others out.&nbsp;</p>



<p class="wp-block-paragraph">Their replies were similar to the example above: “Yeah, but if they like playing Brotato, there’s a strong chance they’ll like this.”</p>



<p class="wp-block-paragraph">I see where they are coming from, but my job wasn’t to split hairs. Well, that many hairs.&nbsp;</p>



<p class="wp-block-paragraph">The objective of this exercise was to: Create an ultimate list of all the games like Brotato based on community suggestions from real Reddit threads.&nbsp;</p>



<p class="wp-block-paragraph">And just as you would expect, the legitimate games like Brotato were magically ranked top of the list. Who would have guessed?&nbsp;</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/Games-Like-Brotato-How-I-Ranked-Games-2-1024x683.png" alt="Illustration of a hooded adventurer examining a game map by candlelight while analyzing the game Brotato on a computer screen, symbolizing game research and ranking methodology." class="wp-image-340" srcset="https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-How-I-Ranked-Games-2-1024x683.png 1024w, https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-How-I-Ranked-Games-2-300x200.png 300w, https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-How-I-Ranked-Games-2-768x512.png 768w, https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-How-I-Ranked-Games-2.png 1536w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">Extra Data From VGN Insights</h3>



<p class="wp-block-paragraph">Once all the heavy lifting was done, I took it one step further and added some data from VGN Insights.&nbsp;</p>



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



<li>Average Cost</li>



<li>Gross Revenue</li>



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



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



<p class="wp-block-paragraph">This data was purely for me, but it was interesting to see in the end.&nbsp;</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6ab0feb74dec0&quot;}" data-wp-interactive="core/image" data-wp-key="6ab0feb74dec0" class="wp-block-image size-full wp-lightbox-container"><img loading="lazy" decoding="async" width="960" height="267" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://rogueranker.com/wp-content/uploads/2025/09/average-business-stats-games-like-brotato-mini-bar-chart-1-e1758382544980.png" alt="Mini bar chart showing average business stats from games like Brotato. Displays 765,674 average units sold,  average cost, .1 million average gross revenue, and 7.8 hours median playtime based on VGN Insights." class="wp-image-374" srcset="https://rogueranker.com/wp-content/uploads/2025/09/average-business-stats-games-like-brotato-mini-bar-chart-1-e1758382544980.png 960w, https://rogueranker.com/wp-content/uploads/2025/09/average-business-stats-games-like-brotato-mini-bar-chart-1-e1758382544980-300x83.png 300w, https://rogueranker.com/wp-content/uploads/2025/09/average-business-stats-games-like-brotato-mini-bar-chart-1-e1758382544980-768x214.png 768w" sizes="(max-width: 960px) 100vw, 960px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<p class="wp-block-paragraph">Here are the averages from the data I could find (excluding mobile and some games with spotty Steam data on VGN Insights).&nbsp;</p>



<p class="wp-block-paragraph">Average Business Stats (125 Games Like Brotato):</p>



<ul class="wp-block-list">
<li>Units Sold = 765,674</li>



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



<li>Gross Revenue = $8,156,168</li>



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



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



<p class="wp-block-paragraph">Side note: If anyone has any suggestions to find the missing data that VGN Insights didn’t have, please help. I’m all ears and would love to fill in the gaps.</p>



<h2 class="wp-block-heading">Top 25 Games Like Brotato (Based on Real Data)</h2>



<p class="wp-block-paragraph">As mentioned, there were 125 games that made the list (full list below).&nbsp;</p>



<p class="wp-block-paragraph">I ran through every thread twice, and even so, it’s possible that I missed some.&nbsp;</p>



<p class="wp-block-paragraph">Please don’t come for me <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>



<p class="wp-block-paragraph">Here is a breakdown of the top 25 games like Brotato, based on real Reddit data.&nbsp;</p>



<p class="wp-block-paragraph">I’ve also included the number of unique suggestions from all threads as well, along with a quick one-liner if you haven’t played the game.</p>



<p class="wp-block-paragraph">
<table id="tablepress-5" class="tablepress tablepress-id-5">
<thead>
<tr class="row-1">
	<th class="column-1">Game</th><th class="column-2">Upvotes</th><th class="column-3">Unique Suggestions</th><th class="column-4">What’s It Like?</th>
</tr>
</thead>
<tbody class="row-striping row-hover">
<tr class="row-2">
	<td class="column-1">Deep Rock Galactic: Survivor</td><td class="column-2">235</td><td class="column-3">12</td><td class="column-4">Brotato-style chaos with mining and polish.</td>
</tr>
<tr class="row-3">
	<td class="column-1">God of Weapons</td><td class="column-2">164</td><td class="column-3">12</td><td class="column-4">Loot, stack, and scale with inventory management.</td>
</tr>
<tr class="row-4">
	<td class="column-1">Halls of Torment</td><td class="column-2">163</td><td class="column-3">11</td><td class="column-4">Diablo meets Vampire Survivors.</td>
</tr>
<tr class="row-5">
	<td class="column-1">Soulstone Survivors</td><td class="column-2">153</td><td class="column-3">15</td><td class="column-4">Flashy visuals, huge build variety.</td>
</tr>
<tr class="row-6">
	<td class="column-1">20 Minutes Till Dawn</td><td class="column-2">137</td><td class="column-3">12</td><td class="column-4">Shorter runs, darker tone, tighter gameplay.</td>
</tr>
<tr class="row-7">
	<td class="column-1">Death Must Die</td><td class="column-2">110</td><td class="column-3">11</td><td class="column-4">Slow burn with clean combat and God powers.</td>
</tr>
<tr class="row-8">
	<td class="column-1">Vampire Survivors</td><td class="column-2">98</td><td class="column-3">8</td><td class="column-4">The OG essential if you like Brotato.</td>
</tr>
<tr class="row-9">
	<td class="column-1">Yet Another Zombie Survivors</td><td class="column-2">75</td><td class="column-3">7</td><td class="column-4">Gunplay + squad tactics + endless hordes.</td>
</tr>
<tr class="row-10">
	<td class="column-1">Hades</td><td class="column-2">59</td><td class="column-3">7</td><td class="column-4">Slick combat, deep upgrades, strong story.</td>
</tr>
<tr class="row-11">
	<td class="column-1">Nordic Ashes</td><td class="column-2">58</td><td class="column-3">6</td><td class="column-4">Solid Brotato-like with Norse flair.</td>
</tr>
<tr class="row-12">
	<td class="column-1">Binding of Isaac</td><td class="column-2">56</td><td class="column-3">8</td><td class="column-4">Twin-stick chaos with endless synergies.</td>
</tr>
<tr class="row-13">
	<td class="column-1">Boneraiser Minions</td><td class="column-2">56</td><td class="column-3">8</td><td class="column-4">Brotato with minions and quirky charm.</td>
</tr>
<tr class="row-14">
	<td class="column-1">Slay the Spire</td><td class="column-2">50</td><td class="column-3">3</td><td class="column-4">Card-based power scaling and theorycrafting.</td>
</tr>
<tr class="row-15">
	<td class="column-1">Army of Ruin</td><td class="column-2">46</td><td class="column-3">4</td><td class="column-4">Shiny, fast-paced Vampire Survivors clone.</td>
</tr>
<tr class="row-16">
	<td class="column-1">Balatro</td><td class="column-2">44</td><td class="column-3">3</td><td class="column-4">Poker roguelike with insane synergy potential.</td>
</tr>
<tr class="row-17">
	<td class="column-1">Enter the Gungeon</td><td class="column-2">43</td><td class="column-3">5</td><td class="column-4">Skill-based twin-stick action with upgrades.</td>
</tr>
<tr class="row-18">
	<td class="column-1">Time Wasters</td><td class="column-2">40</td><td class="column-3">4</td><td class="column-4">Space-themed Brotato with bullet hell vibes.</td>
</tr>
<tr class="row-19">
	<td class="column-1">Kill the Crows</td><td class="column-2">39</td><td class="column-3">1</td><td class="column-4">Stylish shooter with slick, snappy pacing.</td>
</tr>
<tr class="row-20">
	<td class="column-1">SNKRX</td><td class="column-2">37</td><td class="column-3">8</td><td class="column-4">Minimalist autobattler with strong builds.</td>
</tr>
<tr class="row-21">
	<td class="column-1">NIMRODS</td><td class="column-2">36</td><td class="column-3">4</td><td class="column-4">Co-op dungeon crawler with Brotato DNA.</td>
</tr>
<tr class="row-22">
	<td class="column-1">Rogue: Genesia</td><td class="column-2">34</td><td class="column-3">7</td><td class="column-4">One of the closest Brotato matches.</td>
</tr>
<tr class="row-23">
	<td class="column-1">Tiny Rogues</td><td class="column-2">32</td><td class="column-3">8</td><td class="column-4">Pixel roguelike with RPG and build depth.</td>
</tr>
<tr class="row-24">
	<td class="column-1">FatalZone</td><td class="column-2">29</td><td class="column-3">1</td><td class="column-4">Tactical Brotato with squad upgrades.</td>
</tr>
<tr class="row-25">
	<td class="column-1">Beautiful Mystic Survivors</td><td class="column-2">29</td><td class="column-3">1</td><td class="column-4">Fanservice VS-clone with solid gameplay.</td>
</tr>
<tr class="row-26">
	<td class="column-1">Fellowship</td><td class="column-2">29</td><td class="column-3">1</td><td class="column-4">Auto battler with party-building strategy.</td>
</tr>
</tbody>
</table>
<!-- #tablepress-5 from cache --></p>



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



<h3 class="wp-block-heading">A Few Little Notes</h3>



<p class="wp-block-paragraph">The four games below all made the cut through one singular comment that had an overwhelming number of upvotes, either by itself or as part of a larger list with other games.</p>



<ul class="wp-block-list">
<li>Kill the Crows</li>



<li>FatalZone</li>



<li>Beautiful Mystic Survivors</li>



<li>Fellowship</li>
</ul>



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



<p class="wp-block-paragraph">Then there was Balatro, which, as some of you know, is not really like Brotato, but it’s a fan favorite. This suggestion was the sum of one large comment (38), plus two smaller suggestions (5+1).</p>



<h2 class="wp-block-heading">Top 10 Game Suggestions: Overviews and Discussion Notes</h2>



<p class="wp-block-paragraph">Let’s take a closer look at the top games like Brotato:&nbsp;</p>



<ol class="wp-block-list">
<li>Deep Rock Galactic: Survivor</li>



<li>God of Weapons</li>



<li>Halls of Torment</li>



<li>Soulstone Survivors</li>



<li>20 Minutes Till Dawn</li>



<li>Death Must Die</li>



<li>Vampire Survivors</li>



<li>Yet Another Zombie Survivors</li>



<li>Hades</li>



<li>Nordic Ashes</li>



<li>Honorable Mention &#8211; Binding of Isaac</li>
</ol>



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



<h3 class="wp-block-heading">1. Deep Rock Galactic: Survivor&nbsp;(235 Total Votes, 12 out of 15 Threads)</h3>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2025/09/Deep-Rock-Galactic-Survivor-Games-Like-Brotato-1024x576.jpg" alt="Gameplay screenshot from Deep Rock Galactic: Survivor showing a chaotic bullet heaven battle, with a heavily armed dwarf at the center unleashing green flame and explosive attacks against swarming alien enemies. The HUD displays weapons, health bar, mini-map, and score, showcasing the game’s top-down roguelike shooter mechanics similar to Brotato." class="wp-image-345" srcset="https://rogueranker.com/wp-content/uploads/2025/09/Deep-Rock-Galactic-Survivor-Games-Like-Brotato-1024x576.jpg 1024w, https://rogueranker.com/wp-content/uploads/2025/09/Deep-Rock-Galactic-Survivor-Games-Like-Brotato-300x169.jpg 300w, https://rogueranker.com/wp-content/uploads/2025/09/Deep-Rock-Galactic-Survivor-Games-Like-Brotato-768x432.jpg 768w, https://rogueranker.com/wp-content/uploads/2025/09/Deep-Rock-Galactic-Survivor-Games-Like-Brotato-1536x864.jpg 1536w, https://rogueranker.com/wp-content/uploads/2025/09/Deep-Rock-Galactic-Survivor-Games-Like-Brotato-2048x1152.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="has-text-align-center wp-block-paragraph">Image Source: <a href="https://store.steampowered.com/app/2321470/Deep_Rock_Galactic_Survivor/">Deep Rock Galactic: Survivor Steam</a></p>



<p class="wp-block-paragraph">This one came up a lot.&nbsp;</p>



<p class="wp-block-paragraph">Deep Rock Galactic: Survivor (DRG) was mentioned across 12 threads and almost always in the same breath as Brotato, either as an upgrade or as “Brotato with a pickaxe.”</p>



<p class="wp-block-paragraph">For starters, a core difference is the map. Instead of a close-quarters arena-style map, you’re actively mining your way through maze-like terrain.&nbsp;&nbsp;</p>



<p class="wp-block-paragraph">On top of that, the pacing is slower and runs can stretch into 45-minute sessions, whereas Brotato is ~25-30 minutes. As u/Unusual_Boot6839 says below, “There are unique skill trees, multiple characters, tons of weapons, satisfying level-ups, and a mid-wave shop.”</p>



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



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



<li>Xbox Game Pass, Series X/S, Xbox Cloud, Xbox on PC</li>
</ul>



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



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



<ul class="wp-block-list">
<li>Mining mechanics add unique spatial control and terrain interaction</li>



<li>Directional aiming rewards positioning more than in Brotato</li>



<li>Visuals and animation feel highly polished and weighty</li>



<li>Biome variety keeps exploration fresh</li>
</ul>



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



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



<ul class="wp-block-list">
<li>Slower pace with longer runs</li>



<li>Upgrade system feels underwhelming early on</li>



<li>Some weapons feel situational depending on the biome</li>



<li>No mouse aiming — a common adjustment issue for Brotato players</li>
</ul>



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



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



<p class="wp-block-paragraph">“Deep Rock Galactic: Survivor. Personally tied with Brotato for favorite in the genre. The guns have more oompf to them and you also get to mine mazes on each map.”<br>— <em>u/</em><a href="https://www.reddit.com/r/brotato/comments/1h8hlwj/any_other_games_like_this_except_vampire_survivors/"><em>godspark533</em></a>,</p>



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



<p class="wp-block-paragraph">“I love DRG survivor, its upgrade options aren&#8217;t as interesting as Brotato&#8217;s, but just like the original DRG, the unique mining mechanic adds a whole extra dimension of depth to the gameplay. It&#8217;s 4 different biomes are all pretty unique, with emphasis on various strategies and playstyles, and I really hope Brotato can get something similar with the DLC. But I don&#8217;t even know where you&#8217;d start with a new map, the classic box plus explorer and old already feel perfect for Brotato&#8217;s waves.”<br>— <em>u/</em><a href="https://www.reddit.com/r/brotato/comments/1el7vop/game_like_brotato/"><em>turmspitzewerk</em></a></p>



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



<p class="wp-block-paragraph">“Best new one is probably Deeprock Galactic Survivor, it&#8217;s still only in beta but is leagues ahead of the others (including brotato, imo) in terms of gameplay &amp; overall quality. You have to mine gems (rock &amp; stone!) while holding off hordes, with smaller maps you can dig through to escape the waves of monsters coming at you until you&#8217;re able to &#8220;dive&#8221; to a deeper level. The overarching goal is to reach the deepest level. There are unique skill trees, multiple characters, tons of weapons, satisfying level-ups, and a mid-wave shop&#8230;&#8230;. It&#8217;s amazing. If you have a PC.”<br>— <em>u/</em><a href="https://www.reddit.com/r/brotato/comments/1hqvbcg/games_like_brotato_for_someone_who_didnt_enjoy/"><em>Unusual_Boot6839</em></a></p>



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



<h3 class="wp-block-heading">2. God of Weapons (164 Total Votes, 12 out of 15 Threads)</h3>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2025/09/God-of-Weapons-Games-Like-Brotato-1024x576.jpg" alt="Gameplay screenshot from God of Weapons, a top-down roguelike action game featured in the Games Like Brotato list. A medieval knight wields an axe and sword while fighting off waves of cute but deadly enemies, surrounded by flame attacks and cartoonish dungeon visuals." class="wp-image-346" srcset="https://rogueranker.com/wp-content/uploads/2025/09/God-of-Weapons-Games-Like-Brotato-1024x576.jpg 1024w, https://rogueranker.com/wp-content/uploads/2025/09/God-of-Weapons-Games-Like-Brotato-300x169.jpg 300w, https://rogueranker.com/wp-content/uploads/2025/09/God-of-Weapons-Games-Like-Brotato-768x432.jpg 768w, https://rogueranker.com/wp-content/uploads/2025/09/God-of-Weapons-Games-Like-Brotato-1536x864.jpg 1536w, https://rogueranker.com/wp-content/uploads/2025/09/God-of-Weapons-Games-Like-Brotato.jpg 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="has-text-align-center wp-block-paragraph">Image Source: <a href="https://store.steampowered.com/app/2342950/God_Of_Weapons/">God of Weapons Steam</a></p>



<p class="wp-block-paragraph">God of Weapons is often described as Brotato’s more strategic cousin.&nbsp;</p>



<p class="wp-block-paragraph">It’s almost identical in game loop and stats, but with one big twist: backpack management, which is either a smart evolution or a slowdown, depending on who you ask.&nbsp;</p>



<p class="wp-block-paragraph">Most people seemed to like the inventory system, especially early on, but some felt it became a drag during later waves.&nbsp;</p>



<p class="wp-block-paragraph">What really sets it apart is that backpack grid. You’re not just collecting weapons and items, you’re <em>tetris-ing</em> them (yeah, that’s a word) into place to make the most of your build.</p>



<p class="wp-block-paragraph">That said, not everyone was sold.&nbsp;</p>



<p class="wp-block-paragraph">A few folks said the game lacked character variety or that the inventory system got repetitive after a while. Others wished the pacing and run variety were tighter.</p>



<p class="wp-block-paragraph">Still, if you’re looking for something familiar, God of Weapons kept popping up for a reason.</p>



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



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



<li>Xbox (Series X|S)</li>



<li>PS5</li>
</ul>



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



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



<ul class="wp-block-list">
<li>Satisfying inventory management adds a new layer of depth</li>



<li>Early game progression feels snappy and rewarding</li>



<li>Extremely similar stat system and loop to Brotato</li>



<li>Feels like a more deliberate version of Brotato</li>
</ul>



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



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



<ul class="wp-block-list">
<li>Lack of character variety <a href="https://rogueranker.com/roguelike-vs-roguelite/">compared to other roguelikes</a></li>



<li>Inventory system can become tedious in longer runs</li>



<li>Some felt it lacked replayability after a few sessions</li>



<li>Doesn’t evolve much after the early game</li>
</ul>



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



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



<p class="wp-block-paragraph">“God of Weapons uses almost the exact same game loop and stat system. The only difference is it adds backpack management.”<br>— <em>u/</em><a href="https://www.reddit.com/r/roguelites/comments/1lujfi5/games_better_than_brotato/"><em>Pastrami</em></a></p>



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



<p class="wp-block-paragraph">“God of weapons is basically brotato but 3d and with an inventory management system”<br>— u/<a href="https://www.reddit.com/r/brotato/comments/1hqvbcg/games_like_brotato_for_someone_who_didnt_enjoy/">Endangered_Potato</a></p>



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



<p class="wp-block-paragraph">“God of Weapons, most underrated game in the genre”<br>— u/<a href="https://www.reddit.com/r/brotato/comments/1gs62su/comment/lxc1q56/">jindred</a></p>



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



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="639" src="https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-God-of-Weapon-Reddit-Thread-Suggestion-1024x639.png" alt="Screenshot of a Reddit thread discussing God of Weapons as a hidden gem in the Games Like Brotato genre. Users compare it to Brotato and Backpack Hero, praising its fun mechanics, underrated status, and engaging gameplay despite lacking controller support." class="wp-image-347" style="width:620px;height:auto" srcset="https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-God-of-Weapon-Reddit-Thread-Suggestion-1024x639.png 1024w, https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-God-of-Weapon-Reddit-Thread-Suggestion-300x187.png 300w, https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-God-of-Weapon-Reddit-Thread-Suggestion-768x479.png 768w, https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-God-of-Weapon-Reddit-Thread-Suggestion-1536x959.png 1536w, https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-God-of-Weapon-Reddit-Thread-Suggestion-2048x1279.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">3. Halls of Torment (163 Total Votes, 11 out of 15 Threads)</h3>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="557" src="https://rogueranker.com/wp-content/uploads/2025/09/Halls-of-Torment-Games-Like-Brotato-1024x557.jpg" alt="Gameplay screenshot of Halls of Torment, a gothic-style action roguelite with bullet heaven elements, featured in the Games Like Brotato roundup. The screen is filled with enemies, spell effects, and loot drops as the player battles through a chaotic horde." class="wp-image-349" srcset="https://rogueranker.com/wp-content/uploads/2025/09/Halls-of-Torment-Games-Like-Brotato-1024x557.jpg 1024w, https://rogueranker.com/wp-content/uploads/2025/09/Halls-of-Torment-Games-Like-Brotato-300x163.jpg 300w, https://rogueranker.com/wp-content/uploads/2025/09/Halls-of-Torment-Games-Like-Brotato-768x418.jpg 768w, https://rogueranker.com/wp-content/uploads/2025/09/Halls-of-Torment-Games-Like-Brotato-1536x835.jpg 1536w, https://rogueranker.com/wp-content/uploads/2025/09/Halls-of-Torment-Games-Like-Brotato-2048x1114.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="has-text-align-center wp-block-paragraph">Image Source: <a href="https://store.steampowered.com/app/2218750/Halls_of_Torment/">Halls of Torment Steam</a></p>



<p class="wp-block-paragraph">Halls of Torment shows up pretty regularly in the Brotato crowd, and for good reason. It’s usually a game that scratches a similar itch, but with its own pace and atmosphere.&nbsp;</p>



<p class="wp-block-paragraph">Although it’s not an identical match to Brotato, Halls of Torment leans darker, slower, and more tactical. For many, it’s a solid alternative when they want something more than just “shoot all the things.”</p>



<p class="wp-block-paragraph">Folks suggest Halls of Torment for its boss abilities, sense of dread in the art style, and slower, deliberate runs. From what I read, it’s appreciated more for mood and combat variety than for speed or simplicity.</p>



<p class="wp-block-paragraph">As u/<a href="https://www.reddit.com/r/brotato/comments/1hqvbcg/games_like_brotato_for_someone_who_didnt_enjoy/">tysonwatermelon</a> said, “I&#8217;d include a warning to anyone trying it that HoT takes about an hour or two of gameplay until you start seeing actual progression. I won&#8217;t explain why to avoid spoilers, but in the beginning, it kind of drags and feels like nothing you do matters. It does. You just need to hang in there.”</p>



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



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



<li>Xbox</li>
</ul>



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



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



<ul class="wp-block-list">
<li>Strong boss mechanics with spikes of challenge rather than constant waves.&nbsp;</li>



<li>Slower pace: gives time to think, plan, and enjoy building instead of rushing.</li>



<li>D2‑style aesthetics and atmosphere (moody, grim, immersive).</li>
</ul>



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



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



<ul class="wp-block-list">
<li>Darker theme, and sometimes a steeper learning curve.</li>



<li>Runs are slower and more deliberate, which some find frustrating.</li>



<li>Art/style or tone may be off‑putting for those expecting something bright or simple.</li>
</ul>



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



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



<p class="wp-block-paragraph">“I’ve been playing Halls of Torment, it&#8217;s slower like VS (in fact, much slower), but it&#8217;s got cool boss abilities and D2 aesthetics.”<br>— <em>u/</em><a href="https://www.reddit.com/r/brotato/comments/1hqvbcg/games_like_brotato_for_someone_who_didnt_enjoy/"><em>ElitistJerk_</em></a></p>



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



<p class="wp-block-paragraph">“Halls or torment if you like Diablo.”<br>— u/<a href="https://www.reddit.com/r/brotato/comments/18o2o1z/games_similar_to_this/">Therion_Master</a></p>



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



<h3 class="wp-block-heading">4. Soulstone Survivors (153 Total Votes, 15 out of 15 Threads)</h3>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2025/09/Soulstone-Survivors-Games-Like-Brotato-1024x576.jpg" alt="Gameplay screenshot of Soulstone Survivors, a visually polished action roguelite with bullet heaven combat and progression mechanics, featured in the Games Like Brotato roundup. The player unleashes explosive attacks amidst waves of enemies and loot drops." class="wp-image-350" srcset="https://rogueranker.com/wp-content/uploads/2025/09/Soulstone-Survivors-Games-Like-Brotato-1024x576.jpg 1024w, https://rogueranker.com/wp-content/uploads/2025/09/Soulstone-Survivors-Games-Like-Brotato-300x169.jpg 300w, https://rogueranker.com/wp-content/uploads/2025/09/Soulstone-Survivors-Games-Like-Brotato-768x432.jpg 768w, https://rogueranker.com/wp-content/uploads/2025/09/Soulstone-Survivors-Games-Like-Brotato-1536x864.jpg 1536w, https://rogueranker.com/wp-content/uploads/2025/09/Soulstone-Survivors-Games-Like-Brotato.jpg 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="has-text-align-center wp-block-paragraph">Image Source: <a href="https://store.steampowered.com/app/2066020/Soulstone_Survivors/">Soulstone Survivors Steam</a></p>



<p class="wp-block-paragraph">Soulstone Survivors often gets brought up in the games like Brotato discussion as a “what if you wanted smoother scaling and less of a steep jump into chaos?” It shows up especially in threads where people are comparing Survivor‑likes or expanding beyond Brotato.</p>



<p class="wp-block-paragraph">From what I saw, players seem to agree that it captures what <a href="https://rogueranker.com/brotato-review/">we all love about Brotato</a>: builds, satisfying power growth, and strong visual clarity, especially early to mid‑game.&nbsp;</p>



<p class="wp-block-paragraph">That said, there are also notes that past a certain point, things can feel less fresh, and the chaos/survivor overlap becomes more obvious (for better or worse).</p>



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



<ul class="wp-block-list">
<li>Strong synergy system that rewards smart combinations of skills and items</li>



<li>Massive enemies being common place is unique to the genre and stands out</li>



<li>Good scaling in power over time; players say the ramp feels satisfying</li>



<li>Early to mid‑game pacing hits just right for many players</li>
</ul>



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



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



<ul class="wp-block-list">
<li>Late game can feel repetitive or overloaded; less novelty in long runs</li>



<li>Can feel more like Vampire Survivors (overwhelming numbers vs. tight control)</li>



<li>Chaos can descend into clutter, losing some of the clarity people like in Brotato`</li>



<li>Some upgrades or skill paths feel less impactful than others (diminishing returns)</li>
</ul>



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



<p class="wp-block-paragraph"><strong>Where to Play It</strong></p>



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



<li>PlayStation 5,&nbsp;</li>



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



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



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



<p class="wp-block-paragraph">“Soulstone Survivors is another ‘bullet heaven’ game that someone recommended. I tried out the demo and then immediately purchased it. Satisfying gameplay and synergies similar to Brotato, but feels more like Vampire Survivors as things get hectic.” — <em>u/</em><a href="https://www.reddit.com/r/brotato/comments/1h8hlwj/any_other_games_like_this_except_vampire_survivors/"><em>yParticle</em></a></p>



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



<p class="wp-block-paragraph">“I&#8217;ll also echo the support for Soulstone Survivors and Death Must Die, although between the two, I think Soulstone has a better gameplay loop and way more characters, but Death Must Die is good and has incredible pixel art.<br>— u/<a href="https://www.reddit.com/r/brotato/comments/1gs62su/similar_game_to_recommend/">smelltheglue</a></p>



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



<p class="wp-block-paragraph">“Soul stone survivors! Had the best graphics and fun Diablo-like gameplay.”<br>— u/<a href="https://www.reddit.com/r/brotato/comments/16tqdxt/other_favorite_games_like_brotato/">glenrage</a></p>



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



<h3 class="wp-block-heading">5. 20 Minutes Till Dawn (137 Total Votes, 12 out of 15 Threads)</h3>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="578" src="https://rogueranker.com/wp-content/uploads/2025/09/20-Minutes-Till-Dawn-Games-Like-Brotato-1024x578.jpg" alt="Gameplay screenshot of 20 Minutes Till Dawn, featuring a pixel-art protagonist surrounded by dense waves of monsters in a circular attack pattern. Showcased in the Games Like Brotato article for its roguelite survival and bullet heaven elements." class="wp-image-351" srcset="https://rogueranker.com/wp-content/uploads/2025/09/20-Minutes-Till-Dawn-Games-Like-Brotato-1024x578.jpg 1024w, https://rogueranker.com/wp-content/uploads/2025/09/20-Minutes-Till-Dawn-Games-Like-Brotato-300x169.jpg 300w, https://rogueranker.com/wp-content/uploads/2025/09/20-Minutes-Till-Dawn-Games-Like-Brotato-768x434.jpg 768w, https://rogueranker.com/wp-content/uploads/2025/09/20-Minutes-Till-Dawn-Games-Like-Brotato.jpg 1360w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="has-text-align-center wp-block-paragraph">Image Source: <a href="https://store.steampowered.com/app/1966900/20_Minutes_Till_Dawn/">20 Minutes Till Dawn Steam</a></p>



<p class="wp-block-paragraph">20 Minutes Till Dawn is one of the go‑to options when people want something faster and more immediate than Brotato, but still satisfying.&nbsp;</p>



<p class="wp-block-paragraph">It leans closer to “bullet heaven” or horde survival than wave‑based roguelites, with deep progression (less time to ramp, more moment‑to‑moment intensity).</p>



<p class="wp-block-paragraph">Many players say it hits quickly: you pick a character, jump into action, start getting upgrades, and by 20 minutes you&#8217;ve usually had a full taste of what it offers.&nbsp;</p>



<p class="wp-block-paragraph">The style (dark, pixelish, somewhat haunting) helps it feel distinct. But, that said, if you&#8217;re after deep meta progression or varied builds, there might be better options..</p>



<p class="wp-block-paragraph"><strong>Where to Play</strong></p>



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



<li>App (Android, Apple, Google Play)</li>
</ul>



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



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



<ul class="wp-block-list">
<li>Runs are generally shorter/more snap‑to‑action, so less downtime to jump in and play.</li>



<li>Strong first impression: similar vibes RE: tension, build variety, and satisfying waves.</li>



<li>Visuals &amp; mood are praised, even if it’s not exact in mechanics.</li>
</ul>



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



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



<ul class="wp-block-list">
<li>Some feel that build variety or late‑game progression is less satisfying.&nbsp;</li>



<li>Aesthetic or control preferences vary based on preferences.</li>



<li>Less long‑term investment or meta progression.</li>
</ul>



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



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



<p class="wp-block-paragraph">“20 Minutes TIL Dawn is a really fun indie survivors game. Big emphasis on synergies.”<br>— u/<a href="https://www.reddit.com/r/brotato/comments/1hqvbcg/games_like_brotato_for_someone_who_didnt_enjoy/">Infranaut-</a></p>



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



<p class="wp-block-paragraph">“20 Minutes Till Dawn is very much like Brotato, but with a dark, pixely, haunted‑forest aesthetic. Good music too.”<br>— u/<a href="https://www.reddit.com/r/brotato/comments/16tqdxt/other_favorite_games_like_brotato/">SprightlyCompanion</a></p>



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



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="350" src="https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-20-Minutes-Till-Dawn-Reddit-Thread-Suggestion-1024x350.png" alt="Reddit thread screenshot featuring users SprightlyCompanion and Tyraniboah89 discussing 20 Minutes Till Dawn. They describe it as similar to Brotato with a dark, pixelated, haunted-forest style and strong audio. One user notes it’s not as deep but still scratches the same itch. Used in the Games Like Brotato article to highlight community opinions." class="wp-image-352" style="width:729px;height:auto" srcset="https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-20-Minutes-Till-Dawn-Reddit-Thread-Suggestion-1024x350.png 1024w, https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-20-Minutes-Till-Dawn-Reddit-Thread-Suggestion-300x102.png 300w, https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-20-Minutes-Till-Dawn-Reddit-Thread-Suggestion-768x262.png 768w, https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-20-Minutes-Till-Dawn-Reddit-Thread-Suggestion-1536x525.png 1536w, https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-20-Minutes-Till-Dawn-Reddit-Thread-Suggestion.png 2014w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">6. Death Must Die (110 Total Votes, 11 out of 15 Threads)</h3>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2025/09/Death-Must-Die-Games-Like-Brotato-1024x576.jpg" alt="Gameplay screenshot of Death Must Die, showing a lone character in a dark, moody dungeon surrounded by hordes of green jelly-like enemies. Blood-red spinning blades swirl around the player character, creating a chaotic, intense combat scene. The UI at the bottom shows player health and skills, echoing Brotato’s horde survival mechanics. This image is featured in the Games Like Brotato article to illustrate similar gameplay styles." class="wp-image-353" srcset="https://rogueranker.com/wp-content/uploads/2025/09/Death-Must-Die-Games-Like-Brotato-1024x576.jpg 1024w, https://rogueranker.com/wp-content/uploads/2025/09/Death-Must-Die-Games-Like-Brotato-300x169.jpg 300w, https://rogueranker.com/wp-content/uploads/2025/09/Death-Must-Die-Games-Like-Brotato-768x432.jpg 768w, https://rogueranker.com/wp-content/uploads/2025/09/Death-Must-Die-Games-Like-Brotato-1536x864.jpg 1536w, https://rogueranker.com/wp-content/uploads/2025/09/Death-Must-Die-Games-Like-Brotato.jpg 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="has-text-align-center wp-block-paragraph">Image Source: <a href="https://store.steampowered.com/app/2334730/Death_Must_Die/">Death Must Die Steam</a></p>



<p class="wp-block-paragraph">Death Must Die often gets mentioned by people looking for something like Brotato, especially when they want more loot, more build choices, and a mix of VS-style chaos with RPG depth.</p>



<p class="wp-block-paragraph">Many say it combines core elements that Brotato players love (strong runs, upgrades, scaling) with deeper systems like gear, character-specific blessings, and more interactive combat, rather than just auto or passive damage.</p>



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



<ul class="wp-block-list">
<li>Blessings and gods provide build diversity and replay value.</li>



<li>Gear system adds meaningful choice over just stat upgrades.</li>



<li>More interactive combat: manual aiming, bosses with pattern learning, etc.</li>
</ul>



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



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



<ul class="wp-block-list">
<li>Some find the reward loops slower or more complex (more micromanagement).</li>



<li>Repetition in maps and spawn patterns can make later runs feel less fresh.</li>



<li>Aesthetic / UI isn’t as polished as some would have hoped.</li>
</ul>



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



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



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



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



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



<p class="wp-block-paragraph">“Death must die is a pretty good one, kinda like brotato mixed with Hades.”<br>— u/<a href="https://www.reddit.com/r/brotato/comments/1gs62su/similar_game_to_recommend/">Double_Reward3885</a></p>



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



<p class="wp-block-paragraph">“Death Must Die is a pretty fun &amp; unique take on the genre, it&#8217;s got a loot system that carries over into future rounds, which makes you exponentially more powerful, &amp; can be either big or contained just depending on how you play, no endless mode either so it&#8217;s always short &amp; clean”<br>— u/<a href="https://www.reddit.com/r/brotato/comments/1hqvbcg/games_like_brotato_for_someone_who_didnt_enjoy/">Unusual_Boot6839</a></p>



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



<p class="wp-block-paragraph">“I also enjoyed Death must Die. This game is a shameless rip off of Vampire survivor and Hades. But it takes the fun parts of those games and makes it work. The game is still in early access and needs more content and it lacks late round synergies (which is odd because that&#8217;s a core part of both games) so that makes it more difficult. It&#8217;s not a game where you&#8217;ll be able to stand in one place and obliterate the screen.”<br>— u/<a href="https://www.reddit.com/r/brotato/comments/1h8hlwj/any_other_games_like_this_except_vampire_survivors/">Circle_Breaker</a></p>



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



<h3 class="wp-block-heading">7. Vampire Survivors (98 Votes, 8 out of 15 Threads)</h3>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="640" src="https://rogueranker.com/wp-content/uploads/2025/09/Vampire-Survivors-Games-Like-Brotato-1024x640.jpg" alt="Screenshot of Vampire Survivors, showcasing a character surrounded by hundreds of black bats and blue gems in an open grassy field. The player is unleashing white arc-shaped attacks in all directions, highlighting the auto-attacking, survival-based gameplay. Damage numbers flood the screen as enemies close in. This chaotic bullet-heaven style moment visually mirrors the horde gameplay found in Brotato, making it a natural comparison. This image appears in the Games Like Brotato article." class="wp-image-354" srcset="https://rogueranker.com/wp-content/uploads/2025/09/Vampire-Survivors-Games-Like-Brotato-1024x640.jpg 1024w, https://rogueranker.com/wp-content/uploads/2025/09/Vampire-Survivors-Games-Like-Brotato-300x188.jpg 300w, https://rogueranker.com/wp-content/uploads/2025/09/Vampire-Survivors-Games-Like-Brotato-768x480.jpg 768w, https://rogueranker.com/wp-content/uploads/2025/09/Vampire-Survivors-Games-Like-Brotato.jpg 1280w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="has-text-align-center wp-block-paragraph">Image Source: <a href="https://store.steampowered.com/app/1794680/Vampire_Survivors/">Vampire Survivors Steam</a></p>



<p class="wp-block-paragraph">Vampire Survivors is the game that kicked off <a href="https://rogueranker.com/bullet-heaven-vs-bullet-hell/">the bullet heaven craze</a>, and naturally, it gets compared to Brotato constantly (for good reason, too).</p>



<p class="wp-block-paragraph">Where Brotato is short, punchy, and fast, Vampire Survivors leans more into longer runs, evolving stages, and meta-progression.</p>



<p class="wp-block-paragraph">If you liked Brotato’s mayhem but want a bit more exploration and advanced mechanics, Vampire Survivors is a must. As someone who has way too many hours in VS, one of my favorite parts is the weapon evolution system, which is where it differs from Brotato.</p>



<p class="wp-block-paragraph">That said, not everyone agrees. Some think VS feels too slow or lacks the tight combat of Brotato.</p>



<p class="wp-block-paragraph">&nbsp;But it’s still the gold standard: Deeply addicting, wildly influential, and full of content.</p>



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



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



<li>Mobile (Android and iOS)</li>



<li>PlayStation (PS4/PS5)</li>



<li>Xbox (Game Pass)</li>



<li>Nintendo Switch</li>
</ul>



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



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



<ul class="wp-block-list">
<li>Massive content depth with tons of characters, weapons, and evolutions</li>



<li>Addictive progression loop with meta progression upgrades</li>



<li>Maps that evolve over time and encourage movement</li>



<li>Highly replayable with endless build possibilities</li>
</ul>



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



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



<ul class="wp-block-list">
<li>Some players find the meta-progression grindy</li>



<li>Visual chaos can become overwhelming mid-run</li>



<li>Slower-paced compared to Brotato’s tight combat</li>



<li>Not everyone enjoys the movement-based combat style</li>
</ul>



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



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



<p class="wp-block-paragraph">“Brotato replaced my vampire survivors addiction.”<br>— u/<a href="https://www.reddit.com/r/brotato/comments/1c98ni1/have_any_games_ever_replaced_your_brotato/">Juicemania50</a></p>



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



<p class="wp-block-paragraph">“Vampire Survivors is very similar, but the map isn&#8217;t limited except in one level (more than one maybe?) that you unlock later after playing for a while. Great game though!”<br>— u/<a href="https://www.reddit.com/r/brotato/comments/1el7vop/game_like_brotato/">tes_chaussettes</a></p>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="704" src="https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-Vampire-Survivors-Reddit-Thread-Suggestion-1024x704.png" alt="Screenshot of a Reddit thread featuring a discussion comparing Vampire Survivors to Brotato. Multiple users debate similarities and differences, with some stating VS is grindier and less skill-based, while others argue it’s just as deep with similar mechanics. The comments reflect the mixed but thoughtful community sentiment around how Vampire Survivors scratches the same gameplay itch as Brotato, despite stylistic and mechanical differences. This image appears in the Games Like Brotato article." class="wp-image-357" style="width:661px;height:auto" srcset="https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-Vampire-Survivors-Reddit-Thread-Suggestion-1024x704.png 1024w, https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-Vampire-Survivors-Reddit-Thread-Suggestion-300x206.png 300w, https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-Vampire-Survivors-Reddit-Thread-Suggestion-768x528.png 768w, https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-Vampire-Survivors-Reddit-Thread-Suggestion-1536x1055.png 1536w, https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-Vampire-Survivors-Reddit-Thread-Suggestion.png 1988w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">8. Yet Another Zombie Survivors (75 Votes, 7 out of 15 Threads)</h3>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2025/09/Yet-Another-Zombie-Survivors-Games-Like-Brotato-1024x576.jpg" alt="Screenshot from Yet Another Zombie Survivors, showing two heavily armed characters surrounded by a massive horde of zombies on a blood-stained urban street. One character wields a red lightsaber-style weapon, while the other fires a heavy machine gun. Explosions and gore highlight the chaotic, top-down bullet-heaven gameplay style reminiscent of Brotato. This image is featured in the Games Like Brotato blog post." class="wp-image-360" srcset="https://rogueranker.com/wp-content/uploads/2025/09/Yet-Another-Zombie-Survivors-Games-Like-Brotato-1024x576.jpg 1024w, https://rogueranker.com/wp-content/uploads/2025/09/Yet-Another-Zombie-Survivors-Games-Like-Brotato-300x169.jpg 300w, https://rogueranker.com/wp-content/uploads/2025/09/Yet-Another-Zombie-Survivors-Games-Like-Brotato-768x432.jpg 768w, https://rogueranker.com/wp-content/uploads/2025/09/Yet-Another-Zombie-Survivors-Games-Like-Brotato-1536x864.jpg 1536w, https://rogueranker.com/wp-content/uploads/2025/09/Yet-Another-Zombie-Survivors-Games-Like-Brotato-2048x1152.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="has-text-align-center wp-block-paragraph">Image Source: <a href="https://store.steampowered.com/app/2163330/Yet_Another_Zombie_Survivors/">Yet Another Zombie Survivors Steam</a></p>



<p class="wp-block-paragraph">Yet Another Zombie Survivors takes Brotato’s fast-paced formula and tosses it into a gritty, zombie-infested setting, with some extra polish.</p>



<p class="wp-block-paragraph">Instead of playing as a single character, you build a squad of survivors, each with their own weapons and abilities. It leans more toward traditional twin-stick shooter territory (manually aim), and the vibes are more post-apocalyptic military than alien potato chaos.</p>



<p class="wp-block-paragraph">A few players said it scratched that same addictive loop as Brotato, at least for a while.&nbsp;</p>



<p class="wp-block-paragraph">But it doesn’t have quite the same roguelike chaos or depth in stats and variety. Some noted it’s fun for a few hours, but doesn’t pull you back the same way.</p>



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



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



<li>Xbox consoles (Xbox One, Xbox Series X|S)</li>
</ul>



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



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



<ul class="wp-block-list">
<li>Squad mechanics add a unique twist to the genre</li>



<li>Good entry point for players new to the genre</li>



<li>Familiar upgrade systems with fun synergies</li>



<li>Smooth combat and solid presentation</li>
</ul>



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



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



<ul class="wp-block-list">
<li>Early game grind can feel repetitive</li>



<li>Some found it lacks long-term replayability</li>



<li>Art style and theme feel a bit bland to some</li>



<li>Manual aiming changes the feel vs. auto-attack</li>
</ul>



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



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



<p class="wp-block-paragraph">“Yet Another Zombie Survivors gameplay is really close to Brotato, and really fun for a few hours. But it does not drag the player again and again as Brotato.”<br>— u/<a href="https://www.reddit.com/r/brotato/comments/17of4fr/games_like_brotato/">lvb440</a></p>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="359" src="https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-Yet-Another-Zombie-Survivors-Reddit-Thread-Suggestion-1024x359.png" alt="Screenshot of a Reddit thread discussing Yet Another Zombie Survivors in comparison to Brotato. The top comment by user lvb440 says the gameplay is very close to Brotato and fun for a few hours, but lacks replayability. A reply by user TappedIn2111 agrees, noting that the &quot;realistic&quot; art style, graphics, and sound are nice, but the game feels grindy and lacks gameplay improvements over time." class="wp-image-361" style="width:656px;height:auto" srcset="https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-Yet-Another-Zombie-Survivors-Reddit-Thread-Suggestion-1024x359.png 1024w, https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-Yet-Another-Zombie-Survivors-Reddit-Thread-Suggestion-300x105.png 300w, https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-Yet-Another-Zombie-Survivors-Reddit-Thread-Suggestion-768x269.png 768w, https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-Yet-Another-Zombie-Survivors-Reddit-Thread-Suggestion-1536x538.png 1536w, https://rogueranker.com/wp-content/uploads/2025/09/Games-Like-Brotato-Yet-Another-Zombie-Survivors-Reddit-Thread-Suggestion.png 1998w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">9. Hades (59 Votes, 7 out of 15 Threads)</h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2025/09/Hades-Games-Like-Brotato-1024x576.jpg" alt="A fiery combat scene from Hades, featuring a stylized top-down view of a circular arena with skeletal decorations and molten lava surrounding the edges. The player character dashes through a burst of flames and explosion effects while fighting a glowing enemy in the upper right corner. The UI on the left shows various equipped boons and abilities, and the health bar indicates the player is at 45/75 HP." class="wp-image-362" srcset="https://rogueranker.com/wp-content/uploads/2025/09/Hades-Games-Like-Brotato-1024x576.jpg 1024w, https://rogueranker.com/wp-content/uploads/2025/09/Hades-Games-Like-Brotato-300x169.jpg 300w, https://rogueranker.com/wp-content/uploads/2025/09/Hades-Games-Like-Brotato-768x432.jpg 768w, https://rogueranker.com/wp-content/uploads/2025/09/Hades-Games-Like-Brotato-1536x864.jpg 1536w, https://rogueranker.com/wp-content/uploads/2025/09/Hades-Games-Like-Brotato.jpg 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="has-text-align-center wp-block-paragraph">Image Source: <a href="https://store.steampowered.com/app/1145360/Hades/">Hades Steam</a></p>



<p class="wp-block-paragraph">Hades isn’t a bullet heaven, but if you’re into stat-stacking, tight progression, and fast-paced runs, it’s worth checking out. IMO, it&#8217;s one of the <a href="https://rogueranker.com/best-bullet-hell-games/">best bullet hell games</a>.</p>



<p class="wp-block-paragraph">It trades auto-attacks for more precision and timing, but keeps that roguelike itch alive with smooth combat, endless build paths, and a story that somehow actually works.</p>



<p class="wp-block-paragraph">Most runs clock in around 30 minutes, and even if it leans more into dodging and skill over chaotic scaling, it still feels fair and satisfying.</p>



<p class="wp-block-paragraph">If you haven’t tried it yet, don’t be surprised when someone calls it the <a href="https://rogueranker.com/best-roguelike-games/">best roguelike</a> they’ve ever played.</p>



<p class="wp-block-paragraph">It’s also worth noting that, from what I read in Reddit threads, many did not specify if they were referring to Hades 1 or 2. I mentioned this earlier in the article, but wanted to bring it top of mind once more.</p>



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



<ul class="wp-block-list">
<li>PlayStation (PS4, PS5)</li>



<li>Xbox (One, Series X/S)</li>



<li>Nintendo Switch</li>



<li>PC (Windows, Mac), and on iOS</li>
</ul>



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



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



<ul class="wp-block-list">
<li>Runs rarely exceed 30 minutes</li>



<li>Razor-sharp controls and combat pacing</li>



<li>Narrative progression rewards repeat play</li>



<li>Build diversity via boons and weapon aspects</li>
</ul>



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



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



<ul class="wp-block-list">
<li>Not as number-focused as <a href="https://rogueranker.com/best-bullet-heaven-games/">bullet heaven games</a></li>



<li>More mechanically demanding than Brotato</li>



<li>The focus on the story isn’t for everyone</li>
</ul>



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



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



<p class="wp-block-paragraph">“I find Hades to be a little similar besides the story elements.”<br>— u/<a href="https://www.reddit.com/r/brotato/comments/1gs62su/similar_game_to_recommend/">Coheedo</a></p>



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



<p class="wp-block-paragraph">“Hades &#8211; I strongly recommend those two. Hades is imho the best roguelite”<br>— u/<a href="https://www.reddit.com/r/brotato/comments/16tqdxt/other_favorite_games_like_brotato/">Sqr121</a></p>



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



<p class="wp-block-paragraph">“If you&#8217;re looking for a similar style play (picking perks, etc.) but open to a more room based progression instead of waves, then Hades (1&amp;2)”<br>— u/<a href="https://www.reddit.com/r/ShouldIbuythisgame/comments/1mmf3z6/brotatolike_games/">Kbknapp</a></p>



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



<h3 class="wp-block-heading">10. Nordic Ashes (58 Total Votes, 6 out of 15 Threads)</h3>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2025/09/Nordic-Ashes-Games-Like-Brotato-1024x576.jpg" alt="A chaotic top-down battle scene from Nordic Ashes, featuring a Viking-themed hero surrounded by swarms of flying enemies and large stone golems marked as &quot;Immune.&quot; Lightning axes arc across the battlefield, striking enemies amid damage numbers and status effects like &quot;Paralyzed&quot; and &quot;Cursed.&quot; The snowy, rune-covered terrain is dotted with icy crystals and bones, with a circular minimap in the top right and various character stats shown on the left HUD." class="wp-image-363" srcset="https://rogueranker.com/wp-content/uploads/2025/09/Nordic-Ashes-Games-Like-Brotato-1024x576.jpg 1024w, https://rogueranker.com/wp-content/uploads/2025/09/Nordic-Ashes-Games-Like-Brotato-300x169.jpg 300w, https://rogueranker.com/wp-content/uploads/2025/09/Nordic-Ashes-Games-Like-Brotato-768x432.jpg 768w, https://rogueranker.com/wp-content/uploads/2025/09/Nordic-Ashes-Games-Like-Brotato-1536x864.jpg 1536w, https://rogueranker.com/wp-content/uploads/2025/09/Nordic-Ashes-Games-Like-Brotato.jpg 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="has-text-align-center wp-block-paragraph">Image Source: <a href="https://store.steampowered.com/app/2068280/Nordic_Ashes_Survivors_of_Ragnarok/">Nordic Ashes Steam</a></p>



<p class="wp-block-paragraph">Nordic Ashes is often brought up alongside Brotato and Vampire Survivors, especially by players who lean into more tactical builds and character progression.&nbsp;</p>



<p class="wp-block-paragraph">Many say it plays somewhere in the middle: Not as fast as Brotato, not as idle-feeling as Vampire Survivors.&nbsp;</p>



<p class="wp-block-paragraph">With that, the skill trees and branching paths give you more agency over your run, which appeals to people who like to think through their builds a bit more.</p>



<p class="wp-block-paragraph">Some players said it started a bit slow or felt a little stiff at first, but grew on them as they unlocked new characters and saw how different each run could feel. It’s also one of the more polished games in the genre, both visually and mechanically.</p>



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



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



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



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



<ul class="wp-block-list">
<li>Branching skill trees for more tactical build choices</li>



<li>Satisfying character progression and unlock system</li>



<li>Beautiful and clean art style with dark, mythic themes</li>



<li>More thoughtful pacing than many other bullet heavens</li>
</ul>



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



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



<ul class="wp-block-list">
<li>Not as replayable for those who want fast chaos every run</li>



<li>Slower early-game pacing may feel grindy to some</li>



<li>Meta-progression takes a while to feel meaningful</li>



<li>Some players found the controls a bit rigid</li>
</ul>



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



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



<p class="wp-block-paragraph">“Nordic ashes is kinda similar, but more level structured”<br>— u/<a href="https://www.reddit.com/r/roguelites/comments/1jynuv7/looking_for_recommendations_similar_to_brotato/">Aireituomen_5561</a></p>



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



<h3 class="wp-block-heading">Honorable Mention: The Binding of Isaac (58 Total Votes, 6 out of 15 Threads)</h3>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="640" height="489" src="https://rogueranker.com/wp-content/uploads/2025/09/The-Binding-of-Isaac-Games-Like-Brotato.jpg" alt="A pixel-art dungeon room from The Binding of Isaac shows the main character dodging red-eyed enemies in a small, blood-stained, enclosed chamber labeled “Basement 2.” The UI at the top displays items, keys, bombs, and health hearts. Several rocks scatter the floor, blocking movement, while Isaac’s projectile tear attacks aim at enemies." class="wp-image-364" srcset="https://rogueranker.com/wp-content/uploads/2025/09/The-Binding-of-Isaac-Games-Like-Brotato.jpg 640w, https://rogueranker.com/wp-content/uploads/2025/09/The-Binding-of-Isaac-Games-Like-Brotato-300x229.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></figure>



<p class="has-text-align-center wp-block-paragraph">Image Source: <a href="https://store.steampowered.com/app/113200/The_Binding_of_Isaac/">The Binding of Isaac Steam</a></p>



<p class="wp-block-paragraph">I had to throw in The Binding of Isaac as an honorable mention (rank 11) because it’s such a fan favorite. Like Hades, few people referenced their vote in regards to the original game or Rebirth, so I took an overall vote here.</p>



<p class="wp-block-paragraph">It trades Brotato’s top‑down arena setup for rooms and floors, bosses, and secrets. Runs are less about wave‑clearing and more about exploring, reacting, and adapting.</p>



<p class="wp-block-paragraph">Many folks say that once you’ve unlocked enough, Isaac’s replay value, character variety, and sheer amount of content give you way more to chew on.</p>



<p class="wp-block-paragraph">On the flip side, it’s harder to jump in, especially at first. The learning curve is steeper, and some of the randomness can feel punishing.&nbsp;</p>



<p class="wp-block-paragraph">But that said, for players who love builds, chaos, loot, and variety, The Binding of Isaac is similar to Vampire Survivors in that this article wouldn’t be complete without it..</p>



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



<ul class="wp-block-list">
<li>PC (Windows, macOS, Linux)</li>



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



<li>PlayStation 4, PlayStation 5</li>



<li>Nintendo Switch</li>
</ul>



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



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



<ul class="wp-block-list">
<li>Huge item/character variety gives tons of synergies to discover</li>



<li>Rich atmosphere and art style that make each run feel different</li>



<li>Room‑by‑room pacing keeps things interesting and unpredictable</li>



<li>Lots of replay value thanks to secrets, unlocks, and challenge modes</li>
</ul>



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



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



<ul class="wp-block-list">
<li>Less forgiving than Brotato (if a run goes wrong, it can feel brutal)</li>



<li>Steep learning curve and harsh randomness can turn off newer players</li>



<li>Some items or synergies may feel overly luck‑based rather than skill‑based</li>



<li>Performance or UI quirks can be jarring for players used to Brotato’s clean feedback</li>
</ul>



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



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



<p class="wp-block-paragraph">“The binding of isaac. I have 480 hours and cannot seem to stop.”<br>— u/<a href="https://www.reddit.com/r/brotato/comments/1c98ni1/have_any_games_ever_replaced_your_brotato/">TwireonEnix</a></p>



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



<p class="wp-block-paragraph">“Binding of Isaac &lt;3”<br>— u/<a href="https://www.reddit.com/r/brotato/comments/1c98ni1/have_any_games_ever_replaced_your_brotato/">Lt_BAD-DOG</a></p>



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



<p class="wp-block-paragraph">“The Binding of Isaac is by far the best game similar to this genre ever made. There’s no close second.”<br>— u/<a href="https://www.reddit.com/r/brotato/comments/1h8hlwj/any_other_games_like_this_except_vampire_survivors/">shittyballsacks</a></p>



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



<p class="wp-block-paragraph">On a side note, S/O to shittyballsacks for a great quote and even better username.</p>



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



<p class="wp-block-paragraph">Now that we discussed the top five games in detail, let’s switch gears.&nbsp;</p>



<p class="wp-block-paragraph">Below is the complete summary, but you can also snag a <a href="https://docs.google.com/spreadsheets/d/1J4_sDPT7TqcnkmLCJ8pZ7fycP4BmKZvnQvVdQRWgWpA/edit?usp=sharing">copy of the spreadsheet here</a>.&nbsp;</p>



<p class="wp-block-paragraph">Feel free to go to File → Make a Copy and do with the data as you please.</p>



<p class="wp-block-paragraph">Data collected September 10th, 2025.</p>



<p class="wp-block-paragraph">
<table id="tablepress-6" class="tablepress tablepress-id-6">
<thead>
<tr class="row-1">
	<th class="column-1">Game</th><th class="column-2">Total Votes</th><th class="column-3">Unique Votes</th><th class="column-4">Gross Revenue</th><th class="column-5">Units Sold</th><th class="column-6">Avg Cost</th><th class="column-7">Median Playtime</th>
</tr>
</thead>
<tbody class="row-striping row-hover">
<tr class="row-2">
	<td class="column-1">Deep Rock Galactic: Survivor</td><td class="column-2">235</td><td class="column-3">12</td><td class="column-4">$8,600,000</td><td class="column-5">1,100,000</td><td class="column-6">$8</td><td class="column-7">11.6</td>
</tr>
<tr class="row-3">
	<td class="column-1">God of Weapons</td><td class="column-2">164</td><td class="column-3">12</td><td class="column-4">$630,000</td><td class="column-5">144,000</td><td class="column-6">$4</td><td class="column-7">8.2</td>
</tr>
<tr class="row-4">
	<td class="column-1">Halls of Torment</td><td class="column-2">163</td><td class="column-3">11</td><td class="column-4">$3,300,000</td><td class="column-5">887,000</td><td class="column-6">$4</td><td class="column-7">12</td>
</tr>
<tr class="row-5">
	<td class="column-1">Soulstone Survivors</td><td class="column-2">153</td><td class="column-3">15</td><td class="column-4">$5,600,000</td><td class="column-5">723,000</td><td class="column-6">$8</td><td class="column-7">19</td>
</tr>
<tr class="row-6">
	<td class="column-1">20 Minutes Till Dawn</td><td class="column-2">137</td><td class="column-3">12</td><td class="column-4">$2,500,000</td><td class="column-5">840,000</td><td class="column-6">$3</td><td class="column-7">6.9</td>
</tr>
<tr class="row-7">
	<td class="column-1">Death Must Die</td><td class="column-2">110</td><td class="column-3">11</td><td class="column-4">$3,300,000</td><td class="column-5">621,000</td><td class="column-6">$5</td><td class="column-7">10.6</td>
</tr>
<tr class="row-8">
	<td class="column-1">Vampire Survivors</td><td class="column-2">98</td><td class="column-3">8</td><td class="column-4">$22,800,000</td><td class="column-5">7,600,000</td><td class="column-6">$3</td><td class="column-7">18.5</td>
</tr>
<tr class="row-9">
	<td class="column-1">Yet Another Zombie Survivors</td><td class="column-2">75</td><td class="column-3">7</td><td class="column-4">$2,500,000</td><td class="column-5">351,000</td><td class="column-6">$7</td><td class="column-7">10.5</td>
</tr>
<tr class="row-10">
	<td class="column-1">Hades</td><td class="column-2">59</td><td class="column-3">7</td><td class="column-4">$144,500,000</td><td class="column-5">8,500,000</td><td class="column-6">$17</td><td class="column-7">16.8</td>
</tr>
<tr class="row-11">
	<td class="column-1">Nordic Ashes</td><td class="column-2">58</td><td class="column-3">6</td><td class="column-4">$829,000</td><td class="column-5">181,000</td><td class="column-6">$5</td><td class="column-7">10.6</td>
</tr>
<tr class="row-12">
	<td class="column-1">Binding of Isaac</td><td class="column-2">56</td><td class="column-3">8</td><td class="column-4">$27,900,000</td><td class="column-5">8,500,000</td><td class="column-6">$3</td><td class="column-7">4.5</td>
</tr>
<tr class="row-13">
	<td class="column-1">Boneraiser Minions</td><td class="column-2">56</td><td class="column-3">8</td><td class="column-4">$494,000</td><td class="column-5">155,000</td><td class="column-6">$3</td><td class="column-7">5.8</td>
</tr>
<tr class="row-14">
	<td class="column-1">Slay the Spire</td><td class="column-2">50</td><td class="column-3">3</td><td class="column-4">$49,800,000</td><td class="column-5">3,400,000</td><td class="column-6">$15</td><td class="column-7">27.3</td>
</tr>
<tr class="row-15">
	<td class="column-1">Army of Ruin</td><td class="column-2">46</td><td class="column-3">4</td><td class="column-4">$381,000</td><td class="column-5">75,930</td><td class="column-6">$5</td><td class="column-7">6.7</td>
</tr>
<tr class="row-16">
	<td class="column-1">Balatro</td><td class="column-2">44</td><td class="column-3">3</td><td class="column-4">$57,900,000</td><td class="column-5">5,000,000</td><td class="column-6">$12</td><td class="column-7">18.6</td>
</tr>
<tr class="row-17">
	<td class="column-1">Enter the Gungeon</td><td class="column-2">43</td><td class="column-3">5</td><td class="column-4">$38,600,000</td><td class="column-5">4,000,000</td><td class="column-6">$10</td><td class="column-7">6.2</td>
</tr>
<tr class="row-18">
	<td class="column-1">Time Wasters</td><td class="column-2">40</td><td class="column-3">4</td><td class="column-4">$228,000</td><td class="column-5">76,020</td><td class="column-6">$3</td><td class="column-7">10.3</td>
</tr>
<tr class="row-19">
	<td class="column-1">Kill the Crows</td><td class="column-2">39</td><td class="column-3">1</td><td class="column-4">$264,000</td><td class="column-5">73,800</td><td class="column-6">$4</td><td class="column-7">1.7</td>
</tr>
<tr class="row-20">
	<td class="column-1">SNKRX</td><td class="column-2">37</td><td class="column-3">8</td><td class="column-4">$265,000</td><td class="column-5">128,000</td><td class="column-6">$2</td><td class="column-7">4</td>
</tr>
<tr class="row-21">
	<td class="column-1">NIMRODS</td><td class="column-2">36</td><td class="column-3">4</td><td class="column-4">$336,000</td><td class="column-5">44,610</td><td class="column-6">$8</td><td class="column-7">8.1</td>
</tr>
<tr class="row-22">
	<td class="column-1">Rogue: Genesia</td><td class="column-2">34</td><td class="column-3">7</td><td class="column-4">$1,200,000</td><td class="column-5">233,000</td><td class="column-6">$5</td><td class="column-7">14.2</td>
</tr>
<tr class="row-23">
	<td class="column-1">Tiny Rogues</td><td class="column-2">32</td><td class="column-3">8</td><td class="column-4">$1,900,000</td><td class="column-5">301,000</td><td class="column-6">$6</td><td class="column-7">12.2</td>
</tr>
<tr class="row-24">
	<td class="column-1">Beautiful Mystic Survivors</td><td class="column-2">29</td><td class="column-3">1</td><td class="column-4">$137,000</td><td class="column-5">36,330</td><td class="column-6">$4</td><td class="column-7">7.9</td>
</tr>
<tr class="row-25">
	<td class="column-1">FatalZone</td><td class="column-2">29</td><td class="column-3">1</td><td class="column-4">$263,000</td><td class="column-5">67,410</td><td class="column-6">$4</td><td class="column-7">7</td>
</tr>
<tr class="row-26">
	<td class="column-1">Fellowship</td><td class="column-2">29</td><td class="column-3">1</td><td class="column-4">$2,609</td><td class="column-5">540</td><td class="column-6">$5</td><td class="column-7"></td>
</tr>
<tr class="row-27">
	<td class="column-1">Bio-prototype</td><td class="column-2">27</td><td class="column-3">5</td><td class="column-4">$227,290</td><td class="column-5">104,580</td><td class="column-6">$2</td><td class="column-7">0.8</td>
</tr>
<tr class="row-28">
	<td class="column-1">Noobs Are Coming</td><td class="column-2">23</td><td class="column-3">5</td><td class="column-4">$69,562</td><td class="column-5">14,280</td><td class="column-6">$5</td><td class="column-7">5</td>
</tr>
<tr class="row-29">
	<td class="column-1">Holocure</td><td class="column-2">22</td><td class="column-3">6</td><td class="column-4"></td><td class="column-5">1,200,000</td><td class="column-6">$0</td><td class="column-7">7.8</td>
</tr>
<tr class="row-30">
	<td class="column-1">Jotunnslayer: Hordes of Hel</td><td class="column-2">21</td><td class="column-3">1</td><td class="column-4">$1,200,000</td><td class="column-5">152,000</td><td class="column-6">$8</td><td class="column-7">4.8</td>
</tr>
<tr class="row-31">
	<td class="column-1">Dead Cells</td><td class="column-2">20</td><td class="column-3">5</td><td class="column-4">$38,500,000</td><td class="column-5">2,500,000</td><td class="column-6">$15</td><td class="column-7">15</td>
</tr>
<tr class="row-32">
	<td class="column-1">Pickle Pete</td><td class="column-2">20</td><td class="column-3">8</td><td class="column-4"></td><td class="column-5"></td><td class="column-6"></td><td class="column-7"></td>
</tr>
<tr class="row-33">
	<td class="column-1">Achilles Survivor</td><td class="column-2">19</td><td class="column-3">1</td><td class="column-4">$126,000</td><td class="column-5">27,960</td><td class="column-6">$5</td><td class="column-7">5.1</td>
</tr>
<tr class="row-34">
	<td class="column-1">Be My Horde</td><td class="column-2">19</td><td class="column-3">1</td><td class="column-4">$164,000</td><td class="column-5">44,040</td><td class="column-6">$4</td><td class="column-7">4.5</td>
</tr>
<tr class="row-35">
	<td class="column-1">Conquest Dark</td><td class="column-2">19</td><td class="column-3">1</td><td class="column-4">$457,000</td><td class="column-5">60,300</td><td class="column-6">$8</td><td class="column-7">8.8</td>
</tr>
<tr class="row-36">
	<td class="column-1">Synthetik Legion Rising</td><td class="column-2">19</td><td class="column-3">1</td><td class="column-4">$3,100,000</td><td class="column-5">245,000</td><td class="column-6">$13</td><td class="column-7">5.3</td>
</tr>
<tr class="row-37">
	<td class="column-1">Magic Survival</td><td class="column-2">18</td><td class="column-3">4</td><td class="column-4"></td><td class="column-5"></td><td class="column-6"></td><td class="column-7"></td>
</tr>
<tr class="row-38">
	<td class="column-1">Nova Drift</td><td class="column-2">17</td><td class="column-3">6</td><td class="column-4">$3,500,000</td><td class="column-5">334,000</td><td class="column-6">$10</td><td class="column-7">6.7</td>
</tr>
<tr class="row-39">
	<td class="column-1">Bounty of One</td><td class="column-2">15</td><td class="column-3">5</td><td class="column-4">$368,000</td><td class="column-5">86,190</td><td class="column-6">$4</td><td class="column-7">7.1</td>
</tr>
<tr class="row-40">
	<td class="column-1">Noita</td><td class="column-2">15</td><td class="column-3">2</td><td class="column-4">$32,700,000</td><td class="column-5">2,400,000</td><td class="column-6">$14</td><td class="column-7">5.1</td>
</tr>
<tr class="row-41">
	<td class="column-1">Monster Train</td><td class="column-2">13</td><td class="column-3">1</td><td class="column-4">$11,100,000</td><td class="column-5">664,000</td><td class="column-6">$17</td><td class="column-7">12.1</td>
</tr>
<tr class="row-42">
	<td class="column-1">Exit the Gungeon</td><td class="column-2">12</td><td class="column-3">1</td><td class="column-4">$751,000</td><td class="column-5">108,000</td><td class="column-6">$7</td><td class="column-7">1.3</td>
</tr>
<tr class="row-43">
	<td class="column-1">Genome Guardian</td><td class="column-2">12</td><td class="column-3">1</td><td class="column-4">$162,000</td><td class="column-5">21,270</td><td class="column-6">$8</td><td class="column-7">2.9</td>
</tr>
<tr class="row-44">
	<td class="column-1">Geometry Arena</td><td class="column-2">12</td><td class="column-3">1</td><td class="column-4">$241,000</td><td class="column-5">71,700</td><td class="column-6">$3</td><td class="column-7">6.3</td>
</tr>
<tr class="row-45">
	<td class="column-1">Backpack Battles</td><td class="column-2">11</td><td class="column-3">1</td><td class="column-4">$5,100,000</td><td class="column-5">517,000</td><td class="column-6">$10</td><td class="column-7">12.8</td>
</tr>
<tr class="row-46">
	<td class="column-1">Celeste</td><td class="column-2">11</td><td class="column-3">1</td><td class="column-4">$27,500,000</td><td class="column-5">2,200,000</td><td class="column-6">$13</td><td class="column-7">5.3</td>
</tr>
<tr class="row-47">
	<td class="column-1">Cobalt Core</td><td class="column-2">11</td><td class="column-3">1</td><td class="column-4">$1,600,000</td><td class="column-5">112,000</td><td class="column-6">$14</td><td class="column-7">8.5</td>
</tr>
<tr class="row-48">
	<td class="column-1">Crimsonland</td><td class="column-2">11</td><td class="column-3">5</td><td class="column-4">$1,500,000</td><td class="column-5">168,000</td><td class="column-6">$9</td><td class="column-7">6.5</td>
</tr>
<tr class="row-49">
	<td class="column-1">Dorfromantik</td><td class="column-2">11</td><td class="column-3">1</td><td class="column-4">$6,900,000</td><td class="column-5">841,000</td><td class="column-6">$8</td><td class="column-7">3.1</td>
</tr>
<tr class="row-50">
	<td class="column-1">Tetris Effect</td><td class="column-2">11</td><td class="column-3">1</td><td class="column-4">$6,300,000</td><td class="column-5">246,000</td><td class="column-6">$26</td><td class="column-7">4.7</td>
</tr>
<tr class="row-51">
	<td class="column-1">Karate Survivor</td><td class="column-2">8</td><td class="column-3">3</td><td class="column-4">$296,000</td><td class="column-5">84,480</td><td class="column-6">$4</td><td class="column-7">4.9</td>
</tr>
<tr class="row-52">
	<td class="column-1">Crab Champions</td><td class="column-2">7</td><td class="column-3">1</td><td class="column-4">$6,200,000</td><td class="column-5">833,000</td><td class="column-6">$7</td><td class="column-7">10</td>
</tr>
<tr class="row-53">
	<td class="column-1">Apocalypse Party</td><td class="column-2">6</td><td class="column-3">2</td><td class="column-4">$100,000</td><td class="column-5">157,000</td><td class="column-6">$1</td><td class="column-7">11.3</td>
</tr>
<tr class="row-54">
	<td class="column-1">Disfigure</td><td class="column-2">6</td><td class="column-3">4</td><td class="column-4">$148,000</td><td class="column-5">148,000</td><td class="column-6">$1</td><td class="column-7">2</td>
</tr>
<tr class="row-55">
	<td class="column-1">Heroes of Hammerwatch</td><td class="column-2">6</td><td class="column-3">2</td><td class="column-4">$4,800,000</td><td class="column-5">563,000</td><td class="column-6">$9</td><td class="column-7">10.6</td>
</tr>
<tr class="row-56">
	<td class="column-1">Knight Overloaded</td><td class="column-2">6</td><td class="column-3">1</td><td class="column-4">$4,421</td><td class="column-5">4,590</td><td class="column-6">$1</td><td class="column-7"></td>
</tr>
<tr class="row-57">
	<td class="column-1">Survivor.io</td><td class="column-2">6</td><td class="column-3">3</td><td class="column-4"></td><td class="column-5"></td><td class="column-6"></td><td class="column-7"></td>
</tr>
<tr class="row-58">
	<td class="column-1">Twilight Survivors</td><td class="column-2">6</td><td class="column-3">3</td><td class="column-4">$60,384</td><td class="column-5">28,860</td><td class="column-6">$2</td><td class="column-7">5.9</td>
</tr>
<tr class="row-59">
	<td class="column-1">Vampire Hunters</td><td class="column-2">5</td><td class="column-3">1</td><td class="column-4">$464,000</td><td class="column-5">51,090</td><td class="column-6">$9</td><td class="column-7">6.1</td>
</tr>
<tr class="row-60">
	<td class="column-1">BloodDome Classic</td><td class="column-2">4</td><td class="column-3">1</td><td class="column-4"></td><td class="column-5">2,310</td><td class="column-6">$0</td><td class="column-7"></td>
</tr>
<tr class="row-61">
	<td class="column-1">FTL: Faster Than Light</td><td class="column-2">4</td><td class="column-3">1</td><td class="column-4">$23,100,000</td><td class="column-5">3,800,000</td><td class="column-6">$6</td><td class="column-7">10.2</td>
</tr>
<tr class="row-62">
	<td class="column-1">Nuclear Throne</td><td class="column-2">4</td><td class="column-3">1</td><td class="column-4">$6,700,000</td><td class="column-5">702,000</td><td class="column-6">$10</td><td class="column-7">5.3</td>
</tr>
<tr class="row-63">
	<td class="column-1">The Spell Brigade</td><td class="column-2">4</td><td class="column-3">2</td><td class="column-4">$2,200,000</td><td class="column-5">299,000</td><td class="column-6">$7</td><td class="column-7">12.1</td>
</tr>
<tr class="row-64">
	<td class="column-1">Against the Storm</td><td class="column-2">3</td><td class="column-3">1</td><td class="column-4">$22,500,000</td><td class="column-5">1,300,000</td><td class="column-6">$17</td><td class="column-7">9</td>
</tr>
<tr class="row-65">
	<td class="column-1">Bloodstained: Ritual of the Night</td><td class="column-2">3</td><td class="column-3">1</td><td class="column-4">$35,400,000</td><td class="column-5">1,300,000</td><td class="column-6">$27</td><td class="column-7">11.6</td>
</tr>
<tr class="row-66">
	<td class="column-1">Bronana</td><td class="column-2">3</td><td class="column-3">2</td><td class="column-4">$16,626</td><td class="column-5">4,590</td><td class="column-6">$4</td><td class="column-7"></td>
</tr>
<tr class="row-67">
	<td class="column-1">Crypt of the NecroDancer</td><td class="column-2">3</td><td class="column-3">1</td><td class="column-4">$13,000,000</td><td class="column-5">1,600,000</td><td class="column-6">$8</td><td class="column-7">2.9</td>
</tr>
<tr class="row-68">
	<td class="column-1">Death State</td><td class="column-2">3</td><td class="column-3">2</td><td class="column-4">$219,000</td><td class="column-5">25,300</td><td class="column-6">$9</td><td class="column-7">4.8</td>
</tr>
<tr class="row-69">
	<td class="column-1">Extremely Powerful Capybaras</td><td class="column-2">3</td><td class="column-3">2</td><td class="column-4">$144,000</td><td class="column-5">32,430</td><td class="column-6">$4</td><td class="column-7">3.8</td>
</tr>
<tr class="row-70">
	<td class="column-1">Magicraft</td><td class="column-2">3</td><td class="column-3">2</td><td class="column-4">$4,200,000</td><td class="column-5">427,000</td><td class="column-6">$10</td><td class="column-7">21.6</td>
</tr>
<tr class="row-71">
	<td class="column-1">Neon Abyss</td><td class="column-2">3</td><td class="column-3">1</td><td class="column-4">$9,300,000</td><td class="column-5">700,000</td><td class="column-6">$13</td><td class="column-7">11</td>
</tr>
<tr class="row-72">
	<td class="column-1">Picayune Dreams</td><td class="column-2">3</td><td class="column-3">2</td><td class="column-4">$401,000</td><td class="column-5">106,000</td><td class="column-6">$4</td><td class="column-7">6.6</td>
</tr>
<tr class="row-73">
	<td class="column-1">Revita</td><td class="column-2">3</td><td class="column-3">1</td><td class="column-4">$791,000</td><td class="column-5">68,820</td><td class="column-6">$11</td><td class="column-7">4.7</td>
</tr>
<tr class="row-74">
	<td class="column-1">Risk of Rain 2</td><td class="column-2">3</td><td class="column-3">2</td><td class="column-4">$140,700,000</td><td class="column-5">8,900,000</td><td class="column-6">$16</td><td class="column-7">18.9</td>
</tr>
<tr class="row-75">
	<td class="column-1">Slime 3K: Rise Against Despot</td><td class="column-2">3</td><td class="column-3">2</td><td class="column-4">$165,000</td><td class="column-5">45,090</td><td class="column-6">$4</td><td class="column-7">2.6</td>
</tr>
<tr class="row-76">
	<td class="column-1">ΔV: Rings Of Saturn</td><td class="column-2">3</td><td class="column-3">1</td><td class="column-4">$553,000</td><td class="column-5">82,014</td><td class="column-6">$7</td><td class="column-7">5</td>
</tr>
<tr class="row-77">
	<td class="column-1">Bravery and Greed</td><td class="column-2">2</td><td class="column-3">1</td><td class="column-4">$382,000</td><td class="column-5">27,690</td><td class="column-6">$14</td><td class="column-7">2.5</td>
</tr>
<tr class="row-78">
	<td class="column-1">Darkest Dungeon 2</td><td class="column-2">2</td><td class="column-3">1</td><td class="column-4"></td><td class="column-5"></td><td class="column-6"></td><td class="column-7"></td>
</tr>
<tr class="row-79">
	<td class="column-1">Death Road to Canada</td><td class="column-2">2</td><td class="column-3">1</td><td class="column-4">$4,000,000</td><td class="column-5">416,000</td><td class="column-6">$10</td><td class="column-7">2.9</td>
</tr>
<tr class="row-80">
	<td class="column-1">Disk Room</td><td class="column-2">2</td><td class="column-3">1</td><td class="column-4"></td><td class="column-5"></td><td class="column-6"></td><td class="column-7"></td>
</tr>
<tr class="row-81">
	<td class="column-1">Endless Wanderer</td><td class="column-2">2</td><td class="column-3">1</td><td class="column-4"></td><td class="column-5"></td><td class="column-6"></td><td class="column-7"></td>
</tr>
<tr class="row-82">
	<td class="column-1">Gunbot Diplomacy</td><td class="column-2">2</td><td class="column-3">1</td><td class="column-4">$21,899</td><td class="column-5">6,000</td><td class="column-6">$4</td><td class="column-7"></td>
</tr>
<tr class="row-83">
	<td class="column-1">Hunchback's Dungeon</td><td class="column-2">2</td><td class="column-3">1</td><td class="column-4">$5,602</td><td class="column-5">1,830</td><td class="column-6">$3</td><td class="column-7"></td>
</tr>
<tr class="row-84">
	<td class="column-1">Invisible, Inc</td><td class="column-2">2</td><td class="column-3">1</td><td class="column-4">$6,300,000</td><td class="column-5">510,000</td><td class="column-6">$12</td><td class="column-7">2.6</td>
</tr>
<tr class="row-85">
	<td class="column-1">Just King</td><td class="column-2">2</td><td class="column-3">2</td><td class="column-4">$131,000</td><td class="column-5">43,860</td><td class="column-6">$3</td><td class="column-7">2.2</td>
</tr>
<tr class="row-86">
	<td class="column-1">Keepers Toll</td><td class="column-2">2</td><td class="column-3">1</td><td class="column-4">$74,915</td><td class="column-5">17,310</td><td class="column-6">$4</td><td class="column-7">3.4</td>
</tr>
<tr class="row-87">
	<td class="column-1">Pesticide Not Required</td><td class="column-2">2</td><td class="column-3">1</td><td class="column-4">$115,000</td><td class="column-5">24,780</td><td class="column-6">$5</td><td class="column-7">4.6</td>
</tr>
<tr class="row-88">
	<td class="column-1">Project Clean Earth</td><td class="column-2">2</td><td class="column-3">1</td><td class="column-4"></td><td class="column-5"></td><td class="column-6"></td><td class="column-7"></td>
</tr>
<tr class="row-89">
	<td class="column-1">Renfield</td><td class="column-2">2</td><td class="column-3">1</td><td class="column-4">$88,432</td><td class="column-5">24,990</td><td class="column-6">$4</td><td class="column-7">6</td>
</tr>
<tr class="row-90">
	<td class="column-1">Survivors of the Dawn</td><td class="column-2">2</td><td class="column-3">1</td><td class="column-4">$104,000</td><td class="column-5">20,820</td><td class="column-6">$5</td><td class="column-7">3.2</td>
</tr>
<tr class="row-91">
	<td class="column-1">Temtem: Swarm</td><td class="column-2">2</td><td class="column-3">1</td><td class="column-4">$448,000</td><td class="column-5">57,750</td><td class="column-6">$8</td><td class="column-7">6.2</td>
</tr>
<tr class="row-92">
	<td class="column-1">The Last Game</td><td class="column-2">2</td><td class="column-3">1</td><td class="column-4">$8,484</td><td class="column-5">2,250</td><td class="column-6">$4</td><td class="column-7"></td>
</tr>
<tr class="row-93">
	<td class="column-1">Voids Vigil</td><td class="column-2">2</td><td class="column-3">1</td><td class="column-4">$28,791</td><td class="column-5">9,930</td><td class="column-6">$3</td><td class="column-7"></td>
</tr>
<tr class="row-94">
	<td class="column-1">Ballionaire</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4">$530,000</td><td class="column-5">60,540</td><td class="column-6">$9</td><td class="column-7">2.9</td>
</tr>
<tr class="row-95">
	<td class="column-1">Bearzerk</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4">$1,678</td><td class="column-5">450</td><td class="column-6">$4</td><td class="column-7"></td>
</tr>
<tr class="row-96">
	<td class="column-1">Cast Out Colony</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4">$16,223</td><td class="column-5">2,370</td><td class="column-6">$7</td><td class="column-7"></td>
</tr>
<tr class="row-97">
	<td class="column-1">Core Keeper</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4">$41,600,000</td><td class="column-5">3,600,000</td><td class="column-6">$12</td><td class="column-7">14.3</td>
</tr>
<tr class="row-98">
	<td class="column-1">Cult of Lamb</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4"></td><td class="column-5"></td><td class="column-6"></td><td class="column-7"></td>
</tr>
<tr class="row-99">
	<td class="column-1">Deadly Days</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4">$417,000</td><td class="column-5">62,245</td><td class="column-6">$7</td><td class="column-7">3.8</td>
</tr>
<tr class="row-100">
	<td class="column-1">Dungeon Crawl</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4"></td><td class="column-5"></td><td class="column-6"></td><td class="column-7"></td>
</tr>
<tr class="row-101">
	<td class="column-1">Dungreed</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4">$3,300,000</td><td class="column-5">437,000</td><td class="column-6">$8</td><td class="column-7">11</td>
</tr>
<tr class="row-102">
	<td class="column-1">EvoluShip</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4">$1,320</td><td class="column-5">1,410</td><td class="column-6">$1</td><td class="column-7"></td>
</tr>
<tr class="row-103">
	<td class="column-1">Geometry Survivor</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4">$10,134</td><td class="column-5">2,850</td><td class="column-6">$4</td><td class="column-7"></td>
</tr>
<tr class="row-104">
	<td class="column-1">Geometry Wars 3</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4">$1,300,000</td><td class="column-5">122,000</td><td class="column-6">$11</td><td class="column-7">1</td>
</tr>
<tr class="row-105">
	<td class="column-1">Grindstone</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4">$111,000</td><td class="column-5">8,700</td><td class="column-6">$13</td><td class="column-7"></td>
</tr>
<tr class="row-106">
	<td class="column-1">Kingdom Rush</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4">$3,800,000</td><td class="column-5">571,000</td><td class="column-6">$7</td><td class="column-7">8</td>
</tr>
<tr class="row-107">
	<td class="column-1">Letter Lancers</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4">$15,871</td><td class="column-5">2,550</td><td class="column-6">$6</td><td class="column-7"></td>
</tr>
<tr class="row-108">
	<td class="column-1">Moonlighter</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4">$10,200,000</td><td class="column-5">845,000</td><td class="column-6">$12</td><td class="column-7">5</td>
</tr>
<tr class="row-109">
	<td class="column-1">Nerd Survivor</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4">$7,768</td><td class="column-5">2,370</td><td class="column-6">$3</td><td class="column-7"></td>
</tr>
<tr class="row-110">
	<td class="column-1">Nomad Survival</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4">$168,000</td><td class="column-5">63,540</td><td class="column-6">$3</td><td class="column-7">5.4</td>
</tr>
<tr class="row-111">
	<td class="column-1">Outnumbered</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4"></td><td class="column-5">7,110</td><td class="column-6">$0</td><td class="column-7"></td>
</tr>
<tr class="row-112">
	<td class="column-1">Peglin</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4">$9,400,000</td><td class="column-5">660,000</td><td class="column-6">$14</td><td class="column-7">11.2</td>
</tr>
<tr class="row-113">
	<td class="column-1">Ravenswatch</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4">$8,500,000</td><td class="column-5">531,000</td><td class="column-6">$16</td><td class="column-7">9.3</td>
</tr>
<tr class="row-114">
	<td class="column-1">Ravenswatch</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4">$8,400,000</td><td class="column-5">530,000</td><td class="column-6">$16</td><td class="column-7">9.3</td>
</tr>
<tr class="row-115">
	<td class="column-1">Rogue Legacy 2</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4">$7,500,000</td><td class="column-5">438,000</td><td class="column-6">$17</td><td class="column-7">12.1</td>
</tr>
<tr class="row-116">
	<td class="column-1">Rounds</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4">$4,500,000</td><td class="column-5">1,100,000</td><td class="column-6">$4</td><td class="column-7">5.4</td>
</tr>
<tr class="row-117">
	<td class="column-1">Shape Shifter: Formations</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4">$47,240</td><td class="column-5">7,410</td><td class="column-6">$6</td><td class="column-7"></td>
</tr>
<tr class="row-118">
	<td class="column-1">Slice &amp; Dice</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4">$488,000</td><td class="column-5">67,830</td><td class="column-6">$7</td><td class="column-7">8.2</td>
</tr>
<tr class="row-119">
	<td class="column-1">Sodaman</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4">$55,557</td><td class="column-5">16,500</td><td class="column-6">$3</td><td class="column-7">5.7</td>
</tr>
<tr class="row-120">
	<td class="column-1">Spellbook Demonslayers</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4">$107,000</td><td class="column-5">38,640</td><td class="column-6">$3</td><td class="column-7">3.4</td>
</tr>
<tr class="row-121">
	<td class="column-1">SuperTotalCarnage!</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4">$4,218</td><td class="column-5">2,100</td><td class="column-6">$2</td><td class="column-7"></td>
</tr>
<tr class="row-122">
	<td class="column-1">Talented</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4">$100,000</td><td class="column-5">38,400</td><td class="column-6">$3</td><td class="column-7">9.6</td>
</tr>
<tr class="row-123">
	<td class="column-1">The King is Watching</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4">$1,900,000</td><td class="column-5">166,000</td><td class="column-6">$11</td><td class="column-7">13.3</td>
</tr>
<tr class="row-124">
	<td class="column-1">The Messenger</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4">$3,900,000</td><td class="column-5">289,000</td><td class="column-6">$13</td><td class="column-7">6.5</td>
</tr>
<tr class="row-125">
	<td class="column-1">The Rogue Prince of Persia</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4">$100,000</td><td class="column-5">60,480</td><td class="column-6">$2</td><td class="column-7">1.5</td>
</tr>
<tr class="row-126">
	<td class="column-1">Wizard of Legend</td><td class="column-2">1</td><td class="column-3">1</td><td class="column-4">$16,200,000</td><td class="column-5">1,500,000</td><td class="column-6">$11</td><td class="column-7">4</td>
</tr>
</tbody>
</table>
<!-- #tablepress-6 from cache --></p>



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



<p class="wp-block-paragraph">Now, although all the games in the table above are not 100% identical to the playstyle of Brotato, this was a really interesting social study.&nbsp;</p>



<p class="wp-block-paragraph">As mentioned, my only goal here was to take an honest summary of what people suggested when someone was looking for games like Brotato. And if you like tier lists, be sure to check out our <a href="https://rogueranker.com/brotato-tier-list/">Brotato tier list</a>.</p>



<p class="wp-block-paragraph">I hope this article was helpful and you find a new game or two to play <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>



<p class="wp-block-paragraph">Take care and talk soon.</p>
<p>The post <a href="https://rogueranker.com/games-like-brotato/">(Top 125) Games Like Brotato Ranked &#8211; 2419 Reddit Votes</a> appeared first on <a href="https://rogueranker.com">Rogue Ranker</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://rogueranker.com/games-like-brotato/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>(200+ Hours) Honest Brotato Review</title>
		<link>https://rogueranker.com/brotato-review/</link>
					<comments>https://rogueranker.com/brotato-review/#respond</comments>
		
		<dc:creator><![CDATA[Aiden]]></dc:creator>
		<pubDate>Sat, 20 Sep 2025 02:25:49 +0000</pubDate>
				<category><![CDATA[Brotato]]></category>
		<guid isPermaLink="false">https://rogueranker.com/?p=294</guid>

					<description><![CDATA[<p>After 217 hours playing Brotato and countless runs, I figured it was time to share my take on whether or not Brotato is any good.&#160; Namely, I want to talk about what makes Brotato different from its competition and which mechanics stand out.&#160; TL;DR: Is Brotato Good? Short answer: Yes. Long answer: This game does [&#8230;]</p>
<p>The post <a href="https://rogueranker.com/brotato-review/">(200+ Hours) Honest Brotato Review</a> appeared first on <a href="https://rogueranker.com">Rogue Ranker</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">After 217 hours playing Brotato and countless runs, I figured it was time to share my take on whether or not Brotato is any good.&nbsp;</p>



<p class="wp-block-paragraph">Namely, I want to talk about what makes Brotato different from its competition and which mechanics stand out.&nbsp;</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>Brotato Score Card</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-scorecard {
    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-scorecard * { box-sizing: border-box; }

  /* ── Gold top bar ── */
  .sc-topbar {
    height: 3px;
    background: linear-gradient(90deg, transparent, #FFBF00 40%, #FFBF00 60%, transparent);
  }

  /* ── Header ── */
  .sc-header {
    background: #16161f;
    border-bottom: 1px solid #32324a;
    padding: 24px 28px 22px;
    display: flex;
    align-items: center;
    gap: 20px;
  }

  .sc-header-text { flex: 1; }

  .sc-eyebrow {
    font-family: 'Cinzel', serif;
    font-size: 10px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: #FFBF00;
    display: block;
    margin-bottom: 6px;
  }

  .sc-game-title {
    font-family: 'Cinzel', serif;
    font-size: clamp(20px, 4vw, 28px);
    font-weight: 800;
    color: #f2eedd;
    margin: 0 0 4px;
    line-height: 1.1;
  }

  .sc-game-subtitle {
    font-size: 14px;
    color: #80786a;
    font-style: italic;
  }

  /* ── Overall score badge ── */
  .sc-score-badge {
    flex-shrink: 0;
    width: 88px;
    height: 88px;
    background: #1e1800;
    border: 2px solid #FFBF00;
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-shadow: 0 0 24px rgba(255,191,0,0.2);
    position: relative;
    overflow: hidden;
  }

  .sc-score-badge::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(255,191,0,0.08) 0%, transparent 60%);
  }

  .sc-score-number {
    font-family: 'Cinzel', serif;
    font-size: 30px;
    font-weight: 800;
    color: #FFBF00;
    line-height: 1;
    position: relative;
  }

  .sc-score-denom {
    font-family: 'Cinzel', serif;
    font-size: 11px;
    color: #80786a;
    letter-spacing: 0.1em;
    position: relative;
    margin-top: 3px;
  }

  .sc-score-label {
    font-family: 'Cinzel', serif;
    font-size: 8px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #FFBF00;
    position: relative;
    margin-top: 4px;
  }

  /* ── Categories ── */
  .sc-categories {
    padding: 20px 28px 24px;
  }

  .sc-section-label {
    font-family: 'Cinzel', serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #FFBF00;
    margin-bottom: 16px;
    display: block;
  }

  .sc-row {
    display: grid;
    grid-template-columns: 130px 1fr 48px;
    align-items: center;
    gap: 14px;
    margin-bottom: 13px;
  }

  .sc-row:last-child { margin-bottom: 0; }

  .sc-cat-name {
    font-family: 'Cinzel', serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #c8bfa0;
    white-space: nowrap;
  }

  /* Bar track */
  .sc-bar-track {
    background: #1e1e2a;
    border-radius: 3px;
    height: 8px;
    overflow: hidden;
    position: relative;
  }

  .sc-bar-fill {
    height: 100%;
    border-radius: 3px;
    width: 0%;
    transition: width 1s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
  }

  /* Color tiers */
  .sc-bar-fill.tier-gold {
    background: linear-gradient(90deg, #c49000, #FFBF00);
    box-shadow: 0 0 8px rgba(255,191,0,0.4);
  }
  .sc-bar-fill.tier-green {
    background: linear-gradient(90deg, #4a9a4a, #7ac87a);
    box-shadow: 0 0 8px rgba(122,200,122,0.3);
  }
  .sc-bar-fill.tier-blue {
    background: linear-gradient(90deg, #3a78a8, #7ab8e8);
    box-shadow: 0 0 8px rgba(122,184,232,0.3);
  }

  .sc-score-val {
    font-family: 'Cinzel', serif;
    font-size: 13px;
    font-weight: 700;
    color: #f2eedd;
    text-align: right;
    white-space: nowrap;
  }

  /* ── Divider ── */
  .sc-divider {
    height: 1px;
    background: #32324a;
    margin: 0 28px;
  }

  /* ── Verdict ── */
  .sc-verdict {
    padding: 20px 28px 24px;
    display: flex;
    gap: 16px;
    align-items: flex-start;
  }

  .sc-verdict-icon {
    font-size: 28px;
    flex-shrink: 0;
    margin-top: 2px;
  }

  .sc-verdict-label {
    font-family: 'Cinzel', serif;
    font-size: 10px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #FFBF00;
    display: block;
    margin-bottom: 6px;
  }

  .sc-verdict-text {
    font-size: 16px;
    line-height: 1.6;
    color: #cbc4b0;
    margin: 0;
  }

  /* ── Footer ── */
  .sc-footer {
    background: #16161f;
    border-top: 1px solid #32324a;
    padding: 12px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }

  .sc-footer-byline {
    font-size: 13px;
    color: #80786a;
    font-style: italic;
  }

  .sc-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;
  }

  /* ── Mobile ── */
  @media (max-width: 560px) {
    .sc-header { padding: 18px 16px 16px; gap: 14px; }
    .sc-score-badge { width: 72px; height: 72px; }
    .sc-score-number { font-size: 24px; }
    .sc-score-denom { font-size: 9px; }
    .sc-game-subtitle { font-size: 12px; }
    .sc-categories { padding: 16px 16px 20px; }
    .sc-row {
      grid-template-columns: 1fr 36px;
      grid-template-rows: auto auto;
      gap: 5px 10px;
      margin-bottom: 16px;
    }
    .sc-cat-name {
      grid-column: 1 / -1;
      grid-row: 1;
      font-size: 10px;
      letter-spacing: 0.12em;
      white-space: normal;
    }
    .sc-bar-track {
      grid-column: 1;
      grid-row: 2;
      align-self: center;
    }
    .sc-score-val {
      grid-column: 2;
      grid-row: 2;
      font-size: 12px;
      align-self: center;
    }
    .sc-divider { margin: 0 16px; }
    .sc-verdict { padding: 16px 16px 20px; }
    .sc-verdict-text { font-size: 14px; }
    .sc-footer { padding: 10px 16px; flex-wrap: wrap; gap: 8px; }
  }
</style>
</head>
<body>

<div id="rr-scorecard">
  <div class="sc-topbar"></div>

  <!-- Header -->
  <div class="sc-header">
    <div class="sc-header-text">
      <span class="sc-eyebrow">Rogue Ranker · Review Score</span>
      <h2 class="sc-game-title">Brotato</h2>
      <div class="sc-game-subtitle">217 hours played · Danger 5 cleared</div>
    </div>
    <div class="sc-score-badge">
      <div class="sc-score-number">9.5</div>
      <div class="sc-score-denom">OUT OF 10</div>
      <div class="sc-score-label">Overall</div>
    </div>
  </div>

  <!-- Category scores -->
  <div class="sc-categories">
    <span class="sc-section-label">Category Breakdown</span>

    <div class="sc-row">
      <div class="sc-cat-name">Combat</div>
      <div class="sc-bar-track"><div class="sc-bar-fill tier-gold" data-score="95"></div></div>
      <div class="sc-score-val">9.5</div>
    </div>

    <div class="sc-row">
      <div class="sc-cat-name">Price</div>
      <div class="sc-bar-track"><div class="sc-bar-fill tier-gold" data-score="100"></div></div>
      <div class="sc-score-val">10</div>
    </div>

    <div class="sc-row">
      <div class="sc-cat-name">Controls</div>
      <div class="sc-bar-track"><div class="sc-bar-fill tier-green" data-score="90"></div></div>
      <div class="sc-score-val">9.0</div>
    </div>

    <div class="sc-row">
      <div class="sc-cat-name">Characters</div>
      <div class="sc-bar-track"><div class="sc-bar-fill tier-gold" data-score="95"></div></div>
      <div class="sc-score-val">9.5</div>
    </div>

    <div class="sc-row">
      <div class="sc-cat-name">Builds</div>
      <div class="sc-bar-track"><div class="sc-bar-fill tier-green" data-score="90"></div></div>
      <div class="sc-score-val">9.0</div>
    </div>

    <div class="sc-row">
      <div class="sc-cat-name">Weapons</div>
      <div class="sc-bar-track"><div class="sc-bar-fill tier-green" data-score="85"></div></div>
      <div class="sc-score-val">8.5</div>
    </div>

    <div class="sc-row">
      <div class="sc-cat-name">Difficulty</div>
      <div class="sc-bar-track"><div class="sc-bar-fill tier-blue" data-score="90"></div></div>
      <div class="sc-score-val">9.0</div>
    </div>

    <div class="sc-row">
      <div class="sc-cat-name">Replayability</div>
      <div class="sc-bar-track"><div class="sc-bar-fill tier-gold" data-score="100"></div></div>
      <div class="sc-score-val">10</div>
    </div>

  </div>

  <div class="sc-divider"></div>

  <!-- Verdict -->
  <div class="sc-verdict">
    <div>
      <span class="sc-verdict-label">The Verdict</span>
      <p class="sc-verdict-text">Brotato is one of the best value games in the genre. The combat is tight, the characters are genuinely distinct, and the replayability is nearly endless. At $4.99 it is almost impossible to argue against. A must-play for any bullet heaven fan.</p>
    </div>
  </div>

  <!-- Footer -->
  <div class="sc-footer">
    <div class="sc-footer-byline">Reviewed by Aiden · Rogue Ranker</div>
    <div class="sc-footer-tag">Highly Recommended</div>
  </div>
</div>

<script>
  // Animate bars on load using IntersectionObserver
  const fills = document.querySelectorAll('.sc-bar-fill');

  const observer = new IntersectionObserver((entries) => {
    entries.forEach(entry => {
      if (entry.isIntersecting) {
        const el = entry.target;
        const score = el.getAttribute('data-score');
        setTimeout(() => {
          el.style.width = score + '%';
        }, 150);
        observer.unobserve(el);
      }
    });
  }, { threshold: 0.3 });

  fills.forEach(fill => observer.observe(fill));
</script>

</body>
</html>



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



<h2 class="wp-block-heading"><strong>TL;DR:</strong> Is Brotato Good?</h2>



<p class="wp-block-paragraph">Short answer: Yes.</p>



<p class="wp-block-paragraph">Long answer: This game does combat differently, and that is its core selling point.&nbsp;</p>



<p class="wp-block-paragraph">Playing as a vicious little potato in wacky outfits doesn’t hurt either.&nbsp;</p>



<p class="wp-block-paragraph">The game is an excellent value, with many hours of fun to be had with each character at an accessible $4.99 price point on the<a href="https://store.steampowered.com/app/1942280/Brotato/?curator_clanid=44280697"> Steam Store</a>.&nbsp;</p>



<p class="wp-block-paragraph">If you usually enjoy <a href="https://rogueranker.com/best-bullet-heaven-games/">bullet heaven games</a> or arena shooter games, I’m confident you’ll enjoy this one.&nbsp;</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://rogueranker.com/wp-content/uploads/2025/09/brotato-review-cover-image-of-game-1024x576.png" alt="" class="wp-image-316" srcset="https://rogueranker.com/wp-content/uploads/2025/09/brotato-review-cover-image-of-game-1024x576.png 1024w, https://rogueranker.com/wp-content/uploads/2025/09/brotato-review-cover-image-of-game-300x169.png 300w, https://rogueranker.com/wp-content/uploads/2025/09/brotato-review-cover-image-of-game-768x432.png 768w, https://rogueranker.com/wp-content/uploads/2025/09/brotato-review-cover-image-of-game-1536x864.png 1536w, https://rogueranker.com/wp-content/uploads/2025/09/brotato-review-cover-image-of-game-2048x1152.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">Is Brotato Abyssal Terrors Good?</h3>



<p class="wp-block-paragraph">Perhaps you’re already knee deep in the potato chaos, wondering, <em>is Abyssal Terrors any good?</em>&nbsp;</p>



<p class="wp-block-paragraph">Well, that depends.&nbsp;</p>



<p class="wp-block-paragraph"><a href="https://rogueranker.com/games-like-brotato/">Did you like Brotato</a>’s core mechanics?&nbsp;</p>



<p class="wp-block-paragraph">Want extra difficulty or find yourself thirsting for more?&nbsp;</p>



<p class="wp-block-paragraph">If you answered yes to these, chances are you’ll think Abyssal Terrors is good.&nbsp;</p>



<p class="wp-block-paragraph">You have fourteen new characters to play with, sixteen new weapons to wield, and thirty new items to try over the course of play. To top it off, the expansion adds a new map, twenty new enemies, elites, and bosses.&nbsp;</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="800" height="450" src="https://rogueranker.com/wp-content/uploads/2025/09/brotato-abyssal-terrors-cover-brotato-review-article.jpg" alt="" class="wp-image-317" srcset="https://rogueranker.com/wp-content/uploads/2025/09/brotato-abyssal-terrors-cover-brotato-review-article.jpg 800w, https://rogueranker.com/wp-content/uploads/2025/09/brotato-abyssal-terrors-cover-brotato-review-article-300x169.jpg 300w, https://rogueranker.com/wp-content/uploads/2025/09/brotato-abyssal-terrors-cover-brotato-review-article-768x432.jpg 768w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<h3 class="wp-block-heading">Is Brotato Multiplayer?</h3>



<p class="wp-block-paragraph">Yes, Brotato is multiplier and now supports traditional local co-op playstyle where you and teammates share the consequences and rewards of each other’s decisions.</p>



<h2 class="wp-block-heading">Factors of My Brotato Review</h2>



<p class="wp-block-paragraph">Before we dig into the good stuff, here’s how I went about my review.&nbsp;</p>



<p class="wp-block-paragraph">I stuck to a few core categories, as outlined below:&nbsp;</p>



<ol class="wp-block-list">
<li>Combat</li>



<li>Price</li>



<li>Controls</li>



<li>Characters</li>



<li>Builds</li>



<li>Weapons</li>



<li>Stats</li>



<li>Platforms</li>



<li>Difficulty</li>
</ol>



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



<h3 class="wp-block-heading">Brotato Combat</h3>



<p class="wp-block-paragraph">What makes this game stand out above most others within this genre is the satisfying, tactile, skill-driven combat mechanics.&nbsp;</p>



<p class="wp-block-paragraph">Melee weapons feel tight, reward deliberate positioning. Ranged weapons feel a bit floaty and consistently reward kiting builds.&nbsp;</p>



<p class="wp-block-paragraph">I have never had a “boring” round of Brotato, and there’s a reason for that.&nbsp;</p>



<p class="wp-block-paragraph">While the map may remain fixed with only subtle, purely aesthetic variations, the rest of the game is practically defined by RNG. This leads to an incredible variety of gameplay, all centered around combat mechanics.&nbsp;</p>



<p class="wp-block-paragraph">Play how you like; there is something for everyone.&nbsp;</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="600" height="338" src="https://rogueranker.com/wp-content/uploads/2025/09/Brotato-Review-combat-scene.gif" alt="" class="wp-image-320"/></figure>



<p class="has-text-align-center wp-block-paragraph">GIF source: <a href="https://www.pl2w.com/gameinfo/1578282093/1578286819">pl2w.com</a></p>



<h3 class="wp-block-heading">Brotato Price</h3>



<p class="wp-block-paragraph">At $4.99 for the base game and $3.99 for the expansion,&nbsp; I’m more than satisfied with Brotato’s price.&nbsp;</p>



<p class="wp-block-paragraph">I’ve had a couple of hundred hours of fun for under $10, which is an incredible value proposition.&nbsp;</p>



<p class="wp-block-paragraph">Considering how many games in this niche have moved to $10+ for the base game, this is noteworthy.</p>



<h3 class="wp-block-heading">Brotato Controls</h3>



<p class="wp-block-paragraph">Brotato’s controls aren’t out of the ordinary for a bullet heaven game, but the movement itself is a bit unique.&nbsp;</p>



<p class="wp-block-paragraph">There is a precision and responsiveness to the movement that makes combat feel much punchier. This encourages movement mastery and makes skilling up your personal dodging reflexes a lot more fun.&nbsp;</p>



<p class="wp-block-paragraph">It’s also worth noting, Brotato allows you to control your attacks if you opt into that option in settings.&nbsp;</p>



<p class="wp-block-paragraph">Whether you’re WASD’ing or joysticking your way through this alien hellscape, you’ll notice the differences in movement compared to similar titles immediately.&nbsp;</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/Brotato-Controlls-Brotato-Review-Article-1024x683.png" alt="A man in a hoodie is engaged in a video game on his computer, showing concentration and enjoyment." class="wp-image-323" srcset="https://rogueranker.com/wp-content/uploads/2025/09/Brotato-Controlls-Brotato-Review-Article-1024x683.png 1024w, https://rogueranker.com/wp-content/uploads/2025/09/Brotato-Controlls-Brotato-Review-Article-300x200.png 300w, https://rogueranker.com/wp-content/uploads/2025/09/Brotato-Controlls-Brotato-Review-Article-768x512.png 768w, https://rogueranker.com/wp-content/uploads/2025/09/Brotato-Controlls-Brotato-Review-Article.png 1536w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">Brotato Characters &#8211; What Is the Best Character In Brotato?</h3>



<p class="wp-block-paragraph">Characters feel one of a kind, truly distinct from each other.</p>



<p class="wp-block-paragraph">The new items you unlock with each character also add a little extra incentive to replay those characters, as they generally reward stats that the specific character would benefit from above others.&nbsp;</p>



<p class="wp-block-paragraph">Among all of Brotato’s characters, I love playing as engineering stat-centric characters most of all.&nbsp;</p>



<p class="wp-block-paragraph">Engineer, entrepreneur, cyborg, and streamer are my favorites in particular.&nbsp;</p>



<p class="wp-block-paragraph">Having dozens of little helpers dealing constant damage and creating breathing room scales very well into the late game, even on Difficulty 5.&nbsp;</p>



<p class="wp-block-paragraph">In fact, the engineering characters are some of the strongest and easiest to master in the game.&nbsp;</p>



<p class="wp-block-paragraph">If I were starting the game fresh, I’d try to use the Engineer for my first Danger 5 win. Your turrets will make you feel a smidge less lonely as you’re getting pummeled, too.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>



<p class="wp-block-paragraph">If you want to see how characters, weapons, and items stack up, check out our <a href="https://rogueranker.com/brotato-tier-list/">Brotato tier list</a>.</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="143" src="https://rogueranker.com/wp-content/uploads/2025/09/BrotatoCharactersBeaten-1024x143.png" alt="The number of characters beaten on level 5 difficulty on Brotato by the author of this article on Rogue Ranker in the article, Brotato Review" class="wp-image-315" srcset="https://rogueranker.com/wp-content/uploads/2025/09/BrotatoCharactersBeaten-1024x143.png 1024w, https://rogueranker.com/wp-content/uploads/2025/09/BrotatoCharactersBeaten-300x42.png 300w, https://rogueranker.com/wp-content/uploads/2025/09/BrotatoCharactersBeaten-768x107.png 768w, https://rogueranker.com/wp-content/uploads/2025/09/BrotatoCharactersBeaten-1536x214.png 1536w, https://rogueranker.com/wp-content/uploads/2025/09/BrotatoCharactersBeaten.png 1776w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">Brotato Builds &#8211; What is the Best Brotato Build?</h3>



<p class="wp-block-paragraph">Brotato build recommendations are tough, and I’m hesitant to provide any direct recommendations.&nbsp;</p>



<p class="wp-block-paragraph">A broad general recommendation I can confidently make is that intuition will often betray you when planning a build around character-specific mechanics.&nbsp;</p>



<p class="wp-block-paragraph">A simple example is the character<a href="https://brotato.wiki.spellsandguns.com/Chunky"> Chunky</a>, who gets 1% damage for every 3 max hp that they have and a 25% bonus to max hp upgrades.&nbsp;</p>



<figure class="wp-block-image aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="906" height="1008" src="https://rogueranker.com/wp-content/uploads/2025/09/Brotato-Chunky-Brotato-Review.png" alt="" class="wp-image-326" style="width:395px;height:auto" srcset="https://rogueranker.com/wp-content/uploads/2025/09/Brotato-Chunky-Brotato-Review.png 906w, https://rogueranker.com/wp-content/uploads/2025/09/Brotato-Chunky-Brotato-Review-270x300.png 270w, https://rogueranker.com/wp-content/uploads/2025/09/Brotato-Chunky-Brotato-Review-768x854.png 768w" sizes="(max-width: 906px) 100vw, 906px" /></figure>



<p class="wp-block-paragraph">You may be tempted to pick health cards and items early because of that bonus, but that would be a mistake.&nbsp;</p>



<p class="wp-block-paragraph">While it is a nice extra bonus in the late game, you won’t snowball early, and you’ll struggle mid-game when you should be farming waves.</p>



<h3 class="wp-block-heading">Brotato Weapons &#8211; What is the Best Brotato Weapon?</h3>



<p class="wp-block-paragraph">You get six of them, and yes, it is ridiculous. Almost all of the weapons are enjoyable, but a couple did fall short for me, like the Brick and Sharp Tooth.&nbsp;</p>



<p class="wp-block-paragraph">Those aside, the remaining weapons are very satisfying to use, even on wave 1.&nbsp;</p>



<p class="wp-block-paragraph">The club feels hefty and blunt. The throwing star feels lightweight and sharp. The laser pew is pewy. The smg brrr is brrry.&nbsp;</p>



<p class="wp-block-paragraph">While we’re all probably hoping for a legendary weapon roll, it is rare that those legendary weapons will suit your build, and they’re totally unnecessary to have a good time. In fact, most of my ‘favorite’ weapons are the weapons you can start with.&nbsp;</p>



<p class="wp-block-paragraph">You get it, weapons stand out here, and you’ll notice that distinction right away.</p>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="516" src="https://rogueranker.com/wp-content/uploads/2025/09/brotato-weapons-tierlist-by-someone-with-350-hours-and-done-v0-7wf46hitjmea1-1024x516.webp" alt="Brotato Weapons Tierlist by someone with 350+ hours and done 182% with 5 different characters." class="wp-image-327" style="width:633px;height:auto" srcset="https://rogueranker.com/wp-content/uploads/2025/09/brotato-weapons-tierlist-by-someone-with-350-hours-and-done-v0-7wf46hitjmea1-1024x516.webp 1024w, https://rogueranker.com/wp-content/uploads/2025/09/brotato-weapons-tierlist-by-someone-with-350-hours-and-done-v0-7wf46hitjmea1-300x151.webp 300w, https://rogueranker.com/wp-content/uploads/2025/09/brotato-weapons-tierlist-by-someone-with-350-hours-and-done-v0-7wf46hitjmea1-768x387.webp 768w, https://rogueranker.com/wp-content/uploads/2025/09/brotato-weapons-tierlist-by-someone-with-350-hours-and-done-v0-7wf46hitjmea1.webp 1080w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="has-text-align-center wp-block-paragraph">Photo Source: <a href="https://www.reddit.com/r/brotato/comments/10mr7yb/brotato_weapons_tierlist_by_someone_with_350/">Aros_Rising Reddit</a></p>



<h3 class="wp-block-heading">A Few Brotato Stats Explained</h3>



<p class="wp-block-paragraph">There are two stats worth digging into:</p>



<h4 class="wp-block-heading">What Does Engineering Do In Brotato?</h4>



<p class="wp-block-paragraph">Some of Brotato’s stats require a little more explaining than others, and if you plan on taking the game all the way to completion, digging into the mechanics a bit deeper on one of the <a href="https://brotato.wiki.spellsandguns.com/">Brotato Wiki</a> will level up your game knowledge fast.&nbsp;</p>



<p class="wp-block-paragraph">For now, though, let&#8217;s cover a couple of the more common ‘complex’ stats.&nbsp;</p>



<p class="wp-block-paragraph">As I mentioned before, I’m a total sucker for engineering, so I’ll start there. Engineering increases the damage and healing of several structures and weapons. Turrets, landmines, the Plank, and Screwdriver specifically.&nbsp;</p>



<p class="wp-block-paragraph">That much is simple, but what isn’t explained is that there are several unique engineering-related items that can completely change a run, far more than other stats.&nbsp;</p>



<p class="wp-block-paragraph">For example, the Pocket Factory turns destroyed trees into turrets, while the Bandana and Ricochet items scale projectile damage from turrets at a nearly “broken” rate.&nbsp;</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="413" src="https://rogueranker.com/wp-content/uploads/2025/09/Brotato-Engineering-Brotato-Review-Article-1024x413.png" alt="Brotato Engineering overview displaying game options, including settings for difficulty, controls, and audio preferences for player selection." class="wp-image-329" srcset="https://rogueranker.com/wp-content/uploads/2025/09/Brotato-Engineering-Brotato-Review-Article-1024x413.png 1024w, https://rogueranker.com/wp-content/uploads/2025/09/Brotato-Engineering-Brotato-Review-Article-300x121.png 300w, https://rogueranker.com/wp-content/uploads/2025/09/Brotato-Engineering-Brotato-Review-Article-768x310.png 768w, https://rogueranker.com/wp-content/uploads/2025/09/Brotato-Engineering-Brotato-Review-Article-1536x619.png 1536w, https://rogueranker.com/wp-content/uploads/2025/09/Brotato-Engineering-Brotato-Review-Article-2048x826.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h4 class="wp-block-heading">What Does Harvesting Do In Brotato?</h4>



<p class="wp-block-paragraph">Another quick example is harvesting, which is pretty vague in the beginning. It’s actually quite simple: Harvest Stat Value &#8211; debuffs = currency received at the end of each round.&nbsp;</p>



<p class="wp-block-paragraph">Meaning, it’s a passive investment that pays out at the end of each round you survive, no matter how well you did, which is critical for several characters and builds.&nbsp;</p>



<p class="wp-block-paragraph">These two stats really stood out to me.</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="331" src="https://rogueranker.com/wp-content/uploads/2025/09/Harvesting-Brotato-Wiki-Brotato-Review-1024x331.png" alt="Brotato Harvesting Wiki screenshot showing various menus and gameplay features for player interaction and settings adjustment." class="wp-image-328" srcset="https://rogueranker.com/wp-content/uploads/2025/09/Harvesting-Brotato-Wiki-Brotato-Review-1024x331.png 1024w, https://rogueranker.com/wp-content/uploads/2025/09/Harvesting-Brotato-Wiki-Brotato-Review-300x97.png 300w, https://rogueranker.com/wp-content/uploads/2025/09/Harvesting-Brotato-Wiki-Brotato-Review-768x248.png 768w, https://rogueranker.com/wp-content/uploads/2025/09/Harvesting-Brotato-Wiki-Brotato-Review-1536x496.png 1536w, https://rogueranker.com/wp-content/uploads/2025/09/Harvesting-Brotato-Wiki-Brotato-Review-2048x661.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Image Source: <a href="https://brotato.wiki.spellsandguns.com/Harvesting">Brotato Wiki &#8211; Harvesting</a></p>



<h3 class="wp-block-heading">Brotato Platforms &#8211; Is Brotato Only On Desktop?</h3>



<p class="wp-block-paragraph">No, Brotato is not only on desktop.</p>



<p class="wp-block-paragraph">I was shocked when I found out that Brotato is on several platforms: PC, consoles, and mobile.</p>



<p class="wp-block-paragraph">If it has a screen and an interface, chances are that it supports Brotato.&nbsp;</p>



<p class="wp-block-paragraph">Jokes aside, Brotato is on Switch, Xbox, PlayStation, Steam, Epic Games Store, Google Play Store, and the Apple App Store.</p>



<h3 class="wp-block-heading">Brotato Difficulty</h3>



<p class="wp-block-paragraph">Now I’ll admit, this paragraph isn’t for everyone.&nbsp;</p>



<p class="wp-block-paragraph">If you’re looking to ‘chill and kill’, you’ll enjoy Danger 1 and can skip this bit. With that out of the way, difficulty is a critically important factor for me in <a href="https://rogueranker.com/roguelike-vs-roguelite/">Roguelike, Roguelite</a>, <a href="https://rogueranker.com/bullet-heaven-vs-bullet-hell/">Bullet-Hell, and Bullet-Heaven</a> games.&nbsp;</p>



<p class="wp-block-paragraph">Side note: we just published our guide on the <a href="https://rogueranker.com/best-bullet-hell-games/">best bullet hell games</a> and <a href="https://rogueranker.com/best-roguelike-games/">best roguelike games</a> <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">Difficulty can completely change the way you play.&nbsp;</p>



<p class="wp-block-paragraph">For example, on Danger 5 (max difficulty) with a notoriously difficult hero like <a href="https://brotato.wiki.spellsandguns.com/Arms_Dealer">Arms Dealer</a>, if you don’t snowball early on, chances are that you’ll lose before you make it to the mid-game.&nbsp;</p>



<figure class="wp-block-image aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="900" height="956" src="https://rogueranker.com/wp-content/uploads/2025/09/Brotato-Arms-Dealer-Brotato-Review-Article.png" alt="" class="wp-image-330" style="width:399px;height:auto" srcset="https://rogueranker.com/wp-content/uploads/2025/09/Brotato-Arms-Dealer-Brotato-Review-Article.png 900w, https://rogueranker.com/wp-content/uploads/2025/09/Brotato-Arms-Dealer-Brotato-Review-Article-282x300.png 282w, https://rogueranker.com/wp-content/uploads/2025/09/Brotato-Arms-Dealer-Brotato-Review-Article-768x816.png 768w" sizes="(max-width: 900px) 100vw, 900px" /></figure>



<p class="wp-block-paragraph">While this may seem a bit restrictive and encourage ‘rerolling’ game-starts, there is something uniquely satisfying about barely squeaking by and hitting that one lucky shop upgrade that turns things around.&nbsp;</p>



<p class="wp-block-paragraph">There’s more on screen, what is on screen hits harder and lives longer, a simple recipe.&nbsp;</p>



<p class="wp-block-paragraph">I have spent easily half of my game time losing Danger 5 rounds, and I couldn’t be happier about that. If you’re anything like me and would rather lose 100 times on Danger 5 than win 200 times on Danger 1, welcome home.&nbsp;</p>



<h4 class="wp-block-heading">Is Brotato on Switch?</h4>



<p class="wp-block-paragraph">Yes, Brotato is available on Switch, and it&#8217;s priced at $4.99.</p>



<h4 class="wp-block-heading">Is Brotato on Xbox?</h4>



<p class="wp-block-paragraph">Yes, Brotato is on Xbox.&nbsp;</p>



<p class="wp-block-paragraph">However, some issues have been reported by the Xbox player base, including lost saves and performance problems.&nbsp;</p>



<p class="wp-block-paragraph">With that said, they’ve taken patches seriously, and it appears most issues have been reconciled.&nbsp;</p>



<h4 class="wp-block-heading">Is Brotato on PlayStation?</h4>



<p class="wp-block-paragraph">Yes, Brotato is on PlayStation, but the same can be said about PlayStation; there are glitches you should be aware of, but it is unlikely you’ll experience them.</p>



<h2 class="wp-block-heading">How to Play Brotato: 5 Quick Tips For Beginners</h2>



<ol class="wp-block-list">
<li><strong>Leverage your character’s weaknesses.</strong> If your character has a “throwaway” stat, take advantage of that. Use that stat as a currency to trade up for the stats that you need.&nbsp;</li>



<li><strong>Unless your build requires it, never stop moving.</strong> The chances are, there’s a slightly better position for you to be in at every second of the game.&nbsp;</li>



<li><strong>Spend as much of your currency as possible.</strong> The more you can spend, the stronger you’ll be in the next round. The stronger you are in the next round, the more currency you get. Don’t waste money, especially when you’re clearing waves completely and with ease.&nbsp;</li>



<li><strong>Don’t buy defensive items too early. </strong>Build your damage, then your economy, and then your health. There are exceptions, like legendary upgrades and items that will synergize well with your late-game build, but don’t pick up legendaries for the sake of it.</li>



<li><strong>Remember that you’ll need to do massive single-target damage in the end to kill the boss or bosses. </strong>Having wave-clearing potential is important for economy and levels, but in the end, you either have to endure the boss&#8217;s high damage area of effect mechanics for 90 seconds or kill them. You can imagine which is easier.&nbsp;</li>
</ol>



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



<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/Brotato-Review-Rogue-Ranker-1024x683.png" alt="A hoodie-clad person looks intently at a computer screen featuring the word &quot;Brotato.&quot;" class="wp-image-332" srcset="https://rogueranker.com/wp-content/uploads/2025/09/Brotato-Review-Rogue-Ranker-1024x683.png 1024w, https://rogueranker.com/wp-content/uploads/2025/09/Brotato-Review-Rogue-Ranker-300x200.png 300w, https://rogueranker.com/wp-content/uploads/2025/09/Brotato-Review-Rogue-Ranker-768x512.png 768w, https://rogueranker.com/wp-content/uploads/2025/09/Brotato-Review-Rogue-Ranker.png 1536w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">How to Beat Brotato</h2>



<p class="wp-block-paragraph">If you’re curious about beating difficulty five for your first time, consider the Engineer.&nbsp;</p>



<p class="wp-block-paragraph">Play into the character’s obvious strengths. Stack engineering upgrades and engineering items until around wave 10, and then start to build out your defensive stats.&nbsp;</p>



<p class="wp-block-paragraph">If you miraculously roll Ricochet or Bandana, pick them up or save them until you can.&nbsp;</p>



<p class="wp-block-paragraph">Hover around your turrets, leading enemies through the highest turret coverage areas repeatedly as you kite. Rinse and repeat; the boss fight plays out the same way.&nbsp;</p>



<p class="wp-block-paragraph">If you have a specific character in mind you’d like to try, take the extra two minutes and read <a href="https://brotato.fandom.com/">one of the Brotato Wiki pages</a>. A little info can take your gameplay to the next level, and the bragging rights won’t hurt.&nbsp;</p>



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



<p class="wp-block-paragraph">Below are a few frequently asked questions I noticed beginner players had, so I thought I’d add a few here.</p>



<h3 class="wp-block-heading">How Many Waves Are In Brotato?</h3>



<p class="wp-block-paragraph">There are twenty waves in Brotato.&nbsp;</p>



<p class="wp-block-paragraph">Some of them are considered “farming waves,” others are thought to be potentially more difficult than the boss fight on wave 20, like “elite” waves. Brace for impact, RNG plays a role here.</p>



<h3 class="wp-block-heading">How Do You Reach Level 10 Before Wave 6?</h3>



<p class="wp-block-paragraph">If you want to level up quickly enough to reach level 10 before wave 6, you’ll need a specific exp-focused build or a character that lends itself to those bonuses. Some people see this as a component of ensuring higher difficulty wins.&nbsp;</p>



<h3 class="wp-block-heading">When Did Brotato Come Out?</h3>



<p class="wp-block-paragraph">&nbsp;Brotato had its full release on June 23, 2023, after a lengthy Early Access period where mechanics were refined.&nbsp;</p>



<h3 class="wp-block-heading">Who Made Brotato?</h3>



<p class="wp-block-paragraph">Brotato was made by<a href="https://store.steampowered.com/publisher/blobfishgames"> Blobfish</a>, an indie publisher with three prior releases in this category.</p>



<h2 class="wp-block-heading">Summary</h2>



<p class="wp-block-paragraph">Brotato is a blast. Even when you’re losing, the punchy combat and satisfying shop mechanics keep you locked in, hoping for a sliver of luck to keep you in the fight.&nbsp;</p>



<ul class="wp-block-list">
<li>The weapons are engaging, and the variety adds tons of replayability.&nbsp;</li>



<li>The tight responsive movement deepens immersion and makes every keystroke or stick shift feel impactful.&nbsp;</li>



<li>The characters each have distinct personalities and feel unique from the rest.&nbsp;</li>



<li>The item shop is robust enough to get the job done, and items feel meaningful as soon as you get them.&nbsp;</li>



<li>The music somehow feels appropriate for a potato on the hunt for aliens, whatever that means.&nbsp;</li>



<li>The art style is top-notch, highlighting the ridiculousness of your little potato’s constant wardrobe and weapon changes with a nice somewhat ‘muted’ environment.&nbsp;</li>
</ul>



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



<p class="wp-block-paragraph">At the game’s current price, if you’re considering it, it is hard not to recommend the game.&nbsp;</p>
<p>The post <a href="https://rogueranker.com/brotato-review/">(200+ Hours) Honest Brotato Review</a> appeared first on <a href="https://rogueranker.com">Rogue Ranker</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://rogueranker.com/brotato-review/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-09-21 09:53:59 by W3 Total Cache
-->