返回博客列表

我如何把 UE Toolkit 从本地工具做成有真实用户和付费验证的产品

HUTAO667
UE Toolkit AI协作开发 产品复盘 独立产品

一次 UE Toolkit 的产品复盘:从本地桌面工具,到官网、更新、授权、支付、后台和用户反馈闭环。

我一开始做 UE Toolkit 的时候,并没有想过它会变成一个“产品”。

最开始的想法很简单:我自己在用 Unreal Engine 的时候,经常会遇到一些很烦但又很实际的问题。比如工程分散在不同磁盘,资产包下回来以后结构很乱,配置想在不同工程之间复用,每次都要手动找路径、复制文件、整理资源。

这些事情单独看都不难,但是每天重复做,就会让人很烦。

于是我想做一个工具,把这些零碎操作集中起来。说白了,就是给 UE 开发者做一个自己的工具箱。

后来这个工具慢慢从一个本地小程序,变成了有官网、有下载页、有自动更新、有授权、有支付、有后台、有真实用户反馈的产品。这篇文章想记录的不是某一个功能怎么实现,而是我如何把它从“能跑的工具”一步步推进到“有人愿意使用甚至愿意付费的产品”。

UE Toolkit 官网和下载页

最开始的问题

UE 开发者日常其实有很多重复劳动。

比如工程管理。

一个人电脑里可能有 UE4、UE5.3、UE5.4、UE5.6 的工程,有的是学习项目,有的是测试工程,有的是资产预览工程。时间久了以后,自己都不一定记得哪个工程在哪里。

再比如资产管理。

有些资产是 Content 目录,有些是插件,有些是完整工程,有些只是模型或贴图。下载下来以后,目录结构不统一,想导入到自己的工程里,往往要先解压、检查、改结构、再复制。

还有配置复用。

有些项目设置和编辑器偏好是可以复用的,但如果每次都手动找配置文件、复制、备份,也很容易出错。

这些问题不太“高级”,但它们是真实存在的。对我来说,UE Toolkit 最开始的价值就是把这些重复操作收起来,让它们变成按钮、列表和流程。

第一版只是本地工具

一开始我主要做的是桌面端。

客户端使用 Python 和 PyQt6,核心功能围绕几个模块展开:

  • 我的工程:扫描和管理本地 UE 工程。
  • 资产库:添加、识别、预览和导入资产。
  • 配置工具:保存项目配置,并应用到其他工程。
  • AI 助手:辅助分析资产或蓝图相关问题。

这个阶段最重要的不是“架构多漂亮”,而是它能不能解决具体问题。

比如资产库这个功能,我希望用户可以直接把压缩包或文件夹拖进去,然后工具自动识别它到底是资产包、插件、完整工程,还是其他资源。这样用户就不用每次都手动整理目录结构。

UE Toolkit 客户端主界面

UE Toolkit 资产库界面

做到这里,它已经是一个可以自己用的工具了。

但问题也在这里:自己用和给别人用,是两件完全不同的事。

给别人用以后,问题变了

如果一个工具只给自己用,那么很多事情可以很随意。

路径写死一点没关系,更新手动发也没关系,出错了自己知道怎么修,配置乱了自己也能慢慢找。

但是一旦想让别人使用,问题就完全变了:

  • 用户从哪里下载?
  • 怎么知道当前是不是最新版?
  • 出了新版本怎么更新?
  • 试用和正式版怎么区分?
  • 付费后怎么激活?
  • 用户遇到问题怎么反馈?
  • 我怎么知道有多少人在用?

这时候我才意识到,产品不是“功能集合”。

说白了,功能只是产品的一部分。一个真正能给别人用的工具,还需要发布、更新、授权、反馈、统计和文档这些配套能力。

所以 UE Toolkit 后来不再只是一个 PyQt6 客户端,而是变成了一个 Client + Web 的组合。

桌面客户端
-> 官网 / 下载页
-> 版本更新
-> 授权激活
-> 支付
-> 后台统计
-> 用户反馈
-> 继续迭代

这条链路,才是我后来真正想做出来的东西。

Client 和 Web 分别做什么

我现在理解这个项目,可以分成两部分。

客户端解决的是“用户电脑上的问题”。

它负责扫描工程、管理资产、导入资源、保存配置、调用 AI 助手、检查更新。这些功能都发生在用户本地环境里,和 UE 工程、文件系统、资产目录直接相关。

Web 服务端解决的是“软件如何被发布和运营的问题”。

它负责官网页面、下载链接、版本信息、授权验证、支付回调、激活码、用户启动统计、反馈管理和后台管理。没有 Web 这一层,UE Toolkit 就只是一个本地程序;有了 Web 这一层,它才开始像一个可以持续运营的产品。

我之前写过一篇 UeToolkit 使用文档,那篇更像说明书,告诉用户怎么用。

而这篇想讲的是另一件事:一个工具想从“能用”变成“能发布、能更新、能收费、能迭代”,中间需要补齐很多看起来不酷但很关键的环节。

UE Toolkit 产品闭环示意图

真实用户和付费验证

目前我能确认的汇总数据是:

  • 当前用户数:23
  • 当前付费用户数:8
  • 累计收入:约 299 元
  • 当前线上版本:v2.2.5

这个数据不大,但对我来说意义很大。

因为它说明这不是一个只放在 GitHub 上没人用的练习项目。它至少完成了一次很小的验证:有人真的遇到了类似问题,有人愿意下载,有人愿意试用,也有人愿意付费支持。

