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.
3. iOS Framework imports
Juice MKB ProjectJuice 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
4. 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…
5. 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
OSDriversOpenGL ESDevice
6. 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
7. 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