设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3157|回复: 3
打印 上一主题 下一主题

[讨论] 利用Github自动更新游戏【原理】

[复制链接]

Lv5.捕梦者 (版主)

梦石
1
星屑
23994
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

跳转到指定楼层
1
发表于 2020-6-11 03:47:01 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 guoxiaomi 于 2020-6-16 19:30 编辑

说实话如何实现游戏的自动更新,这问题困扰了我至少2年,终于今天我找到了一个合适的解决方案。下面简单的说一下怎么做,具体实施细节我还没定好,但是各项技术应该都到位了。

范例和教程见此贴:https://rpg.blue/thread-482150-1-1.html(就是要开2个贴反正这区也没人)

1. 把项目托管在Github上
2. 利用 Github 特殊的访问规则下载补丁文件
3. 在本地使用git-apply打上补丁

第一个没啥难的,并且你可以把自己的游戏直接release方便玩家下载。

第二个看这里:

没错!你可以直接在compare的网址后面加上.patch,然后用aria2c.exe把这个.patch下载到本地。只需要在网址里指定玩家当前玩的版本和目前的最新版本即可。
关于版本信息也可以用api得到,如查询最新的release:
  1. https://api.github.com/repos/certbot/certbot/releases/latest
复制代码


第三个我分析了一下git-apply的依赖,把所有需要用到的dll都打包进来了: patch2.zip (2.37 MB, 下载次数: 41)
你可以尝试在这个文件夹里运行:
  1. git-apply 3f44.patch
复制代码
,然后会发现hello.c和hello.exe已经发生变化了,如图:

注:
1. git-apply是不需要本地有git仓库的,所以这一套就完全与git脱钩。
2. 这个补丁也可以在本地制作,这样写就是产生从3f44版本升级到master的补丁
  1. git diff --binary 3f44 master > 3f44.patch
复制代码


其实了解git的人应该已经知道该怎么做了,回头我整理一个简单的教程吧……

至于github抽风的问题,那没办法,不过你可以把游戏的新版本挂在X度网盘上,只是下个补丁应该挺快的吧。
或者可以自建git仓库比如gogs来托管自己的游戏~刚刚测试了一下可以直接访问.patch结尾的url获取patch文件。
再不济你自己生成.patch文件传到oss上,然后手动维护一个version.txt……

顺便说一下,我查看了国内的gitee,似乎没有提供.patch的api,可能是怕被这样薅羊毛?
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *

Lv5.捕梦者 (版主)

梦石
1
星屑
23994
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

2
 楼主| 发表于 2020-6-12 15:30:20 | 只看该作者
传个附件: Update.zip (4.27 MB, 下载次数: 44)
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv2.观梦者 (禁止发言)

梦石
0
星屑
724
在线时间
918 小时
注册时间
2010-11-13
帖子
1023
3
发表于 2020-6-16 09:22:17 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-21 20:19

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表