Skip to content
Tanner Mickelson edited this page Jan 24, 2015 · 18 revisions

File system

The Icicle Engine uses a virtual file system that allows mounting multiple folders/archives as file systems. Folder/archive locations can be added to the file system, and the file system abstracts away the handling of paths and streams.

Game loop

The game loop of the Icicle Engine will be optimized for multithreaded systems. Frames will be synchronized only at key synchronization points where certain data is required to be ready. An update step should end up following an execution flow like shown below for each frame:

  • resource loading thread
  • process current frame
    • collect input
      • buffer controller input
      • buffer keyboard input
      • buffer network messages
      • etc...
    • process events generated last frame
    • update game systems
      • update physics
      • update animation
      • update audio
  • render frame
    • interpolate/extrapolate scene transforms
    • cull invisible objects
    • draw visible objects
    • sort object list for rendering
    • submit frame to GPU
Clone this wiki locally