The Difficulty of Going Mobile

Post on 14-Jan-2017

8 views 0 download

transcript

1

Quo Vadis 2013

The Difficulty of Going Mobile

Dietmar HauserHead of Console Technology

Sproing Interactive Media GmbH

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

Some Background…

2

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

#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

#2 Workstations

5

A Mac is required for iOS dev

Windows for everything else

#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

#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

#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

#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

#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

#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

#7 Displays

12

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

#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

#9 Development Hardware

14

Consoles

• Uses Development Kits• Expensive• Special debug features

Mobiles

• Uses retail devices• Cheaper• Special debug obstacles

#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

Fin

16

Thank you for your attention!

dietmar.hauser@sproing.com

Questions?