Published: October 19, 2025
2
1
6

We accidentally region-locked our game… with a comma. 🫠 A tiny punctuation bug wrecked our first 48h of Steam Next Fest. Here’s how we found it, fixed it, and what we improved. #SteamNextFest #gamedev #indiedev

Image in tweet by Blue Shrimp Games

We were super excited to launch our Survivor Roguelike on steam after starting it 1 year ago. It's our first game, so we were excited to see people play it! After two days though...we suspected something was wrong.

We had reports by some players who couldn’t get past character select. The Characters were missing! Median session dipped to ~3 minutes. We had three reports (Twitter, Steam forums, a friend) and still couldn’t reproduce it locally.

Image in tweet by Blue Shrimp Games

We got in contact with one of the users, swapped configs and save files. Nothing. So we shipped a debug build with deep logging. That’s when the lights came on 💡

Image in tweet by Blue Shrimp Games

Root cause: locale-sensitive number parsing in our YAML loader. If your OS used a decimal comma (“0,2”) instead of a decimal point (“0.2”), the parser failed → the game didn’t load

Image in tweet by Blue Shrimp Games

We proved it by flipping Windows → Region → Additional settings → Decimal symbol to a comma. Instant repro. One punctuation mark. Whole launch day vibe = gone 😭

Why it hit hard: our game is fully data-driven. Levels, weapons, characters, unlocks, passives, permanent upgrades, enemies, state machines, pickups—all YAML, packed into an encrypted .pak file. The game literally was toast!

Image in tweet by Blue Shrimp Games

We follow a Sakurai-style (yep the guy who made Super Smash Brothers!) parameter workflow (YAML → game). Great for fast tuning… bad if your parser trusts the player’s locale. He even uses spreadsheets to store character data, allowing non-devs to update without a rebuild!

Image in tweet by Blue Shrimp Games

The fix: a single parsing utility for everything. Normalize input → parse with a culture-agnostic format → validate schemas. Then we swept the codebase.

Image in tweet by Blue Shrimp Games

The cleanup was huge: hundreds of call sites across 60+ files. We handled lists, ranges, scientific notation.

Image in tweet by Blue Shrimp Games

While we were in there we hardened string handling (hello Turkish İ/i) and made sure we always format and parse with the same rules.

Image in tweet by Blue Shrimp Games

Verification: we shipped a beta to the affected player → ✅ confirmed. Then we published the fix along with QoL + performance improvements we built during the hunt.

Image in tweet by Blue Shrimp Games

Timing hurt: Next Fest front-loads discovery; those first days matter. Our fix landed around day 3, and the visibility window had cooled. That comma cost us.

Image in tweet by Blue Shrimp Games

If you bounced on day 1–2: totally fair. That’s on us. The build is fixed and the game feels way better now. Try the new build in the final hours! #SteamNextFest #gamedev #indiedev #i18n

We want your ideas: weapons, abilities, enemies—drop them below. If it fits the vibe, we’ll try to add it during the fest. Collaboration > commas. 🔧✨

Takeaways for devs: never rely on player locale for parsing; centralize parse/format in one utility; validate schemas on load; test with comma & dot locales; add CI checks to block mixed separators. Checkout our steam page below ^_^!

Share this thread

Read on Twitter

View original thread

Navigate thread

1/18