GF_X自动化游戏框架 开源仓库
https://github.com/sunsvip/GF_X
【万人同屏插件框架版】获取 体验Demo下载
Unity万人同屏插件(通用性能优化插件) 专门为GF_X框架用户开发适配了框架版插件,与框架完美融合,配合框架的高性能和引用池使用,性能如虎添翼。
万人同屏插件兼容Unity全平台,包括WebGL(2.0),微信/抖音小游戏等平台同样大幅性能翻倍
Unity万人同屏 终极性能优化方案PC店铺
https://efunstudio.cn/
插件性能 功能 测试demo 红蓝对抗测试Demo
https://assets.efunstudio.cn/
GFX+万人同屏插件高性能实战项目
GF_X系列视频教程
GFX极速入门教程
GFX实战 快速开发Demo
GFX发布WebGL微信小游戏 热更
GF_X自动化通用游戏框架:1035236947
前言:
"工欲善其事必先利其器", 好的框架是对开发工作流的规范化、简单化、自动化,当然,高性能是基础必要条件。一个完善的游戏框架不仅能大幅提高开发效率、提高项目质量,还能让程序员码字的时候思路清晰、心情舒畅,避免不必要的开发内耗。
从业以来,接触过很多客户端"框架",架构主要是ECS、MVC当然最多的还是Manager of managers。诸多心酸,懂的人都懂。设计通用框架的前提,必须要项目经验丰富,熟知项目开发上下游痛点,并且至少熟悉市面上已有的优秀客户端框架是如何设计的。一定不要盲目重复造轮子,以自己的开发习惯为中心闭门造车。毫无疑问,适用于团队开发的通用游戏框架,必须考虑团队技术成员的整体能力,应该是保证高性能的同时,规范简化开发流程、降低开发门槛、提升开发效率。
当然,以上都是废话,最重要的是不用加班了。因为提高效率和质量,能避免堆成屎山,避免大量无谓的内耗加班。
GameFramework简介:
GameFramework是目前公开的一款品质较高的开源游戏框架。本人最早接触于2018年,并在毕设《MOBA游戏战地王者的设计与开发》中边学边应用, 现已使用GF开发了数十款商业项目。最初难以习惯GF的异步加载开发方式,因为在此之前都习惯于直接在场景中挂几个MonoBehavior一点运行游戏就跑起来了,毫不考虑性能、灵活、可配置、团队协作等等,在做毕设这种相对完整的大项目时,这种方式一团糟,远远无法满足项目需求,最终被迫选择游戏框架。如果一直呆在自己的技术习惯"舒适区",保持自己的开发“习惯”,不"睁眼看世界"、与时俱进,那么必将被急速发展的互联网技术淘汰,成为行业寒冬下,“优化”名单里的首选。
有些新手刚接触时给出"过度设计"的评价,吃透框架或遇到过各种需求的行业老兵,才会明白这么设计有诸多优点。实际上GF暴露给用户层的接口非常简洁,总结起来就是GameObject显示/隐藏只需ShowEntity()、HideEntity(), UI打开/关闭只需OpenUIForm(), CloseUIForm(); 用户层只管调用,至于内部复杂的对象池复用、释放,资源加载、释放,都由GF框架内部自动管理。 API或生命周期函数命名的规范、对仗工整也是GF的一大亮点,直接根据命名就能理解用法、作用。GF内部实现大量使用了接口(Interface),以至于初学者想跳转查看内部实现,结果都跳转到了抽象接口,因此认为"过度设计";
GF把核心模块与游戏引擎解耦,抽离出了一个核心叫GameFramework程序集, 而引擎相关接口封装为UnityGameFramework, 去实现GameFramework的各种功能接口;GameFramework程序集就实现了跨引擎(当然,有些人职业生涯只用Unity,不愿背跨引擎的“包袱”也可以理解)。并且GF使用了大量解耦设计,比如Helper接口,我们只需实现Helper接口就能对各个功能模块自定义;
这也就是为什么GF已经三年没有更新,却依然没有被淘汰,依然能跟得上时代的原因。比如随着时间的发展,技术不断更新进步,其间出现了更好的json插件或者zstring(无GC的字符串格式化、连接插件),我们只需使用这些插件实现GF序列化、文本处理接口,就可以一键切换使GF用上这些新特性。
HybridCLR简介:
HybridCLR是新一代的C#热更方案,通过修改Unity对应版本的il2cpp源码使其拥有运行时动态加载assembly的能力。可以用纯C#开发工作流,无感知的支持代码热更,极大提高了热更项目开发效率。
偶尔会听到神言论,说将来Unity转向XXX技术,学习NNN无用论,每个时代有每个时代的最佳方案,我们要做的不是杞人忧天,考虑布局一百年,而让自己固步自封,任何技术都不能吃一辈子。无论Unity何时转向NativeAOT,无论届时HybridCLR能否完美适配,都不能影响当下HybridCLR是热更新首选方案。
GF_X介绍:
自动化、简单化、高效化是GF_X的宗旨, "懒"是核心驱动力。功能随着本人从业以来参与设计研发无数个项目中,遇到的痛点以及推敲可能遇到的问题,以及作为设计师对用户体验的极致追求。把多年来的沉淀总结完善到了框架内,作为自动化工具链;并且进一步完善GF,新增扩展GF性能薄弱的模块、适配Unity最新版本兼容、支持WebGL或微信小游戏(单机/热更)。
GF_X自动化工具使用教程
0,框架逻辑执行流程
- LaunchProcedure(启动流程,主要处理初始化游戏设置,如语言,音效,震动等) => 完成后切换至CheckAndUpdateProcedure
- CheckAndUpdateProcedure(此流程处理单机/热更模式的资源初始化逻辑,处理App升级和资源更新以及初始化资源,只需要打AB资源时配置热更地址等即可实现完整热更) => 资源准备就绪,切换至LoadHotfixDllProcedure
- LoadHotfixDllProcedure(主要为HybridCLR做准备,如加载热更dll,AOT泛型补充。 反射调用热更类HotfixEntry.StartHotfixLogic创建新的流程状态机) => 开始进入热更代码的Procedure
以上为Builtin(内置)代码,逻辑上比较靠前,不可以热更新。至此之后,逻辑被热更新代码接管,进入PreloadProcedure
- PreloadProcedure(预加载流程,会添加GF框架扩展功能、设置AB测试组, 加载数据表/配置表/多语言) => 切换至ChangeSceneProcedure
- ChangeSceneProcedure(此流程专门用于切换场景,不同的场景对应切换至不同的流程) => 切换至Game场景,同时流程切换为MenuProcedure
- MenuProcedure(即游戏的主菜单流程, 流程OnEnter时显示主菜单UI,通常有开始游戏入口、商店入口、设置入口等,流程OnLeave时关闭主菜单等) => 若玩家点击开始,切换至GameProcedure
- GameProcedure(游戏玩法流程,例如: 加载游戏关卡地图,创建玩家、敌人等) => 游戏胜利/失败,切换到GameOverProcedure,显示游戏胜利/失败界面,进行游戏结算等
- GameOverProcedure(游戏结束流程, 通常会显示游戏胜利/失败界面, 进行游戏奖励结算, 并显示下一关、重玩按钮或返回主页等按钮) => 如点击下一关, 把关卡Id改为下一关然后切换到GameProcedure就开始下一关游戏了。点击返回主页按钮切换到MenuProcedure就回到了游戏主菜单。
使用有限状态机Procedure管理游戏逻辑,结构清晰,逻辑简单,可以规范开发。无论是维护还是debug都非常容易切入
1,功能工具栏
首先映入眼帘的是醒目的框架工具栏,这些是点击频率最高的按钮,位置必须醒目,用户体验上必须拒绝拖沓,使用频率高的菜单,能点一下绝不点两下。
并且扩展工具全部使用编辑器内置图标,保持UI风格统一美观、与Unity编辑器不违和,避免用户审美排斥。
当然,有一些无关痛痒的、自动化流程自动执行的命令(如刷新数据表),为了给用户留出选择权(我可以不用,但你不能没有), 这些优先级低的命令,才会以Unity顶部菜单栏的形式留给用户,如:

