SV Frame

From ioquake3 wiki
Jump to navigation Jump to search

SV_Frame() performs all of the server-side processing required for a single frame of gameplay. It takes a single parameter, msec, which is the number of milliseconds that have elapsed since the last frame was generated. If the process is running as a dedicated server, this number may be quite small. If the process is running with a client that is rendering with a slow graphics card, however, this number may be rather large. The basic flow of SV_Frame() is as follows:

  • add msec to Template:FieldDoc.
  • calculate frameMsec, which is the number of milliseconds per server frame. The calculation is based on the value of sv_fps.
  • call {{#ifexist:SV_BotFrame|SV_BotFrame()|SV_BotFrame()}} to allow bots to perform their actions for this frame.
  • if Template:FieldDoc >= frameMsec, repeatedly call {{#ifexist:VM_Call|VM_Call(GAME_RUN_FRAME)|VM_Call(GAME_RUN_FRAME)}} for each server frame that can be performed within Template:FieldDoc, where the server frame time is frameMsec.
  • call {{#ifexist:SV_CheckTimeouts|SV_CheckTimeouts()|SV_CheckTimeouts()}} to see if we've lost any clients.
  • call {{#ifexist:SV_SendClientMessages|SV_SendClientMessages()|SV_SendClientMessages()}} to send snapshots to clients.
  • call {{#ifexist:SV_MasterHeartbeat|SV_MasterHeartbeat()|SV_MasterHeartbeat()}} to update the master servers ("") about the server's current status.

See also