《Unity3D高级编程之进阶主程》第二章 架构(三) - 架构的误区,如何做前端架构,以及如何架构Unity3D项目

前端与后端架构之间的共性

目标都是,高性能、高可用、可扩展、安全、可容错。

对于前端,还需要加入更多的用户体验,包括视觉效果和操作灵敏度。 (性能优化,视觉效果,以及操作上的人性化等)

前端技术与后端技术基于操作系统之上,最后都需要了解操作系统的接口以及底层运作原理。区别在于后端在操作系统上构建了一套服务端框架,而前端在操作系统之上构建了一个渲染引擎,两者都需要在这之上构建业务架构。

两套架构要学习,一套是渲染引擎架构,一套是游戏业务架构。

培养架构设计思维

良好的架构设计思维的培养,离不开工作中大量高质量项目的实战锻炼,然后是平时的学习、思考和提炼总结。

架构设计不是静态的,而是动态的。只有能够不断应对环境变化的系统,才是有生命力的系统。

抽象,包括分层、分治、演化

对抽象、分层、分治和演化掌握的深度和灵活应用的水平,直接决定架构师所能解决问题域的复杂性和规模大小,是区分普通应用型架构师和平台型/系统型架构师的一个分水岭。

试着架构Unity3D项目

分层

把最难把控的放在最优先的位置去做,而后再对这些层级进行细致化的构建。

分治

对模块进行细致化构建时,可以用分治法方法去构建。

各个模块的拆分原则:

复制代码
数据表 -- XLS导为二进制文件还是Json或其他格式,读取接口和解析接口的定义。

UI层 -- 使用NGUI还是UGUI,界面基类,界面管理,输入事件封装,自定义通用组件基类,自定义各类通用组件。

外部资源管理 ---- 是否使用AssetBundle,AssetBundle资源分类,AssetBundle资源间的依赖关系,加载与释放AssetBundle的管理,AssetBundle加密。

AI层 ---- 使用状态机还是行为树或者其他,状态机或行为树接口实现,AI可视化工具,AI扩展接口。

地形地图 ---- 地图是2D还是3D,场景编辑器的结构,是否需要Mesh合并,场景内的大小物件区别对待,大地形在游戏里该怎么逐步显示,是否要划分区块。

寻路与网格 ---- 使用A星还是跳点算法或者其他,使用网格栅格还是三角网格,长距离寻路的解决方案,地图数据管理。

常用库 ---- 时间函数,数学函数,数字变量加密封装,坐标转换函数,Debug调试工具,各大逻辑系统通用工具等等。

角色行为控制 ---- 人物移动处理方案,摄像机的碰撞检测,动画特效编辑器,技能编辑器,行为流的建立。

2D动画控制 ---- 动画组件封装,2D动画的制作流程,2D图合并为图集。

演化

一开始的做的架构中某个部位的并不适合,或需要改善,在后面的工作中,修复和完善架构是演化的重要步骤。

在不断编写完善架构的过程中原本抽象简单的架构,开始复杂化。虽然每个模块都在有条不紊的进行中,但也会不断冒出各种各样不适应或者不符合实际需求的问题出现,我们需要及时跟进演化内容。去除、重构或者改善,前面由于各种原因而导致的错误的理解。

最后架构设计的文档要及时跟进完善。

相关推荐
Hernon2 分钟前
微服务架构设计 - 可降级设计
微服务·云原生·架构
漫长的~以后1 小时前
GPT-5.2深度拆解:多档位自适应架构如何重塑AI推理效率
人工智能·gpt·架构
思成不止于此1 小时前
【MySQL 零基础入门】MySQL 函数精讲(二):日期函数与流程控制函数篇
android·数据库·笔记·sql·学习·mysql
龙亘川1 小时前
深度解析《2025 中国 RFID 无源物联网产业白皮书》:技术架构、开发实践与万亿级赛道机遇
物联网·架构
中屹指纹浏览器2 小时前
2025技术干货:国内静态 IP 搭配指纹浏览器的加密绑定与跨区域优化方案
经验分享·笔记
by__csdn2 小时前
微前端架构:从理论到实践的全面解析
前端·javascript·vue.js·架构·typescript·vue·ecmascript
是Dream呀2 小时前
【openFuyao】openFuyao社区AI推理加速组件技术解析与实践
人工智能·架构·openfuyao
Ccjf酷儿2 小时前
操作系统 李治军 4 设备驱动与文件系统
笔记
Monkey_Xuan2 小时前
C#中的引用传递和值传递
unity·c#
初辰ge2 小时前
做后台系统别再只会单体架构了,微前端才是更优解
前端·架构