Massively Social
!=
Massively Multiplayer
Paul J. Furio
Technical Director @ Novel, Inc.
1989 Multiplayer

Falcon (Spectrum HoloByte),
on the Amiga 500, 1200 baud
modem, 2 player dogfighting

1999 Multiplayer

W...
Year 2000 Multiplayer Game
Constraints
•
•
•
•
•
•

8-16 Simultaneous Players
33.6kbps Modems were the standard
10Hz Updat...
Year 2000 Multiplayer Game
Architecture
Game
Client &
Server

Game
Client
Game
Client

Game
Client
Game
Client

• Peer-to-...
Late 2000’s Typical MMO
• Sharded Servers with ~10,000 Players Per “World”
• No true interaction across worlds
Server
A

C...
The Dream of Primetime
• Joined the Xbox Live
Primetime Team in 2008
• Goal: Create Simultaneous
Online Experience for 200...
Xbox Live 1 vs. 100
• Real Time
Interactive,
Massively Social,
Online Game
Show Experience
on a Game
Console
• ~2 Year Dev...
Social Gaming
• Millions of Users
• “Friends List”
Interactions
– Leaderboards
– View Friends Content
– Limited Environmen...
Shift to Social
•
•
•
•
•

Massive Player Interactions
Speed of Broad Interaction Less Critical
Asynchronous Gameplay
Abil...
How Do We Get There?
Cloud Computing

Analytics

RDB

Web Services &
Distributed Servers

GameGame
Game
GameGame
ClientCli...
Peer to Peer for Instant Interaction
Massive
Social
Services

Broadcast
Data

Game
Client

Game
Client
Game
Client

•
•
•
...
Move Away From RDB Only
• Relational Databases are Slow(er than current
alternatives)
• Keep Persistent, but Infrequently ...
Fast Data Access: NoSQL
• Key-Value Storage
• No Relational Calculus
• Super Fast with InMemory Data Storage
• Only Disk A...
1 vs. 100 NoSQL Solution
•
•
•
•

Developed In-House
~50k Transactions per Second
Client Side Timing Hid Aggregation
Funct...
Publicly Available NoSQL
•
•
•
•

Memcache, Membase
Cassandra
MongoDB
Redis
–
–
–
–

Rich Command Set
Super Fast (C++)
Red...
Big Data Analysis
• Millions of Users + Millions of
Transactions = Lots of Data
• Incredible Value in Data Analysis
• Use ...
What is MapReduce?
• Distributed Compute-Cluster Analysis of Huge Data Sets
• Map: partition data into sub-problems
• Redu...
What is MapReduce?
MAP

N

P
U

Reduce

MAP
MAP

MAP

T

Shuffle/Sort

I

Reduce
Reduce

Reduce

MAP

