Studio 1.4.1750 Education Release

Today, we're pleased to announce Education release v1.4.1750 to bring our Educational users right up-to-date with our retail users.

This is an extremely large update over 1.3.1443 and contains many very significant improvements and new features, so we wanted to take some time to advise you of the headline changes and explain any "issues" you're likely to see. 

We would strongly recommend you wipe your current GameMaker installs and start from fresh using the new zip.

Please also see the Required SDKs FAQ, as several third-party SDKs have been updated since the 1.3 was released and we now don't embed so many other SDKs as we used to, so you may well need to update your installed tools.

...So, what has changed?

 

New Additions To The GameMaker: Studio Family

One of the headline changes in 1.4 releases is the addition of the GameMaker: Marketplace and GameMaker: Player. Now, these are still available for your use, but they do rely on the use of YoYo Accounts for signing-into on the website and within the IDE, and they do allow users to purchase and sell content, so they are possibly not desired by some Educational users. Accordingly, we needed to ensure that GameMaker supported hiding these in such circumstances before we did the 1.4 release.

The GameMaker: Marketplace allows developers to purchase asset packs and code demos/frameworks which they can then use in order to build their games sooner and more easily. The Marketplace is open to anyone with a YoYo Account (including free users) and there is a wealth of free assets to download already. Plus, the Marketplace allows Pro license holders to sell their assets and so help to fund their game development activities. The GameMaker: Player then allows developers an opportunity to share their games for others to play and give feedback on - again, anyone can download free games or purchase games, and again Pro license holders can sell their games.

 

Inside The IDE

On the welcome screen, we changed the Open Project tab to default to your home folder as set in Preferences and the Import Project dialogue so it now defaults to My Documents, rather than always using My Computer on both tabs. We also changed those Open and Import file browsers to disable the right-click context menu unless you're specifically clicking on GM project files.

You're also now able to specify the folder paths to use for temporary/cache locations, as well as the default location to create/open projects:

We've changed the news feed to match the new design of our website, which now includes access to the Learn page for tutorial videos, our support pages, and the showcase!

And for those schools who do not wish their students to see online resources, we now support a method of turning off GameMaker downloading from the internet. You can find more information and instructions on changing this in this FAQ.

Targets And Modules

We shuffled the targets list to put YYC versions next to their VM versions and added more new modules. If you make games for consoles you're now able to request our console modules from our Helpdesk team - please be aware you must be able to provide details of your Sony/Microsoft account manager.

We also changed the name of the Android module to "Android / Fire" to clarify that the Android module also works fine on Amazon Fire devices.

Working With Resources

"Tabbed" scripts mean you can add several tabs inside one script in order to define different behaviours, but only see one item in your resource tree. Note tabs don't immediately call or "fall into" the next one - you have to call the other tab just like you would call any other script.

You can now bookmark resources throughout your project using Ctrl+Shift+[number] and then jump straight to it using Ctrl+[number]. Here you can see how this looks in a script:

"Constants" have been renamed "Macros" throughout the IDE and documentation, as they are never actually constant.

Preferences

We changed Win8/WP8/PS4/Xbox One YYC platforms to use the Visual Studio path you provide in Preferences > Windows. This means you can more easily control which version of VS is used - WP8 needs the older VS2012, for example - but be aware which version is set there if you frequently switch between targets.

Users can now remap the key bindings for most IDE functionality, which can be a real help for people not using a standardised English keyboard. You can find more info on this new system in this Tech Blog.

Extensions

Support for extensions in your project has been expanded greatly. New .gmez extension packages can contain sprites, audio files, included files, etc., not just code. Additionally, this is how third-party SDKs are now handled within Studio, and you will find the demos on the RSS feed all contain the gmez for the source code of that SDK as part of the project.

Plus, more platforms can now have extensions and use gmezs - all non-JavaScript platforms have native-language extension support (JS ones still are limited to JS extensions only).

Source Control

The integrated source control has now been reworked to support two major versions of SVN (1.7 and 1.8) as well as git and Mercurial, as well as passing in your own batch file for handling source control tools installed outside of the IDE. You'll also notice better commit messages, conflict-resolution, and status colours in most dialogues so you can get at-a-glance information. You can find more info on these changes in this FAQ.

