Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Marmalade - Bittersweet experience

Marmalade - Bittersweet experience

Reflections on experience of two years of development with Marmalade SDK.

Max Klyga

March 14, 2013
Tweet

More Decks by Max Klyga

Other Decks in Programming

Transcript

  1. Mad Hat Games •  We develop mobile free2play games • 

    Programmers have strong C++ background
  2. Mad Hat Games •  We develop mobile free2play games • 

    Programmers have strong C++ background •  Artists have strong Flash background
  3. Asset Pipeline •  Everything is done in Adobe Flash • 

    Flash files are used as bundles •  Images are extracted from flash, packed into atlases and compressed
  4. 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)
  5. 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 (!)
  6. 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
  7. Bitter Network problems: One failed request can hang your application

    Workaround: Have no more then one request at a time
  8. Bitter Network problems: One failed request can hang your application

    Workaround: Turn off some optimisations for Marmalade internal multitasking features
  9. Bitter Dependencies: You need IwUtil for tracing and it depends

    on a whole lot of stuff (libjpg, libpng, zlib, etc.)
  10. Bitter Sometimes updates randomly break stuff: •  Problems with ATI

    cards on Simulator •  Appending ‘\n’ to HTTP request body •  Regressions •  etc.
  11. Bitter •  Video playback problems •  Native UI and Input

    problems •  Things I don’t remember
  12. 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.
  13. Conclusion Be ready to reimplement stuff (we reimplemented facebook, music,

    sound and filesystem extensions, heavily modified others)