Please be aware that for all of the new YoYoCompiler platforms you will require an additional bit of setting up GameMaker: Studio and a couple of external downloads. In this guide I will talk you through setting this up.
Note also that currently YYC compilation is only available on the platforms listed here. You will need to own these modules (iOS/Android) in order to use the YoYo Compiler on them.
Windows
Downloads
Windows 7 or 8 user? Please follow this guide and download Visual Studio 2012 Express for Windows Desktop.
Vista/XP user? Follow this guide and download Visual C++ 2010 Express. Please be aware that on XP (and possibly Vista also) the VS2010 install might well cause problems with .NET 3.5 which makes various programs show errors they didn't before. If after installing VS2010 you find GameMaker suddenly won't open up because the updater is crashing and you're shown a Just In Time debugger window instead, please go to your Add/Remove Programs and repair your .NET 3.5 Framework. This should fix your Windows setup. It has been reported that VS2012 now supports XP due to new updates. Therefore, using VS2012 may now work, although it is recommended that VS 2010 is still used, for stability reasons.
Once you've downloaded the installer you require, go ahead and install it using the default options.
Inside GameMaker: Studio
The new File -> Preferences -> Windows needs to be setup correctly before the compiler will work properly. The defaults which ship with GameMaker are correct for Visual Studio 2012 on Windows 7/8, but these will need to be changed for other configurations. You can see the two fields for your Visual Studio and Windows SDK install locations default as in the image below:
For XP/Vista you will need to change both fields to something more like:
Obviously, if you customised the locations for your Visual Studio install you will need to change the paths here to match.
To build with the YoYoCompiler simply select the Windows (YYC) target from the drop-down menu and then click the test button on the toolbar/menu as you would normally for other platforms. Please read the Beta restrictions section below for additional information on what happens currently!
Android
Downloads
You will need to install the Android NDK (as well as the SDK you have installed). Follow this guide to see what we require. Once you have it downloaded, extract the .zip to a suitable location on your drive - recommended is "C:\android-ndk-<VERSION>".
Inside GameMaker: Studio
Navigate to File > Preferences > Android and shift to the SDKs tab. Ensure that the NDK Location field matches where you extracted your copy of the files to (if you used the recommended location I gave above it will match already. Now click the "Check NDK" button and confirm that it says it's all okay.
You should now be able to build for Android YYC. Much easier than using the SDK, isn't it.
iOS
Downloads
Assuming you're set up for regular iOS or Mac development and so you have a suitable XCode version installed on your Mac and all your certificates, etc., there's nothing new to download. If you aren't already a GameMaker: Studio iOS or Mac developer, please see the relevant FAQs for those platforms before carrying on here.
Inside GameMaker: Studio
Again, there's very little to do inside the IDE. However, we do strongly advise getting the latest release, as 1.1.1086 requires extra setup for testing iOS YYC which you no longer have to perform in newer releases. Some things to be aware of in the IDE are that you will likely find yourself cleaning your project cache much more frequently at the moment. This is largely because there are now two machines involved in the build process, so twice the opportunity for files to become stale. It is advised to clean the cache any time you see any odd issues and also in preparation for a "Create Executable" build.
A "Create Executable" build will ask you to save an Xcode Archive format file, not an .ipa. This file can be saved anywhere - the relevant information is saved on the Mac and you're just being asked where to save a copy for backing-up, etc.
One limitation of the Apple tools used also is that users of iPods will (and any devices with older versions of iOS may) find that although the build is fine and it gets installed okay, the compile script won't launch the game. You may get errors saying that the instrument rejected the trace or, more plainly, that it couldn't start the app - if a project fails to run, check the device for a YoYoDev app and run it manually.
Similar to the last issue, you may occasionally find that the Mac won't put your game on your device for no visible reason. Checking the device console may well show that the message was too large for USB. In these instances we recommend opening the project in Xcode and finishing the build there. Ensure you change the scheme to be a Release build. This will usually also clear the block for future builds. If your iOS version is sufficiently old enough, however, you might have to do this step quite often.
Additionally, if you see your build process stalling at: "cmd /c ""C:\Users\Dan\AppData\Roaming\GameMaker-Studio\putty\plink" -batch -pw password123 MyMac@MyMac cd ~/GameMaker-Studio/MyGame/MyGame; if [ ! -d MyGame.xcodeproj/xcuserdata ]; then open MyGame.xcodeproj; while [ ! -d ~/GameMaker-Studio/MyGame/MyGame/MyGame.xcodeproj/xcuserdata ]; do sleep 2; done; fi;"" in the compiler window, then it's likely Xcode is showing you a prompt on the Mac - most likely that you've cleaned the project cache while Xcode was working on the project.
YYC Notes And Restrictions
Please report any issues via the bugs form and have a sample project .gmz ready if the Helpdesk ask for one.
- The debuggers do not work with the YYC platform. If selected, it will actually run a normal (non-YYC) debug build. This is by design - you'd want the speed of building for testing iterations more rapidly and the ease of getting the data back.
- game_save() and game_load() do not work properly with the compiler at this time.
- If scripts are called with the wrong number of arguments, then the game will crash on YYC platforms, so please note that this is now a change in GM practices for all platforms and you must apply the fix to your code.
- Windows XP support for YYC platforms is limited at this time. You may find projects which compile fine on 7/8 instead complain about unknown/missing functions on XP.