Downgrading from Game Maker Studio 1.3 Fiasco (Ads and Surfaces)

Note: to skip right to the section about how to properly do a clean uninstall of GMS and installing a newer version, scroll down a bit.

Game Maker Studio 1.3, in line with all other major Game Maker Studio releases, introduces a bevy of new features and a bunch of bug fixes. Some of these “new features” are actually just modifications or completely major revisions of preexisting features, and in many unfortunate cases, these new upgrades can be game-breaking. Welcome to world of upgrade frustration.

The fiasco began when I realized that my game was extremely sluggish on my older Android 2.1 device. I was a bit disappointed, but not completely distraught – I mean, I couldn’t sleep too easy knowing that I’d have to cut support for any Android device below 4.0 (and thereby excluding a hefty portion of the market), but I was immediately comforted by the thought that the market is progressing, people are upgrading to newer phones, and the percentage of users with Android devices running < 4.0 install is significantly decreasing. I couldn’t determine what the cause of the lag was – too many draw calls? Humongous textures and sprites? Peanut butter? After experimenting a bit, I came to the conclusion that I just simply couldn’t push these olders CPUs/GPUs past a very restricting limit. That is, until I tried a few other games on my old device.

Namely, some bubble pop game that ran smooth as butter, despite seeming to be much more advanced and GPU-hungry than my simple pong-styled game. It was then that I realized something fishy was happening. And sure enough – a bit of poking around and I discovered that GM’s approach to handling surfaces and the GUI was modified, causing an unbearable lag in many devices.

See, prior to those versions, 2D games would run very well. With the newest releases though, even a simple game would struggle on a Samsung Galaxy S4. Really really. There was no imminent solution. And then, BAM, a new version of GM is released that allows you to turn off the new drawing method, restoring full speed to older devices! Excellent!

But not so. Sure, I got the speed back, but nothing in life comes that easily. As a tradeoff (well, I consider it a tradeoff, anyway), GMS’s approach to serving ads was completely modified. No longer did the simple commands exist. It’s now done all through extensions. The problem? In the newest version that allows you to disable the new drawing method also introduces ads that can’t be positioned or turned off once turned on. Wait, what? Sure, you could poke around the ad SDK, but for somebody who has absolutely no experience in that approach, and who’s become accustomed to the simplicity and approachability of GMS’s prior method of handling ads, it’s hard not to feel a bit disappointed. Or insulted, even. And browsing the forums, I’m certainly not alone on this. It’s understandable that they’re upgrading the ads system, especially considering the iOS ad problem (check their news for more info on that), and eventually we’ll have to jump over – but without being able to easily position or hide ads, it’s a headache. So if one version is sluggish, and the next version completely turns the ad method upside down, what is there to do?

I thought about it for quite some time, hoping for a new release that addressed the ad scenario. I knew it wasn’t going to come anytime soon though, so with a bit of hesitation, I decided on something else: Just downgrade to an older version of GMS. I was a bit hesitant, considering the handful of new features I’d be missing out on and the bug fixes that would be undone. But I convinced myself it was worth it. So I downgraded to 1.2. But of course, it wasn’t that easy. Why not? Most releases in the 1.2 line have this extremely nasty bug where GMS absolutely refuses to launch. Every once in awhile, you might get lucky and it’ll open up, but the majority of time nothing seems to fix the problem. The two versions of 1.2 that didn’t seem to be inflicted with the error were mysteriously absent from the GMS downloads page (the links were there, but clicking on them lead to nothing). I was disappointed, I was angry. Okay, I was furious. What luck, huh? And I certainly couldn’t afford to downgrade to 1.1. I refused to.

 

 


 

PART 1: UNINSTALLING GAME MAKER STUDIO

Uninstall through Windows: First, uninstall GMS through the windows program uninstaller in the control panel.

Uninstall through the program directory: Next, go to the directory (folder) where you installed Game Maker. If it still exists, run the uninstall.exe file inside of the folder to completely remove the GMS installation.

Delete the local app directory: This directory stores specific configurations, including your keystore file. If you’re upgrading, you’d generally want to keep this folder intact as is. However, since we’re attempting to do a completely clean install, we’ll want to completely remove this folder and all of its contents. NOTE: Please remember to back up your Keystore file, or have your information written down somewhere! If you delete that file and have already uploaded an app to Google Play using the information from the file, you won’t be able to ever update your app!

Uninstall from your Android device: Yes, you have to uninstall the runner on your device as well! In Android, you just have to go into your settings and apps and uninstall YoYoRunner. If you don’t, even if you install an older version of GMS that doesn’t use extensions for advertising, the runner on your Android device will still be under the impression that extensions are required for ads (as specified by the Runner version). We need to uninstall it completely. Please note: If your Android device has multiple accounts, you MUST uninstall the runner from ALL accounts, not just one! Otherwise, when attempting to install an older version, you’ll get an error in the ADB console on your pc (pop up MSDOS box) that informs you that you’re attempting to INSTALL A DOWNGRADED VERSION and block the installation.

PART 2: Installing Game Maker Studio

Download the appropriate version – Download the version you’d like to install. All GMS releases can be found at http://store.yoyogames.com/downloads/gm-studio/release-notes-studio.html for the stable releases and http://store.yoyogames.com/downloads/gm-studio-ea/release-notes-studio.html for the early access version. Note: to actually download the version, you must click on the Version number in the big font. Please note – the most recent version that doesn’t crash upon opening, and disables the new surface handling, and supports the old ad method, is version 1.2.1224. This version mysteriously isn’t available on the website at the moment – hopefully they fix this soon – but fortunately I still had an old copy sitting in my downloads folder.

Relicense: Since you’ve deleted your local app data folder, you’ll have to re-enter your license code to relicense the professional version of Game Maker Studio.

Update Android directories: In the preferences section of GMS, you’ll have to reconfigure the paths for your Android SDK and NDK. Also, you may have to redo the keystore file.

You should be good to go!


 

Now, while I’m on the subject here, to disable the new surface drawing method, just use application_surface_enable().

In the next post, I’ll speak about debugging ad issues.

Advertisements

2 thoughts on “Downgrading from Game Maker Studio 1.3 Fiasco (Ads and Surfaces)

  1. Thanks for this post! I’m working towards my first Android export and downgrading to 1.2 gained me a ton of FPS in various devices and fixed some OpenGL ES problems I was having. If you’d have twitter, I would definitely follow. You have a lot of useful and interesting posts here.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s