quake代码树结构

(一)运行需要的文件。

botlib 生成botlib.lib

cgame 生成cgamex86.dll

game  生成qagamex86.dll

q3_ui 生成ux86.dll

renderer 生成renderer.lib

splines 生成splines.lib

quake3 生成quake3.exe

cgame game q3_ui是3个DLL

每个DLL有一个vm_main函数。

int vmMain( int command, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9, int arg10, int arg11  )

每个VM中的LOAD次序:

VM_Create

Sys_LoadDll

每个VM有一个dllEntry和entryPoint

VM有两种接口:shared libs and qvm.

qvm文件保存在pak文件中。

(二)源代码树各目录的作用

lcc/the retargetable C compiler ( produces assembly to be turned into qvm bytecode by q3asm )


q3asm/assembly to qvm bytecode compiler


q3map/map compiler ( .map -> .bsp ) - this is the version that comes with Q3Radiant 200f

q3radiant/Q3Radiant map editor build 200f ( common/ and libs/ are support dirs for radiant

(三)pak文件

研究过pak文件的人都知道,pak文件有个特点:pakx.pak中x=0--9,x越大优先级越高

比如加上新地图,不用修改pak0.pak,打个包放在baseq3下即可

tga是一款游戏使用较早格式的图片,她比BMP,JPG的优势就是支持Alpha通道,这样可以轻松的制作出透明效果来;不过我现在觉得PNG比tga格式更好用一些,因为PNG压缩比很高,而且制作也很简单,如果注意一下,hge这款2D引擎使用的很多都是PNG格式的图片资源。dds也是一款支持Alpha通道的图片格式,而且N显卡对他支持硬件加速,不过制作比较麻烦,而且限制重重,所以我还是青睐使用PNG。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zlstone/archive/2009/10/09/4647416.aspx

你可能感兴趣的:(UI,command,assembly,dll,Build,compiler)