Games104现代游戏引擎入门-lecture3如何构建一个游戏世界

1 游戏世界的构成

动态物:
在这里插入图片描述
静态物:
在这里插入图片描述

环境:
在这里插入图片描述
别的物体:
空气墙,
在这里插入图片描述
每个物体都是很game obcjet(GO),这是方法论!
在这里插入图片描述

2 无人机案例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

缺陷:很多东西其实并没有清晰的父子关系!
解决方案:组件化!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
现代游戏引擎:生产力工具
Uobject:
在这里插入图片描述

游戏世界里每个物体都是go;
每个物体都是通过组件来描述的;
在这里插入图片描述

3 游戏世界如何动起来

写每个object的函数的时候都要加个tick函数
在这里插入图片描述
通常是通过组件来tick的,1
在这里插入图片描述
并行
在这里插入图片描述

4 如何探索

在这里插入图片描述
下面这种方式不好:
在这里插入图片描述
事件机制来实现,解耦合,只要发出个event;
在这里插入图片描述
在这里插入图片描述
unreal 为啥复杂呢?

现代游戏引擎做一个可扩展的消息系统

5 如何管理GO

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

八叉树
在这里插入图片描述
在这里插入图片描述

节约计算资源:
在这里插入图片描述

6 总结

在这里插入图片描述

物体之间的绑定:
GO tick的时候,有时许关系。go之间的通讯是通过消息机制来进行的。
逻辑悖论:逻辑上会混乱,实际上对游戏的影响是非常大的。
引入一个第三方,邮局,确保时序是严格一致的。
pretick()和posttick是解决时序的问题的!
每个组件,是在当前帧还是上一帧接收到的消息的,这一点一定要注意。
在这里插入图片描述
ECS是什么?
在这里插入图片描述

7 Q&A

1.tick过长,如何处理?
计算过于复杂,
可以tick 跳过两帧,5帧–0.2s左右,批处理
2. 透明的东西

  1. 渲染流程和tick流程是如何同步的
    ticke逻辑,会在tick渲染的后面,
    tick渲染的时候,是在做准备,
    ticke逻辑会比tick渲染前面

  2. 空间划分了,动态的怎么办

  3. 组件模式有什么缺点?
    组件模式的效率低,ecs可以解决这个问题
    组件之间也需要通讯机制,这个过程对效率的影响也很大,

  4. 事件机制如何调试

锁定一个GO,把收到的所有消息都显示出来
不停的打log;

  1. 物理和动画冲突了如何处理?
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值