190 likes | 324 Views
Public Server MMO’s. What’s an MMO? Massively Multiplayer Online game Persistent world Success stories Lineage World of Warcraft. Public Server MMO. MMO. MMO problems Huge scalability issues Hosting costs: 20% of subscription revenue Support costs: 20% of subscription revenue
E N D
What’s an MMO? Massively Multiplayer Online game Persistent world Success stories Lineage World of Warcraft Public Server MMO
MMO • MMO problems • Huge scalability issues • Hosting costs: 20% of subscription revenue • Support costs: 20% of subscription revenue • Content costs: Unknown but surely large • Those are for successful MMO’s • Unsuccessful ones have the cost of failure
Public Server • What’s a public server game? • Game company distributes the server code • Users host the machines themselves • Users can modify the server • Examples • Half-life, Counter-Strike, Doom • Neverwinter Nights • Benefits • User hosting resources are extremely plentiful! • User content creation extremely plentiful • Drawback • No subscription model • No persistent world
Public Server resources are plentiful 70% of all servers are empty CDF of fullness of Counter-strike servers
Our Goal: Public Server MMO • Decrease hosting and support costs by not hosting gameplay • Decrease development costs by allowing user-generated content • Allow for a persistent world with public servers
Basic Architecture • Public Servers host game play • Publisher hosts authentication, billing, loot server • Users store persistent data themselves • Key challenges • Authentication • Persistent Content across public servers • Trading Items
Billing Authentication Public Server MMO Participants Loot Publisher Public Server Client
Authentication keys • Clients must be able to authenticate themselves to loot server, public servers • Cli_key_pub, Cli_key_priv • Clients keep private key • Loot server must be able to sign loot, as authentic • Loot_key_pub, Loot_key_priv • Loot server keeps private key • Loot server must be able to bind loot to specific players • Bindi_key_pub , Bindi_key_priv • Loot server keeps private keys
Challenge: Persistent Content • Content creation • Loot is designed by community and approved by publisher • Loot is issued according to authenticated player-minutes to servers • Servers distribute loot according to game-play • Content security • Loot is signed to a player and signed to the loot server • Public servers and other players check a piece of loot by checking signatures • Loot can be stored at the clients • Caveat: loot cannot be traded from players
Challenge: Authenticated Time • How are player minutes authenticated? • Public servers want minutes • Players want minutes • Use a periodic Reverse Turing test that fits in with game-play as a mini-game • Finding objects in a scene • Identifying human faces
Challenge: Trading Items • We would like to relax the “loot cannot be traded” restriction for game-play purposes • We don’t want to allow item duping • We don’t want to keep an item revocation list • Solution: periodic trading window • Publisher coordinates a player-wide swap meet or auction • During auction, each player’s goods are re-issued • Old items are invalidated by changing Loot_key_pub, Loot_key_priv
Item 1 Item 2 Item 3 attributes Signatures bind_key_p1 loot_key attributes Signatures bind_key_p2 Loot_key attributes Signatures bind_key_p2 Loot_key Trading Illustration Mint Player 2 Player 1 Submit items to mint
Item 1 Item 2 Item 3 attributes Signatures bind_key_p2 loot_key’ attributes Signatures bind_key_p1 Loot_key’ attributes Signatures bind_key_p1 Loot_key’ Trading Illustration Mint Player 2 Player 1 Receive new items
Quantifiable elements • Re-minting all items in the world: # of items vs. time • Generating / verifying CAPTCHA’s: # of captcha’s vs. time
scratch • How can we prevent servers from giving players loot for doing nothing • We don’t! • We do require players to be present at the keys, and we assume they will gravitate towards compelling content • Bootstrapping: why go to a new server? • Trickle some loot to a server just for being up
A A P A Game Server E E