Tyrrhia: True, it had never happened before . . .
but there were foretelling signs. According to and recorded by SteamDB, the highest badge level for the Summer Sale 2015 was
, and the highest badge level for the Winter Sale 2015 was [url=https://steamdb.info/badges/?appid=425280] 19,619. This highest has only been going up over the years, and at alarming rates for the last sale, so it was extremely likely that someone would cross that threshold, even if not this sale but the next one.
And I'm not calling it a bug because it obviously isn't, it's working as intended, rather a poor decision. I'm not against optimisation, but there I don't think it was necessary.
The thing is, all software has natural design limitations both conscious and unconscious in it as well as bugs, and any limitation that is intentional or unintentional in the design or any bug that is uncovered in a given program someone can think and say "How could they possibly be so stupid to let this happen? They SHOULD HAVE KNOWN!". While it may be true to say for some software some of the time, in particular software written by low level programmers without the proper skills and motivation/care, they might deserve it even. But today's software is infinitely complex, interacting in complex ways with hundreds of APIs developed by diverse teams of people at a variety of skill levels. As a software developer myself, I think that for people to expect that such complex software should never have any unforeseen limitations or bugs in it is rather naive though. It's always easy for people to say "they should have known" or "they should have caught this before" for anything. It's even true for some things, but it's hardly reasonable for every possible bug. This issue isn't even a bug IMHO, and when it was designed, I doubt many programmers expert or otherwise would review that code and say "hmm, a signed short int is too small for a maximum number of badges". Any reasonably minded programmer would be sane to think "no idiot would ever get that many badges" if they even thought that much about it to begin with. :)
I do agree with anyone who thinks it is always best to avoid artificial limitations on things - but you have to make an estimate and draw a line somewhere one way or another. Even a 32bit integer or 64bit integer has an upper limit. Maybe Donald Trump might decide he wants to overflow a 32bit int worth of Steam badges some day, you never know. :) Realistically it is perfectly rational for their programmers to have considered a 16bit signed to be big enough, even if it turns out there are morons out there who would waste that much money to break the software. Seriously, Valve makes shit tonnes of money from all this trading card nonsense, so if they ever thought someone would actually spend that much money on trading cards and badges, you can bet your right eye that they would have made it a 64bit int hands down. I bet they do just that in the future too. :)
Tyrrhia: I'm not witch-burning them. I used Steam for some years and never had any problems with Valve. "Dumb" isn't a strong word, and in this context, it just means that I really don't know why they made this choice while the other was becoming more and more the right one.
Perhaps you're not, but many people are and do for sure. For something like this it's often with arguments about how obvious it is to not have such a limitation. Well yeah,
after the fact is known everything is obvious. I'd like to see thousands of lines of source code written by people who think such things are that obvious to review. I bet I could find dozens of similar limitations/issues in their code in 10 minutes if they can even write code. :)
Tyrrhia: Also, on their FAQ, it says that "there is no limit to the number of times you can upgrade this badge." I know, expecting infinite isn't realistic nor feasible, but a small bottom-of-the-page note for the more than average user could have softened this issue: "* Except for hardware / software limitations. Effective maximum level: 32,767."
Obviously they never remotely anticipated that ever being a limit that would or could be broken by someone or they would have increased the limit rather than put some obscure notice like that up. They're not putting a limit in place like that to prevent something, rather code is written with sensible upper limits that you expect will never be breached. You're not going to then study every line of your code and sprinkle your documentation with 10000 warnings about the actual real world reasonable limits you've chosen. People don't read EULAs, they're not going to read unnecessary comments like that which one person in 15 years has managed to trigger. Something like that isn't remotely worth a warning or acknowledgement.
Tyrrhia: Oh, I sincerely hope that you're right, but I don't hold my hopes up, especially considering Valve's history.
And why be pessimistic all the time? Well, the other question could be posed as well: why be optimistic all the time? I am in the pessimistic camp. I don't like to be disappointed so I always try to assume the worst and try to imagine all possible outcomes, however far-fetched they may be; and when something better than what I was hoping for happens, I can be thankful that the worst did not happen. Personalities.
Everyone has views that are optimistic about some things, pessimistic about others, but what I want to know, is why not be
realistic all of the time. An optimist sees the glass as half full, while the pessimist sees the glass as half empty. I on the other hand am a realist, I see the glass as being twice as big as it needs to be in order to contain the amount of liquid that needs to be contained.
:)