例子1: 角色節(jié)點的組織與管理
邏輯節(jié)點(位置,方向故源,狀態(tài)數(shù)據(jù)等) + 動畫子節(jié)點(待機污抬,行走,攻擊绳军,技能印机,死亡動畫,播放)
角色的位置,狀態(tài)等數(shù)據(jù)都保存到邏輯節(jié)點上删铃,邏輯節(jié)點下面耳贬,有一個孩子節(jié)點,負責播放角色的動畫猎唁,及"表現(xiàn)"。
這里有個游戲開發(fā)學(xué)習(xí)交流小組?大家可以一起學(xué)習(xí)交流
例子2: 幀同步中的邏輯與表現(xiàn)
幀同步是現(xiàn)在很流行的一種同步模式顷蟆,比如《王者榮耀》就是幀同步做的诫隅,幀同步的邏輯與表現(xiàn)分離指的是
客戶端接收服務(wù)端發(fā)過來的幀事件,基于這個幀事件帐偎,來驅(qū)動整個游戲的數(shù)據(jù)計算逐纬,我們叫做邏輯幀。
在幀同步里面削樊,所有的數(shù)據(jù)計算與游戲進程的迭代豁生,都是基于邏輯幀來驅(qū)動和計算的。邏輯幀的幀率一般是15~20FPS漫贞,
而本地動畫要流暢,基于60FPS甸箱,這樣,我們再邏輯中處理決定播放哪些動畫迅脐,本地基于客戶端的幀率來播放動畫芍殖。
數(shù)據(jù)同步與計算在邏輯幀(15~20FPS),本地動畫播放位移移動在本地表現(xiàn)幀(60FPS)。
例子3: ECS模式:
ECS模式就是典型的數(shù)據(jù)與表現(xiàn)分離谴蔑,我們的Entity實體豌骏,由一個一個的數(shù)據(jù)ComponentData組成,使用System來
迭代里面的數(shù)據(jù)隐锭,表現(xiàn)層獨立出來作為單獨的ComponentData窃躲。
例子4: 游戲引擎主線程與渲染線程
游戲中的主線程負責迭代游戲的邏輯,迭代完成后渲染線程負責把要繪制的數(shù)據(jù)提交給GPU繪制钦睡。做到邏輯線程與渲染線程分離