Skip to content

Jinger52035/PatchTool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 

Repository files navigation

PatchTool 项目说明与迁移通知

🚨 重要:版本迁移通知

感谢您对 PatchTool 的长期支持!

原版 PatchTool (旧版UE版本) 已不再维护,所有后续开发、功能更新及问题修复都将集中在全新的 PatchToolPy 版本上。

新版本地址

👉 https://github.com/Jinger52035/PatchToolPy

关于 PatchToolPy

PatchToolPy 是 PatchTool 的 Python 重构版本,拥有更友好的代码结构、更易扩展的功能以及更活跃的维护计划。

主要特点

  • ✅ 完全使用 Python 编写,降低二次开发门槛
  • ✅ 保持原有核心功能,并持续优化体验
  • ✅ 跨平台支持更佳
  • ✅ 开源

立即迁移

请访问上方 GitHub 仓库获取最新代码、使用说明及示例。旧版 PatchTool 将不再接收任何更新,建议您尽快切换至 PatchToolPy。

再次感谢您的一路陪伴,新版 PatchToolPy 将为您带来更稳定、高效的体验。


📖 原 PatchTool (旧版) 功能概述

PatchTool 是一款由 UE 开发的多功能小工具。如果您在看过文档之后仍然对此有疑问,可以观看教程:B站教程

此外,因为软件还在积极更新中,每个版本有出入可以查看对应的文档。

补丁创建

PatchTool 可以比较两个文件夹之间的差异,并且生成差异文件,这个差异文件即可作为文件夹级别上的 补丁(注意:本软件和 UE 的热更新插件,比如 Hotpatcher,是两个不同层面的补丁功能)。

因为制作理念初期就是为了方便更新一些简单的 Pak,这里结合 HotPatcher 打出补丁 Pak。但同时,这并不是一款热更新工具,只是文件夹比较(类似简单版本的 Beyond Compare —— 虽然我这款免费)。

  • 你的产品有 C++ 更新,仍然可以用此实现更新。
  • 你的 UE 游戏可以只将最新的补丁文件传递给你的测试人员等,即可实现更新。

因为本人的游戏只需要给身边的朋友测试,所以无需搭建一个服务器执行热更新,而且有时候会涉及到 C++ 更新,所以直接给个文件夹差异补丁,更新完事。

本人的单机游戏采用了这种方式:TickingAway

一个简单的附赠文档:操作指南

补丁更新功能

  1. 选择 [Release(Old)] 即旧的游戏文件,如果选择正确会出现对应的版本号。如果制作者第一次没有加入版本号,那么最原始的第一个版本是没有版本号的,确定路径正确即可。
  2. 选择 Patch[New-Old] 即补丁文件的地址,如果选择了正确的路径,那么版本号也会更新出来对应的版本。
  3. 点击开始更新后,即可开始更新。

注意:补丁文件需要按照顺序更新(未来 PatchTool 会支持多补丁导入)。例如:

  • 你下载的是 0.0.1 发行包版本,应用 0.0.2-0.0.1 补丁,即可将自己本地的游戏更新到 0.0.2。
  • 同样,如果你的游戏已经是 0.0.2,应用 0.0.3-0.0.2 即可将游戏更新到 0.0.3。

MemReport(UE内存可视化分析)

MemReport 在打包 Development 后使用是最好的,如果在 Editor 使用可能会受到编辑器加载内存的影响。

MemReport 背景知识

追查内存泄漏的第一步是确定泄漏是否正在发生。一个简单的办法就是在两个不同的时间点分别生成当前内存分配的快照,比较两者来发现变化。如果在游戏中没有进行任何操作,那么无论过去了多少时间,内存的使用情况应该都不会有很大变化。但是如果被占用的内存量随着时间推移稳定地上升,可能就需要查找泄漏了。

  • 使用方法:直接在 UE 编辑器窗口的命令控制台上(或打包后)输入 MemReportMemReport -full 即可得到内存分析报告。MemReport -full 会得到更加详细的分析报告。
  • 报告位置:保存在 Game/Saved/Profiling/MemReports 目录下,文件格式为 .memreport,使用文本编辑器就能打开查看。
  • 定制MemReport 这个指令可以在引擎目录下的 \Engine\Config\BaseEngine.ini 中查看并根据需要进行修改和定制。

MemReport 的内存分析报告中包含了内存使用总量、对象列表和内存使用情况、Actor 数量及信息等。


❓ 常见问题(FAQ)

1. 我只能用 PatchTool 更新 UE 游戏吗?

不是。PatchTool 只是根据文件夹比较,目标不一定是 UE 制作的产物。一些小游戏团队可以利用这个实现游戏更新。除此之外,直接比较两个文件夹的差异也是可以的,并非只是为了 UE 打包的游戏。

2. 旧版 PatchTool 开源吗?

旧版 PatchTool 使用了蓝图和 C++,Github 的 LFS 使用付费,是一个臃肿的产品,所以不上传源码。但是旧版 PatchTool 会不断积极更新(现已停止维护,请转向 PatchToolPy)。

3. PatchTool 免费吗?

完全免费。

4. 旧版 PatchTool 相关资源

请遵守相关规定。

5. 未来更新计划(旧版计划,已不再继续)

5.1 软件用 C++ 层面重新写一遍 (此计划已在 PatchToolPy 中以 Python 实现)


📋 版本历史(旧版 Release 记录)

V1.0.0

  • 创建和应用存在问题,不推荐使用。
  • 熬夜八小时奋斗出来的第一代产品。

V1.0.1

  • 修复创建和应用的 bug,是一个稳定的版本。

V1.0.2

  • 优化界面。
  • 增加打印应用补丁文件的日志。

V1.0.3

  • 增加对 UE MemReport 日志的可视化展示。
  • 优化部分界面。
  • 增加日志可以关闭的功能。

V1.0.4

  • 调整 UI 布局,让界面更加人性化。
  • MemReport 增加更多人性化的布局。

V1.0.5

  • 增加批量更新功能。
  • 增加读取文件夹之后可以记录路径,避免每次重复打开。

V2.0.0

  • 优化 UI 布局。
  • 优化 MemReport 功能界面。
  • 增加 MemReport 基础开始分配信息以及 Parse 设置。

V2.0.1

  • 增加无视违规文件名功能,方便更新一些违规名文件。
  • MemReport 增加 dumpMemory、listTexture 内存分析数据。

About

A tool to create patch and update patch!

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors