Using the GameMaker: Studio Android compile target, you can port your games to the nVidia SHield mobile console. However, to be able to do this correctly requires you to perform certain setup procedures on the device itself before GameMaker: Studio will be able to communicate properly through the ADB interface.
Before continuing you should make sure that you have the Android SDK and NDK installed and up to date (see here).
Setting Up The Shield Device
Follow these instructions to enable Developer Mode on the Shield device:
- Go into Settings > About, then scroll down to bottom where it shows the build number and start tapping on the screen there. After about 7 taps it should go into developer mode.
- Go back to Settings and now there should be developer options listed, and here you need to enable USB debugging.
- Again in the Settings, go to Security Settings and turn the “unknown sources” option on.
With that done, you are almost ready to compile and run your game on the device, however you still need to set up ADB...
Setting Up ADB
The default ADB drivers will not communicate correctly with the Shield device, so you now need to add the correct drivers to permit communication:
- On your development PC, you need the nVidia ADB USB driver which comes as part of the Tegra Android Development Pack.
- After connecting the device to the PC via USB cable, you need to go into Device Manager to see it is recognized as an ADB device. If not, you need to find it (probably under Portable Devices) and right-click and Update Drivers -- choose the have disk options and then select the *.inf file you downloaded with the Development Pack.
You can now run your game from GMS on the device, without having to compile an APK, as long as the Shield is connected via USB. You may get a warning message on the Shield device, but that can be dismissed and shouldn't show up again.
It is worth noting that the controls of the device will be recognised as being connected to gamepad slot 1, not 0, although if you use the special asynchronous System Event to detect the gamepad, this should not be an issue.