Tag: automatic updates

Game Maker Studio Automatic Updates Failures (and workaround)

YoYoGames has been releasing updates to Game Maker Studio at a very fast pace lately. For a while now, new builds have been released every few days now, and it seems like every time I fire up the development environment, it’s got another update for me.

The last two or three of these have been extremely problematic, with very slow downloads, and repeated silent failures of the updater to run when the download shows that it is completed and the update is ready to install.

In the past, I have found that (on Windows 7, at least) one or two things might make the update process a little more reliable: launch Game Maker using “Run as administrator”, and exit the main Game Maker program while running the updater app. I’m not sure if these really do make a difference or not, but in the past when I tried these measures it seemed to help. But last night none of this made a bit of difference.

Yesterday, I spent many hours patiently waiting for the latest update to download. Each attempt took an hour or more, and when the updater indicated that the update was complete and ready to install, nothing would happen — it would fail silently, and on next launch, prompt me to re-download the same update again.

I tried looking for an alternate way to download the update, and it was difficult to find a direct link to the file — the only way to obtain it seems to be through the YoYoGames store. Eventually, I found a link that someone provided in the Game Maker Community forums, and began downloading it with Google Chrome.

About an hour later, I saw the download terminate as though it had completed successfully, but when I checked the file size, only about 50MB of the 93MB I was expecting was there. Obviously, an incomplete installer won’t work, so that appears to have been the culprit all along.

It’s clear that auto update fails due to heavy server load causing the download connection to fail, resulting in an incomplete download. When the program tries to run the update, it fails silently when it detects that the downloaded file is incomplete. When it tries to re-download the file, it starts over from 0% rather than resume from where it left off. These re-try attempts only add to the server load, and users re-trying but never succeeding only end up exacerbating the problem.

Even with the direct download link, if YoYo’s server is under heavy load, the download would fail when I tried to initiate download using Chrome. At times that I’ve had problems running the update, I’d get speeds of ~14kbps, which is terribly slow considering I’m on a cable modem that routinely tests at 20mbps. Under normal circumstances, this download should take a minute or two, not an hour.

Game Maker Studio seems to be a victim of its own popularity. YoYoGames needs to add server capacity to address this issue. Some mirrors or a CDN (content delivery network) would alleviate the problem. But the updater is to blame as well: It should not fail silently when the download fails and it has an incomplete file. By telling the user that the download is complete and the installer is ready to run, the user is mislead and does not have any way to know what the problem really is.

It would also help a great deal if the Auto Updater supported resuming partial downloads, rather than discarding a failed download. That way, users could complete the update after several attempts, rather than continue re-trying and starting over, and continuing to place a high demand on the server. After they complete the update process successfully, they’ll no longer place demand on the server, and it will become more available to others who need the download.

When the server was under heavy load, the only way I was able to complete the download was by using Orbit Downloader to handle the download. Orbit is a specialized download tool for Windows with robust capability to resume downloads. With it, I was able to successfully complete the download where Google Chrome and the Game Maker auto update feature both failed. Once downloaded, I ran the update manually, and everything worked as it normally should.

A bit of warning, I consider Orbit to be an annoying application, borderline malware. The installer wants to change your web browser’s default homepage, which it has no business doing, and it wants to install a toolbar. It is somewhat intrusive in the way it tries to integrate itself with the operating system and any browsers it detects. It’s nice that it has those capabilities, if you want to completely replace your normal downloading with Orbit, but if you don’t, it still wants to insinuate itself so that it always downloads anything you ever want to download.

It also has various social network integrators which have no point (what, am I supposed to Share with my friends on Twitter and Facebook everytime I download something, what it was, and let them know the link? Get real!) Also, it will — without asking — scan your computer to check for out of date applications, and notify you of available updates. Unfortunately, while it sounds like this would be a useful feature, it does not actually make downloading the updates any easier, and is frequently error prone as to what the latest version number is, leading to some false positives.

However, Orbit’s core feature of downloading anything faster and more reliably than just about anything else is good, as long as you can keep the rest of the junk that they’ve built around it tamed. Just be careful when installing the program to say no to most of the stuff it wants to offer you.

Otherwise, try to download updates during off-peak times. Early morning (6-7AM) if you’re in UTC-05 (Eastern US) seems to be good currently.

Currently, the form of the direct download link is:

http://store.yoyogames.com/downloads/gm-studio/GMStudio-Installer-1.0.exe

(I’ve been informed that this url will always contain the most recent build.)

Hopefully if users start using the advice above, it will help reduce the load on YoYoGames’ server, making the experience of updating better for everyone.