Increased Stability

1.4 releases we have done a lot to remove memory errors which you might have seen when using Studio, such as access violations ("AV") and the "Cannot focus a disabled window" message. There have also been several fixes to stop the IDE getting stuck trying to shut down. Note, one of these fixes required us to remove hotkey support for the "targets", "configuration" and "knowledge base" fields (Alt+K/C/T) along the main toolbar.

The second focus of recent releases has been to increase stability around projects saving and to address code "corruption" issues. So we have now added a range of fixes and preventative measures, including:

  • You will get a warning message on saving files when your system clock has gone back in time since the last save time (time zones/daylight saving, etc.).
  • Renaming an object will close any currently-open child event code windows so you can't open duplicate code windows following the rename.
  • We also close-and-save child windows to stop any DND action list becoming corrupted when cutting and pasting events and actions.
  • Fixed script window handles remaining in memory when you've closed the script via the green tick (which also increased IDE performance).
  • Fixed asset loses parent info if the parent is not already above it in the resource tree when the child is imported.
  • Fixed issues with reordering configs in Config Manager causing the configs to become corrupted.

 

Compiler

Previous versions had a bug where using "someInstance.someVariable = someValue" ignored when the instance didn't actually exist. We fixed this and made the game tell you about your error, so you will get "Unable to find any instance for object index ...". Doing "if (instance_exists(someInstance)) { someInstance.someVariable = someValue; }" will prevent this.

We added "undefined" as a new return type and changed many data structure functions to return this instead of 0 when no match found. Can do things like "if (objPlayer != undefined) { startGame(); }".

Further to the above two changes, and in order to boost YYC performance we now require that variables are properly created before being used, which might cause compiler errors with old projects.

YYC stack traces are now shown when an error occurs and also changed YYC code error messages where an invalid operator comparison is found so the game now prints the values of the compared variables, both of which should help you pinpoint the code which is causing the problem much better than before.

In-Built Android And iOS Extensions Clear-Out

You'll now find that extensions previously built-in to the runner on Android and iOS have all been removed, which allowed us to reduce typical game package size and build times. You now control which ones you want re-added by downloading the extension from the Marketplace.

 You'll find demos for several of the extensions on the demos feed.

The New Debugger

There is now a much more feature-rich debugger included with 1.4 releases. It works cross-platform now and supports the typical features you'd expect of a debugger. Note Windows 8 JS and Tizen JS continue to not be supported by the debugger, and HTML5 carries on with its own debugger in partnership with the browser's internal tools.

You will need to allow the debugger local network access, otherwise it can't connect to target devices.

Inside the IDE, press F9 in order to set breakpoints on lines of code and DND actions.

 

Windows

We have new GGS settings for controlling Windows application timings. You can see these under Advanced in the below screenshot. However, please note most games won't require any of these and you might actually make performance worse for your end-users, as results depend on the individual machine. Test carefully if you decide to modify any of these settings.

 

Mac OS X

Xcode 7 is supported and we have also added code-signing support for non Mac AppStore builds (AppStore ones are signed by Xcode when submitting) to fix the "the app is damaged" message when GateKeeper flags your app as not having come from the AppStore.

 

Android

We have changed our toolchain to use Google's gradle build tools. So you now need the Android Support Repository (called "Maven" in very recent SDK Manager installs) to be installed in Android SDK Manager's "extras", plus the latest build/platform tools. You also now get Lint compiler reports of issues found during builds. You can find more info on these changes in this FAQ.

If you have any issues building Android when you didn't before, please check the size of your "cache" path in File > Preferences. You might need to shorten this now (e.g., to "C:\GMTemp\"), as Android's folder paths now get quite close to Window's path length character limits.

There are now lots more configuration options added to GGS > Android so you can control min/target API, build tools version to use, etc.

Android 6 is now supported and the runner will ask your permission for access to the phone so it will launch correctly on Android 6.0 devices (these permission dialogues are for the runner only, so only you the developer will see them).

Runner builds now use your game's own keystore and GGS details, but append "(as YoYo Runner)" to the install name so you can tell which is which. This means ads/IAPs, etc., will now work in all builds. 

