quake3的指令碼系統

2021-05-26 05:09:00 字數 684 閱讀 4657

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 autoexec.cfg/n");

cbuf_execute ();

這個是系統com_init()函式中最先執行的幾個指令碼檔案。

quake3的指令碼系統

quake3使用虛擬機器的方式或者共享庫的方式,實現引擎和具體遊戲的解耦。引擎檔案為quake3.exe 而遊戲實現又分為client server,ui 三部分,格式及其實現方式為dll和qvm 引擎中和 客戶端有關的函式字首為cl 伺服器有關的函式字首為sv ui有關的函式字首為ui 遊戲程式中...

Nebula3指令碼系統

nebula2的指令碼系統實現了乙個面向c 的指令碼介面,它把指令碼命令直接對映到了c 方法.從技術角度來說,這是乙個簡捷的思路,但是對於需要把遊戲邏輯和行為指令碼化的關卡設計師來說,nebula2的指令碼系統太底層和透明了.關卡邏輯指令碼一般來說構架於比c 介面更高階的層次上,直接把指令碼命令對映...

U3D指令碼系統

遊戲常用的指令碼系統是lua 什麼是指令碼?c 指令碼並不屬於指令碼 指令碼指的是 使用方式與位元組碼 bytecode 類似,是在執行時通過虛擬機器系統 virtual machine 來載入檔案,動態更改邏輯影響遊戲行為 一條命令被可優化的底層操作定義 一系列這樣的命令被編碼成位元組流 虛擬機器...