《游戏编程模式》--优化模式--学习

这篇具有很好参考价值的文章主要介绍了《游戏编程模式》--优化模式--学习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 在线阅读:

优化模式 · 游戏设计模式

参考文章:

 GameDesignPattern_U3D_Version/Assets/010OptimizationPatterns at master · TYJia/GameDesignPattern_U3D_Version · GitHub



数据局部性介绍了计算机的存储层次以及如何使用其以获得优势。 脏标识帮你避开不必要的计算。 对象池帮你避开不必要的内存分配。 空间分区加速了虚拟世界和其中元素的空间布局。

 数据局部性

合理组织数据,充分使用CPU的缓存来加速内存读取

模式

现代的CPU有缓存来加速内存读取。 它可以更快地读取最近访问过的内存的毗邻内存。 通过提高内存局部性来提高性能——保证数据以处理顺序排列在连续内存上

脏标识模式

将工作延期到需要其结果时才去执行,避免不必要的工作

 模式:

一组原始数据随着时间变化而改变。 使用代价昂贵的过程推定一组导出数据。 用一个“脏”标识追踪导出数据是否与原始数据保持一致。 它在原始数据改变时被设置。 如果导出数据被请求时,该标识被设置了,那么重新计算并清除标识 否则的话,使用之前缓存的导出数据

什么时候清空脏标识

  • 当结果被请求时:

    • 如果不需要结果,可以完全避免计算。 如果原始数据变化的速度比推导数据获取的速度快得多,这效果很明显。

    • 如果计算消耗大量时间,这会造成可察觉的卡顿。 将工作推迟到玩家想要结果的时候会严重影响游戏体验。 这部分工作一般足够快,不会构成问题,但是如果构成问题,你就需要提前做这些工作。

  • 在精心设计的检查点处:

    有时候,会有某个时间点适合这么做,或在游戏过程中某个自然适合处理推迟计算的时机去做。 例如,只有海盗船驶入港口才会去保存游戏。 如果同步点不是游戏的机制,我们会将这些工作隐藏在加载画面或者过场动画之后。

    • 这种工作不会影响到玩家体验。 不像前一个选项,你总会在游戏紧张运行时打断玩家的注意力。

    • 在工作时丧失了控制权。 这和前一个选项相反。你在处理时能进行微观控制,确保有效且优雅地处理它。

      不能保证玩家真的到了检查点或者满足了定义的条件。 如果他们在游戏中迷失了,或者游戏进入了奇怪的状态,最终工作会推迟得超乎预料的晚。

  • 在后台处理:

    通常情况下,你在第一次更改时启动固定时长的计时器,然后在计时器到时间后处理之间的所有变化。

    • 可以控制工作进行的频率。 通过调节计时器,可以保证它发生得像预期一样频繁(或者不频繁)。

    • 更多的冗余工作。 如果原始状态在计时器运行之间只改变了很少的部分,最终处理的大部分都是没有改变的数据。

    • 需要支持异步工作。 在“后台”处理数据意味着玩家可以同时继续做事。 这就意味着你将会需要线程或者其他并行支持,这样游戏在处理数据的同时仍然可以继续游玩。

      由于玩家很可能与处理中的状态交互,你也需要考虑保持并行修改的安全性。

 对象池模式

放弃单独地分配和释放对象,从固定的池中重用对象,以提高性能和内存使用率

模式

定义一个对象,其包含了一组可重用对象。 其中每个可重用对象都支持查询“使用中”状态,说明它是不是“正在使用”。 池被初始化时,它就创建了整个对象集合(通常使用一次连续的分配),然后初始化所有对象到“不在使用中”状态。

当你需要新对象,向池子要一个。 它找到一个可用对象,初始化为“使用中”然后返回。 当对象不再被需要,它被设置回“不在使用中”。 通过这种方式,可以轻易地创建和销毁对象而不必分配内存或其他资源。

何时使用

  • 需要频繁创建和销毁对象。

  • 对象大小相仿。

  • 在堆上进行对象内存分配十分缓慢或者会导致内存碎片。

  • 每个对象都封装了像数据库或者网络连接这样很昂贵又可以重用的资源。

 重用对象不会自动清理

很多内存管理系统拥有debug特性,会清除或释放所有内存成特定的值,比如0xdeadbeef

空间分区

将对象根据它们地位置存储在数据结构中,来高效的定位对象

模式

对于一系列对象,每个对象都有空间上的位置。 将它们存储在根据位置组织对象的空间数据结构中,让你有效查询在某处或者某处附近的对象。 当对象的位置改变时,更新空间数据结构,这样它可以继续找到对象。文章来源地址https://www.toymoban.com/news/detail-453783.html

到了这里,关于《游戏编程模式》--优化模式--学习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序小说电子书在线阅读系统设计与实现

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月05日
    浏览(51)
  • 微信小程序在线阅读系统微信小程序设计与实现

    摘 要:信息技术永远是改变生活的第一种创新方式,各种行业的发展更是脱离不了科技化的支持。原本传统的行业正在被科技行业的切入悄悄的发生变化。就拿我们生活当中常见的事情举例而言,在外卖行业还没有发展的快速的时候,方便面等速食成了快速吃饱的首要选择,

    2024年02月10日
    浏览(42)
  • 微信小程序电子书小说在线阅读平台系统设计与实现

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月04日
    浏览(45)
  • 基于java在线小说电子书阅读系统设计与实现

    【用户功能模块】 (1)登录功能:注册普通账号登录;登录后可以修改用户的基本信息,也可以退出。 (2)浏览资讯:浏览网站管理发布的资讯,可以评论,评论后需要管理员审核和查看。也可以收藏资讯。 (3)关于我们:浏览网站关于我们的信息,涉及关于我们、联系我们、加

    2024年02月11日
    浏览(59)
  • 基于PHP在线小说电子书阅读系统设计与实现

    系统设置 网站设置:网站名称、、描述、网站介绍 关于我们设置:设置关于我们、联系我们、加入我们、法律声明 广告和留言        首页轮播图设置:支持上传轮播图;        留言列表:用户的所有留言信息、支持删除 机构图片        分类设置:支持录入

    2024年02月12日
    浏览(99)
  • 基于微信小程序的毕业设计——在线阅读系统(附源码+论文)

    大家好!我是职场程序猿,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:微信小程序毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 安卓app毕业设计 🌎Java毕业设计 本文主要还是以在线阅读系统设计和实现为主要的考虑内容,为了能够考虑到信息安全性和系统的数据访问

    2024年02月06日
    浏览(49)
  • 基于微信小程序在线电子书小说阅读系统设计与实现

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,学习后应对毕业设计答辩。 项目配有对应开发文档、

    2024年04月28日
    浏览(53)
  • 微信小程序毕业设计作品成品(04)在线阅读小说电子书小程序系统设计与实现

    博主介绍 :《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、PPT、论文模版

    2024年02月08日
    浏览(46)
  • 基于Django在线小说电子书阅读系统设计与实现(Pycharm+Python+Mysql)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,学习后应对毕业设计答辩。 项目配有对应开发文档、

    2024年03月27日
    浏览(57)
  • 基于微信小程序的在线小说阅读的设计与实现(源码+论文)_v213

    摘要 近年来,随着社会科技的不断发展,人们的生活方方面面进入了信息化时代。计算机的普及,使得我们的生活更加丰富多彩,同时,随着智能手机的普遍使用,不少的微信小程序也应运而生,逐步改变着人们的生活方式。手机作为这个时代的新生产物,具有高效、便携、

    2024年02月03日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包