SlideShare a Scribd company logo
1 of 16
1
Quo Vadis 2013
The Difficulty of Going Mobile
Dietmar Hauser
Head of Console Technology
Sproing Interactive Media GmbH
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
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?

More Related Content

Similar to The Difficulty of Going Mobile

Никита Корчагин - Introduction to iOS development
Никита Корчагин - Introduction to iOS developmentНикита Корчагин - Introduction to iOS development
Никита Корчагин - Introduction to iOS developmentDataArt
 
Systems by samuel c w cisco br7
Systems by samuel c w cisco br7Systems by samuel c w cisco br7
Systems by samuel c w cisco br7samthking25
 
Making A Game Engine Is Easier Than You Think
Making A Game Engine Is Easier Than You ThinkMaking A Game Engine Is Easier Than You Think
Making A Game Engine Is Easier Than You ThinkGorm Lai
 
7 reasons why video conferencing world will never
7 reasons why video conferencing world will never7 reasons why video conferencing world will never
7 reasons why video conferencing world will neverTrueConf
 
Delta Engine @ CeBit 2011
Delta Engine @ CeBit 2011Delta Engine @ CeBit 2011
Delta Engine @ CeBit 2011Karsten Wysk
 
Никита Корчагин - Introduction to Apple iOS Development.
Никита Корчагин - Introduction to Apple iOS Development.Никита Корчагин - Introduction to Apple iOS Development.
Никита Корчагин - Introduction to Apple iOS Development.DataArt
 
Lviv MD Day 2015 Ігор Кантор "Розробка додатків зі спільним C++ кодом для iOS...
Lviv MD Day 2015 Ігор Кантор "Розробка додатків зі спільним C++ кодом для iOS...Lviv MD Day 2015 Ігор Кантор "Розробка додатків зі спільним C++ кодом для iOS...
Lviv MD Day 2015 Ігор Кантор "Розробка додатків зі спільним C++ кодом для iOS...Lviv Startup Club
 
Road to Success (July 1st) - Mobile Game Development Alternatives - Andrew Bu...
Road to Success (July 1st) - Mobile Game Development Alternatives - Andrew Bu...Road to Success (July 1st) - Mobile Game Development Alternatives - Andrew Bu...
Road to Success (July 1st) - Mobile Game Development Alternatives - Andrew Bu...SanaChoudary
 
Being a game developer with the skills you have
Being a game developer with the skills you haveBeing a game developer with the skills you have
Being a game developer with the skills you haveJohan Lindfors
 
Deploy All The Games
Deploy All The GamesDeploy All The Games
Deploy All The GamesAdam Hill
 
Handling Many Platforms with a Small Development Team
Handling Many Platforms with a Small Development TeamHandling Many Platforms with a Small Development Team
Handling Many Platforms with a Small Development TeamDietmar Hauser
 
Development of a mobile app for Android
Development of a mobile app for AndroidDevelopment of a mobile app for Android
Development of a mobile app for AndroidAlexJReid
 
Enterprise iPad Development Without Notes
Enterprise iPad Development Without NotesEnterprise iPad Development Without Notes
Enterprise iPad Development Without Notesjaxarcsig
 
High-Performance Computing with C++
High-Performance Computing with C++High-Performance Computing with C++
High-Performance Computing with C++JetBrains
 
Ria Applications And PHP
Ria Applications And PHPRia Applications And PHP
Ria Applications And PHPJohn Coggeshall
 
Android Build Server
Android Build ServerAndroid Build Server
Android Build ServerTrey Robinson
 
مدخل برمجة صعيدي جيكس
مدخل برمجة صعيدي جيكس مدخل برمجة صعيدي جيكس
مدخل برمجة صعيدي جيكس Hesham Hanafi
 
Computer specifications.ppsx
Computer specifications.ppsxComputer specifications.ppsx
Computer specifications.ppsxmnm Lastopop
 

Similar to The Difficulty of Going Mobile (20)