好的工作流,就像写一篇好文章一样,层次丰富、言简意赅、主题清晰、用意明了。不宜用力过猛,恰到好处;
Toolbar工具栏功能设计:

① 场景切换:
你有没有打开一个项目后,再一层一层翻目录找启动场景?
你有没有半路进入一个项目组后,打开项目一脸懵,不知场景在哪?怎么启动?
谢特?这么影响用户体验的痛点怎么能存在?
直接点击弹出场景选择下拉列表, 点击即可切换场景。
②一键打包/打热更工具:
你有没有打包前要设置一堆参数?
如果接了HybridCLR热更,还要执行一堆前置工作,配置手忙脚乱,丢三落四,漏掉某个步骤就会出现莫名其妙的问题,再重新来过?
担心游戏被破解、反编译?
打包工具窗口全部解决,并且支持部署Jenkins远程打包、单机/热更模式一键切换。
GF_X一键打包/打热更工作流
GF_X快速搭建Jenkins打包工具
自动化工作流框架打包/HybridCLR热更流程 万人同屏战斗项目模板
GF_X\Tools\Jenkins目录下有配置好的Jenkins环境,安装Jenkins后只需替换文件即可支持Jenkins远程打包/打热更。
一键切换单机/热更;一键启用Obfuz代码加密混淆功能、支持批量多平台打包热更,支持热更dll、AOT dll以及元数据补充dll进行加密,保护项目安全。
GF_X Obfuz代码混淆加密功能用法:
代码混淆加密功能用法
③ App基础配置:
什么?配置项七零八落?菜单九进九出?
策划总忘记导表、生成表代码?
策划不会填数据类型?填写数据类型麻烦?
App Config把项目配置齐聚一堂,流程、数据表、常量表、多语言都在这里;
勾选即启用,配置表、常量表、多语言,自动检测文件改变,自动刷新导出到工程;
可通过勾选Load from bytes一键切换导表文件类型为二进制或文本模式

自动为Excel表生成数据类型下拉框,配表更方便:

GFX数据表用法
④工具集:
什么?包体优化困难?
多语言填写麻烦、容易遗漏?废弃的多语言Key没人处理,冗余越来越严重?
...
游戏开发中常用的功能汇聚于此,并且支持轻松扩展,只需继承工具基类编写自己的功能,工具栏内就会自动显示你的自定义工具入口;

框架内置了痛点覆盖面相当广的工具集,如:代码裁剪配置工具、包体优化工具集(图片/图集压缩、动画文件压缩)、语言国际化自动扫描翻译工具、一键换字体、图片艺术字生成、AOT元数据补充配置、ChatGPT AI助手等;
都是直击痛点的工具,功能太多,不逐一说明;
包体优化工具集:批量处理大规模文件,大幅优化包体大小
GFX实用工具集
多语言工具: 一键精准扫描代码、Prefab、数据表中的多语言文本;一键增删支持语种;自动生成多语言excel、自动翻译多语言;【Unity编辑器扩展】语言国际化工具,生成多语言Excel自动翻译并导出多语言表_unity eidtor 生成prefeb-优快云博客文章浏览阅读2.4k次,点赞8次,收藏10次。文章介绍了一个用于游戏开发的多语言管理工具,该工具能一键扫描Prefab、Excel数据表和代码中的多语言文本,支持一键翻译并利用百度翻译API。工具还提供了多语言列表、Excel导出和人工审核功能,优化了工作效率。https://blog.youkuaiyun.com/final5788/article/details/129914973
https://blog.youkuaiyun.com/final5788/article/details/129914973
多语言工具自动生成的语言表Excel,Excel中点选即可锁定保留指定行,精准控制不需要剔除(永久保留)的行:

代码裁剪配置工具,轻松管理需要保留的程序集,避免代码裁剪造成的隐患:
⑤打开代码工程:
啥?想打开代码工程还要找个脚本去打开?
Assets->Open C# Project还要翻菜单?
直接Toolbar一键打开代码工程,用户体验第一位,分秒必争;
2,UI代码生成工具:
你还在手动写UI变量?还在拖拖拽拽?
UI代码生成工具,直接点击Hierarchy节点批量选择添加UI变量、批量添加按钮回调事件;
隔离式生成partial独立UI变量代码,一键添加变量自动绑定、自动命名、支持数组;编码效率飞跃提升;
【Unity编辑器扩展】UI变量代码自动生成工具(编辑器扩展干货/大幅提高效率)_unity 编辑器工具-优快云博客文章浏览阅读6.8k次,点赞6次,收藏30次。通过扩展编辑器菜单,两种初始化模式,图形化操作在不写一行代码的情况下,快速方便灵活的配置生成UI变量. 大量编辑器扩展干货,常用编辑器扩展API解析,大大提升开发效率_unity 编辑器工具https://blog.youkuaiyun.com/final5788/article/details/126570070
https://blog.youkuaiyun.com/final5788/article/details/126570070一键添加UI按钮事件:【Unity编辑器扩展】编辑器代码一键添加按钮响应事件_unity使用代码创建一个按钮-优快云博客文章浏览阅读1.3k次。该工具是Unity编辑器的扩展,用于自动为UGUI的Button添加响应事件,简化UI开发过程。它支持添加持久化和非持久化的onClick事件,通过UnityEventTools进行操作,并能处理不同类型的参数。通过反射获取并操作Button的m_OnClick字段,避免重复添加事件,提高开发效率。https://blog.youkuaiyun.com/final5788/article/details/131719216
https://blog.youkuaiyun.com/final5788/article/details/131719216
GF_X高效的UI工作流
GF_X高效的UI工作流2
一键创建UI模板和UI脚本:

零代码添加UI变量, 自动化生成代码:

解决UI动效制作/维护痛点,将DOTween Sequence可视化,快速制作UI动效、实时预览效果:

右键工具菜单:

同时提供了很多实用、便捷、人性化的扩展菜单,如SpriteAltas一键生成Text Mesh Pro的TMP_SpriteAsset(富文本图标资源)

API接口的简化扩展:
GameFramework虽然已经极大的将接口封装简化,但毕竟有灵活性包袱。很多接口需要提供的参数过多,针对这些问题通过静态扩展的方式,大幅简化扩展接口,同时扩展了很多常用功能和接口,可以说将开发门槛降低到海平面以下,傻瓜式接口调用。
你还在为找功能类、背API而烦恼?GF_X中,所有功能只需GF.XXX即可访问,模块极致清晰,即使是首次使用,也能通过API名称精准找到想要使用的功能接口。
以及扩展了游戏项目中各种常用功能,太多太多。。感兴趣的可以亲自试试,告诉你什么叫细糠!
最后也祝愿行业寒冬下的同仁,永远拥有最高的竞争力,永远得心应手、游刃有余。也祝愿大家和我一样,从来没加过班、从来不用加班。

1163

被折叠的 条评论
为什么被折叠?



