新春来临,相信大家已经抢到了那张名叫“思乡”的车票,漫漫旅程,一则合适的读物将为您的行程增添别样的色彩,陪伴您一路奔向您的那桌团圆饭。祝大家新春快乐!

打开网易新闻 查看精彩图片

0-30分钟 学堂读物推荐

eg:上海→苏州(29分) |上海→无锡(28分)

《浅谈骨骼动画技术原理》

全文约6000字,阅读时长约30分钟

https://edu.uwa4d.com/course-intro/0/604

本系列课程将从以下三方面展开介绍,为了方便大家的理解,前期会介绍一些基本知识作为铺垫。

  • 如何插值?

  • 如何让骨骼动起来?(正向运动学和逆向运动学)

  • 骨骼如何带动皮肤?(线性混合蒙皮)

《Spine动画加载优化思路》

全文约4000字,阅读时长约20分钟

https://edu.uwa4d.com/course-intro/0/440

Spine动画是我们在2D游戏开发中比较常用的一个插件,在Spine的动画加载方面,经常会遇到加载耗时和内存分配过大的问题,这是因为在Spine加载时会将Spine文件的所有动画一次性加载,但是通常存在浪费的现象(比如角色展示界面、某些关卡中只需要特定的动画)。

那么如何实现按需加载动画,从而获得比较优秀的运行速度和较低的内存占用呢?

本课程对于Spine动画加载的流程进行了修改,使用了懒加载的方式实现Spine动画的按需加载,有效地降低Spine动画的堆内存分配。内容包括思路分析,代码详解,优化前后的性能对比。从结果来看,本方案更适合骨骼文件中动画数量较多,有几百个甚至上千个的情况。而当单个角色的骨骼文件如果不具有太多数量的动画(<10个),并且一个场景需要使用单个角色的所有动画,这种情况的优化效果则会不太明显,反而多个角色同时切换一个新的“未被加载”的动画时,会引起一些懒加载产生的卡顿。

因此本文的优化方法需要按照项目需求使用,也可以自行对加载产生的耗时做适当优化(比如字符串申请内存,字符串拼接等产生的耗时)。

PS:本文采用Spine 4.0版本进行的测试,其他的Spine版本可以参考文章代码进行适配。

《Unity实现水墨山水画风格》

全文约4800字,阅读时长约24分钟

https://edu.uwa4d.com/course-intro/0/494

本文介绍了一些3D渲染技术的组合思路,并用来对中国传统绘画中的宋代水墨山水画风格进行模仿实现。文章思路同样可以用于油画、水彩、素描以及漫画等其他美术风格方向的渲染。

30分钟-1小时 学堂读物推荐

eg:上海→常州(35分) |上海→杭州(45分)

《Meshy(AI生成3D)使用指南》

全文约9600字,阅读时长约48分钟

https://edu.uwa4d.com/course-intro/0/594

Meshy是一款3D AIGC工具,借助Meshy我们可以在一分钟内将文字和图片转化为高质量的3D模型。文章以指南的形式向读者介绍了如何更好地使用Meshy,可根据自己的需求选择性阅读对应章节。

《深入UGUI Soft Mask(软遮罩)组件原理》

全文约7000字,阅读时长约35分钟

https://edu.uwa4d.com/course-intro/0/563

这篇文章主要探讨了图形处理中遮罩(Mask)的交互和应用,特别是在处理多层遮罩和计算最终对象可见性时的机制。文章通过详细的计算示例和概念解释,向读者展示了遮罩如何在图形渲染中发挥作用,并解析了遮罩的交互模式以及如何通过Alpha值来影响对象的可见性。

读者能从中学习到硬遮罩和软遮罩的实现原理的相同和不同之处;多层软遮罩的Alpha计算以及软遮罩交互模式MaskInteractionId的计算。

《主流游戏相机实现》

全文约8000字,阅读时长约40分钟

https://edu.uwa4d.com/course-intro/0/434

本文通过Unity 3D引擎和Cinemachine组件来实现主流游戏的相机设置,切换和管理的概念,习惯,基本原理,经验参数等。实现内容以动作游戏相机为主,但不限于动作游戏,也可以用于横版格斗、FPS、RPG等类型,需要自行调整和研究。

本课程属于基础和进阶课程,适合对镜头控制感兴趣的读者。

以下为推荐的视频课程以及对应章节的时长信息:

《分布式网络和通讯协议数据传输》