OUTPUT
Canonical MapReduce Example
void map(String name, String document):
// name: document name
// document: document contents
...
Cloud Computing
• “Rentable Commodity Hardware By The
Box, By The Hour”
• Cost Savings mean Almost No Reason to
CoLocate S...
Amazon EC2 / Rackspace
• Spin Up New Instances Fast
• MapReduce Clusters On-Demand (or
use Hadoop)
• Integrated CDN (Cloud...
Tech + Design = Winning!
• Tools enable powerful interactions
• Real strength comes in design of
applications
• Enable Con...
The Novel Approach
• Create Gaming Experiences that are
Engaging and Fun
• Design Experiences that Provide Useful
Informat...
Summary
•
•
•
•
•
•

Move away from Monolithic Game Servers
Embrace the Social Paradigm
Fast Data w/ NoSQL
Big Data Analys...
(novel is hiring)
•
•
•
•
•
•

Gameplay Engineers (UI/UX, Puzzles, Engine, Etc.)
Server & Service Engineers (Analytics, Se...
Thank You
Paul J. Furio
Technical Director
Novel, Inc.
paul@novelincorporated.com
Upcoming SlideShare
Loading in …5
×

Massively Social != Massively Multiplayer

404 views

Published on

A talk from the Login 2011 conference on how to build games that connect hundreds of thousands of players in the same experience, using NoSQL, OSS tools & tech, and good planning. Also covers BigData analysis for understanding what your players are doing and what they want.

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
404
On SlideShare
0
From Embeds
0
Number of Embeds
12
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • Is slide is all about how we thought about multiplayer in the past.
  • I mention these because I still see game companies trying to solve bigger problems using this paradigm. It doesn’t scale.
  • What do I think of when I think of Social?
  • Web Tech = No Monolithic Game Servers
  • This is just about the Peer to Peer environment
  • Custom Operators on NoSQL was key to 1v100. Having an extensible NoSQL solution where you can implement fast operators on the server/service is key to making your system work.
  • Redis was ~3x faster than MySQL (in 2009)
  • Capture everything and analyze later is the strategy of Ebay, who processes 50TB of new Data/Day, & analyzes 50PB/Day w/ Hadoop
  • Hadoop, created by Doug Cutting, is a free-software license implementation of MapReduce. (Apache License)
  • Pre-Summary: These tools enable massive, powerful interactions. We want to use them to enable great experiences. From these great experiences will come great data. Let’s use that data to create value.
  • Massively Social != Massively Multiplayer

    1. 1. Massively Social != Massively Multiplayer Paul J. Furio Technical Director @ Novel, Inc.
    2. 2. 1989 Multiplayer Falcon (Spectrum HoloByte), on the Amiga 500, 1200 baud modem, 2 player dogfighting 1999 Multiplayer Williams F1 Team-Team Driver, 8 player racing / Total Annihilation – 4 player RTS, 33.6kbps modems
    3. 3. Year 2000 Multiplayer Game Constraints • • • • • • 8-16 Simultaneous Players 33.6kbps Modems were the standard 10Hz Update Rate UDP Messages ~430 bytes per message max overhead Everything is all about Speed and Hiding Sync Problems
    4. 4. Year 2000 Multiplayer Game Architecture Game Client & Server Game Client Game Client Game Client Game Client • Peer-to-Peer or Client-Server • Authoritative Server • Predictive Physics • “Twitch” Games • 1-2 Year Dev Cycles
    5. 5. Late 2000’s Typical MMO • Sharded Servers with ~10,000 Players Per “World” • No true interaction across worlds Server A Client Client Client Client Server C Server B Client Client Client Client Client Client Client Client Client Client Client Client Client Client
    6. 6. The Dream of Primetime • Joined the Xbox Live Primetime Team in 2008 • Goal: Create Simultaneous Online Experience for 200k Players • Execution: First Online Game Show, “1 vs. 100 Primetime Live” on Xbox 360 Realtime Game Server Game Game Game Game Game Client Client Client Client Client +200k users
    7. 7. Xbox Live 1 vs. 100 • Real Time Interactive, Massively Social, Online Game Show Experience on a Game Console • ~2 Year Dev Cycle
    8. 8. Social Gaming • Millions of Users • “Friends List” Interactions – Leaderboards – View Friends Content – Limited Environmental Interaction • Stats, Upsells, Etc. • Extremely Short Dev Times (4 Month Goal)
    9. 9. Shift to Social • • • • • Massive Player Interactions Speed of Broad Interaction Less Critical Asynchronous Gameplay Ability to Analyze Group Behavior Analyze Individuals in Aggregate
    10. 10. How Do We Get There? Cloud Computing Analytics RDB Web Services & Distributed Servers GameGame Game GameGame ClientClient Client ClientClient NoSQL 100k+ users to 20M+ users • Segment Local from Global Experience • Embrace Web Technologies (Distributed, Stateless Event Processing) • Speed Up Data Access • Perform Massive Analytics • Embrace The Cloud • Engineers Must Deliver Tools That Allow Art & Design To Be Amazing & Engaging
    11. 11. Peer to Peer for Instant Interaction Massive Social Services Broadcast Data Game Client Game Client Game Client • • • • “Sphere of Interest” Voice Chat Group Activities Multicast/CDN for “Broadcast Social” • Massive Interactions via Other Systems
    12. 12. Move Away From RDB Only • Relational Databases are Slow(er than current alternatives) • Keep Persistent, but Infrequently Accessed Data, in Relational Database • Shift Transient Data to a NoSQL Solution RDB User Data Player Items NoSQL Transient Battles (Not Bum Fights) Session Data Chat
    13. 13. Fast Data Access: NoSQL • Key-Value Storage • No Relational Calculus • Super Fast with InMemory Data Storage • Only Disk Access is Asynchronous AppendOnly Logging
    14. 14. 1 vs. 100 NoSQL Solution • • • • Developed In-House ~50k Transactions per Second Client Side Timing Hid Aggregation Functions: Set, Get, Increment, Decrement, Top-100 • Custom Operators are Key
    15. 15. Publicly Available NoSQL • • • • Memcache, Membase Cassandra MongoDB Redis – – – – Rich Command Set Super Fast (C++) Rediska & Predis APIs for PHP Asynchronus Append-Only Logging
    16. 16. Big Data Analysis • Millions of Users + Millions of Transactions = Lots of Data • Incredible Value in Data Analysis • Use MapReduce/Hadoop to Analyze User Interactions • Capture Everything, Analyze Later, Re-Analyze Even Later!
    17. 17. What is MapReduce? • Distributed Compute-Cluster Analysis of Huge Data Sets • Map: partition data into sub-problems • Reduce: Combine answers from sub-problems to produce output • Each step is iterative: Mappers can feed Mappers, Reducers can feed Reducers • Fast: Hadoop sorted 1TB of Random 100 Byte Records in 62 seconds (across 1460 nodes)
    18. 18. What is MapReduce? MAP N P U Reduce MAP MAP MAP T Shuffle/Sort I Reduce Reduce Reduce MAP OUTPUT
    19. 19. Canonical MapReduce Example void map(String name, String document): // name: document name // document: document contents for each word w in document: EmitIntermediate(w, "1"); void reduce(String word, Iterator partialCounts): // word: a word // partialCounts: a list of aggregated partial counts int result = 0; for each pc in partialCounts: result += ParseInt(pc); Emit(AsString(result)); Credit: Wikipedia http://en.wikipedia.org/wiki/MapReduce
    20. 20. Cloud Computing • “Rentable Commodity Hardware By The Box, By The Hour” • Cost Savings mean Almost No Reason to CoLocate Services* (* for Large Scale Apps with Dynamic Demand) • Scale Effectively with Dynamic Demand • Caveat: Write code to Gracefully Handle Hardware Failure
    21. 21. Amazon EC2 / Rackspace • Spin Up New Instances Fast • MapReduce Clusters On-Demand (or use Hadoop) • Integrated CDN (CloudFront/CloudFiles) • Proven across industries (Playfish, Netflix, Ericsson, Yelp, many more!)
    22. 22. Tech + Design = Winning! • Tools enable powerful interactions • Real strength comes in design of applications • Enable Content & Design Staff to Develop Engaging, Amazing Experiences • What do you want to learn about your Users/Players? • How can you create value from that information?
    23. 23. The Novel Approach • Create Gaming Experiences that are Engaging and Fun • Design Experiences that Provide Useful Information about Players • Apply Analysis to Understand Trends, Individuals • Use Data to Improve Productivity, Increase Employee Happiness, Create Better Team Dynamics, and More!
    24. 24. Summary • • • • • • Move away from Monolithic Game Servers Embrace the Social Paradigm Fast Data w/ NoSQL Big Data Analysis to find Value Scale with Demand via the Cloud Go Make Fun!
    25. 25. (novel is hiring) • • • • • • Gameplay Engineers (UI/UX, Puzzles, Engine, Etc.) Server & Service Engineers (Analytics, Services, Database) IT/Test/Build/Deployment Engineers Game & Web Designers (Content, Fun, Balance) Business/Marketing/Executive AS3, Java, C#, PHP, C/C++, Web/iOS/Android/WinMobile http://www.novelincorporated.com/careers
    26. 26. Thank You Paul J. Furio Technical Director Novel, Inc. paul@novelincorporated.com

    ×