Upload
devgamm-conference
View
401
Download
3
Embed Size (px)
DESCRIPTION
Single platform development is often considered a more simple and straightforward approach to game development. Well, it’s important to understand that a single platform means a single source of income, this approach also means developers lack the flexibility and ability to try new platforms. What if I say you can go cross-platform at the same code complexity not even changing the toolset and instruments you got used to? How can cross platform development become any close to a single platform approach, you ask! If you already have a project written for iOS, what is the easiest way to port it to Android and beyond? All of these excellent questions and more will be covered in the Marmalade SDK presentation.
Citation preview
enabling great content on any device
5/15/14 © Marmalade. Trademarks belong to their respective owners. All rights reserved. 1
Marmalade Juice
Rapidly recompile iOS games for Android and beyond ! Removes the need to manually port code away from Objective-C,
saving porting time and unlocking legacy iOS-only apps ! Fast conversion – Objective-C and iOS API calls re-targeted ! High performance without overhead of virtual machine or
transcoding ! Adds Marmalade support for ‘clang’ compiler, Core Apple APIs &
Xcode / iOS configuration files ! Fully open architecture
– Apply Android-specific optimisations within original codebase – Major components are all open source
5/15/14 © Marmalade. Trademarks belong to their respective owners. All rights reserved. 2
iOS Framework imports
Juice MKB Project Juice Projects
! A script generates a standard Marmalade MKB Project from your Xcode iOS project:
– Finds and includes source code
– Includes Xcode “resources” as Marmalade “assets”
– Sets compiler to Marmalade CLANG
– Includes implementations of major iOS APIs
– These can optionally be either source or library versions
iOS Xcode Project
Juice implementation of iOS Frameworks
and static libs
App’s original Objective-C/C++ source code: mostly remains unchanged
iOS static libs and features user wants
to exclude
Resources/assets (images, music, data, .plist, etc.)
New Marmalade code for new
features
Juice MKB Project
Juice: How it works
! Develop in Objective-C and C++ ! Use typical iOS frameworks ! Add any normal Marmalade C++
APIs ! Ships with open source
implementations of iOS frameworks on top of Marmalade:
– Cocotron (Cocoa Touch) – Chameleon (UI Kit)
! Some framework API gaps in initial version - filled with each new Juice release, or users can fill gaps themselves.
Open Source implementations of iOS Frameworks
and static libs
Objective-C/C++ source code
New Marmalade code for new
features
Assets: images, music, data, .plist…
Marmalade Juice: Software stack
new code - iOS or Marmalade APIs
Chameleon: UI Kit
original Objective-C/C++ game code
Cocotron: Cocoa Touch
implement more frameworks
Game code and iOS frameworks
open source code bundled with Juice
new or existing user code
Cocos2d
Graphics Cross Platform API Marmalade System
OS Drivers OpenGL ES Device
Juice Deployment and Platform Support
! Once your original iOS-Xcode project has been converted to Marmalade Juice, deployment works just like a standard Marmalade project.
! You still get a single platform-agnostic app binary, but with the iOS framework implementations compiled into it.
! Differences: – The compiler is a specific
bundled version of CLANG – Visual Studio for PC is not
yet supported Android
App
Desktop Simulator
BB10 Loader
BB10 App
Clang
Marmalade Juice Project
Single App Binary
Scons
Other Os App
Other Os Loaders Deploy Tool
Xcode
Android Loader
Marmalade Juice: Development Environment
! Build in Xcode or from Command line
! Use standard Marmalade Simulator and Deploy Tool
! In Xcode, use regular iOS UI builder interface. Create xib files for new resolutions (Android tablet, BB10, etc) or use existing with stretch/align
Made with Marmalade
5/15/14 © Marmalade. Trademarks belong to their respective owners. All rights reserved. 8
© Marmalade. Trademarks belong to their respective owners. All rights reserved.