Multi player iPhone Games

Preview:

DESCRIPTION

Peter Bakhyryve - Multi player iPhone Games. 360|iDev San Jose '09

Citation preview

Making MultiplayeriPhone Games

Theory and Practice

Presented by ByteClub

Tuesday, March 3, 2009

Stop playing with yourself

Start playing with others

It’s more fun

When it comes to iPhone games...

Tuesday, March 3, 2009

Parts

What is “multiplayer”?

Why should you care?

Design considerations

Implementation notes

ByteClub

Tuesday, March 3, 2009

Once upon a time,BobSpades463 was

addicted to online poker

Tuesday, March 3, 2009

What is “multiplayer”?

Definition

More than one participant

Players interacting...

with each other

with game-related objects

1 / 3Tuesday, March 3, 2009

What is “multiplayer”?

How “multi” can it get?

Same device

“Grab on” or “Pass-to-play”

Local Wi-Fi network

Internet

2 / 3Tuesday, March 3, 2009

What is “multiplayer”?

Synchronous

Players in game at the same time

More direct interactions

Asynchronous (e.g. “ghost racing”)

Time-shifted

Indirect interactions

Hybrid (e.g. MMOs)

3 / 3Tuesday, March 3, 2009

Why should you care?

Now is a good time

More connected world +

More powerful devices +

More entertainment consumed =

Convergence!

1 / 4Tuesday, March 3, 2009

Why should you care?

It’s natural

Being human = Being social

Competition and collaboration instincts

Facebook, Twitter leading the way

2 / 4Tuesday, March 3, 2009

Why should you care?

Must-have feature, sometimes

Tic-Tac-Toe against a computer?!

But, chess...

It’s about “fun”

Single-player with a touch of “multi”

3 / 4Tuesday, March 3, 2009

Why should you care?

More value to players

Replay-ability

More engaging

More value to developer

Stand out from the crowd

Viral qualities/publicity

4 / 4Tuesday, March 3, 2009

Design considerations

Time commitment

iPhone: ADD by design

Portability is key

Bite-sized gameplay on the go

Wi-Fi = More time to play

1 / 6Tuesday, March 3, 2009

Design considerations

Opponent availability problem

Increase user base

Use network effect

More platforms

Keep ‘em busy

2 / 6Tuesday, March 3, 2009

Design considerations

Accessibility

More features = More friction

KISS

Game interruptions

Phone ringing?

Don’t feel like losing?

3 / 6Tuesday, March 3, 2009

Design considerations

Face-to-face vs online

Let them communicate

Help them communicate

Local Wi-Fi vs online

Network speed

Finding opponents

4 / 6Tuesday, March 3, 2009

Design considerations

Server vs. No server

Connectivity

Game state

Crash handling

Security vs. obscurity

5 / 6Tuesday, March 3, 2009

Design considerations

Levels of (asynch) interaction

High scores

Challenges

“Ghost racing”

Conspicuously absent...

6 / 6Tuesday, March 3, 2009

Implementation notes

Connectivity

Persistent connections

Non-persistent connections

Latency = Lag = Bad

EDGE and 3G = Latency

1 / 7Tuesday, March 3, 2009

Implementation notes

Marshaling data

Text (XML, JSON etc)

Easy to debug/Cross-platform

Bulky

Binary

Reverse of the above

2 / 7Tuesday, March 3, 2009

Implementation notes

Security

More honey = More bears

Servers

Communication

Databases

3 / 7Tuesday, March 3, 2009

Implementation notes

Scalability and Stability

Congrats, you app is popular!

Oops, here comes the crowd!

Redundancy = Good = Good

Extensible data storage

Parallel message processing

4 / 7Tuesday, March 3, 2009

Implementation notes

Operations

Server + Clients = Family

“No app left behind”

Monitor this!

Down for maintenance

Notify users, pick non-peak time

5 / 7Tuesday, March 3, 2009

Implementation notes

Hosting

In your basement

Rack space

Shared/dedicated servers

Cloud

6 / 7Tuesday, March 3, 2009

Implementation notes

iPhone SDK networking

C vs Objective-C

Sockets and streams

HTTP and FTP

DNS (CFHost)

Bonjour (CFNetServices)

7 / 7Tuesday, March 3, 2009

ByteClub

Scramboni

50,000 players

It’s fun, but...

Multiplayer Gaming Platform

Same back-end

Available to other developers

Tuesday, March 3, 2009

Thank you!

http://byteclub.com

Tuesday, March 3, 2009

Recommended