服務器端物理實現(三)

服務器端物理主須要考慮3個問題:json

  1. unity客戶端中障礙物信息的導出
  2. 服務器上物理引擎broadphase的解決方案
  3. 服務器端物理的顯示渲染

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 庫來渲染服務器物理狀態:內存

  1. 將body渲染
  2. 將cell渲染
  3. 將動態移動的玩家渲染
相關文章
相關標籤/搜索