研究方向

ToDoList

自己未来的工作内容的大概想法,主要分为性能优化(包含性能、效率工具的开发)和技术预研两部分。根据工作的难度预估分为了待落地待深入两部分(在每项工作内容后面进行标注)

  • 待落地 已经有了一些知识储备和实现思路,没有过分超出预期的情况应该能落地形成产出。
  • 待深入 还没有去深入了解过或者有已知较难突破的部分,具体能不能实现或者能做到什么程度还不确定。

感觉可以交替进行待落地和待深入的工作,保证有一定产出的同时,尝试挑战一些新的东西,以下是具体工作内容的一些想法:

性能优化相关

  • 加载优化
    • AUP异步上传管线 (待落地 )
      addressable只有异步加载 AUP应该是必要的
      • 梳理清楚整个加载的过程 异步加载和同步加载做对比
      • AUP起作用的地方是把主线程的一些工作移到了加载子线程 从而主线程可以同步进行游戏逻辑处理(做demo的时候要体现出这一点)
      • 验证AUP各项参数对异步加载速度的影响 通过表格对比 整理文章
    • Active & Deactive / Destory & Instantiate (待深入 )
      加载优化中这部分还是占较大比重的,这类问题一般是游戏业务逻辑或者预设资源的设计不合理造成的,优化的主要难度还是在如何定位问题上,使用UPR新出的功能或这是仿照他的实现再尝试一下做自己内网的工具
      • 捕获运行时每帧具体加载内容及耗时
      • 捕获运行时Active & Deactive / Destory & Instantiate调用次数以及调用的物体
  • UI优化相关
    • UI代码生成工具(待落地 )
      • 已完成 待反馈后优化
    • 性能优化辅助工具(待落地 )
      • UGUI源码 & 底层合批原理学习
      • 可以在手游7那个工具上进行修改 结合实际优化UI性能的需求 考虑最终工具做成什么样
    • 运行时动态图集 (待落地 ).
      可以作为方案展示 https://www.cnblogs.com/wsk-0000/articles/12533972.html
  • Mono
    • 增量GC(incremental GC 2019.3有的功能)(待落地 ).
      可以把gc分散到空闲帧完成,避免出现单帧的峰值,理论上挺实用的,可以做个方案展示
      • GarbageCollector.GCMode disable 可以直接禁止gc 可以用于战斗等对流畅性要求很高的场景 但得对Mono内存的分配很有把握才行
      • vSync || Application.targetFrameRate 如果开启了帧数限制 就会在wait for target的时候gc
      • GarbageCollector.incrementalTimeSliceNanoseconds 每帧最用多少ms来执行gc
  • 资源相关
    • AnimationClipPlayable(待落地 )
      2019版本升级为正式版的功能,可以实现AnimationClip的动态按需加载,可以做个方案展示。

技术预研相关

  • ILRuntime & xLua (待深入 )
    • ILRuntime使用流程打通
    • ILRuntime原理了解
    • ILRuntime和xLua性能对比
  • 自动测试化流程 (待深入 )
    • 其实感觉应该是测开的工作,主要以配合为主吧
  • DOTS(待深入 )
    • 原理了解 补充编译原理相关知识
    • Demo场景搭建 预计是一个无双类打怪的场景 不断生成刷新新的怪物
    • 比较启动DOTS各项优化前后性能的变化
使用情况 FPS(暂定)
传统GameObject 0
ECS 0
ECS + Job System 0
ECS + Job System + Burst Compilert 0

知识点补充

  • SetPassCall 和 DrawCall了解到gl层
  • 性能方面内存继续深入
  • 《网络编程和同步》

你可能感兴趣的:(开发笔记)