SlideShare a Scribd company logo
“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	
  

More Related Content

What's hot

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 macOS
BSides 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 Adventure
Felipe Lira
 
Emulating With JavaScript
Emulating With JavaScriptEmulating With JavaScript
Emulating With JavaScript
alexanderdickson
 
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
Slide_N
 
Game Programming - Cloud Development
Game Programming - Cloud DevelopmentGame Programming - Cloud Development
Game Programming - Cloud Development
Nick Pruehs
 
SPU Shaders
SPU ShadersSPU Shaders
SPU Shaders
Slide_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 applications
markgrover
 
Stupid Video Tricks, CocoaConf Seattle 2014
Stupid Video Tricks, CocoaConf Seattle 2014Stupid Video Tricks, CocoaConf Seattle 2014
Stupid Video Tricks, CocoaConf Seattle 2014
Chris 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 Mobiles
Valentin Simonov
 
Raspberry Pi Gaming Rig
Raspberry Pi Gaming RigRaspberry Pi Gaming Rig
Raspberry Pi Gaming Rig
Duc Le
 

What's hot (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
 

Viewers also liked

بازی سازی ایرانی! توهم؟ واقعیت؟
بازی سازی ایرانی! توهم؟ واقعیت؟بازی سازی ایرانی! توهم؟ واقعیت؟
بازی سازی ایرانی! توهم؟ واقعیت؟
Amir H. Fassihi
 
از بازی سازی در ایران تا بازی سازی ایرانی
از بازی سازی در ایران تا بازی سازی ایرانیاز بازی سازی در ایران تا بازی سازی ایرانی
از بازی سازی در ایران تا بازی سازی ایرانی
Amir H. Fassihi
 
Fanafzar
FanafzarFanafzar
Fanafzar
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 Development
Amir 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 Programming
Wiley
 
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 noSQL
Mike Crabb
 
Connecting With the Disconnected
Connecting With the DisconnectedConnecting With the Disconnected
Connecting With the Disconnected
Chris Wejr
 

