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
This will be a session to introduce the Manic Gamin more
This will be a session to introduce the Manic Gaming Network. We have designed a multiplayer gaming platform which gives developers an easy way to incorporate Peer 2 Peer gaming into their app.
Will cover the following:
* today’s problems with developing a multiplayer solution, and solutions available “out of the box” * walkthrough of Manic’s services available to the community of gamers and developers * quick introduction to an API we’re releasing for our service * game demo will be shown * review of some sample code to help developers get started less
0 comments
Post a comment