SlideShare a Scribd company logo
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 development
DataArt
 
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
samthking25
 
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
Gorm 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 never
TrueConf
 
Delta Engine @ CeBit 2011
Delta Engine @ CeBit 2011Delta Engine @ CeBit 2011
Delta Engine @ CeBit 2011
Karsten Wysk
 
Никита Корчагин - Introduction to Apple iOS Development.
Никита Корчагин - Introduction to Apple iOS Development.Никита Корчагин - Introduction to Apple iOS Development.
Никита Корчагин - Introduction to Apple iOS Development.
DataArt
 
3.2 languages
3.2 languages3.2 languages
3.2 languages
Sayed Ahmed
 
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 have
Johan Lindfors
 
Deploy All The Games
Deploy All The GamesDeploy All The Games
Deploy All The Games
Adam 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 Team
Dietmar 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 Android
AlexJReid
 
Enterprise iPad Development Without Notes
Enterprise iPad Development Without NotesEnterprise iPad Development Without Notes
Enterprise iPad Development Without Notes
jaxarcsig
 
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 PHP
John Coggeshall
 
The Android Build Server
The Android Build ServerThe Android Build Server
The Android Build Server
Antoine Campbell
 
Android Build Server
Android Build ServerAndroid Build Server
Android Build Server
Trey Robinson
 
مدخل برمجة صعيدي جيكس
مدخل برمجة صعيدي جيكس مدخل برمجة صعيدي جيكس
مدخل برمجة صعيدي جيكس
Hesham Hanafi
 
Computer specifications.ppsx
Computer specifications.ppsxComputer specifications.ppsx
Computer specifications.ppsx
mnm 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 Readability
Dietmar 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 Completion
Dietmar Hauser
 
Data Compression 2020
Data Compression 2020Data Compression 2020
Data Compression 2020
Dietmar Hauser
 
The Abstraction Trap
The Abstraction TrapThe Abstraction Trap
The Abstraction Trap
Dietmar Hauser
 
The Settlers Returns
The Settlers ReturnsThe Settlers Returns
The Settlers Returns
Dietmar 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 Own
Dietmar 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 City
Dietmar Hauser
 
A Half Life in Game Development
A Half Life in Game DevelopmentA Half Life in Game Development
A Half Life in Game Development
Dietmar Hauser
 
Devil Dentist
Devil DentistDevil Dentist
Devil Dentist
Dietmar 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 Raios
Dietmar Hauser
 
Toolchain Independent Distributed Compilation
Toolchain Independent Distributed CompilationToolchain Independent Distributed Compilation
Toolchain Independent Distributed Compilation
Dietmar 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

Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
Gerardo Pardo-Castellote
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
pavan998932
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Envertis Software Solutions
 

Recently uploaded (20)

Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
 

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