作者:gdflas 编辑:张晓衡
来源:https://forum.cocos.org/t/topic/138660 本文已经获得作者 gdflash 授权发布,在此感谢作者辛勤创作与热情分享。
Oops Framework
开源至今已有一年多的时间,有不少同学加入到框架的交流QQ群中,在尝试学习与使用这套框架开发游戏。
我在这段时间,接触到一些初次尝试用 Cocos Creator 开发游戏的同学,在看到框架代码后,发现框架内容较多,但不知道从哪个点入手开始学习。 为此我录制有一套视频近 40分钟的视频教程,希望能帮助到你。
B站视频:https://www.bilibili.com/video/BV1WV4y1G7Gb/
Oops Framework
在后续的维护中,我会进一步把大多模块设计成为可选方式,设计思路与 Cocos Creator 中的 模块剔除功能 相同。
框架提供的一些技术点,与游戏业务非强依赖的,可在理解后选用,这样可以更平滑的学习,每个项目熟悉一部分技术。
为了方便大家使用框架制作游戏,我又设计了一套游戏项目模板,直接下载后就可以在项目中二次开发自定义的游戏业务,省去手动剔除教程项目中的例子代码。
下面是Oops Framework
的详细介绍,希望对你有所帮助!
Oops Framework
是基于 Cocos Creato 3.x 游戏引擎以 TypeScript 语言设计的一套游戏框。
框架针对游戏开发常用技术进行了封装,使游戏开发更加简单,提高开发效率。让开发者把更多精力放在游戏内容与游戏体验上,从而提高游戏品质。
最新版本的框架是以插件方式提供,这样设计的目的是为了后续升级只需要对插件目录执行 git pull 就可以更新到最新版本。
框架模块之间业务耦合较低:
插件版框架源码
目录结构与模块说明:
core - 框加核心技术库
common - 游戏公共模块
audio - 音频模块
event - 全局事件
loader - 加载模块
log - 日志模块
manager - 时间管理、随机管理
storage - 本地存储
game - 游戏世界类
gui - 游戏界面类
layer - 多层界面、窗口管理
prompt - 公共提示窗口
utils - 游戏各类工具库
Oops.ts - 框架功能访问接口
Root.ts - 框架视图层根节点管理组件
libs - 框架中可选技术库
animator - 动画状态机
animator-effect - 动画特效组件
animator-move - 动画移动组件
behavior-tree - 行为树框架
camera - 三维摄像机控制组件
collection - 数据集合处理
ecs - ECS框架
gui - 界面组件
badge - 红点提示组件
button - 按钮组件
label - 标签组件
language - 多语言组件
model-view - MVVM框架
network - 网络模块
render-texture - 渲染纹理组件
security - 安全组件
module - 游戏通用模块
common - 公共模块
config - 配置模块
模板项目
https://gitee.com/dgflash/oops-game-kitgit clone https://gitee.com/dgflash/oops-game-kit.git
注:模板项目基于Cocos Creator 3.6开发,请下载最新版本编辑器后打开项目。后续正式版出来可直接在 Cocos Dashboard 中下载。
Oops Framework
:
https://store.cocos.com/app/detail/3558md extensions
cd extensions
git clone -b master https://gitee.com/dgflash/oops-plugin-framework.git
git pull
mkdir -p extensions
cd extensions
git clone -b master https://gitee.com/dgflash/oops-plugin-framework.git
git pull
res - 预制引用的静态资源
resources - 动态加载引用的资源
audio - 音乐资源
common - 公共资源
config - 配置资源
game - 游戏自定义内容配置数据表
config.json - 框架默认配置资源(可扩展内容)
content - 自定义动态加载内容资源
game - 核心玩法内容资源
gui - 界面资源
loading - 游戏初次加载界面
language - 多语言资源
script - 游戏脚本
game - 游戏业务模块
common - 游戏公共模块
config - 游戏配置
GameEvent.ts - 全局事件配置
GameUIConfig.ts - 界面窗口配置(提供oops.gui模块使用的配置数据)
table - 游戏配置表对象(可通过oops-plugin-excel-to-json自动生成)
initialize - 游戏初始化模块
SingletonModuleComp.ts - 游戏单例业务模块
Main.ts - 游戏入口脚本
根据上面的目录结构,在开发游戏时,可将资源存放到对应的文件夹中管理。这套模板项目自带以下游戏必备功能。
Cocos Creator 菜单->项目->项目设置
设置好后,其它的交给框架自动处理即可。
initialize/bll/InitRes.ts
这个脚本管理游戏启动时加载的必备资源,此处要注意的是,这里配置的资源尽量小一些,避免无提示加载阶段黑屏时间过长,导致游戏体验下降。
initialize/view/LoadingViewComp.ts
这个脚本是游戏内容资源加载界面的控制脚本,游戏内容资源一般较大,会有加载进度条提示来提高游戏体验。所有资源加载完后,会通过执行以下脚本来显示游戏第一个自定义界面。
oops.gui.open(UIID.Demo);
下一步就可以开发自定义游戏逻辑了,模块代码风格可以参考Oops Framework
中的角色模块实现方式。
往期精彩
本文分享自 Creator星球游戏开发社区 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!