SlideShare a Scribd company logo
Syncing Success
Managing Online/Offline Game
States Across Multiple Devices
Dave Geurts and Colter Haycock
Software Engineers
Smart Bomb Interactive
Goals: Create mobile game that…
• Supports local only mode
• Allows play on multiple devices
• Seamlessly supports online and offline play
• Is non-intrusive when switching devices
• Requires minimal server logic
Our Recipe
1) Serialized hashed game state
2) Security
3) Server with volatile caching and persistent
storage
4) Save state system for online and offline
play
1) Hashed Game State
● Serialization - Google Protocol Buffers
Pros
o Less Server Code
1) Hashed Game State: Ingredients
● Serialization - Google Protocol Buffers
Pros
o Less Server Code
o Fewer Database Schemas to Manage
1) Hashed Game State: Ingredients
● Serialization - Google Protocol Buffers
Pros
o Less Server Code
o Fewer Database Schemas to Manage
o Obfuscation
1) Hashed Game State: Ingredients
● Serialization - Google Protocol Buffers
Pros
o Less Server Code
o Fewer Database Schemas to Manage
o Obfuscation
Cons
o Can be difficult for debugging
o Will need an External source for Metrics/Analytics
● Game State versioning
1) Hashed Game State: Ingredients
● Serialization - Google Protocol Buffers
Pros
o Less Server Code
o Fewer Database Schemas to Manage
o Obfuscation
Cons
o Can be difficult for debugging
o Will need an External source for Metrics/Analytics
● Game State versioning
● Storage friendly character sets
2) Security
Encryption of Game State
● Prevent share of save files
● Client needs to be able to decrypt
without talking to server
● Don’t leave keys/salt in plain text
Server Authentication
● Confirming identity is important!
● Some systems **cough** Game Center **cough** don’t
support server authentication
TAKEAWAY: If someone smart wants to hack your game,
they will!
3) Server w/ Volatile Caching
and Persistent Storage
Application language that can
easily load balance
App server needs to be lean! Simple
logic to allow easy scaling
Pick a database that will shard out
of the box
Cache layer to let databases breathe!
4) Online and Offline Play
Problem
How do you allow play on multiple devices
while supporting online and offline modes?
Houston, We Have a Problem
4) Online / Offline Formula
● On login, client sends game state + UDID
● Server responds with game state
+ UDID of last save it has
Client Rules
● Server UDID == my UDID: use local
● Server UDID != my UDID:
● If last save on this device was ONLINE:
use server state
● If last save on this device was OFFLINE:
ask user
Login
State: BA
A
Save
Online
Login Save
Online
A
Login
B
Save
Online
Login
State: BA
A
Save
Online
Login Save
Offline
A
Login
B
Save
Online
Save
Online
Login
State: B
A
Save
Online
Login Save
Offline
A
Login
Save
Online
A
A
Login
Improvement: Merging
4) Same Time Play
Problem: playing on same account on multiple
devices at the same time
Potential Solutions
Don’t Allow Stomping Stomp + Notify
4) Same Time Play
Solution 1: Don’t Allow
● Client sends heartbeat to server
● Client sends “I’m done” on pause/quit
● Server doesn’t allow second device to play
Pro
1. No stomping
Cons
1. Requires server and client logic
2. Must ping servers frequently
4) Same Time Play
Solution 2: Stomping
● Client gets game state from server on login
● Whoever saves last (closes app) wins
Pro
1. No added server or client code
Con
1. Stomping SUCKS
Users won’t always realize they “stomped” their
data and might think it’s a bug if they “lost”
data
4) Same Time Play
Solution 3: Stomping w/ Notifications
● Client gets game state from server on login
● Whoever saves last (closes app) wins
● Notify users when stomping is detected
Pros
1. Users can keep playing
2. Notified if a stomp occurred
Cons
1. Stomping still SUCKS
2. Requires extra server/client code
Hindsight Is Wonderful
● People barely ever QUIT your app. Almost
all “closes” are really just pauses
● Don’t assume your target
audience’s hardware!
● Do research about silly reasons
Apple has rejected apps!
Server Tools
Scaling Tools
Client Tools
Contact Information
Dave Geurts
daveg@smartbombinteractive.com
@sims11tz
Colter Haycock
colter@smartbombinteractive.com
@blindgoatia
Questions?

More Related Content

Similar to GDC Next 2013 - Synching Game States Across Multiple Devices

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
 
Orleans gdc2019
Orleans gdc2019Orleans gdc2019
Orleans gdc2019
Crystin Cox
 
Scalability & Big Data challenges in real time multiplayer games
Scalability & Big Data challenges in real time multiplayer gamesScalability & Big Data challenges in real time multiplayer games
Scalability & Big Data challenges in real time multiplayer games
Yan Cui
 
go-man API
go-man APIgo-man API
go-man API
Rob Baines
 
Developing great games for Windows 8 by Lorenzo Barbieri
Developing great games for Windows 8 by Lorenzo BarbieriDeveloping great games for Windows 8 by Lorenzo Barbieri
Developing great games for Windows 8 by Lorenzo Barbieri
Codemotion
 
All In - Halves Presentation
All In - Halves PresentationAll In - Halves Presentation
All In - Halves Presentation
freddiesulit
 
Unit 20 - Game Platforms
Unit 20 - Game PlatformsUnit 20 - Game Platforms
Unit 20 - Game Platforms
Gulshan Golechha
 
Unit 20 - Game Platforms
Unit 20 - Game PlatformsUnit 20 - Game Platforms
Unit 20 - Game Platforms
Gulshan Golechha
 
98 374 Lesson 02-slides
98 374 Lesson 02-slides98 374 Lesson 02-slides
98 374 Lesson 02-slides
Tracie King
 
Gameathon UK Windows 8 Lecture
Gameathon UK  Windows 8 Lecture Gameathon UK  Windows 8 Lecture
Gameathon UK Windows 8 Lecture
Lee Stott
 
Dedicated Game Servers
Dedicated Game ServersDedicated Game Servers
Dedicated Game Servers
webhostingguy
 
Artem Petrov "Preparing for distribution"
Artem Petrov "Preparing for distribution"Artem Petrov "Preparing for distribution"
Artem Petrov "Preparing for distribution"
Lviv Startup Club
 
Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience
Docker, Inc.
 
Mux loves Clickhouse. By Adam Brown, Mux founder
Mux loves Clickhouse. By Adam Brown, Mux founderMux loves Clickhouse. By Adam Brown, Mux founder
Mux loves Clickhouse. By Adam Brown, Mux founder
Altinity Ltd
 
MY SKILLS
MY SKILLSMY SKILLS
MY SKILLS
samuel wilson
 
Reverse Engineering the TomTom Runner pt. 1
Reverse Engineering the TomTom Runner pt. 1 Reverse Engineering the TomTom Runner pt. 1
Reverse Engineering the TomTom Runner pt. 1
Luis Grangeia
 
BlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One Story
BlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One StoryBlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One Story
BlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One Story
BlueHat Security Conference
 
Fighting online game cheating with cryptography
Fighting online game cheating with cryptographyFighting online game cheating with cryptography
Fighting online game cheating with cryptography
Steven Davis
 
Gaming VPN
Gaming VPNGaming VPN
Gaming VPN
Raheel Umair
 
When the internet bleeded : RootConf 2014
When the internet bleeded : RootConf 2014When the internet bleeded : RootConf 2014
When the internet bleeded : RootConf 2014
Anant Shrivastava
 

Similar to GDC Next 2013 - Synching Game States Across Multiple Devices (20)

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...
 
Orleans gdc2019
Orleans gdc2019Orleans gdc2019
Orleans gdc2019
 
Scalability & Big Data challenges in real time multiplayer games
Scalability & Big Data challenges in real time multiplayer gamesScalability & Big Data challenges in real time multiplayer games
Scalability & Big Data challenges in real time multiplayer games
 
go-man API
go-man APIgo-man API
go-man API
 
Developing great games for Windows 8 by Lorenzo Barbieri
Developing great games for Windows 8 by Lorenzo BarbieriDeveloping great games for Windows 8 by Lorenzo Barbieri
Developing great games for Windows 8 by Lorenzo Barbieri
 
All In - Halves Presentation
All In - Halves PresentationAll In - Halves Presentation
All In - Halves Presentation
 
Unit 20 - Game Platforms
Unit 20 - Game PlatformsUnit 20 - Game Platforms
Unit 20 - Game Platforms
 
Unit 20 - Game Platforms
Unit 20 - Game PlatformsUnit 20 - Game Platforms
Unit 20 - Game Platforms
 
98 374 Lesson 02-slides
98 374 Lesson 02-slides98 374 Lesson 02-slides
98 374 Lesson 02-slides
 
Gameathon UK Windows 8 Lecture
Gameathon UK  Windows 8 Lecture Gameathon UK  Windows 8 Lecture
Gameathon UK Windows 8 Lecture
 
Dedicated Game Servers
Dedicated Game ServersDedicated Game Servers
Dedicated Game Servers
 
Artem Petrov "Preparing for distribution"
Artem Petrov "Preparing for distribution"Artem Petrov "Preparing for distribution"
Artem Petrov "Preparing for distribution"
 
Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience
 
Mux loves Clickhouse. By Adam Brown, Mux founder
Mux loves Clickhouse. By Adam Brown, Mux founderMux loves Clickhouse. By Adam Brown, Mux founder
Mux loves Clickhouse. By Adam Brown, Mux founder
 
MY SKILLS
MY SKILLSMY SKILLS
MY SKILLS
 
Reverse Engineering the TomTom Runner pt. 1
Reverse Engineering the TomTom Runner pt. 1 Reverse Engineering the TomTom Runner pt. 1
Reverse Engineering the TomTom Runner pt. 1
 
BlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One Story
BlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One StoryBlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One Story
BlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One Story
 
Fighting online game cheating with cryptography
Fighting online game cheating with cryptographyFighting online game cheating with cryptography
Fighting online game cheating with cryptography
 
Gaming VPN
Gaming VPNGaming VPN
Gaming VPN
 
When the internet bleeded : RootConf 2014
When the internet bleeded : RootConf 2014When the internet bleeded : RootConf 2014
When the internet bleeded : RootConf 2014
 

Recently uploaded

AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
HarisZaheer8
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
alexjohnson7307
 
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
 
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
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
Dinusha Kumarasiri
 
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
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
LucaBarbaro3
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
Intelisync
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 
SAP S/4 HANA sourcing and procurement to Public cloud
SAP S/4 HANA sourcing and procurement to Public cloudSAP S/4 HANA sourcing and procurement to Public cloud
SAP S/4 HANA sourcing and procurement to Public cloud
maazsz111
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
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
 
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
 
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
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Precisely
 
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)

AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
 
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
 
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
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
 
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
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 
SAP S/4 HANA sourcing and procurement to Public cloud
SAP S/4 HANA sourcing and procurement to Public cloudSAP S/4 HANA sourcing and procurement to Public cloud
SAP S/4 HANA sourcing and procurement to Public cloud
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
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
 
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
 
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...
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
 
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
 

GDC Next 2013 - Synching Game States Across Multiple Devices

  • 1. Syncing Success Managing Online/Offline Game States Across Multiple Devices Dave Geurts and Colter Haycock Software Engineers Smart Bomb Interactive
  • 2.
  • 3.
  • 4. Goals: Create mobile game that… • Supports local only mode • Allows play on multiple devices • Seamlessly supports online and offline play • Is non-intrusive when switching devices • Requires minimal server logic
  • 5. Our Recipe 1) Serialized hashed game state 2) Security 3) Server with volatile caching and persistent storage 4) Save state system for online and offline play
  • 6. 1) Hashed Game State ● Serialization - Google Protocol Buffers Pros o Less Server Code
  • 7.
  • 8. 1) Hashed Game State: Ingredients ● Serialization - Google Protocol Buffers Pros o Less Server Code o Fewer Database Schemas to Manage
  • 9.
  • 10. 1) Hashed Game State: Ingredients ● Serialization - Google Protocol Buffers Pros o Less Server Code o Fewer Database Schemas to Manage o Obfuscation
  • 11.
  • 12. 1) Hashed Game State: Ingredients ● Serialization - Google Protocol Buffers Pros o Less Server Code o Fewer Database Schemas to Manage o Obfuscation Cons o Can be difficult for debugging o Will need an External source for Metrics/Analytics ● Game State versioning
  • 13.
  • 14. 1) Hashed Game State: Ingredients ● Serialization - Google Protocol Buffers Pros o Less Server Code o Fewer Database Schemas to Manage o Obfuscation Cons o Can be difficult for debugging o Will need an External source for Metrics/Analytics ● Game State versioning ● Storage friendly character sets
  • 15. 2) Security Encryption of Game State ● Prevent share of save files ● Client needs to be able to decrypt without talking to server ● Don’t leave keys/salt in plain text Server Authentication ● Confirming identity is important! ● Some systems **cough** Game Center **cough** don’t support server authentication TAKEAWAY: If someone smart wants to hack your game, they will!
  • 16. 3) Server w/ Volatile Caching and Persistent Storage Application language that can easily load balance App server needs to be lean! Simple logic to allow easy scaling Pick a database that will shard out of the box Cache layer to let databases breathe!
  • 17. 4) Online and Offline Play Problem How do you allow play on multiple devices while supporting online and offline modes?
  • 18. Houston, We Have a Problem
  • 19. 4) Online / Offline Formula ● On login, client sends game state + UDID ● Server responds with game state + UDID of last save it has Client Rules ● Server UDID == my UDID: use local ● Server UDID != my UDID: ● If last save on this device was ONLINE: use server state ● If last save on this device was OFFLINE: ask user
  • 24. 4) Same Time Play Problem: playing on same account on multiple devices at the same time Potential Solutions Don’t Allow Stomping Stomp + Notify
  • 25. 4) Same Time Play Solution 1: Don’t Allow ● Client sends heartbeat to server ● Client sends “I’m done” on pause/quit ● Server doesn’t allow second device to play Pro 1. No stomping Cons 1. Requires server and client logic 2. Must ping servers frequently
  • 26. 4) Same Time Play Solution 2: Stomping ● Client gets game state from server on login ● Whoever saves last (closes app) wins Pro 1. No added server or client code Con 1. Stomping SUCKS Users won’t always realize they “stomped” their data and might think it’s a bug if they “lost” data
  • 27. 4) Same Time Play Solution 3: Stomping w/ Notifications ● Client gets game state from server on login ● Whoever saves last (closes app) wins ● Notify users when stomping is detected Pros 1. Users can keep playing 2. Notified if a stomp occurred Cons 1. Stomping still SUCKS 2. Requires extra server/client code
  • 28. Hindsight Is Wonderful ● People barely ever QUIT your app. Almost all “closes” are really just pauses ● Don’t assume your target audience’s hardware! ● Do research about silly reasons Apple has rejected apps!
  • 30. Contact Information Dave Geurts daveg@smartbombinteractive.com @sims11tz Colter Haycock colter@smartbombinteractive.com @blindgoatia Questions?