GameEntity&Component

  • Update
    • Entity的不同功能的更新频率可以不一致, 比如渲染60FPS, 逻辑15FPS
    • 更新频率可以做LOD处理, 如500米开外的更新频率可以设置为1FPS
    • 更新可以多线程化, 但是目前很少有人实现, 主要是复杂度与性价比的问题
  • Component
    • 优点
      • 可复用, 为数据驱动提供基础
      • 节省资源, Entity只包含它所需要的功能, 省要不必要的CPU计算和内存占用
      • 可以运行时动态增加/删除Component, Entity的功能可以灵活地改变
    • 缺点
      • 粒度难于把握, 太大的话复用性降低, 太小的话管理它们的代价上升
      • 依赖关系的处理, 需要避免循环依赖的现象
      • Component之间的互相调用容易耦合, 可以使用消息机制
      • 不同Component之间的更新次序需要提供保障
  • Manager
    • 各个管理器之间可以使用智能指针保存Entity的引用
    • 使用UniqueID的优点是安全, 缺点是有效率损失, 调试不方便

The Game Entity – Part I, A Retrospect

The Game Entity – Part II, The Life Cycle and Processing Architecture

The Game Entity – Part III, Components

The Game Entity – Part IV, Game Systems

The Game Entity – Part V, Future Ponderings

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • GameEntity&Component

    The Game Entity – Part II, The Life Cycle and Processing Architecture

    逍遥剑客
  • Nebula3 SDK (Mar2010)更新内容(山寨版)

    逍遥剑客
  • OGRE + MinGW + Code::Blocks环境的搭建

    逍遥剑客
  • GameEntity&Component

    The Game Entity – Part II, The Life Cycle and Processing Architecture

    逍遥剑客
  • JAVA集合框架中的常用集合及其特点、适用场景、实现原理简介

    Spark学习技巧
  • NanoMsg框架|Android Studio编译NanoMsg源码

    前面的章节已经把NanoMsg的简介,及C#相关的NNanoMsg使用Demo已经介绍完成了,今天这篇开始我们就要写关于Android怎么使用NanoMsg的文...

    Vaccae
  • gluster logrotate配置说明

        1、正常情况下,glusterfs-fuse配置文件操作的glusterfs.log不存在,没用影响,不予管理,可删除。

    党志强
  • node-gyp错误之旅

    Node.js 在安装模块的时候一直报错,提示安装node-gyp时报python不可用的情况

    汐楓
  • 两种Nginx日志切分方案,狼厂主要在用第1种

    所谓的定时任务切分,是指通过定时任务(比如crontab),发送信号给nginx,让其重新打开文件。该方法也是nginx官网上面比较推荐的,原文说明比较清楚,这...

    后端技术探索
  • 使用命令行结合jq提取出Kubernetes配置文件里的secret信息

    我们知道home目录下的.kube目录里存放了Kubernetes的配置文件config, 里面有certificate-authority-data:

    Jerry Wang

扫码关注云+社区

领取腾讯云代金券