Games104现代游戏引擎入门-lecture15游戏引擎的Gameplay玩法系统基础
1 GamePlay的三个挑战
2 Gameplay 事件机制
应该改成event message机制
1 Publish-subscribe 模式
事件定义; callback
1 Event Definition
2 callback
激活,触发
3 消息分发
这个效率非常低,内存用的多,也变的非常慢
面向数据编程
3 event queue
Evnent queue的问题:
3 游戏逻辑
热更新hotfix。 设计师,没有编程训练,
1 脚本语言
脚本语言:不会把本体crash掉。
unity属于这种架构!
脚本语言和引擎之间,最难的是对象管理。 c++很容易内存泄漏。
脚本语言的GC系统,算法会很慢。如何优化GC,不要占用很多资源。 对象由谁管。
引擎调用脚本,脚本扩服务。
2 热更新
工程上的鲁棒性。 脚本系统和引擎结合是需要好好思考一下的。
JIT:
LUa:没有内库,很多时候需要自己写。 Python:非常重,需要虚拟内存。 Lua省内存,python需要很大内存,c#是个平衡点。
4 Visual Scipting
可视化脚本:蓝图 非程序背景:编程很难, 变量可视化: 语句可视化: 控制: 函数:
类: 引擎是生产工具
debug:
可视化编程工程的问题:
问题1:
问题1: graph:本质上是一个可视化的脚本
5 3C 系统
角色,控制,相机
1 Character
1 角色移动
角色一般是用状态机去做。
2 control
吸附功能: 力反馈+光 电影:被动 游戏:主动,游戏世界 和我 的互动。 决定游戏的手感。
3 Camera
相机系统的弹簧力 相机的参数, 人的主观感受 恐惧的时候瞳孔会放大。
主观感觉。 相机对游戏的表现力影响很大。 本质:gameplay,一切,无法定义边界 用event来进行信息分发。 不同类型的游戏都有自己的框架。
6 问题
可视化脚本和脚本不是替代关系,现有脚本系统在做可视化脚本,然后两个都支持。 对于游戏开发者希望开放, 有的平台禁止热更 逻辑变现分的很开, 现代游戏来说,逻辑和表现越来越密集。角色细节要求越来越高。 未来的pc游戏,游戏玩法和表现越来越难分开。
|