quake3使用虚拟机的方式或者共享库的方式,实现引擎和具体游戏的解耦。
引擎文件为quake3.exe
而游戏实现又分为client ,server,ui 三部分,格式及其实现方式为dll和qvm
引擎中和
客户端有关的函数前缀为CL
服务器有关的函数前缀为SV
UI有关的函数前缀为UI
游戏程序中和
客户端相关的函数前缀为CG
服务器相关的函数前缀为G
quake3的脚本系统以命令的方式实现。
命令存放在CBuf中,使用CBuf_AddText往命令BUF中添加命令。
使用CBuf_Execute批量执行CBuf中的命令。
命令使用Cmd_AddCommand添加到系统中,并绑定命令的相关函数,其中exec命令是把命令文件一般是cfg后缀的文件加载到CBuf中运行。
Cbuf_AddText ("exec default.cfg/n");
// skip the q3config.cfg if "safe" is on the command line
if ( !Com_SafeMode() )
{
Cbuf_AddText ("exec q3config.cfg/n");
}
Cbuf_AddText ("exec autoexec.cfg/n");
Cbuf_Execute ();
这个是系统Com_Init()函数中最先执行的几个脚本文件。