https://edu.uwa4d.com/course-intro/1/545

分布式网络和通讯协议数据传输48min1|分布式服务服务器使用Protobuf协议传输数据 9min 2|自定义协议工具生成客户端和服务器协议代码 8min 3|在服务器端使用Protobuf进行消息收发 12min 4|使用Unity搭建客户端和服务器进行通讯 11min 5|发送消息时使用消息池提升性能 8min

《MMO游戏创建加载游戏角色对应服务器数据存储和读取》

https://edu.uwa4d.com/course-intro/1/560

MMO游戏创建加载游戏角色对应服务器数据存储和读取52min1|玩家从登录到创建角色进入游戏的数据流程 7min 2|通过Http访问器在账号服务器创建玩家账号 9min 3|分布式服务器中使用中转消息进行服务器间通讯 12min 4|客户端创建新角色或者选择已有角色进入游戏 15min 5|游戏服务器定时存储玩家数据到Redis和MongoDB 9min

《服务器AOI(Area Of Interest)算法和功能实现》

https://edu.uwa4d.com/course-intro/1/562

服务器AOI(Area Of Interest)算法和功能实现541|客户端使用NavMesh进行寻路 13 2|客户端自定义AOI编辑器创建九宫格数据供服务器使用 10 3|服务器加载AOI区域数据并在对应区域创建服务器角色 11 4|客户端进入游戏后根据AOI区域显示对应的角色 10 5|客户端跨区域移动的时候动态加载和卸载AOI区域角色 10

《搭建寻路服务器实现服务器刷怪和怪巡逻》

https://edu.uwa4d.com/course-intro/1/565

搭建寻路服务器实现服务器刷怪和怪巡逻48min1|使用Unity客户端制作并发布寻路服务器 8min 2|游戏服务器注册到寻路服务器请求寻路数据 8min 3|为服务器怪添加状态机 9min 4|服务器怪通过AI实现服务器巡逻 13min 5|服务器同步消息到客户端进行怪巡逻 10min

《玩家状态同步算法实现和消息广播》

https://edu.uwa4d.com/course-intro/1/602

玩家状态同步算法实现和消息广播38min1|分布式服务器PING值的计算 11min 2|客户端进行点击移动同步到服务器进行状态更新 8min 3|服务器进行玩家点击移动变化并同步状态变化到其他玩家 5min 4|客户端进行摇杆移动同步到服务器进行状态更新 8min 5|服务器进行玩家摇杆移动变化并同步状态变化到其他玩家 6min

1小时-2小时 学堂读物推荐

eg:上海→绍兴(1小时14分) |上海→扬州(1小时41分)

《基于Unity Compute Shader实现Ray Tracing》

全文约12000字,阅读时长约60分钟

https://edu.uwa4d.com/course-intro/0/540

本文主要介绍了如何利用Unity的Compute Shader实现照片级别的渲染器,并给出了渲染器的GitHub项目地址供大家学习。不少对Ray Tracing渲染感兴趣的朋友用了CUDA等工具开发,工作量相当大。作者直接使用大家较为熟悉的Unity,降低了工程上的开发成本,着重于Ray Tracing本身的算法和功能实现。本文将介绍Ray Tracing算法的必备知识点,以原理作为前提,再介绍如何一步一步实现渲染器的各个功能,包括场景构建,BVH,光源采样,物理材质,图像输出等,并介绍了今年流行的Wavefront内核的实现。

《从零开始打造基于GraphView的行为树框架》

全文约21000字,阅读时长约1小时45分钟

https://edu.uwa4d.com/course-intro/0/539

本文主要介绍了行为树的一些特点,以及如何在Unity中从零开始实现基于事件驱动的行为树Runtime框架(包括黑板参数、可扩展的自定义序列化数据格式等),与如何基于GraphView开发配套的行为树可视化编辑器与调试器(包括注释块、复制粘贴、Undo/Redo等)。

本课程属于进阶课程,适合已经有一定业务开发经验,并具有行为树与Unity编辑器的UI Elements开发基础知识的读者。(使用的Unity版本:Unity2021.3lts)

《Unity开发实战经验分享》

全文约15500字,阅读时长约1小时17分钟

https://edu.uwa4d.com/course-intro/0/496

本课程主要记录了笔者项目初期碰到的并值得一说的实际业务问题,涵盖了比较多客户端框架设计的内容,以及有效提升开发者编程体验的内容。

