Successfully reported this slideshow.
Your SlideShare is downloading. ×

The Difficulty of Going Mobile

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
Mobile Development
Mobile Development
Loading in …3
×

Check these out next

1 of 16 Ad
Advertisement

More Related Content

Similar to The Difficulty of Going Mobile (20)

Advertisement

Recently uploaded (20)

The Difficulty of Going Mobile

  1. 1. 1 Quo Vadis 2013 The Difficulty of Going Mobile Dietmar Hauser Head of Console Technology Sproing Interactive Media GmbH
  2. 2. Based in Vienna, Austria Independent since 2001 Work for hire on all platforms Recent success with F2P Dozens of titles shipped... ... using our own technology Some Background… 2
  3. 3. Premises 3 Multi Platform Codebase • Consoles / PC • C / C++ • Platform specifics abstracted Multi Platform Build Pipeline • Make, MsBuild, Scons,... • IDE to edit, build & run • Platform specific debugging & profiling
  4. 4. #1 Ease of Access 4 Consoles • Lengthy and involved • Many requirements • A lot of secrecy • No fees, free support Mobiles • Sign up with email • Almost no requirements • Less secrecy • Fees for services
  5. 5. #2 Workstations 5 A Mac is required for iOS dev Windows for everything else
  6. 6. #2 Workstations 6 Just buy a few macs? • Extra hardware costs (a lot) • Extra training required OS/X in Virtual Machine • Complicated • Legally gray area In both cases • Existing tools don‘t work anymore • Doubled build configs • Doubled build/test services • Constant dev platform switching
  7. 7. #3 Tool Chain & Debugging 7 iOS toolchain is mostly FOSS • Gcc, Clang, cc tools, gdb, lldb,… Some ports are available: • DragonFire SDK • saurik‘s toolchain • PM Baty‘s toolchain http://www.pmbaty.com/iosbuildenv/ Integrate into build pipeline Deploy with SSH / SFTP
  8. 8. #3 Tool Chain & Debugging 8 Not everything can be done on Windows Create tool to convert project configs to xcodeproj file format Debugging and profiling using XCode „Official“ builds with Mac • External testing • Apple store approval
  9. 9. #4 Programming Language 9 iOS favours Objective-C • Not very portable or useful • Necessary to interface with some iOS APIs • Great interoperatibility with C and C++ • So, we ignore it when possible Objective-C C / POSIX
  10. 10. #5 Memory 10 Memory • Seems to be abundant • Is shared by OS and all Apps • „Memory Warnings“ • More memory used == faster death Some hints • Don‘t hoard memory • Use mmap-ed file I/O • Use texture compression • Prepare to let go of static data
  11. 11. #6 Graphics 11 Graphics API • Standard Open GL ES 2.0 • Great portability • Not much more needed for gamedev GPU • Low clock frequency • Severely fillrate limited • Tiled based deferred rendering • A lot of pixels
  12. 12. #7 Displays 12 Resolution Range: 0.08 – 3.2 MP (HDTV: 2 MP)
  13. 13. #8 Input 13 Touch Screen • The only guaranteed input option Simulate mouse or gampead • Only single physical button • Finger covers target area • Up to 100ms latency • No hovering input • No haptic feedback On screen keyboard • No good for gameplay • Ok for debug input
  14. 14. #9 Development Hardware 14 Consoles • Uses Development Kits • Expensive • Special debug features Mobiles • Uses retail devices • Cheaper • Special debug obstacles
  15. 15. #10 Copy Protection 15 Consoles • DevKits have no protection • Protection is applied before publishing • No hassle for developers Mobiles • There are no DevKits • Copy protection is constantly active • Developers need to acquire permissions • A lot of hassles, delays and limitations
  16. 16. Fin 16 Thank you for your attention! dietmar.hauser@sproing.com Questions?

Editor's Notes

  • $100,-- annually for iOS, includes 5 Support Tickets
  • Costs: Hardware is expensive, existing hardware doesn‘t work, needs a lot of duplicates
    Training: developers, designers, artists, QA and admins
  • Talk a bit about ClWarrior
  • Objective-C was one of the main reasons for Apple to develop Clang
    POSIX = "Portable Operating System Interface“ + X, an IEEE standard, updated last in 2008
    Objective-C is a strict superset of C
  • Screenshot from Zelda on Android N64 emulator

×