Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more


Porting Your Game To Tizen

Posted on 25 November 2013

Tizen is a Linux-based open source software platform for multiple device categories, including smartphones, tablets, netbooks, in-vehicle infotainment devices, smart TVs, and more. The wide reach of this OS means that for GameMaker:Studio users it is a potentially huge market to offer your games on, and so to help you get started this article will provide an overview of the platform and what it takes to port your games to it.

Platform Overview

The Tizen OS can run web-based games using a combination of JavaScript and HTML5, or it can run Native games, compiled to C++. GameMaker:Studio gives you the option to compile to either of these platforms, and it is worth noting the following before deciding which to choose:

  • In general Native will give better performance over JS
  • You have the same limitations on the JS target as you would have with the HTML5 target (with Web GL enabled). For more information on these limits, please see here: HTML5 Issues)
  • If you are using the JS target, you can use JavaScript extensions to add functionality to your games

To develop games for the Tizen platform, you will need to make sure that your PC meets the minimum requirements, and it is worth noting that (at the time of writing this) the Tizen SDK does not officially support Windows 8. If you are using this OS, then you can get it to work, and use the emulator for testing, by following the Troubleshooting Article found here: Troubleshooting Tizen

The minimum specifications for Tizen are:

  • The Tizen SDK (available here)
  • Microsoft Windows® XP (32-bit), Microsoft Windows® 7 (32- or 64-bit)
  • At least a dual-core 2 GHz CPU (Intel is recommended)
  • At least 2 GB of RAM
  • At least 3 GB of free disk space
  • Java v6 JRE or later (you can get this here)
  • Local administrator authority

To use the Tizen Emulator, you will also need the following:

  • Intel VTx supported by CPU
  • At least 1280 x 1024 screen resolution
  • Latest vendor-provided version of the graphic card driver for OpenGL® ES acceleration

You can find further information about setting up the module here: Getting Started With Tizen.

Porting A Desktop Game

If you are porting over a game that has been previously designed for desktop platforms (ie: Windows, Mac or Linux), then there are a few things that you will have to change to get it to work correctly on the Tizen target.


One of the first things to take care of when porting to Tizen would be the controls in your game. Tizen, like most other mobile OS, is based around a touch screen interface, and as such keyboard and mouse controls do not work as they would for desktop.

If your game is mouse controlled, then you will have less issues, as mobile games made with GameMaker:Studio detect the Left Mouse Button as a single touch on the screen, and so the normal Mouse Events and functions will work fine with minor tweaks to take into account screen dimensions. Note that the platform permits multi-touch (through the use of the device_mouse* functions) so it is worth considering how any GUI elements could be changed or adapted to use this feature. For example if you have a zoom feature in your game, it may be better to make a "pinch" multi-touch control to activate it (You can find a tutorial that explains this from the GameMaker:Studio tutorials feed).

For keyboard controls, you can easily create Virtual Keys to deal with them from on-screen buttons. Virtual Keys are simply areas of the screen (based on the GUI layer) that respond to touches by triggering keyboard events within GameMaker:Studio. So, for example, for WASD movement you would create four virtual keys and assign each one to a corresponding key. When they get tapped by the user, the keyboard event will be triggered and the player character will move.


A major issue when porting from desktop to Tizen is scaling. The two main Tizen resolutions are 480x800 and 720x1280, however desktop games come in all different display resolutions and this means that you are going to have to scale your game to fit these dimensions.

In general, the best approach is to get the aspect ratio of the device screen and then scale a view to the "best fit" for the device. This will require a bit of setting up within your game and may require that you change or move HUD elements around etc... You can find a "Scaling and resolution" Tutorial that explains various methods to achieve this from the Tutorials feed in GameMaker.Studio.

If your game has detailed graphics and a "hi-res" look, then you should target the larger of the two base resolutions and scale down to fit, but if your game is a retro styled or "low-res" game, then you should target the smaller base size and scale up to fit.


The Tizen platform will only permit JavaScript extensions, and only then when you compile to the Tizen (JS) target module. this means that if your game is using any dll you will have to remove them when porting, or look for alternative JavaScript methods to achieve the same goal.

Porting A Mobile Game

If you have already created your game for a mobile platfrom (iOS, Android, Windows Phone), then 99% of the work has already been done and you can pretty much go ahead and publish to the Tizen Store. However, there are still a few things that you should be aware of before continuing.

Ads And Analytics

Unfortunately, Tizen currently does not have any Ad nor Analytic support from GameMaker:Studio (future updates may change this). This means that the only thing you can do is add an OS check into your game to not show ads or remove them altogether.


If your game uses any of the Facebook functions, Networking functions, HTTP functions or any other functionality that requires connecting to the internet, then you will have to declare the domains that they connect to in the Global Game Settings so that they are added to the App Manifest when you create a Tizen executable. If you do not add them then your game will fail validation and not be submitted to the store.

Game End And Back button

Most mobile platforms permit the use of the game_end() function to exit the game and Tizen is no exception. This means that your game should include a way to exit to the OS without the user having to force close it (so if your game is being ported from iOS you will have to add this functionality).

Tizen also has a "back" button like Android, and you can detect this in the same way by checking for a <BackSpace> key press. How you handle it is up to you, but in general it should be used for pausing/unpausing your game, going back through menus or game states and for exiting the game if pressed on the main title screen.

Submitting to The Tizen Store

The Tizen Store is still in development, but they are already accepting games through the Seller Office, and both GameMaker:Studio Tizen modules (Native and JS) will create files that can be submitted to the Store. The Native output is a *.tpk file, and the JS output is a *.wgt file, and it should be noted that you will require two different developer certificates to create these (one for each of the modules).  Details of how to set up the GameMaker:Studio preferences and get these certificates can be found here: Getting Started With Tizen.

You will also need to set the correct information in the Global Game Settings, giving a package name, network access permissions, images, etc... before submitting your final game.

NOTE: The image icon for your game should be circular and authored in PNG format at 117x117 pixels, with the parts outside of the circular area being transparent.

With that done and your game executable created, you can submit it to the Tizen Store. The process itself is very straightforward and should present no complications (an overview of the process is available here: Submitting To The Tizen Store). If everything goes correctly, your game should be validated within a few days of submission, but if it is not validated then Tizen will send you an email detailing the issues with your game which you can then fix and re-submit.


Back to Top