Никита Корчагин - Introduction to iOS development
Никита Корчагин - Introduction to iOS developmentНикита Корчагин - Introduction to iOS development
Никита Корчагин - Introduction to iOS development
 
Systems by samuel c w cisco br7
Systems by samuel c w cisco br7Systems by samuel c w cisco br7
Systems by samuel c w cisco br7
 
Making A Game Engine Is Easier Than You Think
Making A Game Engine Is Easier Than You ThinkMaking A Game Engine Is Easier Than You Think
Making A Game Engine Is Easier Than You Think
 
7 reasons why video conferencing world will never
7 reasons why video conferencing world will never7 reasons why video conferencing world will never
7 reasons why video conferencing world will never
 
Delta Engine @ CeBit 2011
Delta Engine @ CeBit 2011Delta Engine @ CeBit 2011
Delta Engine @ CeBit 2011
 
Никита Корчагин - Introduction to Apple iOS Development.
Никита Корчагин - Introduction to Apple iOS Development.Никита Корчагин - Introduction to Apple iOS Development.
Никита Корчагин - Introduction to Apple iOS Development.
 
3.2 languages
3.2 languages3.2 languages
3.2 languages
 
Lviv MD Day 2015 Ігор Кантор "Розробка додатків зі спільним C++ кодом для iOS...
Lviv MD Day 2015 Ігор Кантор "Розробка додатків зі спільним C++ кодом для iOS...Lviv MD Day 2015 Ігор Кантор "Розробка додатків зі спільним C++ кодом для iOS...
Lviv MD Day 2015 Ігор Кантор "Розробка додатків зі спільним C++ кодом для iOS...
 
Road to Success (July 1st) - Mobile Game Development Alternatives - Andrew Bu...
Road to Success (July 1st) - Mobile Game Development Alternatives - Andrew Bu...Road to Success (July 1st) - Mobile Game Development Alternatives - Andrew Bu...
Road to Success (July 1st) - Mobile Game Development Alternatives - Andrew Bu...
 
Being a game developer with the skills you have
Being a game developer with the skills you haveBeing a game developer with the skills you have
Being a game developer with the skills you have
 
Deploy All The Games
Deploy All The GamesDeploy All The Games
Deploy All The Games
 
Handling Many Platforms with a Small Development Team
Handling Many Platforms with a Small Development TeamHandling Many Platforms with a Small Development Team
Handling Many Platforms with a Small Development Team
 
Development of a mobile app for Android
Development of a mobile app for AndroidDevelopment of a mobile app for Android
Development of a mobile app for Android
 
Enterprise iPad Development Without Notes
Enterprise iPad Development Without NotesEnterprise iPad Development Without Notes
Enterprise iPad Development Without Notes
 
High-Performance Computing with C++
High-Performance Computing with C++High-Performance Computing with C++
High-Performance Computing with C++
 
Ria Applications And PHP
Ria Applications And PHPRia Applications And PHP
Ria Applications And PHP
 
The Android Build Server
The Android Build ServerThe Android Build Server
The Android Build Server
 
Android Build Server
Android Build ServerAndroid Build Server
Android Build Server
 
مدخل برمجة صعيدي جيكس
مدخل برمجة صعيدي جيكس مدخل برمجة صعيدي جيكس
مدخل برمجة صعيدي جيكس
 
Computer specifications.ppsx
Computer specifications.ppsxComputer specifications.ppsx
Computer specifications.ppsx
 

More from Dietmar Hauser

The Case Against Human Readability
The Case Against Human ReadabilityThe Case Against Human Readability
The Case Against Human ReadabilityDietmar Hauser
 
More Intuitive Programming Through Better Code Completion
More Intuitive Programming Through Better Code CompletionMore Intuitive Programming Through Better Code Completion
More Intuitive Programming Through Better Code CompletionDietmar Hauser
 
Going Rogue - 8 Months On My Own
Going Rogue - 8 Months On My OwnGoing Rogue - 8 Months On My Own
Going Rogue - 8 Months On My OwnDietmar Hauser
 