我不会把这个包装成很成熟的商业产品。它距离一个稳定、专业、规模化的软件还有很多差距。

但它对我来说证明了一件事:我不是只会做 Demo,我能把一个真实问题推进到有人用、有反馈、有付费验证的阶段。

UE Toolkit 后台统计截图

UE Toolkit 付费记录截图

用户反馈怎么推动迭代

UE Toolkit 后来很多更新,不是我坐在房间里凭空想出来的,而是用户使用以后提出问题,我再去改。

比如有用户反馈资产文档创建和打开不够方便,于是我把文档相关操作放到了更直接的位置。后来又加了鼠标悬停预览,让用户不用每次都打开文档。

还有资产卡片刷新问题。资产添加多了以后,后续新增资产不会立刻显示出来,这种问题自己测试时不一定容易撞到,但用户真实使用时很容易发现。

v2.2.5 里我还做了配置工具的应用和回退。因为用户在应用配置时最担心的是:如果配置覆盖错了怎么办?所以我加了备份和回滚逻辑,让工具不是只会“应用”,也能在出问题时退回来。

说白了,用户反馈会逼着你从“功能能跑”往“功能可靠”走。

UE Toolkit 用户反馈截图

UE Toolkit v2.2.5 更新截图

AI 在这个项目里做了什么

这个项目大量使用了 AI 协作。

我不会回避这一点。相反,我觉得这正是这个项目最值得讲的地方。

AI 帮我做了很多实现层面的工作,比如 PyQt6 界面、QSS 样式、Flask 接口、授权逻辑、后台页面、文档整理、问题定位、局部重构。

但 AI 并不是替我“自动做出产品”。

我的工作更多是:

  • 判断这个功能有没有真实使用场景。
  • 把模糊需求拆成 AI 能执行的小任务。
  • 看 AI 写出来的东西是不是符合产品目标。
  • 运行、测试、截图、观察用户体验。
  • 用户反馈以后,继续拆问题、改实现、再验证。

换句话说,AI 更像一个实现速度很快的协作者,而不是产品负责人。

如果需求本身是乱的,AI 只会更快地把混乱变成代码。真正重要的是:我能不能判断要做什么,不做什么,哪里算完成,哪里还不可靠。

这也是我现在对 AI 协作开发的理解:AI 能放大执行力,但它不能替你承担产品判断。

中间踩过的坑

第一个坑是技术跨度太大。

UE Toolkit 不是单一技术栈。客户端有 PyQt6、QSS、文件系统、打包、更新检查;Web 端有 Flask、数据库、授权、支付、后台、部署。这些东西放在一起,面试时很容易被追问到底层细节。

所以我不能把自己说成“精通全栈”。更真实的表达是:我通过 AI 协作完成了一个跨桌面端和 Web 服务端的产品闭环,我能讲清楚业务链路和主要模块,但很多底层细节还在补强。

第二个坑是安全边界。

授权、支付、后台、数据库,这些都不是可以随便公开细节的东西。比如 .env、支付密钥、数据库连接串、激活码、用户数据,都不能出现在博客和截图里。

我现在更谨慎的做法是:公开文章只讲流程和取舍,不贴敏感配置,不展示真实用户隐私。

第三个坑是“能跑”和“好用”之间差很远。

功能做出来只是第一步。真正给别人用以后,你会遇到各种边界情况:路径异常、资产结构不标准、工程被删除、配置回滚、更新失败、界面卡顿、用户不会操作。

这些问题都不一定很酷,但它们才是一个工具从 Demo 走向产品时必须面对的东西。

这件事对我求职有什么意义

如果只看技术名词,UE Toolkit 可能会显得很杂。

它有桌面端,有 Web 服务,有授权,有支付,有后台,有 AI,有 UE 工具,还有一些自动化流程。

但我觉得它真正能证明的不是“我已经精通所有这些技术”,而是另一件事:

我能发现一个真实问题,把它拆成可以实现的模块,借助 AI 协作推进开发,再通过用户反馈和付费验证继续迭代。

这比单纯写一个练习项目更接近真实工作。

真实工作里,很多时候不是让你展示某个技术有多深,而是让你把一个模糊需求变成可用功能,并且能持续修问题、补文档、听反馈、做取舍。

UE Toolkit 对我来说就是这样的项目。

目前的边界

我不会把 UE Toolkit 包装成一个非常成熟的软件。

它还有很多需要补强的地方:

  • 授权系统的安全边界还需要继续加强。
  • 支付回调、日志脱敏、后台权限都需要更谨慎。
  • 测试体系还不够完整。
  • PyQt6 一些底层机制我还在补。
  • 资产管理模块历史逻辑比较复杂,后续还需要继续整理。
  • 文档和官网展示还可以更专业。

但这些不足并不会抹掉它的价值。

相反,它让我更清楚地知道:一个产品不是写完代码就结束,而是要不断面对真实用户、真实反馈和真实边界。

总结

UE Toolkit 最开始只是我想偷懒做的一个本地工具。

后来它慢慢变成了一个有客户端、有官网、有更新、有授权、有支付、有后台、有用户反馈的小产品。

这个过程让我最大的收获是:产品化不是某个单独功能,而是一整条闭环。

说白了,写一个工具不难,难的是让它被别人下载、理解、使用、反馈、更新,甚至愿意付费。

UE Toolkit 还很小,也还不完美,但它已经跨过了“只有我自己用”的阶段。对我来说,这就是它最重要的意义。