multiplayer online games
play

Multiplayer Online Games An-Cheng Huang Network Reading Group - PowerPoint PPT Presentation

Multiplayer Online Games An-Cheng Huang Network Reading Group Meeting Nov. 14, 2003 Outline Overview of multiplayer online games (MOGs) Research issues Sample of recent papers A few observations Types of MOG: Categorization


  1. Multiplayer Online Games An-Cheng Huang Network Reading Group Meeting Nov. 14, 2003

  2. Outline • Overview of multiplayer online games (MOGs) • Research issues • Sample of recent papers • A few observations

  3. Types of MOG: Categorization by Genre • First-Person Shooter (FPS) • Role-Playing Game (RPG) • Real-Time Strategy (RTS)

  4. First-Person Shooter (FPS) Game world Player character Weapons Aim + shoot

  5. FPS (cont.) Game world � � � �

  6. Role-Playing Game (RPG) Game world Player character “Weapons” Accomplish task, Improve (virtual) ability, accomplish harder task, etc.

  7. Another RPG (Sort of) Game world Player character Accomplish task, Improve (virtual) ability, accomplish harder task, etc.

  8. RPG (cont.) Game world � � � � �

  9. Real-Time Strategy (RTS) Game world “Units” Explore, build, combat

  10. RTS (cont.) Game world � � � � � � � � � � � � �

  11. Types of MOG: Categorization by Persistency • No persistency • Persistent player information • Persistent game world • Persistency – Local: e.g., run a persistent server for a few friends – Global: e.g., game company hosts servers for all

  12. No Persistency Before gaming session � � During � After

  13. Persistent Player Information Before � � � gaming session � � During � � � � After

  14. Persistent Game World � � Before � gaming session � � During � � After � �

  15. Scales of MOG • n: Number of players in a game world • n<=8 • n<=64 • n>1000 � Massively Multiplayer (MMOG)

  16. Interesting Combinations • n<=64 (16-32 mostly), no persistency, FPS: e.g., CoD • n<=8 (2-4 mostly), no persistency, RTS: RoN • n<=8, persistent player information, RPG: D2 • n>1000, persistent game world, RPG: EQ • n>1000, persistent game world, FPS: PS

  17. Research Issues (1) • n=16-32, no persistency, FPS – Most sensitive to latency, jitter, and relative latency – Client/server architecture (anyone can run a server) � � � render a rocket at left button (x1,y1) flying clicked toward (x2,y2) • How to find a (good) server? • How to meet the performance requirements? • Security (fairness/anti-cheating)?

  18. Research Issues (2) • n=2-4, no persistency, RTS – Each user control many units (e.g., >100s) next render next render next render next render u1: (x1,y1) u1: (x1,y1) u1: (x1,y1) u1: (x1,y1) u2: (x2,y2) u2: (x2,y2) u2: (x2,y2) u2: (x2,y2) … … … … un: (xn,yn) un: (xn,yn) un: (xn,yn) un: (xn,yn) � � � � Player2 � � � Player1 � � � � � � left button clicked on (xd,yd) • Too many units! • Security?

  19. Research Issues (3) • n<=8, persistent player information, RPG Subscription- based • n>1000, persistent game world, RPG & FPS • Persistency � Economy Virtual: Real life: 84 listings, • Performance/Scalability $12 • Security, Security, Security

  20. Recent Papers • Server discovery for FPS – [Bernier GDC00], [Henderson NG02] • Too many units in RTS – [Bettner & Terrano GDC01] • Performance requirements of FPS & RTS – [Bernier GDC01], [Pantel & Wolf NG02], [Sheldon et al. NG03] • Security – [Guo et al. NG03], [Baughman & Levine INFOCOM01] • Traffic modeling • Architecture

  21. Server Discovery for FPS • ~50000 servers for Counter Strike [Feng NG03] • [Bernier GDC00] How it’s done in Half-Life – “Master server” (server directory) • Handle DoS attacks with challenge/response • Reduce bandwidth usage with batched requests – Client gets list from directory and polls each server

  22. Server Discovery for FPS (2) • [Henderson NG02] – Problems with centralized: single point of failure, stale/redundant info, client polling servers, etc. – A peer-to-peer approach • Client � server � client � server � … • Stop when a suitable server found – Potential problems • Stale/inconsistent info • Lack of scalable querying

  23. Proposal: Use GNP • Centralized • Server registers its GNP coordinates with directory • Client includes its GNP coordinates in request • Directory returns only servers within N ms (est.) of client – Reduce bandwidth usage • Client polls only small number of servers – Reduce unnecessary polling • Similar to NSSD • Virtually no change to current game infrastructure

  24. Recent Papers • Server discovery for FPS – [Bernier GDC00], [Henderson NG02] • Too many units in RTS – [Bettner & Terrano GDC01] • Performance requirements of FPS & RTS – [Bernier GDC01], [Pantel & Wolf NG02], [Sheldon et al. NG03] • Security – [Guo et al. NG03], [Baughman & Levine INFOCOM01] • Traffic modeling • Architecture

  25. 1500 Archers on a 28.8 • [Bettner & Terrano GDC01] • Too many units to update individually! � Simultaneous simulations next render u1: (x1,y1) left button next render u2: (x2,y2) clicked on u1: (x1,y1) … (xd,yd) u2: (x2,y2) un: (xn,yn) … un: (xn,yn) � � � � Player2 � � � Player1 � � � � � � left button “Turn-based”: in each turn, clicked on receive messages from others, (xd,yd) process/simulate, and render

  26. 1500 Archers on a 28.8 (2) • Problem: need very long turn to finish everything! � Pipelining Turn 3 Turn 3 Turn 1 next render u1: (x1,y1) next render left button u2: (x2,y2) Turn 2 u1: (x1,y1) clicked on … u2: (x2,y2) message (xd,yd) un: (xn,yn) received … un: (xn,yn) � Player2 � � � Player1 � � � � � � � � � left button clicked on Problem: variations in Turn 1 (xd,yd) latency/processing time

  27. 1500 Archers on a 28.8 (3) • Solution: dynamic turn length Communications turn (200 msec) - scaled to 'round-trip ping' time estimates 200 ms latency Process all messages Frame Frame Frame 50 ms proc/render Frame - scaled to rendering speed 50 msec 50 msec 50 msec 50 msec 20 fps Communications turn (1000 msec) - scaled to 'round-trip ping' time estimates 1000 ms latency Process all Frame Frame Frame Frame Frame Frame Frame Frame Frame messages 50 ms proc/render 50 msec 20 frames, 50 msec each 20 fps Communications turn (200 msec) - scaled to 'round-trip ping' time estimates 200 ms latency Process all messages Frame Frame - scaled to rendering speed 100 ms proc/render 100 msec 100 msec 10 fps

  28. Recent Papers • Server discovery for FPS – [Bernier GDC00], [Henderson NG02] • Too many units in RTS – [Bettner & Terrano GDC01] • Performance requirements of FPS & RTS – [Bernier GDC01], [Pantel & Wolf NG02], [Sheldon et al. NG03] • Security – [Guo et al. NG03], [Baughman & Levine INFOCOM01] • Traffic modeling • Architecture

  29. Latency Compensation in Half-Life • [Bernier GDC01] • Naïve approach: dumb client � render player1 � at (x1,y1) � Player1 render player1 forward forward at (x1,y1) Response time for player: round-trip to server + server processing

  30. Predicting Where I Am � render player1 render player1 � render player1 render player1 at (x1,y1) at (x1,y1) at (x1,y1) � at (x4,y4) Player1 render player1 forward forward forward forward at (x1,y1) forward

  31. Predicting Where You Are • Updates about other players’ locations not continuous • Extrapolation – At last update, player2 is at (x1,y1) facing N with speed S � It should be at (x2,y2) now – Not good: in FPS, player movement very non-deterministic • Interpolation Now – Impose an “interpolation delay” Int. delay for rendering Now Now Update3 Update2 Update1 (x3,y3) (x2,y2) (x1,y1) time

  32. Lag Compensation • Interpolation introduces a fixed lag (int. delay) – E.g., always see where you were 100 ms ago – Need to lead the target when aiming – Require players to extrapolate! • Server-side lag compensation – Server uses the old location to compute hit/miss – Allows natural aiming/shooting – Possible weird experiences for players being fired upon � tradeoff for better game play

  33. Dead Reckoning • [Pantel & Wolf NG02] • How to maintain state consistency? � Interpolation – Local presentation delay � Extrapolation – Dead reckoning • Compare different extrapolation algorithms – E.g., constant velocity, constant acceleration, etc. – Conclusion: extrapolation can be useful for network games • Focus on car racing games • Didn’t read the Half-Life paper?

  34. Effect of Latency in Warcraft 3 • [Sheldon et al. NG03] • Warcraft 3 � RTS (most papers looked at FPS games) • Methodology – Categorize RTS player activities: build, explore, combat – Create maps (game worlds) specifically for these activities – Two players compete on each map – One as server (no latency) – 0 to 3500 ms for the other • Results – Latency has some effect on exploration (0 to 1000 ms � 25%) – Little effect on building and combat – Conclusion: little effect on game outcome, some effect on player gaming experience

Recommend


More recommend