The Rocky Road to KISS Rock City
The Rocky Road to KISS Rock CityThe Rocky Road to KISS Rock City
The Rocky Road to KISS Rock CityDietmar Hauser
 
A Half Life in Game Development
A Half Life in Game DevelopmentA Half Life in Game Development
A Half Life in Game DevelopmentDietmar Hauser
 
The Unusual Rendering Pipeline of Sigils - Battle for Raios
The Unusual Rendering Pipeline of Sigils - Battle for RaiosThe Unusual Rendering Pipeline of Sigils - Battle for Raios
The Unusual Rendering Pipeline of Sigils - Battle for RaiosDietmar Hauser
 
Toolchain Independent Distributed Compilation
Toolchain Independent Distributed CompilationToolchain Independent Distributed Compilation
Toolchain Independent Distributed CompilationDietmar Hauser
 

More from Dietmar Hauser (11)

The Case Against Human Readability
The Case Against Human ReadabilityThe Case Against Human Readability
The Case Against Human Readability
 
More Intuitive Programming Through Better Code Completion
More Intuitive Programming Through Better Code CompletionMore Intuitive Programming Through Better Code Completion
More Intuitive Programming Through Better Code Completion
 
Data Compression 2020
Data Compression 2020Data Compression 2020
Data Compression 2020
 
The Abstraction Trap
The Abstraction TrapThe Abstraction Trap
The Abstraction Trap
 
The Settlers Returns
The Settlers ReturnsThe Settlers Returns
The Settlers Returns
 
Going Rogue - 8 Months On My Own
Going Rogue - 8 Months On My OwnGoing Rogue - 8 Months On My Own
Going Rogue - 8 Months On My Own
 
The Rocky Road to KISS Rock City
The Rocky Road to KISS Rock CityThe Rocky Road to KISS Rock City
The Rocky Road to KISS Rock City
 
A Half Life in Game Development
A Half Life in Game DevelopmentA Half Life in Game Development
A Half Life in Game Development
 
Devil Dentist
Devil DentistDevil Dentist
Devil Dentist
 
The Unusual Rendering Pipeline of Sigils - Battle for Raios
The Unusual Rendering Pipeline of Sigils - Battle for RaiosThe Unusual Rendering Pipeline of Sigils - Battle for Raios
The Unusual Rendering Pipeline of Sigils - Battle for Raios
 
Toolchain Independent Distributed Compilation
Toolchain Independent Distributed CompilationToolchain Independent Distributed Compilation
Toolchain Independent Distributed Compilation
 

Recently uploaded

VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingShane Coughlan
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024Anthony Dahanne
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsJean Silva
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slidesvaideheekore1
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesVictoriaMetrics
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITmanoharjgpsolutions
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxRTS corp
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencessuser9e7c64
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonApplitools
 

Recently uploaded (20)

VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero results
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slides
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 Updates
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conference
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
 

The Difficulty of Going Mobile

  • 1. 1 Quo Vadis 2013 The Difficulty of Going Mobile Dietmar Hauser Head of Console Technology Sproing Interactive Media GmbH
  • 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. 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. #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. #2 Workstations 5 A Mac is required for iOS dev Windows for everything else
  • 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. #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. #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. #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. #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. #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. #7 Displays 12 Resolution Range: 0.08 – 3.2 MP (HDTV: 2 MP)
  • 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. #9 Development Hardware 14 Consoles • Uses Development Kits • Expensive • Special debug features Mobiles • Uses retail devices • Cheaper • Special debug obstacles
  • 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. Fin 16 Thank you for your attention! dietmar.hauser@sproing.com Questions?

Editor's Notes

  1. $100,-- annually for iOS, includes 5 Support Tickets
  2. Costs: Hardware is expensive, existing hardware doesn‘t work, needs a lot of duplicates Training: developers, designers, artists, QA and admins
  3. Talk a bit about ClWarrior
  4. 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
  5. Screenshot from Zelda on Android N64 emulator