Project1

标题: 利用Github自动更新游戏【原理】 [打印本页]

作者: guoxiaomi    时间: 2020-6-11 03:47
标题: 利用Github自动更新游戏【原理】
本帖最后由 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,可能是怕被这样薅羊毛?

作者: guoxiaomi    时间: 2020-6-12 15:30
传个附件: Update.zip (4.27 MB, 下载次数: 44)
作者: 574656549    时间: 2020-6-16 09:22
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1