Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Marmalade - Bittersweet experience
Search
Max Klyga
March 14, 2013
Programming
1
93
Marmalade - Bittersweet experience
Reflections on experience of two years of development with Marmalade SDK.
Max Klyga
March 14, 2013
Tweet
Share
More Decks by Max Klyga
See All by Max Klyga
Distributed tracing with OpenTracing and Jaeger
nekuromento
1
210
Scala for the doubters
nekuromento
0
120
Practical resource management for mobile devices: Pooling is magic
nekuromento
0
37
Other Decks in Programming
See All in Programming
try! Swift Tokyo 初参加報告LT
hinakko2
0
230
Git Rebase
bkuhlmann
11
1.6k
Amazon SQSコンシューマー疎結合への旅 - 出張! #DevelopersIO IT技術ブログの中の人が語る勉強会 #3
quiver
0
300
Build Apps for iOS, Android & Desktop in 100% Kotlin With Compose Multiplatform (mDevCamp 2024)
zsmb
0
420
Code Reviews
bkuhlmann
4
890
SIMD Parallel Programming with the Vector API
josepaumard
0
220
Java 22 Overview
kishida
1
190
DMMプラットフォームがTiDB Cloudを採用した背景
pospome
9
4.2k
#phpcon_odawara オープン・クローズドなテストフィクスチャを求めて / open closed test fixtures
77web
3
240
FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション
ttskch
43
19k
Micro Frontends for Java Microservices - Utah JUG 2024
mraible
PRO
1
100
初心者のためのRubyKaigi入門/RubyKaigi Introduction
a_matsuda
8
1.4k
Featured
See All Featured
Infographics Made Easy
chrislema
238
18k
What’s in a name? Adding method to the madness
productmarketing
PRO
17
2.7k
The Straight Up "How To Draw Better" Workshop
denniskardys
228
130k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
22
1.6k
Visualization
eitanlees
137
14k
[RailsConf 2023] Rails as a piece of cake
palkan
27
4k
Automating Front-end Workflow
addyosmani
1357
200k
Agile that works and the tools we love
rasmusluckow
325
20k
Atom: Resistance is Futile
akmur
260
25k
Web development in the modern age
philhawksworth
203
10k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
14
1.5k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
275
13k
Transcript
Marmalade Bittersweet experience
Max Klyga @neku42
[email protected]
None
Mad Hat Games • We develop mobile free2play games
Mad Hat Games • We develop mobile free2play games •
Programmers have strong C++ background
Mad Hat Games • We develop mobile free2play games •
Programmers have strong C++ background • Artists have strong Flash background
Asset Pipeline • Everything is done in Adobe Flash
Asset Pipeline • Everything is done in Adobe Flash •
Flash files are used as bundles
Asset Pipeline • Everything is done in Adobe Flash •
Flash files are used as bundles • Images are extracted from flash, packed into atlases and compressed
Engine
Engine Framework
Engine Framework • Written in C++
None
Engine Framework • Written in C++ • Built on top
of Marmalade SDK
None
Write once Debug everywhere
Sweet • Develop on Windows (Visual Studio) or Mac (XCode)
Sweet • Develop on Windows (Visual Studio) or Mac (XCode)
• One click deploy to iOS, Android, BADA, Blackberry, Simbian, Win Phone 8, LG TV, Desktop (Mac, Windows)
Sweet • Develop on Windows (Visual Studio) or Mac (XCode)
• One click deploy to iOS, Android, BADA, Blackberry, Simbian, Win Phone 8, LG TV, Desktop (Mac, Windows) • Simulator (!)
Bitter TOO MANY THINGS TO FIT ONE SLIDE
Bitter TOO MANY THINGS TO FIT ONE SLIDE
Bitter Build system doesn’t play well with JDK 7 (Android
SDK issue)
Bitter Build system doesn’t play well with JDK 7 (Android
SDK issue) Can be sort of fixed though decompiling build system and manual patching
Bitter Bundles OLD stlport No Visual Studio debug visualizers support
Bitter Multithreading problems: Memory can be freed only from thread
it was allocated in. Enjoy!
Bitter Network problems: One failed request can hang your application
Bitter Network problems: One failed request can hang your application
Workaround: Have no more then one request at a time
Bitter Network problems: One failed request can hang your application
Workaround: Turn off some optimisations for Marmalade internal multitasking features
Bitter Extensions problems: (missing features, bugs)
Bitter Dependencies: You need IwUtil for tracing and it depends
on a whole lot of stuff (libjpg, libpng, zlib, etc.)
Bitter Sometimes updates randomly break stuff: • Problems with ATI
cards on Simulator • Appending ‘\n’ to HTTP request body • Regressions • etc.
Bitter Virtually no support Bugs can be ignored for months
Bitter • Video playback problems • Native UI and Input
problems • Things I don’t remember
Sour Memory management: Marmalade allocates one continuous chunk of memory
from system. Replaces malloc/new. Have to write your own memory allocator on top of one provided by marmalade.
None
Sour No debugging on device Logging is your friend
Conclusion Was it worth it?
Conclusion Be ready to reimplement stuff (we reimplemented facebook, music,
sound and filesystem extensions, heavily modified others)
Max Klyga @neku42
[email protected]
QUESTIONS?