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
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
Best-Practices-for-Cortex-Analyst-and-AI-Agent
ryotaroikeda
1
110
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
180
Lambda のコードストレージ容量に気をつけましょう
tattwan718
0
140
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
610
20260127_試行錯誤の結晶を1冊に。著者が解説 先輩データサイエンティストからの指南書 / author's_commentary_ds_instructions_guide
nash_efp
1
980
CSC307 Lecture 04
javiergs
PRO
0
660
24時間止められないシステムを守る-医療ITにおけるランサムウェア対策の実際
koukimiura
1
110
そのAIレビュー、レビューしてますか? / Are you reviewing those AI reviews?
rkaga
6
4.6k
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
370
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
1
2.6k
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
7
3.9k
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
170
Featured
See All Featured
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.6k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.9k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
430
Abbi's Birthday
coloredviolet
1
4.8k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
68
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
180
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
150
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
230
Evolving SEO for Evolving Search Engines
ryanjones
0
130
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
170
Claude Code のすすめ
schroneko
67
210k
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?