8. SNS Game: We rule iPhone App Game inspired by the FarmVille Business model : Mojo and ingameAd.
9. But… Execllent arts and App client Made by developers from the Age of empire Increasing network traffics Increasing download data Visit more Kingdom, download more data Failing to login, long down time Many players quit this game
11. Postmortem More users slower network traffic Show the limit of the free to playgame Global one world, But… They needed a stable service architecture
13. Future MMORPGs are … The ‘We rule’ is a prototype game for the future lightweight MMORPG. Requirement of future MMORPG Free to play Small client program (mobile app/ flash game) Asyncronous play & realtime play & push notification Conneting friends via SNS (Facebook) Big one universe
14. MMORPGs would be … in 2015 AAA MMORPG Client install size would be 100GB Display resolution would be 2560 x 1440 Game engine would be Unreal 5 orCryENGINE 5 Or Anywhere MMORPG Quick play without download From mobile to desktop PC, n-screen game Game engine for multi-platform or Unity3D
20. The big bang game company Zynga’s user count (2010 March) 65M user/day, 225M user/month Farmville user increased by 25M/DAU for 5 month FishVille user was 6M /DAU just for a week * GDC10 Scaling social games
21. Zynga’s service architecture PHP logic HTTP memcachedserver Web server MMO server DB server MMO server TCP DB server MMO server DB server Flash-based client My SQL Java logic * GDC10 Scaling social games
31. Case study MMORPG NCsoft’s MMORPG Bluehole’sTera XL games’ ArcheAge The split zonearchitecture NCsoft’s channel chatting system
32. NCsoft’s MMORPGs Login server TCP 1 World 1 2 World … World N Game server cacheD + Game DB C++ logic C++ logic MS-SQL LogD + Log DB C++ logic
33. Bluehole’sMMORPG Login server Instance servers 1 Instance servers Planet MS-SQL 2 Arbiter server Arbiter server Game DB Connection Chatting DB cache compression World 1…N LogD + Log DB World servers * Gametech 2010
34. XL games’sMMORPG Auth server 1 World 2 World server Game DB AI server Physics server Instanecezone srv * Gametech 2010
35. The split-zone architecture Logine server 1 2 Lobby server DB cache 3 Game server Game server Game server DB server Divided into zones
36. Ncsoft channel chatting system A 100 thousand connect per a server when the AIONopening in 2008 Configurationserver ShardingUsers Externalserver Internalserver Database Externalserver
38. New requests of the service Big one shard One auction system Unified instance zone Smartphane & Web Facebook, twitter and SNS
39. I know what you did in the game!! * World of warcraft web site
40. Are you ready? Not yet. We must prepare the new requests We need New game design New game contents New service architecture for the multiplatform New DB system
41. NCsoft’s MMORPGs (again) Login server TCP 1 World 1 2 World … World N Game server cacheD + Game DB MS-SQL LogD + Log DB
42. Next architecture? Web/SNS services Login server Other services Game servers Game log/asyncdata Game data
44. MMORPGDB’s features MS-SQL and MySQL are difficult to scale out Most actions of DB are writes and updates in MMORPG Bottleneck of the DBMS is HDDI/O CPU isn’t critical point in processing DB request Increasing of HDD performance is more important SSD(Flashmemory disk) could be alternative Difficult to support both, the game server and the web Replication DB server for the read only actions
45. Redesign from scratch Separate DB data for the content type Sync data / asynch data Use different DBMSs for data type Preparing the web service at first Don’t process the transactions in DB In the game logic server or the cache server Unified logging system Game play data, SNS related data in game
46. Scaling of DB NoSQL for the game play data DB replication and data distribution of readings Horizontal partition of DB for the distribution of writings Hybrid RDBMS with NoSQL Support RDBMS and NoSQL Put the important data and less writing data to the RDBMS The asynchronous data writing is more suitable to NoSQL
51. Cassandra Big table (Google) and Dynama(Amazon) based project P2P among servers Column storage Writing > Reading CassandraProject Starting at Facebook, Current Apache Project Distributed DB in Java, OpenSource No realtimesynchorization among DB servers Very simple and fast than MySQL
53. Digg is a social news website. Digg’s difficulty Need a new DB for very large writings transaction Don’t need a data consistency of the whole service Digg chose the Cassandra Column based, structured document storage Every DB node could work separately. Data is replicated several DB nodes. The performance of the reading and writing transactions could increase linearly by the adding servers Too experimental
54. Open source project,www.mongodb.org Document-oriented DB BSON format like JSON No fixed tableschema Arbitrary document structure storage Could be nested document structure Support full index Replication & auto-sharding
55. MongoDB(cont’) Consistency-Partition tolerance Interface : C/C++,C#, Java, Python, PHP, Perl,Ruby Implementation : C++ with boost lib. Memory size & HDD speed Support : 10gen.com Recently raised $6.5M Funding by Sequoia Capital
58. Cassandra vsMongoDB Cassandra : SNS, Web, Log-base Java impl. ,Garbage collection Scaling and distribution – worldwide web service Not easy to change columns MongoDB : RDBMS-like C++impl. ,Use memory mapped file on Windows Fast & simple DB – contry-size web service Lower scalability than Cassandra Easy to change tables and fields in developmint
59. Another tip - DB Sharding When single DB machine couldn’t process Vertical sharding (partitioning) Different machines for each table. But there is a upper limit of the single machine performance Horizontal sharding Partition tables with user id or user location More user more partition tables Difficult to join query among partitioned DB Tables could contain redundant fields not to query Should make a DB scaling plan before services
60. Pitfalls of the scaling Real service is Game logic servers < Web/update servers Server purchase cost < Server operation cost (in IDC) Increasing servers Increasing system failure rate (shorten MTBF) Solution Duplexing or Multiplexing But game logic servers hart to duplex Muliplexand replicate DB caches & DBs Use more high performance machine to suppress a increase servers