4 – Optimizing Games for Tizen

To make your game look great and satisfy the store submissions standards, you’ll need to consider a few things.

The Physical Back Button (IMPORTANT!)

Standard Tizen devices have a physical “back” button, similar to many Android devices. Per Tizen’s policy, apps must support a logical action in response to the physical “back” button. If your game has multiple scenes, you should respond to the back button key event by navigating logically back through menus, level select screens, and so on. Repeatedly pressing back should eventually return you to a “home” screen for your game, such as a main menu or title screen. Finally, pressing back from your home screen should exit the app. Use your best judgement to design an intuitive use of the back button that is consistent with how other mobile apps work.

To respond to the back button, add a Rule with a key condition like this:

Actor receives event: key “back” is down

 

 

 

 

 

 

Type “back” manually, without quotation marks, in the key field (you won’t find it on the keyboard UI popup). Within the rule’s behaviors, you will likely use Change Scene or Unpause Game as appropriate. For a simple design, there should be an actor with this kind of rule on every scene except your home screen.

To exit the app from your game’s home screen, just have no such “back” rule on that scene. When you press the back button, the default action will take over, which is to exit.

Circular App Icon

Tizen’s style guide recommends a circular shaped icon for the app to fit with the look-and-feel of their operating system. Use an image editing program to edit your icon and upload to your GameSalad portfolio as the app’s main icon (you can change it back to something else for other platforms). You can find reference material on the Tizen OS look-and-feel here: Tizen Icons and Tizen UI Overview. Look to the community forums for solutions to help you design a Tizen icon.

Screen Sizes, Stretch, Overscan, and Letterbox

Tizen supports many screen sizes for different devices. We expect that the initial popular Tizen devices will be 16:9 aspect smartphones, similar to the iPhone 5+ and popular Android models, so a good place to start is to design or port your games with the same layout as iPhone. The simplest way to support any screen size is to use the stretch option. For more advanced support, consider using overscan and aspect ratio detection.

The Tizen store allows you to filter which devices are allowed to install your game based on their screen size. If you want to support other sizes, there’s a variety of methods, combined with the option of stretch, overscan, or letterbox. If you choose to design a layout that changes dynamically for different screens, it is strongly recommended that you base your logic on the approximate aspect ratio (width/height) and not exact pixel numbers.*

Here are some recommendations for various cases:

  • If you are starting a new project and plan to include Tizen in publishing, it is recommended that you choose iPhone as your platform and design your layout logic so that 16:9 is the primary layout. This will scale perfectly to other 16:9 devices and it’s a good guideline if you also intend to publish to Android and Windows 8. You can detect the aspect ratio to adjust the layout dynamically for other screens (combined with overscan), but the aspect detection logic should fallback to iPhone. That is, if the size or aspect detection doesn’t match any of your rules, the result should be to default to a 16:9 iPhone-friendly layout.
  • If you prefer to start a new project with the iPad aspect as the primary layout and dynamically change to support iPhone, you may do so, but you’ll still want the detection logic to fallback to an iPhone-friendly 16:9 layout for unexpected cases.
  • If you are porting an existing game that used a dynamic layout to support some combination of iPhone, iPhone Legacy, iPad, or other, you’ll want to double check that it works as expected in Tizen. As with the previous case, you may have the best luck by setting the project platform to iPhone and adjusting the logic so that any unexpected case while detecting screen size will default to the iPhone layout.
  • If you are porting a game that was originally only for iPhone Legacy, iPad, or another non-16:9 aspect, then you can try to submit it to the Tizen Store without editing anything and choose the stretch option. The stretch option will distort the graphics of the game on devices with a different aspect. But in basic cases, the visual distortion may not detract from the gameplay and will be acceptable to the store criteria.
  • If you are porting a game that supports multiple aspect ratios with a “safe area” overscan technique (no dynamic layout) then you would do the same for Tizen with overscan.
  • If you modified your game to work on multiple platforms by copying and editing different versions of the project file, then choose the version customized for iPhone as the starting point for Tizen.

NOTE: In HTML5, especially on mobile devices, there can be a difference between the reported screen size, the actual number of pixels, and the scaling ratio of images. This is not quite like Apple’s retina display (where the physical pixel difference doesn’t affect the reported screen size and everything else works like magic).

On other operating systems and hardware vendors, the scaling can be a non-whole number and it can vary from one model to the next. If you design your screen size logic based on aspect ratios instead of exact pixel numbers, and prefer to use images sized at or larger than the target platform size, then our HTML5 engine will do the right thing.

You’re still free to use exact numbers for adjusting the position and size of actors because those internal coordinates are automatically scaled by the engine. It’s only the values of game.devices.screen.size that can’t be trusted to match exact pixels.

Image and Sound Formats

The GameSalad player for Tizen is an HTML5 implementation. Support for image and sound formats is particular to the browser and device technology. For the broadest support, we recommend:

  • Images should be PNG or JPEG. Other formats are not likely to be widely supported (GIF, TGA, etc).
  • Music and sound effects should be M4A or OGG. Other formats are not likely to be widely supported (MP3, WAV, CAF, etc). In particular…
    • For M4A files, the audio should be encoded with the AAC codec. If your audio editing program saves with the file extension mp4 or aac, you should rename them to have the m4a file extension.
    • For OGG files, the audio should be encoded with the Vorbis codec.

Accelerometer

Tizen apps support the accelerometer. However, if your game uses the accelerometer and is in landscape orientation, you must design your accelerometer logic to work for both Landscape Left and Landscape Right. This is typically done by checking the attribute devices.screen.InterfaceOrientation and negating the readings of accelerometer.x and accelerometer.y when necessary (but not accelerometer.z).

In-App Purchases

Tizen will support its own IAP system when the Tizen store launches to the public. GameSalad will support Tizen IAP at that time. Until then, you may prefer to publish your game without IAP features. Tizen In-App Purchases use the same GameSalad behaviors as other platforms but will need different item IDs, so you will need to make some edits when porting from another platform. More details about IAP are covered later in this tutorial series.

Platform Services (Game Center, GameCircle)

Tizen doesn’t yet support game services like those in iOS and Amazon. If your game uses these platform behaviors, you should disable them for Tizen. You should also remove any visible buttons, text or icons that refer to these services.

Links to other games

In the future, there may be a way to use the Open URL behavior to link directly to other Tizen app store pages. In the meantime, update your Open URL behaviors to only navigate to websites (like your company website) and not to store pages for any platform.