01 August 2014

Mobile crap - clones

This series of articles is a rant about mobile game design. It may extend to console and PC gaming, but I only talk about what I experienced through most games featured on the iPad app store in the past year or so.

Ideally, designers should keep a working recipe and incorporate new mechanics into it, or at least aim for a fresh take on an old recipe. These days, entire genres should be avoided entirely: designs involving a match-three mechanic have nearly all been done, one way or another. I covered Clash of Clans clones before, Raph Koster and others came up with a small family tree of shmups, and somebody probably covered the lineage of match-three games. I won't talk much about cloning in itself - everybody knows it is omnipresent in the game industry. So I focus on the imperfect features that cloners should upgrade or replace, but actually keep by laziness.

UI-wise, some developers are really lazy: instead of trying to improve an existing one, they just copy-paste it blindly. For example, Dungeon Keeper's UI HUD is a near-exact copy of Clash of Clans. Yet CoC had, and still has, several UI issues raised on the CoC forums by the players. For example, the default battle zoom-in forced players to always zoom-out before starting a fight. The team behind CoC fixed it, but the Dungeon Keeper team could have thought about it too. Another CoC example is the spells that remain selected when players try to deploy troops, thereby wasting a spell. One solution would be to deselect the spell after it has been cast, but this issue has not been fixed yet, and it's easy to spot with playtesters. A last example of UI laziness can be found in Plundernauts. Plundernauts adapted the item game made famous by WoW and Diablo to spaceship battles. They changed nothing to the UI when displaying equipment stats. In short, if you are cloning a mechanic, at least try to question and improve the interface.

Finally, the name. I understand that developers target a particular audience. Sometimes, this audience needs to know that the game is a puzzle game. So they make the name of their game rhyme with puzzle: Birzzle, Chuzzle, and so on. It's nice, but it looks like even the names are clones!

01 July 2014

Tidbits about the WoW backend

This discussion with Joe Rumsey, a software engineer for World of Warcraft at Blizzard, took place in 2013, but I'm only posting about it now.

  • Their database has 50% read and 50% write. There used to be more writes because the durability of player's equipment used to decrease often in combat. They have a proxy in front of the DB. The proxy flushes to DB periodically. Around 20 shards per DB. Transactions: inventory, trade, zone change, but not combat/monsters state.
  • 800-meter zones. Sort of dynamic zone borders. Would rather have one big zone on one server than two zones with a lot of exchange between them on different servers. Objects are mirrored on adjacent zones. If a zone falls, the entire server falls. To move an entity between two servers, server 1 flushes the entity to DB then server 2 retrieves it from DB; the two servers never exchange the player data.
  • The game server ticks at 2.5 times per second.
  • The clients connect to a proxy.
  • JSON vs binary messages: JSON's performance is fine 95% of the time.