IAP support is now controlled by the presence of the Google/Amazon extension, not the old GGS checkbox to "Enable IAPs". That checkbox is now gone, as it only ever applied to the Android module anyway.

The PC's IP address and Web Server port are now added into the runner automatically so wifi already knows where to connect to. There is also a new Preferences > Android field to specify a fixed IP address for ADB to always connect to via Wi-Fi/Ethernet (overrides USB connections, so only set it if you need to).

Please note that running on Android TV is not supported by packages made in the Android target.

 

iOS

Xcode 7 support added along with iOS 8 and 9. We also now support simulators within Xcode and in File > Preferences > iOS you can pick which simulator to launch. Xcode projects would fail to build if the project name starts with a digit, so we now convert the leading digits to underscores.

We made Create Exe compile the archive and then open Xcode Organizer so you can submit to the App Store or make an .ipa as you wish, so you won't see a prompt for where to save your zip backup anymore. Run doesn't use the web server anymore and instead installs a build on your devices that you can run repeatedly.

Run and Create Exe obey your "xcode-select" setting if you have multiple copies of Xcode installed.

We also added a Preference to just make your Xcode projects and put them on the Mac, allowing you to modify before building.

 

HTML5

There have been several changes required in order to maintain iOS/Safari support, but please note that because of the below loading bar change, all custom bars now run the same setup code as built-in, so if you have issues with custom bars, send a sample to the Helpdesk and we will investigate.

Apple changed the requirement for audio initialisation in iOS 9 and so you now need a Mouse Released event to fire before you attempt to play audio, rather than a Mouse Pressed as it was before. Also fixed audio file loading delays on iOS when using custom loading bar and also added a workaround for an occasional audio initialisation bug in iOS on the first play of an mp3, where it uses an incorrect frequency.

 

Steamworks

We matched Steam's changes in their latest client releases, so you will need to install and use version 1.35a only with 1.4.1750. We also changed the initialisation of functions to a more flexible system which better supports using the wrong SDK version - although we still wouldn't recommend deliberately doing this! - or if Steam make a change like this again in future.

And we also fixed the Steam overlay not working on Mac applications.

 

New Audio Functionality

Music-specific functions are now gone. This means that you to have to change functions such as audio_play_music() to audio_play_sound() in your project once you start working on them in 1.4, but it does enable you to do things like play multiple .mp3/.ogg files at once. New support for advanced functions such as streaming files on-demand and audio sync groups for controlling the timings of your audio files. Also, you can now create Audio Groups for managing when your audio files are loaded into memory.

You can now record audio from the microphone, you can find more info in this Tech Blog.

There is quite a lot of extra audio functionality in 1.4 now, so please see the manual if your project uses a lot of audio.

 

LiquidFun Physics

We've upgraded the physics engine inside Studio to support particles and other new simulation types using the LiquidFun engine. You can find more info in this Tech Blog.

 

Misc In-Game

Application Surface

We have changed the drawing system in-game to use what we call the "application surface". Your game draw to this surface and the runner then automates the scaling and position in order to fit your game to the device with the correct aspect ratio and at a suitable size. This likely means any custom code you wrote for handling scaling/resolution changing is no longer required, but of course test and compare the results you get with and without.

If you require further information on this, or if your projects start having graphical issues now you're working with 1.4 and you want guidance on how to fix, please take the time to explore this in the manual.

Better Performance

We've made performance increases for all variable-handling, especially strings - and YYC packages have even more benefits.

Further to this, SWF and Spine image types have far better performance because we're loading them more efficiently now.

New Random Number Generator

We have changed the random number generator to fix an issue where it wasn't random enough, but please be aware if your existing game uses seeds you will likely want to call random_use_old_version() on game start, otherwise you won't get the same results you used to.

 

Any Questions?

Hopefully, you're now aware of the questions your students will likely ask about their projects and how you might want to customise your installs of Studio 1.4.

Again, we would recommend opening the manual and searching the release notes page if you have issues with specific functions or an unexpected change in an old project's behaviour.

If you're still no clearer, search our FAQs and the lovely new support forum here on the Helpdesk to see if the issue is already covered, and if there are no matches send us the project in a new support ticket and we'll check what's going on.

Have more questions? Submit a request

0 Comments

Please sign in to leave a comment.