C#学到什么程度可以做游戏开发?
基础方面:
熟练掌握C,C++基础,对内存分配,内存管理,生命周期有比较熟练的控制。
熟练多线程编程,了解并行,并发原理,并尝试自己开发一款
了解计算机组成,对硬件缓存,堆栈的优化,编译原理等有比较清楚的认识。
做到对数据结构的灵活应用:如队列,堆,数组,哈希查找,二分查找。
掌握基本算法,如排序算法,空间几何算法等。
了解Unity中如Mono VM,IL2CPP,Boehm GC,Burst Compile这些实现的基本用途以及特性。
掌握各种面向过程和面向对象编程的设计模式。
进一步学习其他编程模式如面向数据设计,函数式编程等。
学习一个图形API,如DirectX 11,DirectX 12,Vulkan等等都可以,对游戏引擎底层有一定了解。
引擎方面:
掌握基础的逻辑组件使用,如Navigation,UGUI,Macanim等,并尝试自己开发一套背包系统,一套FPS,TPS控制器。
掌握一定游戏服务端开发技术。
掌握一定数据库技术,能够完成游戏存档,读档,联机数据存储等需求。
掌握Unity资源管理系统,包括新版本的Addressable,Scriptable Building Pipeline等,并尝试制定一套能够应付大量资源管理的工程流程。
对性能优化如:逻辑执行优化,GC优化,算法优化,渲染优化。能够快速Profile并锁定性能热点,在因为性能需要权衡特性时,准确对游戏中的特性的重要性进行排序和分类,确定哪些该简化哪些该腰斩。
熟悉Unity渲染,如SRP,Shaderlab等,能够独立开发一款五脏俱全的渲染管线。
熟悉Unity编辑器与其他开发软件的互动开发模式,如Houdini Engine等。