ggelua多功能热更新系统
内容字数
2548
预计阅读
6 分钟
最近更新
23天前


服务器端部署
需求:
- 一个支持 HTTP 访问的 Web 服务器(Apache、Nginx、IIS 等)
- 或者使用云存储服务(阿里云 OSS、腾讯云 COS 等)
推荐配置:
- 带宽:至少 5Mbps(根据玩家数量调整)
- 存储:至少 1GB(根据更新包大小调整)
- 我测试的时候使用更新包55.7 MB里面全部map素材大概1700个文件,解压的时会闪烁,
- 如果你更新的文件数量比我还多,调整热更系统390行 最大解压数量=5 改成30或别的数字
- 按到不需要这么大的5是我在测试的时候用的多文件,一般你也不会更新这么多文件进去。
步骤 2:创建更新文件和目录
根据你自己设定的域名目录就行了,上传版本文件
比如我现在的目录是files你的目录是222那么你域名哪里就要更改同步一样。
创建 version.txt 文件,内容为当前版本号:1.0
注意:
- 版本号格式:
主版本.次版本.修订号(如:1.0、1.1、2.0.1) - 文件编码:UTF-8(无 BOM)
- 不要有多余的空行或空格
步骤 3:本地准备更新包
- 压缩为 ZIP 格式
- 使用 Windows 自带压缩或 7-Zip
- 压缩格式:ZIP(不要用 RAR 或 7z)
- 压缩方式:标准压缩(不要用超强压缩)
- 文件名:
g2d.zip
重要: ZIP 包内的目录结构必须与客户端一致!
步骤 4:上传到服务器
将文件上传到服务器:
/files/
├── version.txt # 版本号:1.0
└── g2d.zip # 更新包
``
### 步骤 5:测试服务器访问
在浏览器中测试:
http://你的域名/files/version.txt
http://你的域名/files/g2d.zip
确保两个文件都能正常下载。
---
## 客户端部署
### 步骤 6:确认必需文件
确保客户端包含以下文件:
Client/
├── g2d.exe # 游戏主程序
├── version.txt # 本地版本号(初始:0.0.0)
├── main.lua # 已集成热更新代码、观看步骤7
└── Script/
├── 热更新系统.lua # 热更新核心模块
└── 异步下载器.ps1 # PowerShell 下载脚本(可选,用于更好的进度报告)
gge/Extend/
└── ZIP类.lua # minizip 解压模块(必需!)
**重要:**
- `gge/Extend/ZIP类.lua` 是必需的,用于解压更新包。缺少此文件会导致解压失败。
- `异步下载器.ps1` 是可选的,如果存在会提供更准确的下载进度报告。如果不存在,系统会动态生成下载脚本。
### 步骤 7:集成到你自己源码 main.lua
需要在 `main.lua` 中添加三处代码:
#### 位置 A:初始化热更新系统
在 `引擎(标题,800,600,60,true)` 和 `窗口图标(...)` 之后插入:
-- ==================== 热更新系统(启动器内置更新)====================
print("\n【系统】正在初始化热更新系统...")
local 热更新加载成功, 热更新错误 = pcall(function()
热更新系统 = require("Script/热更新系统")
end)
if 热更新加载成功 and 热更新系统 then
-- 初始化
热更新系统:初始化()
-- 立即开始更新流程
热更新系统:开始更新()
else
print("【热更新】模块加载失败: " .. tostring(热更新错误))
end
-- ==================== 热更新系统加载结束 ====================
#### 位置 B:更新热更新系统
在 `function 渲染函数(dt,x,y)` 中,`鼠标.x,鼠标.y=x,y` 之后插入:
```lua
-- 更新热更新系统(在渲染前更新,不阻塞)
if 热更新系统 and 热更新系统.更新 then
热更新系统:更新(dt)
end
关键: 必须在 yq.渲染开始() 之前调用,确保更新逻辑在渲染前执行。
位置 C:渲染热更新界面
在 yq.场景:显示(dt,x,y) 和 游戏公告:显示(dt,x,y) 之后插入:
-- 如果正在更新,在游戏场景之上渲染更新界面
if 热更新系统 and 热更新系统.状态 and 热更新系统.状态.显示界面 then
热更新系统:渲染()
end
关键: 必须在 yq.渲染结束() 之前调用,确保更新界面显示在最上层。
步骤 8:配置服务器地址
编辑 Client/Script/热更新系统.lua,修改服务器地址:
-- 配置
热更新系统.配置 = {
服务器地址 = "http://你的域名/files/", -- ← 修改这里
版本文件 = "version.txt",
更新包文件 = "g2d.zip",
本地版本文件 = "version.txt",
临时目录 = "temp_update/",
游戏主程序 = "g2d.exe",
}
步骤 9:本地客户端设置初始版本号
创建或编辑 Client/version.txt: #注意Client是我自己的客户端目录,你随便叫什么都行,只要里面有version.txt 内容跟你热更服务端不同就行0.0.0
说明:
- 初始版本设为
0.0.0,确保首次启动会检测到更新 - 如果不想首次更新,设置为与服务器相同的版本号
-源码仅单机测试
[lv] [/lv]
相关推荐
评论 (0)
还没有评论,快来抢沙发吧!