Viewers also liked (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
 

Similar to 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 2009
Harlan 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 2009
Harlan Beverly
 
Photon Session / Unite12 Conference
Photon Session / Unite12 ConferencePhoton Session / Unite12 Conference
Photon Session / Unite12 Conference
Christof Wegmann
 
Massively Social != Massively Multiplayer
Massively Social != Massively MultiplayerMassively Social != Massively Multiplayer
Massively Social != Massively Multiplayer
Paul Furio
 
GamingAnywhere: An Open Cloud Gaming System
GamingAnywhere: An Open Cloud Gaming SystemGamingAnywhere: An Open Cloud Gaming System
GamingAnywhere: An Open Cloud Gaming System
Academia Sinica
 
SJNC13.pptx
SJNC13.pptxSJNC13.pptx
SJNC13.pptx
ssuserf6349e
 
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
Xie 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 DISCUSSION
Anand 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 games
Yan Cui
 
Jan Hloušek, Keen Software House
Jan Hloušek, Keen Software HouseJan Hloušek, Keen Software House
Jan Hloušek, Keen Software House
White Nights Conference
 
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
DevGAMM 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 games
Wooga
 
P2P Multiplayer Gaming
P2P Multiplayer GamingP2P Multiplayer Gaming
P2P Multiplayer Gaming
John 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 Unity3D
Adrian 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 games
Yan Cui
 

Similar to 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
 

More from Amir H. Fassihi

Founder-Game Director Workshop (Session 3)
Founder-Game Director Workshop (Session 3)Founder-Game Director Workshop (Session 3)
Founder-Game Director Workshop (Session 3)
Amir H. Fassihi
 
Founder-Game Director Workshop (Session 2)
Founder-Game Director Workshop (Session 2)Founder-Game Director Workshop (Session 2)
Founder-Game Director Workshop (Session 2)
Amir H. Fassihi
 
Founder-Game Director Workshop (Session 1)
Founder-Game Director  Workshop (Session 1)Founder-Game Director  Workshop (Session 1)
Founder-Game Director Workshop (Session 1)
Amir H. Fassihi
 
کارگاه چشم‌انداز در بازی سازی
کارگاه چشم‌انداز در بازی سازیکارگاه چشم‌انداز در بازی سازی
کارگاه چشم‌انداز در بازی سازی
Amir H. Fassihi
 
Planning Chaos - Online Workshop
Planning Chaos - Online WorkshopPlanning Chaos - Online Workshop
Planning Chaos - Online Workshop
Amir H. Fassihi
 
Planning Chaos
Planning ChaosPlanning Chaos
Planning Chaos
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
 
تیم ایرانی و مهر
تیم ایرانی و مهرتیم ایرانی و مهر
تیم ایرانی و مهر
Amir H. Fassihi
 
رازهای بهترین تیم های بازی ساز
رازهای بهترین تیم های بازی سازرازهای بهترین تیم های بازی ساز
رازهای بهترین تیم های بازی ساز
Amir H. Fassihi
 
Game Ecosystem in Iran
Game Ecosystem in IranGame Ecosystem in Iran
Game Ecosystem in Iran
Amir H. Fassihi
 

More from Amir H. Fassihi (20)

Founder-Game Director Workshop (Session 3)
Founder-Game Director Workshop (Session 3)Founder-Game Director Workshop (Session 3)
Founder-Game Director Workshop (Session 3)
 
Founder-Game Director Workshop (Session 2)
Founder-Game Director Workshop (Session 2)Founder-Game Director Workshop (Session 2)
Founder-Game Director Workshop (Session 2)
 
Founder-Game Director Workshop (Session 1)
Founder-Game Director  Workshop (Session 1)Founder-Game Director  Workshop (Session 1)
Founder-Game Director Workshop (Session 1)
 
کارگاه چشم‌انداز در بازی سازی
کارگاه چشم‌انداز در بازی سازیکارگاه چشم‌انداز در بازی سازی
کارگاه چشم‌انداز در بازی سازی
 
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
 

Recently uploaded

Fundamentals of Induction Motor Drives.pptx
Fundamentals of Induction Motor Drives.pptxFundamentals of Induction Motor Drives.pptx
Fundamentals of Induction Motor Drives.pptx
manasideore6
 
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdfBPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
MIGUELANGEL966976
 
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
obonagu
 
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&BDesign and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Sreedhar Chowdam
 
ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024
Rahul
 
14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application
SyedAbiiAzazi1
 
AIR POLLUTION lecture EnE203 updated.pdf
AIR POLLUTION lecture EnE203 updated.pdfAIR POLLUTION lecture EnE203 updated.pdf
AIR POLLUTION lecture EnE203 updated.pdf
RicletoEspinosa1
 
Modelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdfModelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdf
camseq
 
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdf
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdfTutorial for 16S rRNA Gene Analysis with QIIME2.pdf
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdf
aqil azizi
 
spirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptxspirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptx
Madan Karki
 
PROJECT FORMAT FOR EVS AMITY UNIVERSITY GWALIOR.ppt
PROJECT FORMAT FOR EVS AMITY UNIVERSITY GWALIOR.pptPROJECT FORMAT FOR EVS AMITY UNIVERSITY GWALIOR.ppt
PROJECT FORMAT FOR EVS AMITY UNIVERSITY GWALIOR.ppt
bhadouriyakaku
 
Planning Of Procurement o different goods and services
Planning Of Procurement o different goods and servicesPlanning Of Procurement o different goods and services
Planning Of Procurement o different goods and services
JoytuBarua2
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
Amil Baba Dawood bangali
 
[JPP-1] - (JEE 3.0) - Kinematics 1D - 14th May..pdf
[JPP-1] - (JEE 3.0) - Kinematics 1D - 14th May..pdf[JPP-1] - (JEE 3.0) - Kinematics 1D - 14th May..pdf
[JPP-1] - (JEE 3.0) - Kinematics 1D - 14th May..pdf
awadeshbabu
 
Swimming pool mechanical components design.pptx
Swimming pool  mechanical components design.pptxSwimming pool  mechanical components design.pptx
Swimming pool mechanical components design.pptx
yokeleetan1
 
NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...
NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...
NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...
ssuser7dcef0
 
Hierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power SystemHierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power System
Kerry Sado
 
Understanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine LearningUnderstanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine Learning
SUTEJAS
 
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
ydteq
 
一比一原版(Otago毕业证)奥塔哥大学毕业证成绩单如何办理
一比一原版(Otago毕业证)奥塔哥大学毕业证成绩单如何办理一比一原版(Otago毕业证)奥塔哥大学毕业证成绩单如何办理
一比一原版(Otago毕业证)奥塔哥大学毕业证成绩单如何办理
dxobcob
 

Recently uploaded (20)

Fundamentals of Induction Motor Drives.pptx
Fundamentals of Induction Motor Drives.pptxFundamentals of Induction Motor Drives.pptx
Fundamentals of Induction Motor Drives.pptx
 
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdfBPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
 
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
 
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&BDesign and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
 
ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024
 
14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application
 
AIR POLLUTION lecture EnE203 updated.pdf
AIR POLLUTION lecture EnE203 updated.pdfAIR POLLUTION lecture EnE203 updated.pdf
AIR POLLUTION lecture EnE203 updated.pdf
 
Modelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdfModelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdf
 
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdf
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdfTutorial for 16S rRNA Gene Analysis with QIIME2.pdf
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdf
 
spirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptxspirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptx
 
PROJECT FORMAT FOR EVS AMITY UNIVERSITY GWALIOR.ppt
PROJECT FORMAT FOR EVS AMITY UNIVERSITY GWALIOR.pptPROJECT FORMAT FOR EVS AMITY UNIVERSITY GWALIOR.ppt
PROJECT FORMAT FOR EVS AMITY UNIVERSITY GWALIOR.ppt
 
Planning Of Procurement o different goods and services
Planning Of Procurement o different goods and servicesPlanning Of Procurement o different goods and services
Planning Of Procurement o different goods and services
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
 
[JPP-1] - (JEE 3.0) - Kinematics 1D - 14th May..pdf
[JPP-1] - (JEE 3.0) - Kinematics 1D - 14th May..pdf[JPP-1] - (JEE 3.0) - Kinematics 1D - 14th May..pdf
[JPP-1] - (JEE 3.0) - Kinematics 1D - 14th May..pdf
 
Swimming pool mechanical components design.pptx
Swimming pool  mechanical components design.pptxSwimming pool  mechanical components design.pptx
Swimming pool mechanical components design.pptx
 
NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...
NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...
NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...
 
Hierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power SystemHierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power System
 
Understanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine LearningUnderstanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine Learning
 
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
 
一比一原版(Otago毕业证)奥塔哥大学毕业证成绩单如何办理
一比一原版(Otago毕业证)奥塔哥大学毕业证成绩单如何办理一比一原版(Otago毕业证)奥塔哥大学毕业证成绩单如何办理
一比一原版(Otago毕业证)奥塔哥大学毕业证成绩单如何办理
 

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