主要包括以下内容以及一些其他配套的小工具。

  • Luban配表工具的使用介绍

  • ECS设计下的加载管理

  • 设计项目资源规范化

  • 设计本地化组件

  • C# Task使用指南

  • 设计技能系统

  • Unity Android多渠道管理

以下为推荐的视频课程以及对应章节的时长信息:

第一章《EntityGrapics与DOTS基本套路》

https://edu.uwa4d.com/course-intro/1/551

第一章《EntityGrapics与DOTS基本套路》96min1|第一个渲染元素 9min 2|深度排序的问题 11min 3|更像精灵的精灵 5min 4|TextureArray与精灵帧 5min 5|BlobAsset与动画驱动 11min 6|用Mono控制精灵 7min 7|封装EGPrefab 20min 8|DOTS与主线程数据交火 10min 9|Transform与DOTS高效交互 18min

《分布式MMORPG服务器框架搭建以及MongoDB和Redis使用》

https://edu.uwa4d.com/course-intro/1/288

分布式MMORPG服务器框架搭建以及MongoDB和Redis使用79min1|分布式游戏服务器框架介绍和技术选型 8min 2|框架线程模型概述和创建服务器解决方案 12min 3|ServerConfig配置文件配置和加载 13min 4|MongoDB和Redis可以做什么 12min 5|角色实体RoleEntity的写入和读取 10min 6|MongoDB中唯一ID管理和使用 8min 7|Redis中的五种容器(字符串、哈希、列表、集合、有序集合)介绍 4min 8|在.NetCore中使用CSRedis操作共享内存数据 12min

《支持HotFix的分布式服务器框架搭建》

https://edu.uwa4d.com/course-intro/1/290

支持HotFix的分布式服务器框架搭建64min1|HotFix程序集自动拷贝和不停服热更新 16min 2|服务器框架图和服务器客户端关联关系解析 12min 3|中心服务器监听游戏服务器的连接请求 10min 4|游戏服务器通过连接器连接到中心服务器 14min 5|网关服务器分别连接到中心和游戏服务器 12min

《FlatBuffer表格工具和服务器表格加载》

https://edu.uwa4d.com/course-intro/1/543

FlatBuffer表格工具和服务器表格加载61min1|为什么选用Flatbuf技术 19min 2|在服务器上使用数据表格管理器加载数据 11min 3|表格工具之配置文件的设置和加载 12min 4|使用表格工具生成服务器代码 13min 5|表格工具发布到Win和Mac平台 6min

2小时以上 学堂读物推荐

eg:上海→福州(3小时41分) |上海→武汉(4小时58分)

《Unity移动端游戏性能优化简谱》

全文约52800字,阅读时长约4小时20分钟

https://edu.uwa4d.com/course-intro/0/430

本文从Unity移动端游戏优化的一些基础讨论出发,例举和分析了近几年基于Unity开发的移动端游戏项目中最为常见的部分性能问题,并展示了如何使用UWA的性能检测工具确定和解决这些问题。

(1)性能优化的基本逻辑

前言中简单论述了“确定问题-解决问题-持续监控问题”这一既是层层递进、同时也密不可分的逻辑;践行游戏研发“工业化”的UWA尝试在其中的每一个步骤都提供优良的解决方案。

(2)UWA性能检测工具

图文兼备地展示了UWA性能检测工具在确定和解决性能问题过程中的易用性、可靠性。

(3)常见性能问题

如图,文章从内存、CPU、GPU三个维度讨论了当前游戏项目中经常出现的一些性能问题作为参考。

《五天实现PBR保姆级教程》

全文约28000字,阅读时长约2小时20分钟

https://edu.uwa4d.com/course-intro/0/437

该课程主要对PBR(Physically Based Rendering,基于物理的渲染)技术进行了深入浅出地讲解与实现。

PBR的知识体系极为庞大,导致好多同学兴致勃勃地进来,但看到如此繁多的概念和数学公式后,浅尝辄止一番就灰头土脸地走掉,很是可惜。正所谓“师傅领进门,修行靠个人”,本课程的目的就在于让这些同学“开开心心地来,高高兴兴地回”。基于此,本课程会在实现的过程中尽量用比较浅显的语言循序渐进地介绍一些“高大上”的概念——比如球谐、傅立叶等;而在涉及到数学公式的理解与推导上,尽量使用初高中的数学知识而不涉及到“高端”的概念(比如雅克比),对于公式的推导保证每一步都有据可依,不至于跨步太大让大家不明所以。

