在上一篇文章里,我談到過Quake的各個邏輯模塊被封裝在不同的DLL中,它們之間的交互利用了引出函數作為接口.這一點有點像COM,不同的是COM需要對DLL進行註冊,因為COM有時要提供給多個應用程序來使用,應用程序通過註冊表裡的GUID定位DLL,然後再載入到程序的進程空間中.但是Quake的DLL就不同了,它不必讓所有的應用程序都知道它的存在,它是專屬於引擎的,離開了引擎它一無事處.另外一個COM與Quake DLL的不同點是,COM的主力編程語言是C++,一種面向對象的語言,它產生的接口都是以類的型式出現的,所以使用它的語言也必須是面向對象的.但Quake是純C寫的,沒有類的概念,因此它提供的接口是純函數的形式給出.
DLL模式被大量的運用到遊戲設計上,選擇它作為遊戲的建構方法不是沒有它的道理的.