Frame Order

From Valve Developer Community
Revision as of 12:37, 1 October 2009 by Vino (talk | contribs) (This is just a start. I'll fill it in with more detail later.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This section is currently under construction. Please feel free to add any insights you may have into the structure of the Source engine that you would like to share with the community.

Introduction

This is the order in which systems are invoked for each engine frame.

Engine

Legend:

  • Bold - Code path for a dedicated server (Non bold items do not run on a dedicated server.)
  • Italics - Client code, occurs only on a listenserver

The engine has two modes of execution, a threaded path and a non-threaded path. Dedicated servers will always use the non-threaded path.

Non-threaded model

  • Console commands
  • For each tick:
    • Networking
    • Input
    • Server game code
    • Client game code
    • Client prediction
  • Rendering
  • Sound
  • Client update

Threaded model

  • Console commands
  • For each client tick:
    • Networking
    • Client game code
  • Client prediction
  • For each server tick:
    • Input
    • Networking
  • Server game code (new thread)
  • Rendering
  • Sound
  • Client update