Archive for October 2009

10

October 2009

Aion - How Not to Launch an MMO

As is becoming tradition when a new MMO launch gets lots of hype, BootBlock and I recently started playing Aion. Aion had already been out in Korea for almost a year, so the game should be stable and the launch should be smooth. The gameplay videos looked cool - a lot like Final Fantasy XI, the first MMO I ever played (on a console!).

Although the game hasn't really lived up to the hype, and has had more bugs and missing features than NHibernate, it's been an interested change from playing World of Warcraft. Unfortunately, the launch hasn't been anywhere near as smooth as it should've been.

Note: I've tried to use the word "realm" in place of "server" to refer to a named world that you select to create your character on when playing an MMO to avoid confusion with physical (or virtual) servers.

Realm Queues

The first problem Aion has experience is massive (2 hours plus) realm queues caused by too many people trying to log onto the same realm at the same time. Queues of this length are unacceptable for a game that many will only want to play for a few hours after work/school. This may sound like NCSoft just didn't anticipate the demand for their game, but I disagree. There were over 400,000 pre-orders. NCSoft knew this. They also knew exactly how much stock they'd shipped to retailers for launch week. They'd also already launched in several countries - there's no excuse for getting the capacity so wrong.

Scaling in the Wrong Direction

If there's something to be learned from previous MMOs, it's that the population on a realm is a critical factor in how well people can play the game on that realm. Too few, and people won't be able to find groups. Too many, and the realm will be too crowded and people will have to fight over mobs.

Aion came up with a perfect solution. They call them "Channels", and it allows multiple "instances" of a given zone to split the players. While there are some issues with the implementation, this drastically simplifies the problem of managing population. The number of "Channels" can be changed per zone, on the fly, by NCSoft. This means instead of having lots of realms at launch and potentially having the population fall after the first few weeks, NCSoft could simply load a lot of channels on a small number of realms and reduce them over time as the number of players falls (along with the hardware and player caps associated with the realm).

The problem in Aion, is that it looks like their realms are restricted to a number of players (and an amount of hardware), full stop. It doesn't look like the hardware assigned to a realm can be scaled at all. This means when the queues became very long, they were seemingly unable to increase the hardware assigned to some realms (and therefore the player caps on those realms), and instead had to set up some new realms. When the population falls (which it will, after this launch!) they may end up with many underpopulated realms tying up lots of hardware. This may result in some realms being merged - a complicated and messy process.

Character/Realm Transfers

Ok, let's forgive NCSoft for not being able to anticipate demand for their game. They rolled out some new realms pretty quickly, so at least now everyone can play, right? Wrong! Since most of the people playing have created (and levelled) characters on the original (crowded) realms, they'll have to start all over again if they move realms. This means the new realms are great for new players, but not so great for existing players (specifically those that pre-ordered and had already played for over a week when the new realms arrived). Since there's currently no way to transfer your character from one realm to another, you really are stuck between starting again, or waiting many hours every time you want to play.

NCSoft do say that they're working on a character transfer feature for the coming months, but it's really too late. It's an important part of balancing the population of your MMO and should've been there from the start.

Bots, RMT and Spamming

Most MMOs have been at some point plagued by bots and spammers. RMT stands for "Real Money Trading" which refers to trading real money for in-game items. In most pay-to-play MMOs this is strictly against the rules. RMT websites take advantage of players that are happy to spend some real money in order to have an advantage in the game. They will write bots to login and play the game, killing mobs and looting money and items. They will also spam logged in players with messages asking them to visit their websites to purchase gold.

Not so long ago, this was a huge problem in World of Warcraft. However, if you login today you'll probably see very few bots or spammers. Players shouted about this a lot in the WoW forums and Blizzard (eventually) reacted. There are now very easy methods in game for reporting players as bots and spammers. When someone is reported a number of times, they will automatically be silenced and flagged for a GM to investigate. There are also restrictions stopping trial (free) accounts from speaking in public channels or sending whispers. This has had a significant impact on the RMT business and it's rare to see bots or receive spam these days.

Aion launched without any protection against this. The forums are now full of complaints about bots and spammers. NCSoft have patched in a method for blocking users that send you spam messages, but whether enough of these blocks will silence an account is unknown. If not, then it's useless. No spammer sends multiple messages to the same person from the same character. Never mind, NCSoft is on the case with some bans...

Mass Account Banning

In order to quickly reduce the number of bots and spammers in game, NCSoft have started mass banned accounts and IP ranges. It looks like they're hitting a lot of innocent people with the ban hammer as they go. Whilst I don't believe everyone crying in the forum is innocent, there are far too many of them for me to believe they're all botters/gold buyers.

The mass banning has only increased the amount of complains in the forums. The bans happened on a Friday evening, right before the weekend when most people will want to play (and presumably when they have reduced staff to resolve these incorrect bannings).

Aion had a lot of potential to take a huge chunk of the MMO market from Blizzard. Unfortunately a lot of the issues during launch will have had a detrimental impact on the game. Just like Age of Conan, a lot of players will leave after the included 30 days, never to return. Hopefully other companies working on future MMOs have been watching this launch (and others) carefully to avoid making the same mistakes.

09

October 2009

Importing iPhone Dev Keys on a new Mac

When I set my Mac Mini for iPhone development, I was told to backup a key file (.p12) because if I lost it and needed to reinstall, I wouldn't be able to deploy to my iPhone (yikes!). I backed it up as suggested, and made sure I had copies of it all over my Mac, PC and the interwebs.

With a clean install of Snow Leopard, it was time to import this keyfile and make sure everything still worked. As instructed in the docs, I double-clicked on the .p12 file and was asked for the password. I entered it and got the following message:

An error has occurred. Unable to import an item. The contents of an item cannot be retrieved.

Oh, shit.

I tried multiple times to import, and even imported other keys I'd exported before it. I'm 100% sure I was putting the password in correctly. No joy, just lots of errors. Although the key appeared in the list (after apparently failing), Xcode refused to recognise it and I'm unable to deploy to my iPhone. This was looking pretty bad...

Google to the rescue!

After a bit of searching, I came across a post from someone having the same issue, and a workaround. Importing via the terminal apparently works. I gave this a shot, and all is good. I can now deploy to my iPhone again. Thanks Dave K!

Just in case you're reading this with the same problem and the link above is now broken, here's a copy of the solution:

Work-around provided by Dave K.

You can use the 'security' command line tool:
security import priv_key.p12 -k ~/Library/Keychains/login.keychain
security import pub_key.pem -k ~/Library/Keychains/login.keychain