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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Max Klyga
March 14, 2013
Programming
1
100
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
240
Scala for the doubters
nekuromento
0
120
Practical resource management for mobile devices: Pooling is magic
nekuromento
0
47
Other Decks in Programming
See All in Programming
20260313 - Grafana & Friends Taipei #1 - Kubernetes v1.36 的開發雜記:那些困在 Alpha 加護病房太久的 Metrics
tico88612
0
200
ベクトル検索のフィルタを用いた機械学習モデルとの統合 / python-meetup-fukuoka-06-vector-attr
monochromegane
2
440
The Ralph Wiggum Loop: First Principles of Autonomous Development
sembayui
0
3.7k
Goの型安全性で実現する複数プロダクトの権限管理
ishikawa_pro
2
340
Agentic AI: Evolution oder Revolution
mobilelarson
PRO
0
180
Unity6.3 AudioUpdate
cova8bitdots
0
130
Claude Codeログ基盤の構築
giginet
PRO
7
3.3k
Everything Claude Code OSS詳細 — 5層構造の中身と導入方法
targe
0
110
Cyrius ーLinux非依存にコンテナをネイティブ実行する専用OSー
n4mlz
0
150
最初からAWS CDKで技術検証してもいいんじゃない?
akihisaikeda
4
150
エンジニアの「手元の自動化」を加速するn8n 2026.02.27
symy2co
0
160
Docコメントで始める簡単ガードレール
keisukeikeda
1
120
Featured
See All Featured
Designing for humans not robots
tammielis
254
26k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
990
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
130
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
470
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Un-Boring Meetings
codingconduct
0
220
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
550
It's Worth the Effort
3n
188
29k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.9k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.7k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
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?