Monday, 27 October 2014

Localization and Games

Without localization I would never have played games like Final Fantasy, Pokemon or Touhou. Localization was very important for bringing games to me. Mobile game markets around the world keep growing, and it just keeps getting easier to distribute games. So I start from the supposition that one of the biggest mistakes that developers can make is to ignore the importance of being ready to localize their games.

The scenario I think of is this - what if one of your games gets a popularity boost when a foreign YouTube celebrity reviews it? You may want to localize quickly to appeal to your new fans, but you might be presented with a lot of technical problems if you have not already prepared for this.

Here are some technical issues with replacing just the textual elements:

1. Support for extended or foreign character sets.
2. Some strings being longer than others and overflowing UI bounds.
3. Having a UI that can actually accommodate more text.
4. Different units for currency, speed, time, date, and so on.
5. Different order of string replacement needed for variables you insert into strings.
6. Being able to accurately detect the locale across all platforms in the first place.
7. Being able to QA test the different localization and UI configurations effectively.

The list goes on and on. Point 7 is a killer - if you do not implement runtime localization and UI reconfiguration, you (or somebody) is going to have to spend way longer testing this stuff. Furthermore, if your game has cultural references in art or music, you'll probably have to change those. I don't necessarily mean the Castlevania-style making your statues less naked changes, but good reasons like swapping voice acting tracks about. For that you need an asset lookup and replacement system that is aware of the system locale.

You also need this stuff automated away at a level below your game and tested using an automated suite. In the long run this saves money and time, which can be valuable whether you're a large business of a lone developer.

The creator of Papers, Please! wrote a lengthy article about the work that was put into localizing the game, which shows just how much work goes into this. I'm convinced that some of it would have been easier if he had used a mature localization framework at his disposal from the start. I looked at the available Haxe libraries out there for localization and found firetongue and thx.culture, which look like useful tools. But on the technical side, I think it is going to be a long time before Haxe has a library like ICU.

I'll look into this in more depth when localizing some of my own games in the future.

Saturday, 8 March 2014

TypeScript 1.0 RC

Excited to note that TypeScript is nearing a 1.0 release. A lot of stuff has happened since I last looked at where the language was going, and I was pleased to see that three.js TypeScript definitions made it into DefinitelyTyped. There are about 300 TypeScript type definitions for popular libraries in there now.

TypeScript is a great springboard for getting into web development and is a massive improvement over using straight up JavaScript. The tools support is magical and a definite improvement, and as already demonstrated by groups like the Turbulenz people, it's good for games.

A potentially sticky point I wonder about is tools support maybe never becoming comprehensive enough to match the built-in Visual Studio offerings, and this in turn maybe limiting uptake by developers on other platforms.

Thursday, 2 January 2014

Virtual Economies and Goldfarming

Back in the day I played RuneScape. It had unusual PvP mechanics and a great community.

The combat system was overhauled last year, which put me off the game. But eventually, owing partly to negative feedback about the new combat system, an official old version of the game was released called RuneScape 2007. I had a look at the RuneScape 2007 servers. All characters started off fresh. It would have taken forever to level up again, so I never really got back into it.

Now, Runescape has black market that deals in virtual goods exchanges for real-world cash. At the time it didn't occur to me, but with a little forward planning and a lot of bot script preparation it would have been possible to have a bot farm ready and waiting for the release.

Here is an example of what a gold farmer could have done using bots that did pickpocketing to collect gold at the start of RuneScape 2007:
  1. On occasion pickpockets get caught and take damage from NPCs. The first step would have been to get health restoring food - the cake stall at Ardougne would have been a good bet.
  2. After getting set up and in position, collecting 12,000 cakes per bot would take perhaps a couple of days.
  3. With the experience gained from cake thieving, the bots could be put straight onto pickpocketing the Knights of Ardougne that patrol around that area for 50 gold per success, running to the nearby banks for cakes when health dropped.
Given 25 bots, each successfully thieving from an NPC around once every 5 seconds and going non-stop, a gold farmer would bring in about 20 million gold per day that they could pass on to resellers. In the first weeks prices were around $20-100 real world dollars per million RuneScape gold, as borne out by historic quotes on forums like Sythe.

Based on these figures, an efficient and dedicated botter could have made tens of thousands of dollars worth of gold in just a few months. Now that is partly speculation and a best-case scenario, but it's clearly a tempting offer for many, which is why gold farming is so widespread.

There's a good case study about RuneScape 2007 goldfarming here: