SlideShare uma empresa Scribd logo
1 de 75
Baixar para ler offline
“Let’s	
  Play	
  Together”	
  
Networked	
  Mul-player	
  Games	
  
Amir	
  H.	
  Fassihi	
  
Fanafzar	
  
Background	
  
Garshasp:	
  The	
  Monster	
  Slayer,	
  PC	
  
2011	
  
Garshasp:	
  Temple	
  of	
  the	
  Dragon,	
  PC	
  
2012	
  
Shadow	
  Blade,	
  iOS,	
  Android	
  
Fall,	
  2013	
  
Current	
  Game	
  
•  Coopera-ve	
  Mul-player	
  Game	
  
Mul-player	
  Games	
  
•  Co-­‐op/PvP	
  
•  Local/LAN/Internet	
  
•  Real-­‐-me/Asynchronous	
  
This	
  Talk	
  
•  LAN/Internet	
  
•  Co-­‐op/PvP	
  
•  Real-me	
  
Game	
  Networking	
  
Gameplay	
  Code	
  
High	
  Level	
  Network	
  Code	
  
Low	
  Level	
  Network	
  Code	
  
Low	
  Level	
  Networking	
  
•  Sockets	
  
•  Transfer	
  Protocols	
  
•  NAT	
  (Network	
  Address	
  Transla9on)	
  
Sockets	
  
•  Socket	
  
– IP	
  
– Port	
  
•  OS	
  Support	
  
– BSD	
  Sockets	
  
– WinSock	
  
– …	
  
Transfer	
  Protocols	
  
•  UDP	
  
– Unreliable	
  
– Un-­‐ordered	
  
– Connec-on-­‐less	
  using	
  Datagrams	
  (1400	
  bytes)	
  
•  TCP	
  
– Reliable	
  
– Ordered	
  
– Stream	
  Based	
  
Game	
  Networking	
  
	
  
	
  
	
  
UDP	
  +	
  reliability	
  +	
  order	
  
NAT	
  
•  Network	
  Address	
  Transla-on	
  
•  Connec-on	
  Problem	
  with	
  NAT	
  Box	
  
– Server	
  Listening	
  on	
  Port	
  
– Client	
  changing	
  port	
  
•  NAT	
  Punch-­‐through	
  with	
  Facilitator	
  Server	
  
High	
  Level	
  Networking	
  
•  Architecture	
  
•  Data	
  to	
  Transfer	
  
•  Lag	
  Compensa-on	
  
Network	
  Architecture	
  
•  Peer	
  to	
  Peer	
  
•  Client	
  Server	
  
•  Mixed	
  
Peer	
  to	
  Peer	
  
Client	
  1	
   Client	
  2	
  
Client	
  3	
  Client	
  4	
  
Client-­‐Server	
  
Client	
  1	
  
Client	
  2	
  
Client	
  3	
  
Server	
  
Data	
  Transfer	
  
	
  
	
  
	
  
How	
  To	
  Share	
  The	
  Same	
  Experience?	
  
What	
  to	
  Send?	
  
1.  Share	
  Inputs	
  
2.  Share	
  Input	
  and	
  State	
  (Authorita-ve	
  Server)	
  
3.  Share	
  Input	
  and	
  State	
  (Mixed	
  Authority)	
  
Game	
  Loop	
  (Simplified)	
  
1.  Read	
  User	
  Input	
  
2.  Do	
  Simula-on	
  
1.  Logic	
  
2.  AI	
  
3.  Physics	
  …	
  
3.  Output	
  
1.  Render	
  Graphics	
  
2.  Play	
  Sound/Music	
  
3.  Update	
  UI	
  …	
  
Sharing	
  Input	
  
Client	
  1	
   Client	
  2	
  
User	
  1	
  Input	
  
User	
  2	
  Input	
  
Shared	
  Input	
  P2P	
  
Main	
  Requirement:	
  
	
  
Determinis=c	
  Simula=on	
  
Shared	
  Input	
  P2P	
  
Constraint	
  (for	
  Lockstep):	
  
	
  
Lag	
  Effect	
  On	
  Clients	
  
No	
  mid-­‐game	
  join!	
  
Shared	
  Input	
  P2P	
  
Risk:	
  
	
  
Chea=ng	
  
Shared	
  Input	
  P2P	
  
Advantage:	
  
	
  
Low	
  Bandwidth	
  Requirements	
  
Shared	
  Input	
  P2P	
  
Used	
  for:	
  
Strategy	
  Games	
  
(Starcra',	
  Age	
  of	
  Empires,	
  …)	
  
	
  
1500	
  Archers	
  
•  1500	
  Archers	
  on	
  a	
  28.8:	
  Network	
  
Programming	
  in	
  Age	
  of	
  Empires	
  and	
  Beyond,	
  
Gamasutra	
  
Shared	
  State	
  
Server	
  
Client	
  1	
   Client	
  2	
  
Input	
  1	
   Input	
  2	
  
Game	
  
State	
  
Game	
  
State	
  
Shared	
  State	
  
Main	
  Requirement:	
  
	
  
Simula=on	
  Only	
  On	
  Server	
  
Shared	
  State	
  	
  
Constraint:	
  
	
  
High	
  Bandwidth	
  	
  
(Especially	
  the	
  Server!)	
  
Shared	
  State	
  
•  Cheat	
  Proof	
  
•  Non-­‐determinis-c	
  simula-on	
  is	
  ok	
  
•  Different	
  client	
  lag	
  will	
  not	
  stall	
  
•  Mid-­‐game	
  joining	
  possible	
  
Shared	
  State	
  
Good	
  For:	
  
	
  
Ac=on	
  Games	
  
Compe==ve	
  Games	
  (eSports)	
  
Main	
  Challenge	
  
	
  
	
  
	
  
Biggest	
  Challenge	
  in	
  Game	
  Networking	
  is:	
  
 
	
  
	
  
Lag!!!	
  	
  
Lag	
  in	
  Client-­‐Server	
  
Client	
   Server	
  
Press	
  Buaon	
  
Press	
  Buaon	
  
Fire	
  
Fire	
  
Lag	
  in	
  Client-­‐Server	
  
Client	
   Server	
  
Press	
  Buaon	
  
Press	
  Buaon	
  
Fire	
  
Fire	
  
Lag	
  
Solu-on	
  #1	
  
	
  
	
  
Client	
  Side	
  Predic=on	
  
Client-­‐side	
  Predic-on	
  
Client	
   Server	
  
Press	
  Buaon	
  
Press	
  Buaon	
  
Fire	
  
Fire	
  
Check	
  Validity	
  
Client-­‐side	
  Predic-on	
  
•  Fix	
  Client	
  State	
  if	
  different	
  
•  State	
  History	
  on	
  Client	
  
•  Useful	
  for	
  player	
  state	
  
•  Can	
  be	
  used	
  for	
  other	
  objects	
  (extrapola-on)	
  
Client-­‐side	
  Predic-on	
  
Popularized	
  by:	
  
Solu-on	
  #2	
  
	
  
	
  
Input	
  Latency	
  
Input	
  Latency	
  
•  Input	
  marked	
  for	
  future	
  
•  50-­‐100ms	
  
•  Client	
  will	
  interpolate	
  
Input	
  Latency	
  
Client	
   Server	
  
Move	
  Forward	
  
T	
  =	
  +100ms	
  
Move	
  Forward	
  
Find	
  posi-on	
  for:	
  +100	
  
Pos:	
  +100ms	
  
Current	
  t:	
  +70ms	
  
Interpolate	
  between	
  previous	
  
pos	
  and	
  pos	
  at	
  +100ms	
  for	
  +70ms	
  
Client	
  Interpola-on	
  
-me	
  =	
  1200	
   -me	
  =	
  1300	
  
pos	
  =	
  1,	
  1,	
  1	
   pos	
  =	
  2,	
  2,	
  1	
  
9me	
  =	
  1250	
  
pos	
  =	
  1.5,	
  1.5,	
  1	
  
Interpolated	
  State	
  
Solu-on	
  #3	
  
	
  
	
  
Server-­‐side	
  Lag	
  Compensa=on	
  
Server-­‐side	
  Lag	
  Compensa-on	
  
•  Rewind	
  simula-on	
  on	
  server	
  based	
  on	
  client	
  
lag.	
  
•  Re-­‐simulate	
  game.	
  
Source	
  Engine	
  Lag	
  Compensa-on	
  
Gameplay	
  Inconsistencies	
  
•  Wrong	
  posi-on	
  (no	
  compensa9on)	
  
•  Late	
  Hits	
  (with	
  compensa9on)	
  
Problem	
  with	
  Lag	
  Compensa-on	
  
A	
  
B	
  
High	
  Lag	
  
Low	
  Lag	
  
Problem	
  with	
  Lag	
  Compensa-on	
  
A	
  
B	
  
High	
  Lag	
  
Low	
  Lag	
  
B	
  
Design	
  
	
  
	
  
Lag	
  Compensa=on	
  Strategy	
  can	
  be	
  a	
  	
  
“Game	
  Design”	
  decision.	
  
Doom	
  III	
  Solu-on	
  
	
  
Player	
  Extrapola=on	
  
Player	
  Extrapola-on	
  
•  A	
  kind	
  of	
  Predic-on	
  
•  Assume	
  controls	
  don’t	
  change	
  
•  Simulate	
  fully	
  (with	
  Physics)	
  like	
  the	
  server	
  
•  AKA	
  Dead	
  Reckoning	
  
Mixed	
  Authority	
  
•  Clients	
  with	
  Authority	
  over	
  some	
  objects.	
  
•  Example:	
  Sync	
  Host	
  in	
  FUSE	
  (Overstrike),	
  
Game	
  Developer	
  Magazine,	
  Feb	
  2012	
  
	
  
Network	
  Op-miza-on	
  
•  High	
  Level	
  
– Architecture	
  Selec-on	
  
– Update	
  Frequency	
  
– Data	
  Relevancy	
  
– Priori-za-on	
  
Network	
  Op-miza-on	
  
•  Low	
  Level	
  
– Bitpacking	
  (bitstreams)	
  
– Compression	
  
– Delta	
  Values	
  
Delta	
  Compression	
  in	
  Quake	
  (1996)	
  
Quake	
  Delta	
  Compression	
  
Delta	
  +	
  Reliable	
  UDP	
  
Quake	
  Network	
  Stack	
  
Doom	
  (1993)	
  
•  Doom	
  used	
  P2P	
  Lockstep	
  Model.	
  Good	
  for	
  
LAN	
  only.	
  
Quake	
  Engine	
  Evolu-on	
  
Quake	
  Engine	
  Evolu-on	
  
Quake	
  Engine	
  Evolu-on	
  
Quake	
  Engine	
  Evolu-on	
  
Cloud	
  Gaming	
  
Main	
  Challenge:	
  
	
  
Lag!	
  
Figh-ng	
  Game	
  Networking	
  
•  Peer	
  to	
  Peer	
  
– Input	
  Latency	
  
– Rollback	
  Technique	
  
	
  
Example:	
  GGPO	
  Networking	
  
Library	
  
Networking	
  Libraries	
  
•  Enet	
  
•  RakNet	
  
•  Ice	
  
•  PocoProject	
  
•  Torque	
  Network	
  Library	
  
•  ZeroMQ	
  
•  Boost	
  ASIO	
  
Conclusion	
  
•  Networking	
  is	
  a	
  tradeoff	
  between:	
  
– Consistency	
  
– Responsiveness	
  
– Bandwidth	
  
– Latency	
  
References	
  1	
  
•  Robust	
  Efficient	
  Networking,	
  Ben	
  Garney,	
  GDC	
  
2008	
  
•  Torque	
  Networking	
  Library	
  (opentnl.org)	
  
•  Video	
  Game	
  Op-miza-on,	
  Ben	
  Garney	
  
•  “I	
  Shot	
  You	
  First”,	
  Halo	
  Reach	
  Networking,	
  
David	
  Aldridge,	
  GDC	
  	
  2011	
  
	
  
References	
  2	
  
•  QuakeWorld	
  	
  
hap://en.wikipedia.org/wiki/QuakeWorld	
  
•  Network	
  Systems	
  in	
  Insomniac	
  Games’	
  
Overstrike	
  (FUSE),	
  Game	
  Developer	
  Magazine,	
  
Feb	
  2012	
  
•  1500	
  Archers	
  on	
  a	
  28.8,	
  
hap://www.gamasutra.com/view/feature/
131503/1500_archers_on_a_288_network_.php?page=1	
  
References	
  3	
  
•  “The	
  TRIBES	
  Engine	
  Networking	
  Model”,	
  
Frohnmayer	
  and	
  Gis,	
  GDC	
  1999	
  	
  	
  
•  Understanding	
  Figh-ng	
  Game	
  Networking,	
  
hap://mauve.mizuumi.net/2012/07/05/understanding-­‐figh-ng-­‐game-­‐
networking/	
  
•  GGOP	
  Networking	
  Library,	
  	
  
hap://ggpo.net/	
  
•  The	
  Doom	
  III	
  Network	
  Architecture	
  
hap://mrelusive.com/publica-ons/papers/The-­‐DOOM-­‐III-­‐Network-­‐
Architecture.pdf	
  
References	
  4	
  
•  The	
  Quake	
  3	
  Networking	
  Model,	
  Brian	
  Hook,	
  
hap://trac.bookouook.com/bookouook/trac.cgi/wiki/
Quake3Networking	
  
•  What	
  Every	
  Programmer	
  Needs	
  To	
  Know	
  
About	
  Game	
  Networking,	
  Glenn	
  Fiedler,	
  
hap://gafferongames.com/networking-­‐for-­‐game-­‐programmers/what-­‐
every-­‐programmer-­‐needs-­‐to-­‐know-­‐about-­‐game-­‐networking/	
  
•  Unreal	
  Networking	
  Architectures	
  
hap://udn.epicgames.com/Three/NetworkingOverview.html	
  
References	
  5	
  
•  “Latency	
  Compensa-ng	
  Methods	
  in	
  Client/Server	
  
in-­‐game	
  Protocol	
  Design”,	
  Yahn	
  Bernier,	
  Valve	
  	
  
haps://developer.valvesosware.com/wiki/
Latency_Compensa-ng_Methods_in_Client/Server_In-­‐
game_Protocol_Design_and_Op-miza-on#Lag_Compensa-on	
  
•  Believable	
  Dead	
  Reckoning	
  for	
  Networked	
  
Games,	
  Cur-ss	
  Murphy,	
  Game	
  Engine	
  Gems	
  2	
  
•  Choosing	
  a	
  Game	
  Network	
  Library,	
  Patrick	
  Wyaa,	
  
hap://www.codeouonor.com/blog/choosing-­‐a-­‐game-­‐network-­‐lib	
  
References	
  6	
  
•  Dead	
  Reckoning:	
  Latency	
  Hiding	
  for	
  
Networked	
  games	
  
hap://www.gamasutra.com/view/feature/3230/
dead_reckoning_latency_hiding_for_.php	
  
Special	
  Thanks	
  	
  
•  Yaser	
  Zhian	
  
•  Hojjat	
  Jafary	
  
•  Ashkan	
  Saeidi	
  
Ques-ons?	
  
	
  
	
  
	
  
fassihi@fanafzar.com	
  

Mais conteúdo relacionado

Mais procurados

Supersize your production pipe enjmin 2013 v1.1 hd
Supersize your production pipe    enjmin 2013 v1.1 hdSupersize your production pipe    enjmin 2013 v1.1 hd
Supersize your production pipe enjmin 2013 v1.1 hdslantsixgames
 
BSidesDelhi 2018: Headshot - Game Hacking on macOS
BSidesDelhi 2018: Headshot - Game Hacking on macOSBSidesDelhi 2018: Headshot - Game Hacking on macOS
BSidesDelhi 2018: Headshot - Game Hacking on macOSBSides Delhi
 
How we optimized our Game - Jake & Tess' Finding Monsters Adventure
How we optimized our Game - Jake & Tess' Finding Monsters AdventureHow we optimized our Game - Jake & Tess' Finding Monsters Adventure
How we optimized our Game - Jake & Tess' Finding Monsters AdventureFelipe Lira
 
Practical SPU Programming in God of War III
Practical SPU Programming in God of War IIIPractical SPU Programming in God of War III
Practical SPU Programming in God of War IIISlide_N
 
Game Programming - Cloud Development
Game Programming - Cloud DevelopmentGame Programming - Cloud Development
Game Programming - Cloud DevelopmentNick Pruehs
 
SPU Shaders
SPU ShadersSPU Shaders
SPU ShadersSlide_N
 
【Unite 2017 Tokyo】スクリプタブル・レンダーパイプラインのカスタマイズと拡張
【Unite 2017 Tokyo】スクリプタブル・レンダーパイプラインのカスタマイズと拡張【Unite 2017 Tokyo】スクリプタブル・レンダーパイプラインのカスタマイズと拡張
【Unite 2017 Tokyo】スクリプタブル・レンダーパイプラインのカスタマイズと拡張Unite2017Tokyo
 
Top 5 mistakes when writing Spark applications
Top 5 mistakes when writing Spark applicationsTop 5 mistakes when writing Spark applications
Top 5 mistakes when writing Spark applicationsmarkgrover
 
Stupid Video Tricks, CocoaConf Seattle 2014
Stupid Video Tricks, CocoaConf Seattle 2014Stupid Video Tricks, CocoaConf Seattle 2014
Stupid Video Tricks, CocoaConf Seattle 2014Chris Adamson
 
Does the SPL still have any relevance in the Brave New World of PHP7?
Does the SPL still have any relevance in the Brave New World of PHP7?Does the SPL still have any relevance in the Brave New World of PHP7?
Does the SPL still have any relevance in the Brave New World of PHP7?Mark Baker
 
【Unite Tokyo 2018】実践的なパフォーマンス分析と最適化
【Unite Tokyo 2018】実践的なパフォーマンス分析と最適化【Unite Tokyo 2018】実践的なパフォーマンス分析と最適化
【Unite Tokyo 2018】実践的なパフォーマンス分析と最適化Unity Technologies Japan K.K.
 
Practical Guide for Optimizing Unity on Mobiles
Practical Guide for Optimizing Unity on MobilesPractical Guide for Optimizing Unity on Mobiles
Practical Guide for Optimizing Unity on MobilesValentin Simonov
 
Raspberry Pi Gaming Rig
Raspberry Pi Gaming RigRaspberry Pi Gaming Rig
Raspberry Pi Gaming RigDuc Le
 

Mais procurados (14)

Supersize your production pipe enjmin 2013 v1.1 hd
Supersize your production pipe    enjmin 2013 v1.1 hdSupersize your production pipe    enjmin 2013 v1.1 hd
Supersize your production pipe enjmin 2013 v1.1 hd
 
BSidesDelhi 2018: Headshot - Game Hacking on macOS
BSidesDelhi 2018: Headshot - Game Hacking on macOSBSidesDelhi 2018: Headshot - Game Hacking on macOS
BSidesDelhi 2018: Headshot - Game Hacking on macOS
 
How we optimized our Game - Jake & Tess' Finding Monsters Adventure
How we optimized our Game - Jake & Tess' Finding Monsters AdventureHow we optimized our Game - Jake & Tess' Finding Monsters Adventure
How we optimized our Game - Jake & Tess' Finding Monsters Adventure
 
Emulating With JavaScript
Emulating With JavaScriptEmulating With JavaScript
Emulating With JavaScript
 
Practical SPU Programming in God of War III
Practical SPU Programming in God of War IIIPractical SPU Programming in God of War III
Practical SPU Programming in God of War III
 
Game Programming - Cloud Development
Game Programming - Cloud DevelopmentGame Programming - Cloud Development
Game Programming - Cloud Development
 
SPU Shaders
SPU ShadersSPU Shaders
SPU Shaders
 
【Unite 2017 Tokyo】スクリプタブル・レンダーパイプラインのカスタマイズと拡張
【Unite 2017 Tokyo】スクリプタブル・レンダーパイプラインのカスタマイズと拡張【Unite 2017 Tokyo】スクリプタブル・レンダーパイプラインのカスタマイズと拡張
【Unite 2017 Tokyo】スクリプタブル・レンダーパイプラインのカスタマイズと拡張
 
Top 5 mistakes when writing Spark applications
Top 5 mistakes when writing Spark applicationsTop 5 mistakes when writing Spark applications
Top 5 mistakes when writing Spark applications
 
Stupid Video Tricks, CocoaConf Seattle 2014
Stupid Video Tricks, CocoaConf Seattle 2014Stupid Video Tricks, CocoaConf Seattle 2014
Stupid Video Tricks, CocoaConf Seattle 2014
 
Does the SPL still have any relevance in the Brave New World of PHP7?
Does the SPL still have any relevance in the Brave New World of PHP7?Does the SPL still have any relevance in the Brave New World of PHP7?
Does the SPL still have any relevance in the Brave New World of PHP7?
 
【Unite Tokyo 2018】実践的なパフォーマンス分析と最適化
【Unite Tokyo 2018】実践的なパフォーマンス分析と最適化【Unite Tokyo 2018】実践的なパフォーマンス分析と最適化
【Unite Tokyo 2018】実践的なパフォーマンス分析と最適化
 
Practical Guide for Optimizing Unity on Mobiles
Practical Guide for Optimizing Unity on MobilesPractical Guide for Optimizing Unity on Mobiles
Practical Guide for Optimizing Unity on Mobiles
 
Raspberry Pi Gaming Rig
Raspberry Pi Gaming RigRaspberry Pi Gaming Rig
Raspberry Pi Gaming Rig
 

Destaque

بازی سازی ایرانی! توهم؟ واقعیت؟
بازی سازی ایرانی! توهم؟ واقعیت؟بازی سازی ایرانی! توهم؟ واقعیت؟
بازی سازی ایرانی! توهم؟ واقعیت؟Amir H. Fassihi
 
از بازی سازی در ایران تا بازی سازی ایرانی
از بازی سازی در ایران تا بازی سازی ایرانیاز بازی سازی در ایران تا بازی سازی ایرانی
از بازی سازی در ایران تا بازی سازی ایرانیAmir H. Fassihi
 
بازاریابی بازی‌های ویدیویی
بازاریابی بازی‌های ویدیوییبازاریابی بازی‌های ویدیویی
بازاریابی بازی‌های ویدیوییAmir H. Fassihi
 
چگونه موفقیت یا شکست پروژه شما از قبل مشخص شده است
چگونه موفقیت یا شکست پروژه شما از قبل مشخص شده استچگونه موفقیت یا شکست پروژه شما از قبل مشخص شده است
چگونه موفقیت یا شکست پروژه شما از قبل مشخص شده استAmir H. Fassihi
 
The Art of Game Development
The Art of Game DevelopmentThe Art of Game Development
The Art of Game DevelopmentAmir H. Fassihi
 
بازاریابی بازی‌های موبایل
بازاریابی بازی‌های موبایلبازاریابی بازی‌های موبایل
بازاریابی بازی‌های موبایلAmir H. Fassihi
 
Five Tips To Help You Tackle Programming
Five Tips To Help You Tackle ProgrammingFive Tips To Help You Tackle Programming
Five Tips To Help You Tackle ProgrammingWiley
 
Introduction to NoSQL Databases
Introduction to NoSQL DatabasesIntroduction to NoSQL Databases
Introduction to NoSQL DatabasesDerek Stainer
 
A Beginners Guide to noSQL
A Beginners Guide to noSQLA Beginners Guide to noSQL
A Beginners Guide to noSQLMike Crabb
 
Connecting With the Disconnected
Connecting With the DisconnectedConnecting With the Disconnected
Connecting With the DisconnectedChris Wejr
 

Destaque (12)

بازی سازی ایرانی! توهم؟ واقعیت؟
بازی سازی ایرانی! توهم؟ واقعیت؟بازی سازی ایرانی! توهم؟ واقعیت؟
بازی سازی ایرانی! توهم؟ واقعیت؟
 
از بازی سازی در ایران تا بازی سازی ایرانی
از بازی سازی در ایران تا بازی سازی ایرانیاز بازی سازی در ایران تا بازی سازی ایرانی
از بازی سازی در ایران تا بازی سازی ایرانی
 
Fanafzar
FanafzarFanafzar
Fanafzar
 
بازاریابی بازی‌های ویدیویی
بازاریابی بازی‌های ویدیوییبازاریابی بازی‌های ویدیویی
بازاریابی بازی‌های ویدیویی
 
چگونه موفقیت یا شکست پروژه شما از قبل مشخص شده است
چگونه موفقیت یا شکست پروژه شما از قبل مشخص شده استچگونه موفقیت یا شکست پروژه شما از قبل مشخص شده است
چگونه موفقیت یا شکست پروژه شما از قبل مشخص شده است
 
جادوی خلاقیت
جادوی خلاقیتجادوی خلاقیت
جادوی خلاقیت
 
The Art of Game Development
The Art of Game DevelopmentThe Art of Game Development
The Art of Game Development
 
بازاریابی بازی‌های موبایل
بازاریابی بازی‌های موبایلبازاریابی بازی‌های موبایل
بازاریابی بازی‌های موبایل
 
Five Tips To Help You Tackle Programming
Five Tips To Help You Tackle ProgrammingFive Tips To Help You Tackle Programming
Five Tips To Help You Tackle Programming
 
Introduction to NoSQL Databases
Introduction to NoSQL DatabasesIntroduction to NoSQL Databases
Introduction to NoSQL Databases
 
A Beginners Guide to noSQL
A Beginners Guide to noSQLA Beginners Guide to noSQL
A Beginners Guide to noSQL
 
Connecting With the Disconnected
Connecting With the DisconnectedConnecting With the Disconnected
Connecting With the Disconnected
 

Semelhante a Lets Play Together

Harlan Beverly Lag The Barrier to innovation gdc austin 2009
Harlan Beverly Lag The Barrier to innovation gdc austin 2009Harlan Beverly Lag The Barrier to innovation gdc austin 2009
Harlan Beverly Lag The Barrier to innovation gdc austin 2009Harlan Beverly
 
Harlan beverly gaming levels up networking ieee 10 2009
Harlan beverly gaming levels up networking ieee 10 2009Harlan beverly gaming levels up networking ieee 10 2009
Harlan beverly gaming levels up networking ieee 10 2009Harlan Beverly
 
Photon Session / Unite12 Conference
Photon Session / Unite12 ConferencePhoton Session / Unite12 Conference
Photon Session / Unite12 ConferenceChristof Wegmann
 
Massively Social != Massively Multiplayer
Massively Social != Massively MultiplayerMassively Social != Massively Multiplayer
Massively Social != Massively MultiplayerPaul Furio
 
GamingAnywhere: An Open Cloud Gaming System
GamingAnywhere: An Open Cloud Gaming SystemGamingAnywhere: An Open Cloud Gaming System
GamingAnywhere: An Open Cloud Gaming SystemAcademia Sinica
 
Building fast,scalable game server in node.js
Building fast,scalable game server in node.jsBuilding fast,scalable game server in node.js
Building fast,scalable game server in node.jsXie ChengChao
 
Large-scale Media Processing on Cloud - Cloud Asia 2016 PANEL DISCUSSION
Large-scale Media Processing on Cloud - Cloud Asia 2016 PANEL DISCUSSIONLarge-scale Media Processing on Cloud - Cloud Asia 2016 PANEL DISCUSSION
Large-scale Media Processing on Cloud - Cloud Asia 2016 PANEL DISCUSSIONAnand Bhojan
 
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 gamesYan Cui
 
Tech solutions and tricks in real time mobile multiplayer
Tech solutions and tricks in real time mobile multiplayerTech solutions and tricks in real time mobile multiplayer
Tech solutions and tricks in real time mobile multiplayerDevGAMM Conference
 
Mobile Cloud Computing for Games - Gamelet
Mobile Cloud Computing for Games - Gamelet Mobile Cloud Computing for Games - Gamelet
Mobile Cloud Computing for Games - Gamelet Anand Bhojan
 
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
 
Reliving the history of multiplayer games
Reliving the history of multiplayer gamesReliving the history of multiplayer games
Reliving the history of multiplayer gamesWooga
 
P2P Multiplayer Gaming
P2P Multiplayer GamingP2P Multiplayer Gaming
P2P Multiplayer GamingJohn Wilker
 
Как сделать высоконагруженный сервис, не зная количество нагрузки / Олег Обле...
Как сделать высоконагруженный сервис, не зная количество нагрузки / Олег Обле...Как сделать высоконагруженный сервис, не зная количество нагрузки / Олег Обле...
Как сделать высоконагруженный сервис, не зная количество нагрузки / Олег Обле...Ontico
 
Deploying a Low-Latency Multiplayer Game Globally: Loadout
Deploying a Low-Latency Multiplayer Game Globally: Loadout Deploying a Low-Latency Multiplayer Game Globally: Loadout
Deploying a Low-Latency Multiplayer Game Globally: Loadout Amazon Web Services
 
Developing Multiplayer Games in Unity3D
Developing Multiplayer Games in Unity3DDeveloping Multiplayer Games in Unity3D
Developing Multiplayer Games in Unity3DAdrian Popovici
 
GDC 2015 - Low-latency Multiplayer Gaming with AWS
GDC 2015 - Low-latency Multiplayer Gaming with AWS GDC 2015 - Low-latency Multiplayer Gaming with AWS
GDC 2015 - Low-latency Multiplayer Gaming with AWS Nate Wiger
 
Akka for realtime multiplayer mobile games
Akka for realtime multiplayer mobile gamesAkka for realtime multiplayer mobile games
Akka for realtime multiplayer mobile gamesYan Cui
 

Semelhante a Lets Play Together (20)

Harlan Beverly Lag The Barrier to innovation gdc austin 2009
Harlan Beverly Lag The Barrier to innovation gdc austin 2009Harlan Beverly Lag The Barrier to innovation gdc austin 2009
Harlan Beverly Lag The Barrier to innovation gdc austin 2009
 
Harlan beverly gaming levels up networking ieee 10 2009
Harlan beverly gaming levels up networking ieee 10 2009Harlan beverly gaming levels up networking ieee 10 2009
Harlan beverly gaming levels up networking ieee 10 2009
 
Photon Session / Unite12 Conference
Photon Session / Unite12 ConferencePhoton Session / Unite12 Conference
Photon Session / Unite12 Conference
 
Massively Social != Massively Multiplayer
Massively Social != Massively MultiplayerMassively Social != Massively Multiplayer
Massively Social != Massively Multiplayer
 
GamingAnywhere: An Open Cloud Gaming System
GamingAnywhere: An Open Cloud Gaming SystemGamingAnywhere: An Open Cloud Gaming System
GamingAnywhere: An Open Cloud Gaming System
 
SJNC13.pptx
SJNC13.pptxSJNC13.pptx
SJNC13.pptx
 
Building fast,scalable game server in node.js
Building fast,scalable game server in node.jsBuilding fast,scalable game server in node.js
Building fast,scalable game server in node.js
 
Large-scale Media Processing on Cloud - Cloud Asia 2016 PANEL DISCUSSION
Large-scale Media Processing on Cloud - Cloud Asia 2016 PANEL DISCUSSIONLarge-scale Media Processing on Cloud - Cloud Asia 2016 PANEL DISCUSSION
Large-scale Media Processing on Cloud - Cloud Asia 2016 PANEL DISCUSSION
 
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
 
Jan Hloušek, Keen Software House
Jan Hloušek, Keen Software HouseJan Hloušek, Keen Software House
Jan Hloušek, Keen Software House
 
Tech solutions and tricks in real time mobile multiplayer
Tech solutions and tricks in real time mobile multiplayerTech solutions and tricks in real time mobile multiplayer
Tech solutions and tricks in real time mobile multiplayer
 
Mobile Cloud Computing for Games - Gamelet
Mobile Cloud Computing for Games - Gamelet Mobile Cloud Computing for Games - Gamelet
Mobile Cloud Computing for Games - Gamelet
 
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...
 
Reliving the history of multiplayer games
Reliving the history of multiplayer gamesReliving the history of multiplayer games
Reliving the history of multiplayer games
 
P2P Multiplayer Gaming
P2P Multiplayer GamingP2P Multiplayer Gaming
P2P Multiplayer Gaming
 
Как сделать высоконагруженный сервис, не зная количество нагрузки / Олег Обле...
Как сделать высоконагруженный сервис, не зная количество нагрузки / Олег Обле...Как сделать высоконагруженный сервис, не зная количество нагрузки / Олег Обле...
Как сделать высоконагруженный сервис, не зная количество нагрузки / Олег Обле...
 
Deploying a Low-Latency Multiplayer Game Globally: Loadout
Deploying a Low-Latency Multiplayer Game Globally: Loadout Deploying a Low-Latency Multiplayer Game Globally: Loadout
Deploying a Low-Latency Multiplayer Game Globally: Loadout
 
Developing Multiplayer Games in Unity3D
Developing Multiplayer Games in Unity3DDeveloping Multiplayer Games in Unity3D
Developing Multiplayer Games in Unity3D
 
GDC 2015 - Low-latency Multiplayer Gaming with AWS
GDC 2015 - Low-latency Multiplayer Gaming with AWS GDC 2015 - Low-latency Multiplayer Gaming with AWS
GDC 2015 - Low-latency Multiplayer Gaming with AWS
 
Akka for realtime multiplayer mobile games
Akka for realtime multiplayer mobile gamesAkka for realtime multiplayer mobile games
Akka for realtime multiplayer mobile games
 

Mais de Amir H. Fassihi

کارگاه چشم‌انداز در بازی سازی
کارگاه چشم‌انداز در بازی سازیکارگاه چشم‌انداز در بازی سازی
کارگاه چشم‌انداز در بازی سازیAmir H. Fassihi
 
Planning Chaos - Online Workshop
Planning Chaos - Online WorkshopPlanning Chaos - Online Workshop
Planning Chaos - Online WorkshopAmir H. Fassihi
 
کارگاه مبانی بازی سازی
کارگاه مبانی بازی سازیکارگاه مبانی بازی سازی
کارگاه مبانی بازی سازیAmir H. Fassihi
 
کارگاه سفر بازی‌ساز
کارگاه سفر بازی‌سازکارگاه سفر بازی‌ساز
کارگاه سفر بازی‌سازAmir H. Fassihi
 
کارگاه مدیریت تیم خلاق ۳
کارگاه مدیریت تیم خلاق ۳کارگاه مدیریت تیم خلاق ۳
کارگاه مدیریت تیم خلاق ۳Amir H. Fassihi
 
کارگاه مدیریت تیم خلاق ۲
کارگاه مدیریت تیم خلاق ۲کارگاه مدیریت تیم خلاق ۲
کارگاه مدیریت تیم خلاق ۲Amir H. Fassihi
 
مدیریت تیم خلاق ۱
مدیریت تیم خلاق ۱مدیریت تیم خلاق ۱
مدیریت تیم خلاق ۱Amir H. Fassihi
 
کسب‌و‌کار بازی‌های ویدیویی ۳
کسب‌و‌کار بازی‌های ویدیویی ۳کسب‌و‌کار بازی‌های ویدیویی ۳
کسب‌و‌کار بازی‌های ویدیویی ۳Amir H. Fassihi
 
کسب‌و‌کار بازی‌های ویدیویی ۲
کسب‌و‌کار بازی‌های ویدیویی ۲کسب‌و‌کار بازی‌های ویدیویی ۲
کسب‌و‌کار بازی‌های ویدیویی ۲Amir H. Fassihi
 
کسب‌و‌کار بازی‌های ویدیویی
کسب‌و‌کار بازی‌های ویدیوییکسب‌و‌کار بازی‌های ویدیویی
کسب‌و‌کار بازی‌های ویدیوییAmir H. Fassihi
 
بازی‌سازی در فن‌افزار - ۱۳۹۶
بازی‌سازی در فن‌افزار - ۱۳۹۶بازی‌سازی در فن‌افزار - ۱۳۹۶
بازی‌سازی در فن‌افزار - ۱۳۹۶Amir H. Fassihi
 
کارگاه کار تیمی
کارگاه کار تیمیکارگاه کار تیمی
کارگاه کار تیمیAmir H. Fassihi
 
تیم ایرانی و مهر
تیم ایرانی و مهرتیم ایرانی و مهر
تیم ایرانی و مهرAmir H. Fassihi
 
رازهای بهترین تیم های بازی ساز
رازهای بهترین تیم های بازی سازرازهای بهترین تیم های بازی ساز
رازهای بهترین تیم های بازی سازAmir H. Fassihi
 

Mais de Amir H. Fassihi (17)

کارگاه چشم‌انداز در بازی سازی
کارگاه چشم‌انداز در بازی سازیکارگاه چشم‌انداز در بازی سازی
کارگاه چشم‌انداز در بازی سازی
 
Planning Chaos - Online Workshop
Planning Chaos - Online WorkshopPlanning Chaos - Online Workshop
Planning Chaos - Online Workshop
 
Planning Chaos
Planning ChaosPlanning Chaos
Planning Chaos
 
کارگاه مبانی بازی سازی
کارگاه مبانی بازی سازیکارگاه مبانی بازی سازی
کارگاه مبانی بازی سازی
 
کارگاه سفر بازی‌ساز
کارگاه سفر بازی‌سازکارگاه سفر بازی‌ساز
کارگاه سفر بازی‌ساز
 
کارگاه مدیریت تیم خلاق ۳
کارگاه مدیریت تیم خلاق ۳کارگاه مدیریت تیم خلاق ۳
کارگاه مدیریت تیم خلاق ۳
 
کارگاه مدیریت تیم خلاق ۲
کارگاه مدیریت تیم خلاق ۲کارگاه مدیریت تیم خلاق ۲
کارگاه مدیریت تیم خلاق ۲
 
مدیریت تیم خلاق ۱
مدیریت تیم خلاق ۱مدیریت تیم خلاق ۱
مدیریت تیم خلاق ۱
 
کسب‌و‌کار بازی‌های ویدیویی ۳
کسب‌و‌کار بازی‌های ویدیویی ۳کسب‌و‌کار بازی‌های ویدیویی ۳
کسب‌و‌کار بازی‌های ویدیویی ۳
 
داستان هیولا
داستان هیولاداستان هیولا
داستان هیولا
 
کسب‌و‌کار بازی‌های ویدیویی ۲
کسب‌و‌کار بازی‌های ویدیویی ۲کسب‌و‌کار بازی‌های ویدیویی ۲
کسب‌و‌کار بازی‌های ویدیویی ۲
 
کسب‌و‌کار بازی‌های ویدیویی
کسب‌و‌کار بازی‌های ویدیوییکسب‌و‌کار بازی‌های ویدیویی
کسب‌و‌کار بازی‌های ویدیویی
 
بازی‌سازی در فن‌افزار - ۱۳۹۶
بازی‌سازی در فن‌افزار - ۱۳۹۶بازی‌سازی در فن‌افزار - ۱۳۹۶
بازی‌سازی در فن‌افزار - ۱۳۹۶
 
کارگاه کار تیمی
کارگاه کار تیمیکارگاه کار تیمی
کارگاه کار تیمی
 
تیم ایرانی و مهر
تیم ایرانی و مهرتیم ایرانی و مهر
تیم ایرانی و مهر
 
رازهای بهترین تیم های بازی ساز
رازهای بهترین تیم های بازی سازرازهای بهترین تیم های بازی ساز
رازهای بهترین تیم های بازی ساز
 
Game Ecosystem in Iran
Game Ecosystem in IranGame Ecosystem in Iran
Game Ecosystem in Iran
 

Último

CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfAsst.prof M.Gokilavani
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfme23b1001
 
welding defects observed during the welding
welding defects observed during the weldingwelding defects observed during the welding
welding defects observed during the weldingMuhammadUzairLiaqat
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerAnamika Sarkar
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvLewisJB
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptSAURABHKUMAR892774
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.eptoze12
 
Transport layer issues and challenges - Guide
Transport layer issues and challenges - GuideTransport layer issues and challenges - Guide
Transport layer issues and challenges - GuideGOPINATHS437943
 
Earthing details of Electrical Substation
Earthing details of Electrical SubstationEarthing details of Electrical Substation
Earthing details of Electrical Substationstephanwindworld
 
US Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionUS Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionMebane Rash
 
8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitter8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitterShivangiSharma879191
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEroselinkalist12
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfAsst.prof M.Gokilavani
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...121011101441
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...asadnawaz62
 
computer application and construction management
computer application and construction managementcomputer application and construction management
computer application and construction managementMariconPadriquez1
 
lifi-technology with integration of IOT.pptx
lifi-technology with integration of IOT.pptxlifi-technology with integration of IOT.pptx
lifi-technology with integration of IOT.pptxsomshekarkn64
 

Último (20)

CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdf
 
welding defects observed during the welding
welding defects observed during the weldingwelding defects observed during the welding
welding defects observed during the welding
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvv
 
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.ppt
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.
 
young call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Serviceyoung call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Service
 
Transport layer issues and challenges - Guide
Transport layer issues and challenges - GuideTransport layer issues and challenges - Guide
Transport layer issues and challenges - Guide
 
Earthing details of Electrical Substation
Earthing details of Electrical SubstationEarthing details of Electrical Substation
Earthing details of Electrical Substation
 
US Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionUS Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of Action
 
8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitter8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitter
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...
 
computer application and construction management
computer application and construction managementcomputer application and construction management
computer application and construction management
 
lifi-technology with integration of IOT.pptx
lifi-technology with integration of IOT.pptxlifi-technology with integration of IOT.pptx
lifi-technology with integration of IOT.pptx
 

Lets Play Together

  • 1. “Let’s  Play  Together”   Networked  Mul-player  Games   Amir  H.  Fassihi   Fanafzar  
  • 2. Background   Garshasp:  The  Monster  Slayer,  PC   2011   Garshasp:  Temple  of  the  Dragon,  PC   2012   Shadow  Blade,  iOS,  Android   Fall,  2013  
  • 3. Current  Game   •  Coopera-ve  Mul-player  Game  
  • 4. Mul-player  Games   •  Co-­‐op/PvP   •  Local/LAN/Internet   •  Real-­‐-me/Asynchronous  
  • 5. This  Talk   •  LAN/Internet   •  Co-­‐op/PvP   •  Real-me  
  • 6. Game  Networking   Gameplay  Code   High  Level  Network  Code   Low  Level  Network  Code  
  • 7. Low  Level  Networking   •  Sockets   •  Transfer  Protocols   •  NAT  (Network  Address  Transla9on)  
  • 8. Sockets   •  Socket   – IP   – Port   •  OS  Support   – BSD  Sockets   – WinSock   – …  
  • 9. Transfer  Protocols   •  UDP   – Unreliable   – Un-­‐ordered   – Connec-on-­‐less  using  Datagrams  (1400  bytes)   •  TCP   – Reliable   – Ordered   – Stream  Based  
  • 10. Game  Networking         UDP  +  reliability  +  order  
  • 11. NAT   •  Network  Address  Transla-on   •  Connec-on  Problem  with  NAT  Box   – Server  Listening  on  Port   – Client  changing  port   •  NAT  Punch-­‐through  with  Facilitator  Server  
  • 12. High  Level  Networking   •  Architecture   •  Data  to  Transfer   •  Lag  Compensa-on  
  • 13. Network  Architecture   •  Peer  to  Peer   •  Client  Server   •  Mixed  
  • 14. Peer  to  Peer   Client  1   Client  2   Client  3  Client  4  
  • 15. Client-­‐Server   Client  1   Client  2   Client  3   Server  
  • 16. Data  Transfer         How  To  Share  The  Same  Experience?  
  • 17. What  to  Send?   1.  Share  Inputs   2.  Share  Input  and  State  (Authorita-ve  Server)   3.  Share  Input  and  State  (Mixed  Authority)  
  • 18. Game  Loop  (Simplified)   1.  Read  User  Input   2.  Do  Simula-on   1.  Logic   2.  AI   3.  Physics  …   3.  Output   1.  Render  Graphics   2.  Play  Sound/Music   3.  Update  UI  …  
  • 19. Sharing  Input   Client  1   Client  2   User  1  Input   User  2  Input  
  • 20. Shared  Input  P2P   Main  Requirement:     Determinis=c  Simula=on  
  • 21. Shared  Input  P2P   Constraint  (for  Lockstep):     Lag  Effect  On  Clients   No  mid-­‐game  join!  
  • 22. Shared  Input  P2P   Risk:     Chea=ng  
  • 23. Shared  Input  P2P   Advantage:     Low  Bandwidth  Requirements  
  • 24. Shared  Input  P2P   Used  for:   Strategy  Games   (Starcra',  Age  of  Empires,  …)    
  • 25. 1500  Archers   •  1500  Archers  on  a  28.8:  Network   Programming  in  Age  of  Empires  and  Beyond,   Gamasutra  
  • 26. Shared  State   Server   Client  1   Client  2   Input  1   Input  2   Game   State   Game   State  
  • 27. Shared  State   Main  Requirement:     Simula=on  Only  On  Server  
  • 28. Shared  State     Constraint:     High  Bandwidth     (Especially  the  Server!)  
  • 29. Shared  State   •  Cheat  Proof   •  Non-­‐determinis-c  simula-on  is  ok   •  Different  client  lag  will  not  stall   •  Mid-­‐game  joining  possible  
  • 30. Shared  State   Good  For:     Ac=on  Games   Compe==ve  Games  (eSports)  
  • 31. Main  Challenge         Biggest  Challenge  in  Game  Networking  is:  
  • 33. Lag  in  Client-­‐Server   Client   Server   Press  Buaon   Press  Buaon   Fire   Fire  
  • 34. Lag  in  Client-­‐Server   Client   Server   Press  Buaon   Press  Buaon   Fire   Fire   Lag  
  • 35. Solu-on  #1       Client  Side  Predic=on  
  • 36. Client-­‐side  Predic-on   Client   Server   Press  Buaon   Press  Buaon   Fire   Fire   Check  Validity  
  • 37. Client-­‐side  Predic-on   •  Fix  Client  State  if  different   •  State  History  on  Client   •  Useful  for  player  state   •  Can  be  used  for  other  objects  (extrapola-on)  
  • 39. Solu-on  #2       Input  Latency  
  • 40. Input  Latency   •  Input  marked  for  future   •  50-­‐100ms   •  Client  will  interpolate  
  • 41. Input  Latency   Client   Server   Move  Forward   T  =  +100ms   Move  Forward   Find  posi-on  for:  +100   Pos:  +100ms   Current  t:  +70ms   Interpolate  between  previous   pos  and  pos  at  +100ms  for  +70ms  
  • 42. Client  Interpola-on   -me  =  1200   -me  =  1300   pos  =  1,  1,  1   pos  =  2,  2,  1   9me  =  1250   pos  =  1.5,  1.5,  1   Interpolated  State  
  • 43. Solu-on  #3       Server-­‐side  Lag  Compensa=on  
  • 44. Server-­‐side  Lag  Compensa-on   •  Rewind  simula-on  on  server  based  on  client   lag.   •  Re-­‐simulate  game.  
  • 45. Source  Engine  Lag  Compensa-on  
  • 46. Gameplay  Inconsistencies   •  Wrong  posi-on  (no  compensa9on)   •  Late  Hits  (with  compensa9on)  
  • 47. Problem  with  Lag  Compensa-on   A   B   High  Lag   Low  Lag  
  • 48. Problem  with  Lag  Compensa-on   A   B   High  Lag   Low  Lag   B  
  • 49. Design       Lag  Compensa=on  Strategy  can  be  a     “Game  Design”  decision.  
  • 50. Doom  III  Solu-on     Player  Extrapola=on  
  • 51. Player  Extrapola-on   •  A  kind  of  Predic-on   •  Assume  controls  don’t  change   •  Simulate  fully  (with  Physics)  like  the  server   •  AKA  Dead  Reckoning  
  • 52. Mixed  Authority   •  Clients  with  Authority  over  some  objects.   •  Example:  Sync  Host  in  FUSE  (Overstrike),   Game  Developer  Magazine,  Feb  2012    
  • 53. Network  Op-miza-on   •  High  Level   – Architecture  Selec-on   – Update  Frequency   – Data  Relevancy   – Priori-za-on  
  • 54. Network  Op-miza-on   •  Low  Level   – Bitpacking  (bitstreams)   – Compression   – Delta  Values  
  • 55. Delta  Compression  in  Quake  (1996)  
  • 59. Doom  (1993)   •  Doom  used  P2P  Lockstep  Model.  Good  for   LAN  only.  
  • 64. Cloud  Gaming   Main  Challenge:     Lag!  
  • 65. Figh-ng  Game  Networking   •  Peer  to  Peer   – Input  Latency   – Rollback  Technique     Example:  GGPO  Networking   Library  
  • 66. Networking  Libraries   •  Enet   •  RakNet   •  Ice   •  PocoProject   •  Torque  Network  Library   •  ZeroMQ   •  Boost  ASIO  
  • 67. Conclusion   •  Networking  is  a  tradeoff  between:   – Consistency   – Responsiveness   – Bandwidth   – Latency  
  • 68. References  1   •  Robust  Efficient  Networking,  Ben  Garney,  GDC   2008   •  Torque  Networking  Library  (opentnl.org)   •  Video  Game  Op-miza-on,  Ben  Garney   •  “I  Shot  You  First”,  Halo  Reach  Networking,   David  Aldridge,  GDC    2011    
  • 69. References  2   •  QuakeWorld     hap://en.wikipedia.org/wiki/QuakeWorld   •  Network  Systems  in  Insomniac  Games’   Overstrike  (FUSE),  Game  Developer  Magazine,   Feb  2012   •  1500  Archers  on  a  28.8,   hap://www.gamasutra.com/view/feature/ 131503/1500_archers_on_a_288_network_.php?page=1  
  • 70. References  3   •  “The  TRIBES  Engine  Networking  Model”,   Frohnmayer  and  Gis,  GDC  1999       •  Understanding  Figh-ng  Game  Networking,   hap://mauve.mizuumi.net/2012/07/05/understanding-­‐figh-ng-­‐game-­‐ networking/   •  GGOP  Networking  Library,     hap://ggpo.net/   •  The  Doom  III  Network  Architecture   hap://mrelusive.com/publica-ons/papers/The-­‐DOOM-­‐III-­‐Network-­‐ Architecture.pdf  
  • 71. References  4   •  The  Quake  3  Networking  Model,  Brian  Hook,   hap://trac.bookouook.com/bookouook/trac.cgi/wiki/ Quake3Networking   •  What  Every  Programmer  Needs  To  Know   About  Game  Networking,  Glenn  Fiedler,   hap://gafferongames.com/networking-­‐for-­‐game-­‐programmers/what-­‐ every-­‐programmer-­‐needs-­‐to-­‐know-­‐about-­‐game-­‐networking/   •  Unreal  Networking  Architectures   hap://udn.epicgames.com/Three/NetworkingOverview.html  
  • 72. References  5   •  “Latency  Compensa-ng  Methods  in  Client/Server   in-­‐game  Protocol  Design”,  Yahn  Bernier,  Valve     haps://developer.valvesosware.com/wiki/ Latency_Compensa-ng_Methods_in_Client/Server_In-­‐ game_Protocol_Design_and_Op-miza-on#Lag_Compensa-on   •  Believable  Dead  Reckoning  for  Networked   Games,  Cur-ss  Murphy,  Game  Engine  Gems  2   •  Choosing  a  Game  Network  Library,  Patrick  Wyaa,   hap://www.codeouonor.com/blog/choosing-­‐a-­‐game-­‐network-­‐lib  
  • 73. References  6   •  Dead  Reckoning:  Latency  Hiding  for   Networked  games   hap://www.gamasutra.com/view/feature/3230/ dead_reckoning_latency_hiding_for_.php  
  • 74. Special  Thanks     •  Yaser  Zhian   •  Hojjat  Jafary   •  Ashkan  Saeidi  
  • 75. Ques-ons?         fassihi@fanafzar.com