Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

I have not played it, so I cannot answer any of your three questions and I am not going to guess at them 🎮 What I did instead was go over the page and the metadata, because you said only two people have ever played it, and I think a chunk of that is fixable in about five minutes without touching the game.

Four filter surfaces you are currently opted out of.

itch’s browse sidebar filters on more than tags. It has Input methods, Average session length, Accessibility features and Genre, and each one is driven by a metadata field on your edit page rather than by your tag list. Your info panel currently shows Genre, Platforms and Tags — and nothing else. So:

Input methods is empty. There are Touchscreen and Smartphone checkboxes in that filter, and you have shipped a mobile-first touch game that does not appear under either. That is the single most on-target filter for your game and you are invisible in it.

Accessibility features is empty. Your own description says “one-thumb” and “drag anywhere to move”. There is a One button entry in that filter. Whether that is literally true for you is your call, but right now you are in none of the accessibility filters at all.

Average session length is empty. A survivor-like run is a few minutes, and “A few minutes” is a filter people genuinely use when they want something to play right now in a browser tab.

Languages is empty. You shipped ELEVEN languages, which for a solo browser game is remarkable, and a visitor looking at your page cannot tell. I could not find a language browse filter so I am not going to claim you are losing search traffic — but it is the most impressive fact about the build and the page does not say it anywhere itch renders it.

Your tags themselves are good, by the way — Arcade, Bullet Hell, Casual, html5, mobile, one-button, Roguelite, Survivor-like is an honest, well-chosen set, and you have two free slots. And you are currently #18 on Most Recent for the survivor-like tag. That is real, live visibility, and it is the shelf that expires, so the metadata above is worth doing this week rather than next.

Now two things about the game, from what you described rather than from playing.

The 18% dilution will come back, and a pity rule is what stops it.

You diagnosed that beautifully — the boss was not tanky, the card pool was diluted, so the main weapon never levelled. But you fixed it by fixing the pool, and pool composition is exactly what changes every time you add content. You have over 20 cards now. At 30 you will silently be back where you were, and stage 5 will break again without anyone touching stage 5.

The version that survives content patches is a guarantee rather than a ratio: force the main weapon’s upgrade into the offered set until it reaches level N, or run a pity counter that guarantees it if it has not appeared in the last K level-ups. Then adding cards can never re-break the early game, and you stop having to re-tune the pool every patch.

Airplane mode is a promise your storage may not keep.

A single HTML file with no external dependencies is a genuinely lovely piece of engineering, and it does mean the game keeps running once loaded. But your Candy Shop is meta-progression, which means the thing players actually accumulate lives in browser storage, and browser storage on a phone is not as durable as people assume — iOS in particular will evict script-writable storage for sites that have not been visited in a while, and a game running inside itch’s embed iframe is in a worse position for this than a normal first-party site, not a better one.

The reason this never shows up in testing is that testers play daily. The player who loses everything is the kid who comes back after two weeks, and they will not report a bug, they will just not play again.

Cheap fix, and it is the standard one in browser roguelites: an export/import save code. A blob of text on the results screen that the player can copy somewhere. It costs you a day and it converts a silent, unreportable failure into something a player can recover from.

One last small thing, since you are touch-first and on an embed: make sure the canvas sets touch-action so the itch page underneath cannot scroll or double-tap-zoom while someone is dragging. On a survivor-like where the whole input is a held drag, that one CSS property is the difference between good controls and unusable ones, and it only misbehaves on real phones, never in a desktop emulator.

Genuinely nice to see someone build no-gacha, no-ads, no-FOMO deliberately and say so out loud ⚡

Thank you so much for taking the time to write such a thoughtful and high-value breakdown! This is easily some of the most practical and actionable advice I've received.

Here's what I'm doing based on your feedback:

  1. Page Metadata & Discoverability: You completely opened my eyes to itch.io's sidebar filters. I had no idea I was opting out of so many targeted surfaces. I’m updating the edit page right away to fill in Input Methods (Touchscreen/Smartphone), Accessibility (One-button), Session Length, and highlighting the 11 supported languages.
  2. Pity Rule for Card Pool: Your point about future-proofing card pool dilution hit the nail on the head. Manually tuning the ratio for each content update would have been a maintenance nightmare. I'm going to implement a pity counter / guaranteed upgrade rule for the main weapon to keep early runs consistent regardless of pool size.
  3. Save Durability & Export/Import: The iOS storage eviction caveat is a huge blind spot I missed during testing. Adding an export/import save string on the results screen is such a smart, lightweight solution to prevent silent progress loss.
  4. Touch-action CSS: Double-tap zoom and accidental scrolling have definitely caused friction in mobile iframe embeds. I’ll make sure touch-action: none; (or appropriate handling) is properly set on the canvas container immediately.

Really appreciate the detailed feedback and the kind words about the no-gacha/no-ads design. It means a lot to an indie dev! ⚡