SlideShare a Scribd company logo
P2P Multiplayer Gaming
          Dan Byers
      Manic Networks Inc.

      September 29th, 2009
Introduction

• Manic?
 • Startup
 • Solutions for Game Developers
Gaming Today

• Single player
• Multiplayer
    • real-time
    • non real-time
• Real-time and game play
Mobile Multiplayer

• Picking up steam
 • Wireless networks are improving
 • Smartphones: faster, feature rich
 • Social aspects, interactivity
App Store games

• Play ‘n forget
• Need to improve ‘stickiness’
• Make the user feel that they can’t stop
  playing
Social Factors

• More apt to join if you have friends also
  playing the game
• The out-of-game experience
• Communities can build upon themselves
Architectures
                          Server
• Client-server                         clients
                  A         B           C



                      A             B
• Peer-to-peer            clients

                      C             D
Client-Server
                 Server
                             clients
          A         B        C


• Persistent connections
• Game management in server
• Loads increase ... scaling issues
A             B
  Peer-to-Peer                        clients

                                 C              D

• Direct communication between clients
• Server still required for player matching
• Reduces load off of a central server
• Be careful with game state
• “Local” peer to peer with Gamekit
Multiplayer Gaming -
   No Small Task

• For small teams, multiplayer can lead
  to months of added development &
  test effort
• Where do the difficulties lie?
Hurdles
• Player synchronization, game state
• Network latency
• Server infrastructure - costly
• Connectivity - firewalls
Firewalls Shmirewalls

Player A             Internet             Player B
           firewall              firewall




 • The main issue: NAT
Firewalls & NAT
             Private IP and port:           Public IP and port:
             192.168.1.10:2000              64.26.92.166:653


  iPod/iPhone,
                                     Firewall
     or PC
                                    with NAT
                                                      Internet


• Multiple devices share one public IP
• Devices are assigned private IP’s
• Firewall blocks inbound traffic by default
Firewall Hole Punching
                (NAT Traversal)


• External mediator assistance required
• Mediator helps each peer punch through to
  other peers
• Not always sucessful - need to be able to
  fallback to server-based traffic relays
Working on a multiplayer
            game?
Requirements
 • Back-end servers for player matching, hole
   punching and traffic relay fallback
 • Player database and player profiles
 • Scores, ranks, achievements - submission
   and storing
 • Game invites, challenges, game profiles
 • Notifications, alerts, messaging, chat
The Solution

• Nothing that really fit the bill previously
• Until now...
The Solution

• Nothing that really fit the bill previously
• Until now...

 The Manic Gaming Network
The Manic
      Gaming Network

•   Currently in beta

•   A community for both developers and gamers

•   Services available for single player and multiplayer
    games
Service Features
•   Robust API for peer-to-peer player matching

•   Multiple player matching options - random
    matches, friend matches, rank-based matches, game
    lobbies

•   Firewall hole punching & traffic relaying

•   Game profiles - global high score lists, player
    rankings, achievements

•   In-game match invites / challenges
Service Features (cont’d)
•   Support for turn based games with storage of
    game states and turn notifications

•   Notification sending (APNS, SMS, email, RSS)

•   Private Developer Sandbox

•   Marketing and promotion of your games

•   API is Objective C
Player Features
•   One profile to play    •   Friend lists and
    any Manic-enabled         Ignore lists
    game
                          •   Compare scores
•   Personal profile for       with friends
    sharing
                          •   Friend messaging
•   View and share
                          •   Gaming
    scores, ranks,
                              notifications
    achievement history
Development Roadmap

• Manic Dashboard for service management
• Tournament support
• Chat rooms
• Internationalization
• Other client platforms
Sample Code

• Demo game - Finger Wars!
 • 2-4 player - random & friend matches
 • results submission
 • in-game account registration
Thank you!

• dan.byers@manicgaming.com
 • twitter.com/coffeedan
• randy.byers@manicgaming.com

       www.manicgaming.com

More Related Content

Similar to P2P Multiplayer Gaming

SkillPod Casual Games Platform - Publisher Presentation
SkillPod Casual Games Platform - Publisher PresentationSkillPod Casual Games Platform - Publisher Presentation
SkillPod Casual Games Platform - Publisher Presentation
GameZBoost
 
SkillPod Media Casual Games Platform Overview
SkillPod Media Casual Games Platform OverviewSkillPod Media Casual Games Platform Overview
SkillPod Media Casual Games Platform Overview
GameZBoost
 
