Pratik Supra .. Blackberry Dev Consultant on Game pad support for BB10 Games. Blackberry Asia Jam Conference Hong Kong
For those not familiar with it, Blackberry Jam Conferences are organised several times each year to provide an opportunity for the blackberry developer community to gather, learn about latest technology tools, and get the most in depth content on developing outstanding mobile applications for the Blackberry platform. Compared to other platforms like Apple and Android (which sort of sees no benefit in actively supporting developers IMHO) , Blackberry definitely takes the effort to invest (also financially) in their ecosystem – the Appworld platform, SDK tools and the developers (le me)! Blackberry Jam Asia Conference typically focuses on developers in the APAC region and was held this year at the Asia World Expo, Hong Knog. There was a full day preconference training session (September 26) dedicated to training developers on game development for BB10 OS and also using the Cascades UI framework for building astonishing Blackberry 110 Native Apps. I opted to attend the Gaming training session primarily to get more ideas about developing a BB10 native C++ version of gidigames .
And it definitely was worth my while! Below are a summary of important things I learned.
Important Takeaways :
1 . Gaming Engines/Frameworks supported by Blackberry
There are many reasons why you should consider using game engines/frameworks to develop your games. In addition to simplifying tasks (writing one line using a framework as opposed to 500 lines if you coded from scratch), these frameworks do come with a vibrant and helpful community of experienced developers . Blackberry10 is currently supported by several game engines for development of 2d and 3d games such as Cocos2d , Unity, Marmalade and Shiva 3D . Click the links to get instruction on how you can develop games for BB10 using these frameworks.
2. Game Pad Support for Blackberry 10 Apps
A couple of games developed using Unity were demoed compatible with a Moga Pro game pad. Blackberry has developed a custom API that developers can use inside their games in order to support bluetooth game pads. Developers were encouraged to add gamepad support to their games.
A representative from Unity, China also gave a presentation on building games using the Unity Engine and compiling for blackberry.
Update: 10/10/13: Blackberry has announced some benefits for games that integrate gamepad support .
Earn two free gamepads and increased visibility in BlackBerry World. All you need to do is enable gamepad-support for your game. Simply submit your gamepad-enabled game in draft mode to BlackBerry World and you will qualify to receive a free Gamepad Package, consisting of a MOGA Pro controller and a SteelSeries controller. As a bonus, when you complete your game and it’s approved, we will add it to our gamepad-enabled feature in BlackBerry World, making it easier to discover your app. This program runs from September 24, 2013 until December 24, 2013. In order to receive the free Gamepad Package, you need to be one of the first 250 to submit your draft game to BlackBerry World. Learn more here.
3. Dealing with Screen Fragmentation
Blackberry OS 10 devices come in different flavours and screen sizes . Specifically, two main form factors exist – Full touch devices: 1280 x 720 (16:9) and Keyboard devices: 720 x720 (1:1) . Developers were advised to scale their images based on the aspect ratio of the device being deployed on. Also for games with onscreen controls, its best to layout controls relative to the width and height of the screens. This way games look and feel great on both Z10 and Q10 form factors. Also, its valuable to optimize for form factor. For example, you may map controls to keyboard shortcuts on a the Q range of devices with physical keyboards in order to maximize the screenspace available.
4. Porting Approach
Many game engines support crossplatform porting. Developers were encouraged to design in layers . That is, to write the base game components and then a platform specific layer to adapt the game to specific platform idiosyncrasies. This way, its possible to be both native and crossplatform at the same time. This process can be complicated but very rewarding in the long run. I have recently started to port my game – Gidigames to the BB10 platform and it has been extremely challenginge even though the same hypothetical game framework is used. This is because I used Cocos2D for Android which is written in Java and maintained by an independent group as opposed to using Cocos2D-x written in C and which is also compatible with android after a few hacks.
To get a great idea of setting up Cocos2d-x for both iOs and Android , take a look at ray wenderlich’s tutorial .
5. Using Texture Packer to Create Optimized Game Sprites
As your game garners more details and gets more complicated, you will be needing a slew of image assets to generate those great looking scenes. Loading many different images can be memory intensive. Thus its better to combine all image assets into a single file and use sections of it as needed. This can be achieved using the TexturePacker tool which is supported by Cocos2D and many other game engines .TexturePacker helps you reduce memory usage and improve game performance and comes with a decent pack of tutorials to get started.
Creating a set of animation sprites from single file.
Source : TexturePacker
In all the event was useful. About 3 presenters shared their materials with the audience. Lunch was great, held at Eat Kanton restaurant within the Asia World Expo building. From 14:00 – 17:00 there was a hands on session where the Blackberry development consultants spent individual time with developers in solving any bugs in their existing code. A prize of a free Unity Professional license was also offered to developers who finished porting their Unity games and uploaded to Blackberry Appworld same day. The handson session was useful to me as they provided insights on the best way to integrate sqlite3 into my native bb10 applications. There was a final presentation by Demian Borba on Adobe AIR. Check out his website to learn more about developing and deploying Adobe AIR apps for blackberry (he’s built an automated system to simplify the process).