The Difficulty of Going Mobile

16
1 Quo Vadis 2013 The Difficulty of Going Mobile Dietmar Hauser Head of Console Technology Sproing Interactive Media GmbH

Transcript of The Difficulty of Going Mobile

Page 1: The Difficulty of Going Mobile

1

Quo Vadis 2013

The Difficulty of Going Mobile

Dietmar HauserHead of Console Technology

Sproing Interactive Media GmbH

Page 2: The Difficulty of Going Mobile

Based in Vienna, AustriaIndependent since 2001Work for hire on all platformsRecent success with F2PDozens of titles shipped...... using our own technology

Some Background…

2

Page 3: The Difficulty of Going Mobile

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

Page 4: The Difficulty of Going Mobile

#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

Page 5: The Difficulty of Going Mobile

#2 Workstations

5

A Mac is required for iOS dev

Windows for everything else

Page 6: The Difficulty of Going Mobile

#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

Page 7: The Difficulty of Going Mobile

#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

Page 8: The Difficulty of Going Mobile

#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

Page 9: The Difficulty of Going Mobile

#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

Page 10: The Difficulty of Going Mobile

#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

Page 11: The Difficulty of Going Mobile

#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

Page 12: The Difficulty of Going Mobile

#7 Displays

12

Resolution Range: 0.08 – 3.2 MP (HDTV: 2 MP)

Page 13: The Difficulty of Going Mobile

#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

Page 14: The Difficulty of Going Mobile

#9 Development Hardware

14

Consoles

• Uses Development Kits• Expensive• Special debug features

Mobiles

• Uses retail devices• Cheaper• Special debug obstacles

Page 15: The Difficulty of Going Mobile

#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

Page 16: The Difficulty of Going Mobile

Fin

16

Thank you for your attention!

[email protected]

Questions?