SkillPod Media Casual Games Platform Overview
SkillPod Media Casual Games Platform OverviewSkillPod Media Casual Games Platform Overview
SkillPod Media Casual Games Platform Overview
GameZBoost
 
SkillPod Media Casual and Social Games Platform
SkillPod Media Casual and Social Games PlatformSkillPod Media Casual and Social Games Platform
SkillPod Media Casual and Social Games Platform
GameZBoost
 
Massively Social != Massively Multiplayer
Massively Social != Massively MultiplayerMassively Social != Massively Multiplayer
Massively Social != Massively Multiplayer
Paul Furio
 
Lets Play Together
Lets Play TogetherLets Play Together
Lets Play Together
Amir H. Fassihi
 
Azure SignalR - Another tool in the toolbeld
Azure SignalR - Another tool in the toolbeldAzure SignalR - Another tool in the toolbeld
Azure SignalR - Another tool in the toolbeld
David Opdendries
 
Online casino
Online casinoOnline casino
Online casino
Veranika Zdanovich
 
Intro to liveops
Intro to liveopsIntro to liveops
Intro to liveops
Crystin Cox
 
Brewing Your Own Game Engie eng
Brewing Your Own Game Engie engBrewing Your Own Game Engie eng
Brewing Your Own Game Engie eng
Coconut Island
 
Igniting the Spark: Building Online Services for Borderlands 2
Igniting the Spark: Building Online Services for Borderlands 2Igniting the Spark: Building Online Services for Borderlands 2
Igniting the Spark: Building Online Services for Borderlands 2
Jimmy Sieben
 
Quantifying User Satisfaction in Mobile Cloud Games
Quantifying User Satisfaction in Mobile Cloud GamesQuantifying User Satisfaction in Mobile Cloud Games
Quantifying User Satisfaction in Mobile Cloud Games
Academia Sinica
 
PlayFab multiplayer_party
PlayFab multiplayer_partyPlayFab multiplayer_party
PlayFab multiplayer_party
Crystin Cox
 
Designing a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile gamesDesigning a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile games
iFunFactory Inc.
 
De Re PlayStation Vita
De Re PlayStation VitaDe Re PlayStation Vita
De Re PlayStation Vita
Slide_N
 
Unite2014 Bunny Necropsy - Servers, Syncing Game State, Security and Optimiza...
Unite2014 Bunny Necropsy - Servers, Syncing Game State, Security and Optimiza...Unite2014 Bunny Necropsy - Servers, Syncing Game State, Security and Optimiza...
Unite2014 Bunny Necropsy - Servers, Syncing Game State, Security and Optimiza...
David Geurts
 
BlackBerry Jam Asia 2013 - Gaming on BlackBerry
BlackBerry Jam Asia 2013 - Gaming on BlackBerryBlackBerry Jam Asia 2013 - Gaming on BlackBerry
BlackBerry Jam Asia 2013 - Gaming on BlackBerry
Segitiga.Net
 
Write retrogames in the web and add something more with Azure
Write retrogames in the web and add something more with AzureWrite retrogames in the web and add something more with Azure
Write retrogames in the web and add something more with Azure
Marco Parenzan
 
Hosting AAA Multiplayer Experiences with Multiplay
Hosting AAA Multiplayer Experiences with MultiplayHosting AAA Multiplayer Experiences with Multiplay
Hosting AAA Multiplayer Experiences with Multiplay
Unity Technologies
 
The Future is Operations: Why Mobile Games Need Backends
The Future is Operations: Why Mobile Games Need BackendsThe Future is Operations: Why Mobile Games Need Backends
The Future is Operations: Why Mobile Games Need Backends
James Gwertzman
 

Similar to P2P Multiplayer Gaming (20)

SkillPod Casual Games Platform - Publisher Presentation
SkillPod Casual Games Platform - Publisher PresentationSkillPod Casual Games Platform - Publisher Presentation
SkillPod Casual Games Platform - Publisher Presentation
 
SkillPod Media Casual Games Platform Overview
SkillPod Media Casual Games Platform OverviewSkillPod Media Casual Games Platform Overview
SkillPod Media Casual Games Platform Overview
 
SkillPod Media Casual Games Platform Overview
SkillPod Media Casual Games Platform OverviewSkillPod Media Casual Games Platform Overview
SkillPod Media Casual Games Platform Overview
 
SkillPod Media Casual and Social Games Platform
SkillPod Media Casual and Social Games PlatformSkillPod Media Casual and Social Games Platform
SkillPod Media Casual and Social Games Platform
 
