Focus on Networking Engine. Contents ● “Super IsoBomb” Network Engine Introduction ● Game Networking Middleware APIs ● Game Networking Issues Overview.

Slides:



Advertisements
Similar presentations
Present & Apply The final resting place of the OSI layers.
Advertisements

Umut Girit  One of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer.
Building Cloud-ready Video Transcoding System for Content Delivery Networks(CDNs) Zhenyun Zhuang and Chun Guo Speaker: 饒展榕.
Socket Layer Security. In this Presentation: need for web security SSL/TLS transport layer security protocols HTTPS secure shell (SSH)
Chapter 7: Transport Layer
Network synchronization of Online Games Li, Zetan.
On the Impact of Delay on Real-Time Multiplayer Games Authors: Lothar Pantel, Lars C. Wolf Presented by: Bryan Wong.
A Collaborative Game Development Tool Brian Thorpe.
Internet Networking Spring 2006 Tutorial 12 Web Caching Protocols ICP, CARP.
Multi-criteria infrastructure for location-based applications Shortly known as: Localization Platform Ronen Abraham Ido Cohen Yuval Efrati Tomer Sole'
Multiple constraints QoS Routing Given: - a (real time) connection request with specified QoS requirements (e.g., Bdw, Delay, Jitter, packet loss, path.
1 Solutions to Performance Problems in VOIP over Wireless LAN Wei Wang, Soung C. Liew Presented By Syed Zaidi.
A Secure Network Access Protocol (SNAP) A. F. Al Shahri, D. G. Smith and J. M. Irvine Proceedings of the Eighth IEEE International Symposium on Computers.
1 Spring Semester 2007, Dept. of Computer Science, Technion Internet Networking recitation #13 Web Caching Protocols ICP, CARP.
Yard Wars David Greer Alex Gross Ahsen Uppal. Goals Wireless, Portable Development Real Time Voice Conferencing Exciting, Expandable Game Engine.
Internet Networking Spring 2003
Distributed Information Systems - The Client server model
Internet Networking Spring 2002 Tutorial 13 Web Caching Protocols ICP, CARP.
Analysis of compressed depth and image streaming on unreliable networks Pietro Zanuttigh, Andrea Zanella, Guido M. Cortelazzo.
CS218 – Final Project A “Small-Scale” Application- Level Multicast Tree Protocol Jason Lee, Lih Chen & Prabash Nanayakkara Tutor: Li Lao.
Research Gísli Hjálmtýsson - AT&T Research - 1 Programmable Networks of Tomorrow (Pronto): The Programmable Interface of Pronto.
Gursharan Singh Tatla Transport Layer 16-May
File Systems (2). Readings r Silbershatz et al: 11.8.
Applying Real-time Simulation to Real-time Collaboration Bart Miller.
Quoridor Classic Game Manager Kevin Dickerson April 2004.
CIS679: RTP and RTCP r Review of Last Lecture r Streaming from Web Server r RTP and RTCP.
Computer Measurement Group, India Reliable and Scalable Data Streaming in Multi-Hop Architecture Sudhir Sangra, BMC Software Lalit.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.1 ISP Services Working at a Small-to-Medium Business or ISP – Chapter 7.
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
© 2008 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Chapter 7: Transport Layer Introduction to Networking.
1 Network Gaming. History of Network Gaming MUD MUD –Multi-user Dungeons Modem Games Modem Games Match Makings Match Makings –Real-time strategy –FPS.
Team ThinkTank. Specifications Ad Hoc networking game. Similar to the Atari Combat! Players control their tank and shoot enemy tanks. Each player gets.
Introduction to Networked Graphics Part 3 of 5: Latency.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 OSI Transport Layer Network Fundamentals – Chapter 4.
Microsoft DirectPlay  5.0 Ajay Jindal Program Manager.
June 2004 SIW-4 - IP in Space Implementation Guide 1 Handbook for Using IP Protocols for Space Missions James Rash - NASA/GSFC Keith Hogie, Ed Criscuolo,
Overview What is a worm? What is a worm? Origin? Origin? How does it propagate? How does it propagate? How does it take up resources of an infected node?
Chapter 14 Part II: Architectural Adaptation BY: AARON MCKAY.
AN OVERVIEW OF GAME DEVELOPMENT
Rushing Attacks and Defense in Wireless Ad Hoc Network Routing Protocols ► Acts as denial of service by disrupting the flow of data between a source and.
ITI-510 Computer Networks ITI 510 – Computer Networks Meeting 3 Rutgers University Internet Institute Instructor: Chris Uriarte.
03/11/2015 Michael Chai; Behrouz Forouzan Staffordshire University School of Computing Streaming 1.
Light Cycles Galore Building a Multi-Server Multiplayer Game Architecture By Per Lohmann.
Wireless Pong on the Nokia 770 Jason Waterman EE194-WIR April 27th, 2006.
Multiplayer games on networks potential and tradeoffs.
Network Computing Laboratory 1 Vivaldi: A Decentralized Network Coordinate System Authors: Frank Dabek, Russ Cox, Frans Kaashoek, Robert Morris MIT Published.
Multiplexing Team Members: Cesar Chavez Arne Solas Steven Fong Vi Duong David Nguyen.
An Extensible RTCP Control Framework for Large Multimedia Distributions Paper by: Julian Chesterfield Eve M. Schooler Presented by: Phillip H. Jones.
Network Replication Possibly the ugliest thing to learn this semester Many different states Simulated Functions Is it an Event or function? Roles.
Networked Graphics Building Networked Virtual Environments and Networked Games Chapter 11: Latency and Consistency.
Networks, Part 2 March 7, Networks End to End Layer  Build upon unreliable Network Layer  As needed, compensate for latency, ordering, data.
-Mayukh, clemson university1 Project Overview Study of Tfrc Verification, Analysis and Development Verification : Experiments. Analysis : Check for short.
Netprog: Chat1 Chat Issues and Ideas for Service Design Refs: RFC 1459 (IRC)
Network security Presentation AFZAAL AHMAD ABDUL RAZAQ AHMAD SHAKIR MUHAMMD ADNAN WEB SECURITY, THREADS & SSL.
Chapter 11 User Datagram Protocol
The Transport Layer Implementation Services Functions Protocols
Chapter 9: Transport Layer
Instructor Materials Chapter 9: Transport Layer
Working at a Small-to-Medium Business or ISP – Chapter 7
Working at a Small-to-Medium Business or ISP – Chapter 7
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
Chat Refs: RFC 1459 (IRC).
Working at a Small-to-Medium Business or ISP – Chapter 7
Crowd Simulation (INFOMCRWS) - UU Crowd Simulation Software
Workshop II UU Crowd Simulation Framework
File Transfer Issues with TCP Acceleration with FileCatalyst
SSL (Secure Socket Layer)
A Probabilistic Routing Protocol for Mobile Ad Hoc Networks
Beyond FTP & hard drives: Accelerating LAN file transfers
An XML-based System Architecture for IXA/IA Intercommunication
Presentation transcript:

Focus on Networking Engine

Contents ● “Super IsoBomb” Network Engine Introduction ● Game Networking Middleware APIs ● Game Networking Issues Overview ● “Super IsoBomb” Protocol Messages

● Original Version: – Jason Winnebeck – Jon Hilliker – Jim Clase ● Networking and Upgraded Version: – Peter Mowry

● Super IsoBomb Networking Paper – – Game Networking Middleware Selection, General Game Networking Research, Protocol Specification and Issues ● Super IsoBomb Home: – ● Original Super IsoBomb Home: –

● 1: C++ Game Networking Middleware – Research Possibilities – Select from Canidates ● 2: Protocol Design Initial – Research Game Networking – Design Protocol ● 3: Implementing – Test, Redesign, Re-implement, Targeted Research, etc

● SDL_net – Component of open source (OpenGL-based) cross platform Simple Direct-Media Layer (SDL) ● HawkNL – Low level C-based library; cross platform wrapper for WinSock and Unix Sockets ● GNE (Game Networking Engine) – Created from HawkNL; higher level ● Quazal Net-Z – Commercial API, cross platform (including console systems); Distributed Objects; only 30 day trial Game Networking Middleware Potential APIs

Game Networking Middleware Prefered APIs ● ReplicaNet – Network shared C++ objects ● DirectPlay – DirectX Component; Windows-oriented; integration with DirectVoice ● RakNet – C++ Packet-based API

● Has most of the features of DirectPlay, or at least those desired for “Super IsoBomb” ● Bonus Features like: – Object IDs, Time Stamping ● Intends on adding further optimizations – Such as Packet Combining, Improved Compression ● Excellent documentation, tutorials, “Quick Start” ● Focused Goals and very well supported RakNet

TCP vs. UDP ● “Lesson two: – TCP is evil. Don’t use TCP for a game.” ● “Lesson three: – Use UDP.” ● “Lesson four: – UDP is better than TCP, but it still sucks.”

How does RakNet Send Packets? ● UDP with layers – More efficient than TCP – More customizeable overhead ● enum PacketReliability { UNRELIABLE, // 3, 1, 7 UNRELIABLE_SEQUENCED, // 3, 7 RELIABLE, // 3, 1, 5, 7, 2, 4, 6 RELIABLE_ORDERED, // 1, 2, 3, 4, 5, 6, 7 RELIABLE_SEQUENCED // 3, 5, 7 };

General Architecture ● Server keeps sole authoratative game state – Efficiently synchronize game state – First major step towards Anti-Cheat ● Client is “dumb rendering terminal” – Send input requests to server – Not so dumb - Doom to Quake to Unreal – Receive game state and simulate/predict

Optimization! ● Optimization is a primary concern of real-time game networking! ● Minimize traffic for good client simulation ● Client simulation – make it look optimized: – Prediction logic – Smoothing algorithms – Server is authority – Sometimes trade-offs between accuracy vs. smoothness

Smoothness at the expense of Accuracy Server – accepting move requests Client – simulating smooth local

Zero Security Optimization: Client Authority ● Perfect Client smoothness for its objects – Each Client has authority over some objects (like its character, its bombs, etc) ● Possible methods: – Client sends server updates of its objects; Server relays opponent updates to each Client – Peer to Peer ● A fully authoratative server sees the real game – Any authoratative server has the power to cheat, including non-dedicated servers

What to send... ● Send full game state updates? ● Send game state updates only for some data? – Ex - 50 world units around the player (assumes player with fixed camera) – Ex – Information for the current small zone ● Send input or triggers or deltas? (assume deterministic game logic or partly)

Message Groups (by purpose) ● Game Setup Triggers: Join, Disc, Start, StartPlayer, Map Change ● Character Movement ● Thrown Bomb ● Homing Bomb ● Game Triggers: Powerup, Virus, Damage

Messages by Reliability ● Server to Client; Reliable; don't need to combine – PlayerJoinedStruct – 1 - server event – PlayerDiscStruct – 2 – server event – GameStartStruct – 3 - server event – GameStartPlayerStruct - 19 – server event

Messages by Reliability ● Server to Client; Reliable group – ThrownBombSpawnStruct server event – ThrownBombHeadBounceStruct server update – BombExplodeStruct server event – HomingBombSpawnStruct server event – PowerupCollisionStruct server event – VirusSpawnStruct server event – DamagePlayerStruct server event

Messages by Reliability ● Server to Client; Unreliable group – PosVelStruct server update – HomingBombUpdateStruct server update

Messages by Reliability ● Client to Server; Reliable group – MapChangeRequest client request – MoveRequestStruct client request – ThrownBombRequestStruct client request – HomingBombRequestStruct client request

Next Version of RakNet ● Easier Packet Combining – Thus, I didn't do it manually in this version ● "streaming and a transparent compression / encryption scheme" – Bandwidth optimization – Security improvement

Game Setup Triggers: Join, Disc, Start, StartPlayer, Map Change ● Create and remove player Ids ● StartGame – number of players to expect ● StartGamePlayer - Information for one player – Starting Position, Score ● MapChangeRequest – List of current requested map for each player – Change when all are same and not current map

Character Movement – Possible ● Client-side authority over position – Warp cheat ● Request/Update – Client sends move requests – Server sends PosVel updates – Client attempts to predict and smooth movement ● List of moves with time stamps applied ● Gradually reposition over time interval - anti-pop

Character Movement – Final ● Client-side authority over position verified – Client sends position – Server checks legality of move: ● time stamp > current time ● distance (use velocity and dt) ● height steps (1 tile up per tile change) ● *movement through another character *only illegal expected without cheats

Thrown Bomb – Possible ● Basic – spawn request and spawn – Prediction failed ● Hit Floor – basic with single repositioning ● ID-based bounce and Hit Floor – Update only when bounce – Non-deterministic logic => Basic fail when no bounce ● ID-based continual updates

Thrown Bomb – Final ● Rewrote more deterministic logic – Update( dt ) – enforce constant dt values – Projectile motion overall equation instead of deltas ● Spawn + Deterministic Logic – => accurate client-side prediction ● Character positions are unreliable – Update in event of character bounce (not wall bounce)

Homing Bomb – Possible ● Deterministic AStar path finding – Dynamically finds path to target – Just send Spawn? – Character (target) position is unreliable!

Homing Bomb – Final ● HomingBombRequest ● HomingBombSpawn – (time stamped for prediction) ● Continuously sends HomingBombUpdate – (time stamped for prediction) ● BombExplode – Ping/2 delay; Could be predicted by sending explode earlier if and only if destination position is known then

Game Triggers: Powerup, Virus, Damage ● PowerupCollision – Player ID, powerup type, virus type, time stamp ● VirusSpawn – Sent if collision with an infected player ● Damage event sent – Fatality inferred

Additional Questions? (Demo Next)