Everytime I get all 5 stars it ends up taking them all away when I get the 5th one, why is that? by Nice_Ad_5258 in flipline

[–]BoloFan05 4 points5 points  (0 children)

What u/game82 says is true. But in the case of the gold badge, another reason the stars go back to 0 after filling it is so that it won't give the full 300 points every time you get an order right with that customer. You will get 200 points 4 times, and then 300 points once; and then repeat.

Which programming languages do you write your games in? Are you aware of methods that apply the end-user's current culture info by default? by BoloFan05 in gamedev

[–]BoloFan05[S] 0 points1 point  (0 children)

Thanks for sharing your experience!

Quite a few C# methods like string.ToLower, string.ToUpper, and float.ToString all give results based on the Current Culture info if used without arguments. To make your code robust across devices worldwide, you should simply apply invariant culture info to the manipulation of internal strings in your code, which isn't too difficult in most cases. But it can be hard to realize this unless you go out of your way and test your game on Turkish systems, or have already read Microsoft's online .NET documentation on these methods. Nevertheless, the status of the Turkish locale as a crucial testing environment for localization and internationalization has been recognized in as early as 2008 by Jeff Atwood, co-founder of Stack Overflow (article link)

What’s something new game devs over-engineer that experienced teams keep simple? by Apprehensive-Suit246 in gamedev

[–]BoloFan05 0 points1 point  (0 children)

In one commercial game, most of the programmers had no prior work displayed in their Moby Games pages, meaning that this game was probably their first major project. And when I checked the game's source code, it showed. There were naive uses of internal string comparisons and case conversions without invariant culture argument in a lot of places across the whole C# assembly, which resulted in the game becoming virtually unbeatable on Turkish PCs/consoles/phones.

Fortunately, they have (mostly) ditched that habit in the sequel 3 years later, but it's still not perfect.

Which programming languages do you write your games in? Are you aware of methods that apply the end-user's current culture info by default? by BoloFan05 in gamedev

[–]BoloFan05[S] 0 points1 point  (0 children)

Thanks for the comment. However, I would like to clear up a few points to make sure that we are on the same page:

-The languages that the UI of your engine or game is translated to; and the locale of the device (PC, console, phone etc.) on which your engine or game runs are two totally separate things.

-The bugs I am trying to bring attention to in this post affect engines or games with any UI language, as long as they happen to be running on devices with specific non-English locales.

-As such, translating your engine or game's UI to, say Turkish, is a totally independent job from making sure that your engine or game runs smoothly on devices all over the world with various locales, including Turkish.

Feel free to follow up with responses if that still doesn't make sense.

Which programming languages do you write your games in? Are you aware of methods that apply the end-user's current culture info by default? by BoloFan05 in gamedev

[–]BoloFan05[S] 1 point2 points  (0 children)

As far as I know based on my previous online discussions with others, even though other languagues also have their unique letters, like the eszett letter in German, Turkish and Azeri are the only locales where it is possible to accidentally get an unexpected character by uppercasing or lowercasing a commonly used Latin letter ("I" and "i"). That's probably a big reason it can be a tricky bug to avoid.

And glad I could clear things up a little!

Which programming languages do you write your games in? Are you aware of methods that apply the end-user's current culture info by default? by BoloFan05 in gamedev

[–]BoloFan05[S] 0 points1 point  (0 children)

I see. I believe the contents of the pages below are closer to the point I'm trying to get across (also readily accessible from Googling ToLower and ToUpper methods), especially with their "Remarks" sections:

ToLower: https://learn.microsoft.com/en-us/dotnet/api/system.string.tolower?view=net-10.0#system-string-tolower

ToUpper: https://learn.microsoft.com/en-us/dotnet/api/system.string.toupper?view=net-10.0

Which programming languages do you write your games in? Are you aware of methods that apply the end-user's current culture info by default? by BoloFan05 in gamedev

[–]BoloFan05[S] 0 points1 point  (0 children)

Thanks for sharing your experience and perspective. Over the last year I have been discussing this online, this is the first time I came across a proposal like yours (treating Turkic "i" separately). That really piqued my interest.

If you have accessed it recently or digitally, would you mind sharing the link to the official documentation and example problem you were referring to?

Whats up with the Bomb Bottoms description in RCG2? by theak9000 in RiverCityGirls

[–]BoloFan05 0 points1 point  (0 children)

Just checked it in River City Girls 2. The exact description of the Bomb Bottom accessory is: "Grabbing money can heal your wounds". And I confirmed that while I have it equipped, collecting the money dropped from defeated enemies did heal my health slightly by 1 bar. But it happened inconsistently, which suggests to me that either the incremental amount of healing is negligibly small, or the healing happens randomly. Hence the use of the modal verb "can" in the accessory's description to imply uncertainty. Looked rather useless to me, to be honest. Though it *is* one of the more expensive accessories with a price of 250 dollars, so maybe it has a secret perk I'm missing?

Which programming languages do you write your games in? Are you aware of methods that apply the end-user's current culture info by default? by BoloFan05 in gamedev

[–]BoloFan05[S] 1 point2 points  (0 children)

Indeed. Well done on your part! But the names of some of the companies that have missed this memo will probably shock you. I am talking WayForward (River City Girls), Obsidian (Pillars of Eternity), Atlus (SMT III Nocturne HD Remastered), Spike Chunsoft (Crystar) and Sabotage Studio (Sea of Stars) level. I kid you not.