Massively Social != Massively Multiplayer
Massively Social != Massively MultiplayerMassively Social != Massively Multiplayer
Massively Social != Massively Multiplayer
 
Lets Play Together
Lets Play TogetherLets Play Together
Lets Play Together
 
Azure SignalR - Another tool in the toolbeld
Azure SignalR - Another tool in the toolbeldAzure SignalR - Another tool in the toolbeld
Azure SignalR - Another tool in the toolbeld
 
Online casino
Online casinoOnline casino
Online casino
 
Intro to liveops
Intro to liveopsIntro to liveops
Intro to liveops
 
Brewing Your Own Game Engie eng
Brewing Your Own Game Engie engBrewing Your Own Game Engie eng
Brewing Your Own Game Engie eng
 
Igniting the Spark: Building Online Services for Borderlands 2
Igniting the Spark: Building Online Services for Borderlands 2Igniting the Spark: Building Online Services for Borderlands 2
Igniting the Spark: Building Online Services for Borderlands 2
 
Quantifying User Satisfaction in Mobile Cloud Games
Quantifying User Satisfaction in Mobile Cloud GamesQuantifying User Satisfaction in Mobile Cloud Games
Quantifying User Satisfaction in Mobile Cloud Games
 
PlayFab multiplayer_party
PlayFab multiplayer_partyPlayFab multiplayer_party
PlayFab multiplayer_party
 
Designing a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile gamesDesigning a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile games
 
De Re PlayStation Vita
De Re PlayStation VitaDe Re PlayStation Vita
De Re PlayStation Vita
 
Unite2014 Bunny Necropsy - Servers, Syncing Game State, Security and Optimiza...
Unite2014 Bunny Necropsy - Servers, Syncing Game State, Security and Optimiza...Unite2014 Bunny Necropsy - Servers, Syncing Game State, Security and Optimiza...
Unite2014 Bunny Necropsy - Servers, Syncing Game State, Security and Optimiza...
 
BlackBerry Jam Asia 2013 - Gaming on BlackBerry
BlackBerry Jam Asia 2013 - Gaming on BlackBerryBlackBerry Jam Asia 2013 - Gaming on BlackBerry
BlackBerry Jam Asia 2013 - Gaming on BlackBerry
 
Write retrogames in the web and add something more with Azure
Write retrogames in the web and add something more with AzureWrite retrogames in the web and add something more with Azure
Write retrogames in the web and add something more with Azure
 
Hosting AAA Multiplayer Experiences with Multiplay
Hosting AAA Multiplayer Experiences with MultiplayHosting AAA Multiplayer Experiences with Multiplay
Hosting AAA Multiplayer Experiences with Multiplay
 
The Future is Operations: Why Mobile Games Need Backends
The Future is Operations: Why Mobile Games Need BackendsThe Future is Operations: Why Mobile Games Need Backends
The Future is Operations: Why Mobile Games Need Backends
 

More from John Wilker

Cranking Floating Point Performance Up To 11
Cranking Floating Point Performance Up To 11Cranking Floating Point Performance Up To 11
Cranking Floating Point Performance Up To 11
John Wilker
 
Introtoduction to cocos2d
Introtoduction to  cocos2dIntrotoduction to  cocos2d
Introtoduction to cocos2d
John Wilker
 
Getting Started with OpenGL ES
Getting Started with OpenGL ESGetting Started with OpenGL ES
Getting Started with OpenGL ES
John Wilker
 
User Input in a multi-touch, accelerometer, location aware world.
User Input in a multi-touch, accelerometer, location aware world.User Input in a multi-touch, accelerometer, location aware world.
User Input in a multi-touch, accelerometer, location aware world.
John Wilker
 
Physics Solutions for Innovative Game Design
Physics Solutions for Innovative Game DesignPhysics Solutions for Innovative Game Design
Physics Solutions for Innovative Game Design
John Wilker
 
Getting Oriented with MapKit: Everything you need to get started with the new...
Getting Oriented with MapKit: Everything you need to get started with the new...Getting Oriented with MapKit: Everything you need to get started with the new...
Getting Oriented with MapKit: Everything you need to get started with the new...
John Wilker
 
Getting Started with iPhone Game Development
Getting Started with iPhone Game DevelopmentGetting Started with iPhone Game Development
Getting Started with iPhone Game Development
John Wilker
 
Internationalizing Your Apps
Internationalizing Your AppsInternationalizing Your Apps
Internationalizing Your Apps
John Wilker
 