最后,在实践部分,还有一段比较长的路要走,这里把“路”拆开,我们一段一段地走:

第一天:阅读掌握PBR相关基础知识

第二天:搭建一个简易的SRP框架

第三天:实现PBR的直接光部分

第四天:实现PBR间接光的漫反射部分

第五天:实现PBR间接光的镜面反射部分

《游戏中的体积流体技术》

全文约30000字,阅读时长约2小时30分钟

https://edu.uwa4d.com/course-intro/0/499

笔者决定维护一个专栏用于系统性的分析当前与潜在的“体积流体”方案,它们中的一些惊艳于SIGGRAPH与GDC,并在游戏开发史上留下了浓墨重彩的一笔,另外一些虽然小众,但切入点与思考方向非常有价值。如果读者之前有接触过这些工作,就会意识到这是一个涉及数据的生成,存储与转换,算法的设计与优化,视觉表达与内容管理,以及引擎和工具链开发的庞大内容,当我们站在产品项目管理周期的视角去考虑,会发现大家最经常讨论的3D噪声纹理与Ray marching其实只是整个系统的一小部分。除了传统的手段,伴随着机器学习MLP对数据、信号的解构与重建的研究,利用神经网络压缩数据,加速访问与碰撞检测的尝试也逐渐受到了工程界与学术界的重视,这似乎为解决一些传统困境提供了可能。除了已被落地证实的稳健方案,这些潜在的研究价值也会被纳入讨论范围。

在流体方案层面,我们可能更着重讨论欧拉视角,或以Stable Fluid为代表的半拉格朗日方法,以及MLS-MPM等混合方法。这全然是因为我们需要面对的是云、雾、烟、火焰这类的介质 ,而非液体。更为复杂的多相流问题,似乎在游戏中应用的可能性不大,但如果有时间,追加这部分的研究也是非常让人兴奋的。一旦我们将视角放开到影视领域,对物理规律的还原将变得更加苛刻,虚拟世界也更加真实!

《游戏工程管理》

全文约29500字,阅读时长约2小时27分钟

https://edu.uwa4d.com/course-intro/0/439

成为主程,得以主导一款新游戏的技术,所关注的也会从具体的技术点转到工程的协调。技术是单一的具体方法,工程是综合的系统协调,区别于小型游戏的单枪匹马作战,中大型游戏开发是一项系统性工程,因此,除了需要高超的技术水平,还要掌握工程实施的方法。

随着游戏项目规模增长,模块间相互关联,开发成本将成指数增长,工程管理方法就是要抑制成本增长的曲线,让团队能够按时按质完成整款游戏项目的开发。

在工程管理领域,虽说有着传统《软件工程》、敏捷开发和PMP(项目管理认证)的一些实践,不过它们更适用于传统软件开发,游戏项目有着很独特的部分。版本分支怎么管理、代码规范怎么定、如何让多人合作变得顺畅、如何保障开发的质量,这是游戏主程必须面对的问题。然而市面上相关资料并不多,更缺乏体系化的归纳,于是决定抛砖引玉,试图编写《游戏工程管理》。

以下为推荐的视频课程以及对应章节的时长信息:

第二章《兵海游戏之魂-RVO-DOTS实现精讲》

https://edu.uwa4d.com/course-intro/1/552

课包两章:EG+RVO(请仔细阅读课程说明)186min1-1|第一个渲染元素 9min 1-2|深度排序的问题 11min 1-3|更像精灵的精灵 5min 1-4|TextureArray与精灵帧 5min 1-5|BlobAsset与动画驱动 11min 1-6|用Mono控制精灵 7min 1-7|封装EGPrefab 20min 1-8|DOTS与主线程数据交火 10min 1-9|Transform与DOTS高效交互 18min 2-1|初识算法和参数(上) 13min 2-2|初识算法和参数(下) 5min 2-3|空间划分 13min 2-4|寻邻 8min 2-5|Rvo主算法 15min 2-6|可视化Debug 18min 2-7|推挤与施力 9min 2-8|封装RvoLib 9min

更多内容,欢迎大家登录UWA学堂:edu.uwa4d.com进行查看,以下为您推荐了UWA学堂整理的各模块知识Tree汇总,体系化的学习有利于大家搭建自己的知识脉络,更清晰有目标的专注于某个知识点进行深入学习。

近期精彩回顾