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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Max Klyga
March 14, 2013
Programming
110
1
Share
Marmalade - Bittersweet experience
Reflections on experience of two years of development with Marmalade SDK.
Max Klyga
March 14, 2013
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
130
Practical resource management for mobile devices: Pooling is magic
nekuromento
0
50
Other Decks in Programming
See All in Programming
Modding RubyKaigi for Myself
yui_knk
0
540
New "Type" system on PicoRuby
pocke
1
240
今さら聞けないCancellationToken
htkym
0
200
AIチームを指揮するOSS「TAKT」活用術 / How to Use “TAKT,” an OSS Tool for Orchestrating AI Teams
nrslib
5
710
誰も頼んでない機能を出荷した話
zekutax
0
140
1人1案件のプロダクトエンジニア時代に、"プロセス監督"としてチャレンジしたこと
non0113
0
340
AIエージェントの隔離技術の徹底比較
kawayu
0
440
Technical Debt: Understanding it Rightly, Engaging it Rightly #LaravelLiveJP
shogogg
0
160
AI駆動開発で崩れていくコードベースを立て直す
kyoko_nr_nr
1
390
These Five Tricks Can Make Your Apps Greener, Cheaper, & Nicer
hollycummins
0
220
tsserverとは何だったのか、これからどうなるのか
nowaki28
1
400
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
200
Featured
See All Featured
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
420
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
370
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
310
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
350
How to Ace a Technical Interview
jacobian
281
24k
エンジニアに許された特別な時間の終わり
watany
107
240k
Designing Powerful Visuals for Engaging Learning
tmiket
1
380
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
55k
The Curse of the Amulet
leimatthew05
1
12k
Optimizing for Happiness
mojombo
378
71k
Discover your Explorer Soul
emna__ayadi
2
1.1k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
210
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?