The Difficulty of Going Mobile
-
Upload
dietmar-hauser -
Category
Software
-
view
9 -
download
0
Transcript of The Difficulty of Going Mobile
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