CliToolkit 工具

目标 & 背景

在游戏开发过程中,通常我们会为了更好的测试、校验逻辑正确性等,开发很多工具,最常见的就是 GM1 指令,以及一些为运营同学开发的运营工具,如:发送邮件,开启活动等等

这样我们就可以将工具分为两大类

  • 游戏内建 GM 指令
    • 部分工具可以直接丢进 Unity Editor 开发
  • 运营工具(Web)

但是在实际开发过程中,我总是会碰到一些工具放在哪里都不合适,比如:正式服的 AB 差分上传工具、技能描述工具(帮助策划理解自己技能配置是否正确),为了解决这个问题,我在我们项目中引入了第三种工具分类,CliToolkit (已开源)

最初做技术选型时非常纠结,首先工具的开发必须使用 C#,这样组内任意其他开发人员都可以快速上手,而且开发成本要低,同时要提供相对便利的交互

基于上述原因,最后决定基于 Spectre.Console 设计了现有的 CliToolkit

实际业务展示

git 上已经展示了针对 YooAsset 2 的 Sftp 差分上传,这里展示我们项目中给策划开发的技能描述工具

iShot_2022-11-20_10.45.59

这里也是在 CliToolkit 的基础上,对游戏所有技能相关的配表,挨个增加了树形解释,整体开发成本很低,策划也很爱用

这里的技能系统设计,争取今年开几篇文章介绍一下

CliToolkit 设计思路

在设计时,主要考虑了如下内容:

  • 参数
    • 不同用户不同配置
    • 命令行透传参数
  • 运行模式
    • 手动模式
    • CI/CD 自动模式

参数

我们以 YooAsset2 的差分工具为例,比如当前游戏中存在 A、B 两个渠道,每个渠道有自己的 CDN 资源服务器,那么此时上传的服务器配置也应当是两份,同时会有部分参数是需要通过命令行运行时 args 透传进行赋值的

为了解决这些问题,我们将参数分为 AutoConfigCommandSettings 两种,AutoConfig 用于存放不同渠道的 Sftp 配置,而 CommandSettings 用于存放 args 透传参数,如在 README 中介绍到的 --yooasset_local_dir 参数就是存放在 CommandSettings 中的

而不同渠道不同配置,在 CommandSettings 中有一个默认的 -u 参数,用于存放到底使用哪一个 Sftp 配置

所有需要外部传入的参数,都要增加缺省判断,如果没有配置,就需要手动输入

运行模式

利用 Spectre.Cli 库,来解决多种运行模式的问题

var app = new CommandApp();

app.SetDefaultCommand<MenuCommand>();

app.Configure(
    config =>
    {
        config.AddCommand<MenuCommand>("Menu");
        config.AddCommand<CliCommand>("Cli");
    }
);

return await app.RunAsync(args);

这里将手动模式标记为默认命令,这样就完成了多模式的区分

最后

希望 CliToolkit 能帮你在工具开发过程中提供一个新的解题思路

参考

  1. InGameDebugConsole https://github.com/yasirkula/UnityIngameDebugConsole




  2. YooAsset https://github.com/tuyoogame/YooAsset 2
作者:L
本文采用 CC BY-NC-SA 4.0 协议

评论

  1. 曼华
    21小时前
    2022-12-01 16:08:55

    催更催更୧(๑•̀⌄•́๑)૭

    • 博主
      曼华
      20小时前
      2022-12-01 17:51:20

      今年估计只会更新一篇技能设计相关的文章了,内容会比较多,可以耐心等等。

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