如何为GameMaker Game制作更新程序

时间:2015-03-28 16:02:09

标签: game-maker

我正在使用 GameMaker 。我正在处理的游戏需要稍后更新。我如何创建更新程序,以便人们不必下载更新版本。我想它,所以玩它的人可以按下按钮和游戏更新。

2 个答案:

答案 0 :(得分:2)

我做到了。

我在服务器上创建了一个文件,基本上它可以是每个服务器。在这个文件中我说:

[Version]
Version = 1010

所以最新版本是1.0.1.0。有一个函数GM_version来检查游戏的当前版本,但不会返回1.0.0.1,我不知道他们为什么这样做。 所以,为了解决这个问题,这是我的创建事件:

//Re-order version and delete points
Version3 = string_replace(GM_version,'.','')
Point1 = string_pos('.',version3)
Version2 = string_delete(version3,point1,1)
Point2 = string_pos('.',version2)
Version1 = string_delete(version2,point2,1)
String1 = string_copy(version1,point1,point2 - point1)
Version0 = string_delete(version1,point1,point2 - point1)

Version_local = version0 + string1


//Delete old file and get serverfile
Version_online = 0
Got = 0
file_delete("your file")
File = http_get_file("your serverfile","your file")

在异步HTTP事件中是这段代码:

if ds_map_find_value(async_load,"id") == file {
    if ds_map_find_value(async_load,"status") == 0 {
        ini_open("your file")
        Version_online = ini_read_string("version","version",version_local)
        ini_close()
        Got = 1
    }
}

最后,在步骤事件中:

if got == 1 {
    if version_online > version_local {
        //your code when there's an update, e.g. open your homepage.
    }
    Got = 0
}

希望有所帮助!

答案 1 :(得分:0)

简短的回答:你不能在纯GM中做到这一点,最简单的解决方案是用另一种语言来做,然后用GM推出它。

<小时/> 您无法更新游戏的一部分,因为它将被编译为单个可执行文件。用户必须下载游戏的整个.exe。最好的办法是创建另一个独立程序(使用GM或其他软件/语言)。您始终可以通过游戏中的按钮单击启动该更新程序。您可能会发现使用C,C ++或C#创建自己的更新程序的开源代码。

如果我是你,我只需要一个小按钮&#34;检查更新&#34;在游戏中,它会导致PHP网站在地址中显示当前版本(例如www.mygamesite/update?v=1.2345)。然后你让网站比较网址中传递的版本,以显示&#34;你的游戏是最新的&#34;或者&#34;下载最新版本&#34;改变清单。