GAMES104-如何构建游戏世界
admin
2024-03-21 00:06:02

游戏都有啥?
可交互的动态游戏物体(Dynamic Game Object)
静态物体(Static Game Object)
环境,地形系统(Sky+Vegetation+Terrain)
其他物体(Air Wall+Trigger Area+Ruler+Navigation mesh)

核心:GameObject(GO)
里面的数据有两种
a.Property,对应字段
b.Behavior,对应方法

简单的办法,直接用普通的class,然后继承这个class
但是往往没有这么清晰的父子继承关系,有大部分重叠的逻辑

现代引擎:组件化(Component Base)
比如FPS游戏,枪里面的各个配件就是这个思想

class GameObjectBase
{List components;virtual void Tick();
}class ComponentBase
{virtual void Tick();
}//... 各种功能组件继承 ComponentBase

如何让游戏运行起来?
Tick 各个 Component
管线式 Tick ,各个系统整体 Tick,不是每个 GameObject 单独 Tick
优点:
1.无需等待,每个系统专心负责自己的职责,批处理
2.充分利用CPU(相同的数据尽可能放在一起)


如何让游戏物体可以交互?
各个 GO 需要彼此之间通信
1.硬编码(Hard code)
2.事件(Events),解耦合,自己只需发送,无需关心接受不了

难点:
物体之间的绑定
比如人开车,人需要跟车一起动
需要有不同 GO 的 Tick 顺序处理,父节点优先
同理 Events 也需要有顺序处理,绝对不能混乱!!如果用户输入一致,逻辑一定不能乱
需要通过第三方传递消息,第三方来控制组件的依赖关系


如何管理各个GO?
都有 unique ID,作为唯一标识
也都有 position
通过场景管理进行空间管理
a.暴力算法,只适合小游戏
b.网格法,简单,不适合分布不均匀的游戏
c.四叉树,管理空间
d.高级的办法,BVH、BSP、Octree、SceneGraph

需要根据不同的游戏类型,做不同的处理


相关内容

热门资讯

契约立心,技术归元 AI豪华六... 4月17日,以“契约”为主题的归元S技术发布会暨魏牌V9X预售发布会在保定圆满举行。发布会上,魏牌正...
内容打底 + GEO 破圈:房... AI 正重构地产营销链路,普通房产内容营销解决 “说什么、怎么说”,极客问道 GEO 优化解决 “A...
广东时装周开幕,茵曼上演全国首... 4月17日,2026广东时装周-春季在广州市番禺万博时尚广场盛大启幕。国民棉麻女装品牌茵曼以“一路生...
“有了AI,人们却过得越来越累... 文 | 听筒tech 2026年的春天,科技圈的风向变得比以往任何时候都快。 然而,在AI带来前所...
AI争议缠身的网易:《第五人格... 近日,网易旗下人气游戏《第五人格》迎来8周年纪念,4月11日,《第五人格》官宣“象牙塔系列”付费皮肤...