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
110
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
260
Scala for the doubters
nekuromento
0
130
Practical resource management for mobile devices: Pooling is magic
nekuromento
0
53
Other Decks in Programming
See All in Programming
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
5
1.8k
属人化した知識を、 AIが辿れる地図にする
pkshadeck
PRO
1
210
リアルな遅延を測る仕様
kota_yata
1
130
Hono + Inertia + React で LP を構築した話
oukayuka
2
170
VibeCodingからAgenticWorkflowへ
starfish719
0
890
Webエンジニアなのにブラウザの仕組みがわからないので、Pythonで自作してみた
tatsuki12
4
1.1k
Detecting Compromised CI with eBPF and Cilium Tetragon
lizrice
0
260
T3DD26: From RAGs to Riches
martinhelmich
0
100
170k Jobs a Day on GKE: Scaling Mercari's CI Platform - and What's Next for AI-Native Development
junyaokabe
0
120
【デモ】Kiroで体験する仕様駆動開発|設計からコーディングまでAIと進める開発フロー
cmkudo
0
410
My Marp Sample
sinoue0108
0
120
言葉の格闘技のススメ~紙とペンと言葉から始める、キャリアの描き方~
progresscicada
2
180
Featured
See All Featured
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
410
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
450
Building Adaptive Systems
keathley
44
3.2k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
180
Building the Perfect Custom Keyboard
takai
2
850
Mobile First: as difficult as doing things right
swwweet
225
10k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Accessibility Awareness
sabderemane
1
180
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
480
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
400
[SF Ruby Conf 2025] Rails X
palkan
2
1.3k
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?