There were also rumours of an internal scripting metalanguage for RS, that had no local variables and all the other hallmarks of something put together in a hurry that ends up being a success and then a burden.
I'd save Christmas and birthday cash to pay for my subscription annually.
Then World of Warcraft came around...looking back, that was the end of the Realm.
It's still around, believe it or not. The player count is usually ~20 people. Sometimes I get nostalgic and install it just to hear the music when it launches.
Ahh, memories. Damn shame the game is owned by a private family now instead of actual developers, the game would be a massive hit on mobile with a f2p model.
At least you can still log in and meander around. I'd love to be able to do that with MxO, hyperjump around the city a bit and just enjoy the sounds and settings. Alas, the servers get shut down by SOE and that's the end of that. A shame when I reckon you could run it off a sodding azure box for sod all cost these days.
The whole ethos of the company, driven by Andrew, was "minimal software for maximum output". I learned a lot about how much you can benefit from concentrating on efficiency up front compared to how much that ends up creating problems down the road.
I can remember pretty peculiar stuff from the game, now from my perspective as a programmer.
I remember that the anti-swearing algorithms detected bad words in a lot of ways, but those ways were so much that you would get your normal conversations sensored (oh man, I hated those asterisks so much). You would always find a way to say the bad word anyway... I guess that with today's advances in machine learning those ambiguities could be removed in a better way.
Love the 'null' story by the way.
Let's be honest, this is not important. Even if 12 year olds didn't constantly see/hear/use "bad words", there are really no ill effects of lack of censorship in that way.
One parent sees a dick pic/swearing in a game, they ban the game, tell all their friends and then someone puts it in a school FB group, which is then shared around the country.
(Yes, Runescape was before much of this. That just made it slower, but the same process happens)
Why did this happen though? I mean, why was it casted to begin with and why was there a null value?
Nulls are fairly normal in Java, and modern Java systems often have ways to define if something can return nulls or not. In the old days you just had to know.
Why would half of the players have a playername of null?
It's also highly ambiguous in this specific case (I had trouble understanding the sentence, too), and a simple "him/her" would have been preferable.
Reading back, perhaps "the player" would be better than "they", if it was just one player having problems.
What does this mean?
"" + null should be null (or throw an exception). Null is null and nothing else.
Since the empty String is a valid String, and Strinfg.valueOf() also returns a String, what other behavior would you ever imagine being sane or possible?
IMHO, String.valueOf() throwing NPE upon encountering a null reference would be both sane and possible.
Unfortunately, it does indeed appear that it returns "null" instead [1].
[1] https://docs.oracle.com/javase/7/docs/api/java/lang/String.h...
log.trace("doStuff(" + obj1 + ", " + obj2 + ")");
to this:
log.trace("doStuff(" + (obj1 != null ? obj1 : "null") + ", " + (obj2 != null ? obj2 : "null") + ")");
The second one is IMHO quite hard to read, even in this short example (and code readability is important when you do code reviews)
For string formatting, rendering "null" (or "") makes sense; for coercion not.
But still , "" + null being "null" is just plain crazy. I could see "" + null == "" (as you are concatenating nothing to the string), or "" + null == null as you are concatenating a string to null, but "null" is bonkers.
One particular user accumulated thousands of black marks. We thought they were doing something incredibly bad. A black mark gets you banned for a short period of time, this player was banned for a millennium. But they kept sending messages saying that it was unjust, they did nothing wrong.
Turns out their playername was 'null' and half of other players' offences were attributed to them due to null in Java being cast to 'null' curing concatenation...