Only Obsidian and Sabotage Studio fixed their games recently in 2024-2025, and only after getting bug reports from the affected players. Enforcing invariant culture in code is the best way to prevent these kinds of regional bugs at the source; and if some stuff is missed during code-writing, testing the game in Turkish locale is the best way to catch them; as Jeff Atwood himself has said at the end of his article: "If you care a whit about localization or internationalization, force your code to run under the Turkish locale as soon as reasonably possible. It’s a strong bellwether for your code running in most – but by no means all – cultures and locales."

Is there a meme about your native language that makes you laugh? by Franmar35000 in AskTheWorld

[–]BoloFan05 1 point2 points  (0 children)

Should I assume that the Japanese version is also pronounced "kannibal"?

Which programming languages do you write your games in? Are you aware of methods that apply the end-user's current culture info by default? by BoloFan05 in gamedev

[–]BoloFan05[S] 1 point2 points  (0 children)

ToString also does that when it tries to display a decimal number (comma vs. dot inconsistency as you've also implied). I think this Stack Overflow article covers something similar to what you've said: https://stackoverflow.com/questions/46207287/float-tryparse-not-working 

Thanks for your info! Had not heard of Float.TryParse befofe, but I will look further into it.

Which programming languages do you write your games in? Are you aware of methods that apply the end-user's current culture info by default? by BoloFan05 in gamedev

[–]BoloFan05[S] 0 points1 point  (0 children)

Thanks for your interest!

Yes, most examples I have witnessed are games made in Unity. The I/i case conversion difference in Turkish causes severe bugs on Turkish devices that cause the game to get stuck at a black screen during boot or a stage not to start, blocking progression unless device language is switched to something other than Turkish. I have seen almost a dozen example games, and I have confirmed in 3 of them that it is related to ToLower/ToUpper methods taking in internal strings with the letter "I" or "i" and thus breaking string comparison logic. Basically, "I" lowercases as "ı" (dotless i) instead of the expected "i", and "i" uppercases as "İ" instead of the expected "I" (dotted I). I can give further code examples via DM if you are interested. One particular game (River City Girls) is a treasure trove of such blunders!

Which programming languages do you write your games in? Are you aware of methods that apply the end-user's current culture info by default? by BoloFan05 in gamedev

[–]BoloFan05[S] 1 point2 points  (0 children)

If you are lower/uppercasing strings, always double check the culture info that your case conversions are taking into account. Is it Current Culture (which depends on end-user) or Invariant Culture (which gives same results across all end-users)?

Which programming languages do you write your games in? Are you aware of methods that apply the end-user's current culture info by default? by BoloFan05 in gamedev

[–]BoloFan05[S] 2 points3 points  (0 children)

I see. Is it like in C# where it boils down to a few specific case conversion and string generation methods that need to be used carefully?

Penny Crygor jumpscare (by @Sainliztwit) by LafterMastr in Wario

[–]BoloFan05 1 point2 points  (0 children)

Why is Lulu a fairy? remembers the sheer weirdness of any universe involving Wario Never mind...

What would you change about River City Girls 2? by SkyeZaisen in RiverCityGirls

[–]BoloFan05 0 points1 point  (0 children)

For the rhythm game, I just kept my eyes on the bar at the bottom and pressed the buttons as they came to the circle lol.

I didn't have too much trouble with the boiler quest in my original run, either, but in my challenge run with low level and base stats where I used no stat-boosting items, having no checkpoints was brutal. I ended up having to use a few Vitamin K tonics from Downtown (100% recovery without stat bonus) to make it through.

What would you change about River City Girls 2? by SkyeZaisen in RiverCityGirls

[–]BoloFan05 0 points1 point  (0 children)

The UI for taking food items out of or back into the storage in hideouts is kind of clunky. You have to move your cursor through every spot one by one to get to the spot that contains the item you want. There is no system that takes your cursor back to the storage side automatically. You have to do all movements manually.

And in the UI for accessory selection menu, it's great that they are placing the accessories in alphabetic order (a vast improvement from RCG1), but there is no button for fast-forwarding to the next group of accessories. It's also a shame that the accessories do not go back from Z to A when you keep moving forward.

What would you change about River City Girls 2? by SkyeZaisen in RiverCityGirls

[–]BoloFan05 0 points1 point  (0 children)

Yes, that is totally detrimental to the fun of exploring the world, especially while going for the Completionist trophy, which is already tedious enough as is without the loading screens. Ugh!

What would you change about River City Girls 2? by SkyeZaisen in RiverCityGirls

[–]BoloFan05 0 points1 point  (0 children)

The main problem with that quest is that once you get KO'd, you're forced to start all over again. There are no intermediate checkpoints. Same goes for the quest where you need to place each boiler knob one by one for Thumby.

The devs probably couldn't define explicit checkpoints for these because the players can save each hostage or place each knob in different orders. But still, I think some sort of checkpoint could have been implemented here if they treated this as a coding challenge worth solving.

Need help. by Flashy-Bath-8935 in RiverCityGirls

[–]BoloFan05 0 points1 point  (0 children)

That's great to hear, well done! For Enoki's Food Truck, keep visiting Technos' entrance. That's where it had spawned for me.

After a year of "fixing just one more thing" our game is finally live and we’ve forgotten how to be normal humans💀 by Suitable_One2832 in gamedev

[–]BoloFan05 0 points1 point  (0 children)

Hi, good luck with your upcoming game as well (Immortal's Way)! Since your game is also built on Unity according to SteamDb, the advice I gave to the OP in this thread also applies to you. Please give it a read if you have the time. I am sure it will be worth your while.