Public Server MMO’s
-
Upload
gareth-cummings -
Category
Documents
-
view
35 -
download
3
description
Transcript of Public Server MMO’s
Public Server MMO
What’s an MMO?– Massively Multiplayer
Online game– Persistent world– Success stories
Lineage World of Warcraft
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
CDF of fullness of Counter-strike servers
70% of all servers are empty
Public Server content is plentiful
7 6
4372
4980
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
NeverwinterNights
Half-life
User-created
Purchasable
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
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
Trading Illustration
Item 1
attributes
Signatures
bind_key_p1
loot_key
Player 1 Player 2
Item 2
attributes
Signatures
bind_key_p2
Loot_key
Submit items to mint
Mint
Item 3
attributes
Signatures
bind_key_p2
Loot_key
Trading Illustration
Item 1
attributes
Signatures
bind_key_p2
loot_key’
Player 1 Player 2
Item 2
attributes
Signatures
bind_key_p1
Loot_key’
Mint
Item 3
attributes
Signatures
bind_key_p1
Loot_key’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