服務器端物理主須要考慮3個問題:json
unity客戶端能夠作一個通用的GameObject Component 導出工具,將unity的樹狀gameobject結構導出爲一個樹狀的json文件,用於服務器解析;服務器
這樣對於客戶端中的collider信息也能夠導出一個component信息,存在json樹狀文件中;ide
在服務器上實現一個簡單的GameObject Component 系統,自動反序列化json文件,構造服務器上的GameObject 內存樹狀結構,自動掛載相應的Collider 組件。工具
服務器上反序列化了json以後,就須要將gameObject信息和 物理信息結合起來;調試
在Actor模式下的遊戲服務器中,每一個room爲一個Actor; 爲Room掛載一個 physicWorldComponent組件;component
在這個組件中,加載對應的Json文件,初始化collider,在collider代碼中,調用物理引擎接口,將collider中信息,來初始化物理引擎中的body。接口
在初始化body以後,能夠利用body信息,來初始化broadphase的 cell信息,即初始化每一個網格是否有障礙物,以及每一個障礙物佔用了哪些網格。遊戲
爲了便於調試,使用gtk和mono.cairo 庫來渲染服務器物理狀態:內存