Optimizing Data Caching for iPhone Application Responsiveness
Optimizing Data Caching for iPhone Application ResponsivenessOptimizing Data Caching for iPhone Application Responsiveness
Optimizing Data Caching for iPhone Application Responsiveness
John Wilker
 
I Phone On Rails
I Phone On RailsI Phone On Rails
I Phone On Rails
John Wilker
 
Integrating Push Notifications in your iPhone application with iLime
Integrating Push Notifications in your iPhone application with iLimeIntegrating Push Notifications in your iPhone application with iLime
Integrating Push Notifications in your iPhone application with iLime
John Wilker
 
Starting Core Animation
Starting Core AnimationStarting Core Animation
Starting Core Animation
John Wilker
 
Using Concurrency To Improve Responsiveness
Using Concurrency To Improve ResponsivenessUsing Concurrency To Improve Responsiveness
Using Concurrency To Improve Responsiveness
John Wilker
 
Leaving Interface Builder Behind
Leaving Interface Builder BehindLeaving Interface Builder Behind
Leaving Interface Builder Behind
John Wilker
 
Mobile WebKit Development and jQTouch
Mobile WebKit Development and jQTouchMobile WebKit Development and jQTouch
Mobile WebKit Development and jQTouch
John Wilker
 
Accelerometer and OpenGL
Accelerometer and OpenGLAccelerometer and OpenGL
Accelerometer and OpenGL
John Wilker
 
Deep Geek Diving into the iPhone OS and Framework
Deep Geek Diving into the iPhone OS and FrameworkDeep Geek Diving into the iPhone OS and Framework
Deep Geek Diving into the iPhone OS and Framework
John Wilker
 
NSNotificationCenter vs. AppDelegate
NSNotificationCenter vs. AppDelegateNSNotificationCenter vs. AppDelegate
NSNotificationCenter vs. AppDelegate
John Wilker
 
Using SQLite
Using SQLiteUsing SQLite
Using SQLite
John Wilker
 
From Flash to iPhone
From Flash to iPhoneFrom Flash to iPhone
From Flash to iPhone
John Wilker
 

More from John Wilker (20)

Cranking Floating Point Performance Up To 11
Cranking Floating Point Performance Up To 11Cranking Floating Point Performance Up To 11
Cranking Floating Point Performance Up To 11
 
Introtoduction to cocos2d
Introtoduction to  cocos2dIntrotoduction to  cocos2d
Introtoduction to cocos2d
 
Getting Started with OpenGL ES
Getting Started with OpenGL ESGetting Started with OpenGL ES
Getting Started with OpenGL ES
 
User Input in a multi-touch, accelerometer, location aware world.
User Input in a multi-touch, accelerometer, location aware world.User Input in a multi-touch, accelerometer, location aware world.
User Input in a multi-touch, accelerometer, location aware world.
 
Physics Solutions for Innovative Game Design
Physics Solutions for Innovative Game DesignPhysics Solutions for Innovative Game Design
Physics Solutions for Innovative Game Design
 
Getting Oriented with MapKit: Everything you need to get started with the new...
Getting Oriented with MapKit: Everything you need to get started with the new...Getting Oriented with MapKit: Everything you need to get started with the new...
Getting Oriented with MapKit: Everything you need to get started with the new...
 
Getting Started with iPhone Game Development
Getting Started with iPhone Game DevelopmentGetting Started with iPhone Game Development
Getting Started with iPhone Game Development
 
Internationalizing Your Apps
Internationalizing Your AppsInternationalizing Your Apps
Internationalizing Your Apps
 
Optimizing Data Caching for iPhone Application Responsiveness
Optimizing Data Caching for iPhone Application ResponsivenessOptimizing Data Caching for iPhone Application Responsiveness
Optimizing Data Caching for iPhone Application Responsiveness
 
I Phone On Rails
I Phone On RailsI Phone On Rails
I Phone On Rails
 
Integrating Push Notifications in your iPhone application with iLime
Integrating Push Notifications in your iPhone application with iLimeIntegrating Push Notifications in your iPhone application with iLime
Integrating Push Notifications in your iPhone application with iLime
 
Starting Core Animation
Starting Core AnimationStarting Core Animation
Starting Core Animation
 
Using Concurrency To Improve Responsiveness
Using Concurrency To Improve ResponsivenessUsing Concurrency To Improve Responsiveness
Using Concurrency To Improve Responsiveness
 
Leaving Interface Builder Behind
Leaving Interface Builder BehindLeaving Interface Builder Behind
Leaving Interface Builder Behind
 
Mobile WebKit Development and jQTouch
Mobile WebKit Development and jQTouchMobile WebKit Development and jQTouch
Mobile WebKit Development and jQTouch
 
