Harold Mintah, founder of Mintah, shares some tips for Android developers moving their apps to Windows Phone based.
With the recent popularity of simple, blocky, voxel-art styled games I decided to create a cool new game called Log Hopper. Log Hopper requires you to tap the left or right side of the screen to make your character switch lanes across a series of logs along a river. You collect coins that you can use to purchase new cute blocky characters along the way. I created the game using the Unity3D game engine (As I have with most of my games). Unity allows cross-platform app and game development without pulling out hairs. After creating the Android version and publishing it, I then moved on to create a version compatible with Windows Phone. There were a few road-blocks that I encountered, and below I’ve provided list of pointers that may help Android developers transition to Windows Phone.
#1. Realtime shadows are unsupported on most windows phone devices.
Log Hopper just didn’t look well without shadows so I could not settle without having shadows. Last summer I discovered a tool called “Sunshine” that is available in the Unity asset store. The tool is primarily used to give volumetric shadows, however it also comes with a post-process effect method of displaying shadows. After reading the documentation, and spending a bit of time tweaking the quality of the shadows, I was able to get Shadows displayed beautifully inside the game.
#2. There are times where a mobile device’s screen resolution out-powers the capabilities of the device’s graphics processing unit.
This may be solved by reducing the resolution that is being rendered, through the Unity function “Screen.SetResolution(…) ”. You may take the resolution of your device, and reduce it by a percentage to scale out performance versus visual quality.
#3. Make sure all of your textures are to the power of 2, and take the time to look through your textures to see what format they are compressed in.
After selecting a texture, click the dropdown list beside Texture Type, and select Advanced. At the bottom, there will be a panel with various platforms, make sure the windows phone platform is selected, then click the format dropdown list. Here you will have available all the specific compression formats for textures. Say you have a texture that has no transparency, is really small on the screen. You won’t need an Alpha channel, and you won’t need too much detail, therefore you can find something in the list that says “RGB” alone, not “RGBA”, and select that. Texture compression format becomes more important as you have more objects that are instantiated in the scene.
#4. Normally as a programmer your first instinct is to open up your IDE, and start developing your own tools. Why re-invent the wheel?
The Unity Asset store has many plugins that can save you lots of time for the price of 2 or 3 cups of Starbucks coffee. I discovered “Windows Unified API” by a game studio called “Reign-Studios”. This plugin gave me easy access to API’s that allowed me to easily share posts on social media web-pages, perform in-app purchase transactions, and access to the banner-advertising portion of the Microsoft Advertising library.
There are video ads that may be activated by clicking a button that offers rewards for watching a sponsored video. On Android and iOS, the library I used for that purpose was Unity Ads. Unity Ads currently does not support Windows Phone so I decided to search for an alternative. I discovered that Microsoft had recently introduced video ads into their advertising sdk. It was an easy choice to make, as there were no other advertising providers for Windows Phone 8.1. AdMob used to support Windows Phone, however with the Windows Phone 8.1 update Google stopped making updates, and AdMob was left at Windows Phone 8.
Curious to see the end result? Download Log Hopper onto your Phone, and visit: logHopper.mintah.com for updates and more information about the game.