Accelerometer and OpenGL
Accelerometer and OpenGLAccelerometer and OpenGL
Accelerometer and OpenGL
 
Deep Geek Diving into the iPhone OS and Framework
Deep Geek Diving into the iPhone OS and FrameworkDeep Geek Diving into the iPhone OS and Framework
Deep Geek Diving into the iPhone OS and Framework
 
NSNotificationCenter vs. AppDelegate
NSNotificationCenter vs. AppDelegateNSNotificationCenter vs. AppDelegate
NSNotificationCenter vs. AppDelegate
 
Using SQLite
Using SQLiteUsing SQLite
Using SQLite
 
From Flash to iPhone
From Flash to iPhoneFrom Flash to iPhone
From Flash to iPhone
 

Recently uploaded

Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Jeffrey Haguewood
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
David Brossard
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 

Recently uploaded (20)

Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 

P2P Multiplayer Gaming

  • 1. P2P Multiplayer Gaming Dan Byers Manic Networks Inc. September 29th, 2009
  • 2. Introduction • Manic? • Startup • Solutions for Game Developers
  • 3. Gaming Today • Single player • Multiplayer • real-time • non real-time • Real-time and game play
  • 4. Mobile Multiplayer • Picking up steam • Wireless networks are improving • Smartphones: faster, feature rich • Social aspects, interactivity
  • 5. App Store games • Play ‘n forget • Need to improve ‘stickiness’ • Make the user feel that they can’t stop playing
  • 6. Social Factors • More apt to join if you have friends also playing the game • The out-of-game experience • Communities can build upon themselves
  • 7. Architectures Server • Client-server clients A B C A B • Peer-to-peer clients C D
  • 8. Client-Server Server clients A B C • Persistent connections • Game management in server • Loads increase ... scaling issues
  • 9. A B Peer-to-Peer clients C D • Direct communication between clients • Server still required for player matching • Reduces load off of a central server • Be careful with game state • “Local” peer to peer with Gamekit
  • 10. Multiplayer Gaming - No Small Task • For small teams, multiplayer can lead to months of added development & test effort • Where do the difficulties lie?
  • 11. Hurdles • Player synchronization, game state • Network latency • Server infrastructure - costly • Connectivity - firewalls
  • 12. Firewalls Shmirewalls Player A Internet Player B firewall firewall • The main issue: NAT
  • 13. Firewalls & NAT Private IP and port: Public IP and port: 192.168.1.10:2000 64.26.92.166:653 iPod/iPhone, Firewall or PC with NAT Internet • Multiple devices share one public IP • Devices are assigned private IP’s • Firewall blocks inbound traffic by default
  • 14. Firewall Hole Punching (NAT Traversal) • External mediator assistance required • Mediator helps each peer punch through to other peers • Not always sucessful - need to be able to fallback to server-based traffic relays
  • 15. Working on a multiplayer game? Requirements • Back-end servers for player matching, hole punching and traffic relay fallback • Player database and player profiles • Scores, ranks, achievements - submission and storing • Game invites, challenges, game profiles • Notifications, alerts, messaging, chat
  • 16. The Solution • Nothing that really fit the bill previously • Until now...
  • 17. The Solution • Nothing that really fit the bill previously • Until now... The Manic Gaming Network
  • 18. The Manic Gaming Network • Currently in beta • A community for both developers and gamers • Services available for single player and multiplayer games
  • 19. Service Features • Robust API for peer-to-peer player matching • Multiple player matching options - random matches, friend matches, rank-based matches, game lobbies • Firewall hole punching & traffic relaying • Game profiles - global high score lists, player rankings, achievements • In-game match invites / challenges
  • 20. Service Features (cont’d) • Support for turn based games with storage of game states and turn notifications • Notification sending (APNS, SMS, email, RSS) • Private Developer Sandbox • Marketing and promotion of your games • API is Objective C
  • 21. Player Features • One profile to play • Friend lists and any Manic-enabled Ignore lists game • Compare scores • Personal profile for with friends sharing • Friend messaging • View and share • Gaming scores, ranks, notifications achievement history
  • 22. Development Roadmap • Manic Dashboard for service management • Tournament support • Chat rooms • Internationalization • Other client platforms
  • 23. Sample Code • Demo game - Finger Wars! • 2-4 player - random & friend matches • results submission • in-game account registration
  • 24. Thank you! • dan.byers@manicgaming.com • twitter.com/coffeedan • randy.byers@manicgaming.com www.manicgaming.com