SlideShare una empresa de Scribd logo
1 de 167
Becoming Indie
                  A Professional Game Developer Change
                              To The iPhone

                                   Noel Llopis
                                  Snappy Touch
                            http://snappytouch.com




Tuesday, March 3, 2009
Tuesday, March 3, 2009
Tuesday, March 3, 2009
Tuesday, March 3, 2009
1998: 12 people - 1 year




Tuesday, March 3, 2009
1998




                           2001: 24 people - 2 years

Tuesday, March 3, 2009
1998


                         2001




                                2005: 100 people 2.5 years

Tuesday, March 3, 2009
1998

                   2001




                          2005



                                 2008: 200 people 3 years

Tuesday, March 3, 2009
1998

                   2001


   My previous
     startup
                          2005



                                 2008: 200 people 3 years

Tuesday, March 3, 2009
1998

                   2001


   My previous
     startup
                          2005

                          Now


                                 2008: 200 people 3 years

Tuesday, March 3, 2009
Tuesday, March 3, 2009
Tuesday, March 3, 2009
Part I: What’s Inside?




Tuesday, March 3, 2009
Hardware Specs




Tuesday, March 3, 2009
Hardware Specs
                    • CPU: 32-bit RISC ARM




Tuesday, March 3, 2009
Hardware Specs
                    • CPU: 32-bit RISC ARM
                    • Memory: 128 MB RAM




Tuesday, March 3, 2009
Hardware Specs
                    • CPU: 32-bit RISC ARM
                    • Memory: 128 MB RAM
                    • Graphics: PowerVR MBX Lite




Tuesday, March 3, 2009
Hardware Specs
                    • CPU: 32-bit RISC ARM
                    • Memory: 128 MB RAM
                    • Graphics: PowerVR MBX Lite
                    • Extra features: Multi-touch screen, GPS,
                         camera, accelerometer, WiFi, microphone.




Tuesday, March 3, 2009
Development Tools




Tuesday, March 3, 2009
Development Tools

           • XCode. Great IDE




Tuesday, March 3, 2009
Development Tools

           • XCode. Great IDE
           • Familiar tools: gcc, gdb




Tuesday, March 3, 2009
Development Tools

           • XCode. Great IDE
           • Familiar tools: gcc, gdb
           • Great performance
                   and analysis tools:
                   Instruments



Tuesday, March 3, 2009
Programming Language
                         Most iPhone-related stuff in Objective C




Tuesday, March 3, 2009
Programming Language
                         Most iPhone-related stuff in Objective C




                         ... but you can write all C and C++ you want!


Tuesday, March 3, 2009
Programming language
                         You can even write assembly if you want!
                          void MyFunction()
                          {
                            // do some stuff
                            int value = 57;
                            asm volatile (
                              quot;mov %0, %0, ror #1quot;
                              : quot;=rquot; (value)
                              : quot;0quot; (value)
                            );
                          }


Tuesday, March 3, 2009
Unit Testing




Tuesday, March 3, 2009
Unit Testing
                    • Any C/C++ unit-testing framework




Tuesday, March 3, 2009
Unit Testing
                    • Any C/C++ unit-testing framework
                    • Biased towards UnitTest++ of course
                         (http://unittest-cpp.sourceforge.net/)




Tuesday, March 3, 2009
Unit Testing
                    • Any C/C++ unit-testing framework
                    • Biased towards UnitTest++ of course
                         (http://unittest-cpp.sourceforge.net/)
                    • How to get it to run as a postbuild step?



Tuesday, March 3, 2009
Unit Testing
                    • Any C/C++ unit-testing framework
                    • Biased towards UnitTest++ of course
                         (http://unittest-cpp.sourceforge.net/)
                    • How to get it to run as a postbuild step?
                    • Google toolbox for Mac (http://
                         code.google.com/p/google-toolbox-for-mac/
                         wiki/iPhoneUnitTesting)


Tuesday, March 3, 2009
Unit Testing




Tuesday, March 3, 2009
Unit Testing
                    •    Run script as part of
                         build process.




Tuesday, March 3, 2009
Unit Testing
                    •    Run script as part of
                         build process.

                    •    Build and you’re done.




Tuesday, March 3, 2009
Unit Testing
                    •    Run script as part of
                         build process.

                    •    Build and you’re done.

                    •    Super fast in simulator.




Tuesday, March 3, 2009
Unit Testing




Tuesday, March 3, 2009
Unit Testing
                    • Also frameworks for Objective C: OCUnit,
                         SenTestingKit




Tuesday, March 3, 2009
Unit Testing
                    • Also frameworks for Objective C: OCUnit,
                         SenTestingKit
                    • I haven’t used them yet




Tuesday, March 3, 2009
Unit Testing
                    • Also frameworks for Objective C: OCUnit,
                         SenTestingKit
                    • I haven’t used them yet
                    • Some people modified UnitTest++ to work
                         with Objective C




Tuesday, March 3, 2009
Unit Testing
                    • Also frameworks for Objective C: OCUnit,
                         SenTestingKit
                    • I haven’t used them yet
                    • Some people modified UnitTest++ to work
                         with Objective C
                    • Also mock frameworks: OCMock

Tuesday, March 3, 2009
Build Servers




Tuesday, March 3, 2009
Build Servers
                    • Continuous integration was a key practice
                         in large teams.




Tuesday, March 3, 2009
Build Servers
                    • Continuous integration was a key practice
                         in large teams.
                    • Even with a one or two-man team it was
                         extremely useful.




Tuesday, March 3, 2009
Build Servers
                    • Continuous integration was a key practice
                         in large teams.
                    • Even with a one or two-man team it was
                         extremely useful.
                    • CruiseControl or Hudson


Tuesday, March 3, 2009
CPU




Tuesday, March 3, 2009
CPU

              •     CPU: 32-bit RISC ARM




Tuesday, March 3, 2009
CPU

              •     CPU: 32-bit RISC ARM

              •     iPhone @ 412MHz




Tuesday, March 3, 2009
CPU

              •     CPU: 32-bit RISC ARM

              •     iPhone @ 412MHz

              •     iPod Touch @ 535MHz




Tuesday, March 3, 2009
CPU

              •     CPU: 32-bit RISC ARM

              •     iPhone @ 412MHz

              •     iPod Touch @ 535MHz

              •     Can go as high as 620MHz




Tuesday, March 3, 2009
Floating Point




Tuesday, March 3, 2009
Floating Point
              •     The main CPU has no
                    floating point support.




Tuesday, March 3, 2009
Floating Point
              •     The main CPU has no
                    floating point support.

              •     Compiled C/C++/OC code
                    uses the vector floating
                    point unit for any floating
                    point operations.




Tuesday, March 3, 2009
Thumb Mode




Tuesday, March 3, 2009
Thumb Mode
                             •   CPU has a special thumb
                                 mode.




Tuesday, March 3, 2009
Thumb Mode
                             •   CPU has a special thumb
                                 mode.

                             •   Less memory, maybe better
                                 performance.




Tuesday, March 3, 2009
Thumb Mode
                             •   CPU has a special thumb
                                 mode.

                             •   Less memory, maybe better
                                 performance.

                             •   No floating point support.




Tuesday, March 3, 2009
Thumb Mode
                             •   CPU has a special thumb
                                 mode.

                             •   Less memory, maybe better
                                 performance.

                             •   No floating point support.

                             •   It’s on by default!




Tuesday, March 3, 2009
Thumb Mode
                             •   CPU has a special thumb
                                 mode.

                             •   Less memory, maybe better
                                 performance.

                             •   No floating point support.

                             •   It’s on by default!

                             •   Potentially HUGE wins turning
                                 it off.




Tuesday, March 3, 2009
Thumb Mode
                             •   CPU has a special thumb
                                 mode.

                             •   Less memory, maybe better
                                 performance.

                             •   No floating point support.

                             •   It’s on by default!

                             •   Potentially HUGE wins turning
                                 it off.




Tuesday, March 3, 2009
Floating Point




Tuesday, March 3, 2009
Floating Point
              •     The VFP stands for “vector”




Tuesday, March 3, 2009
Floating Point
              •     The VFP stands for “vector”

              •     Work on up to four 32-bit
                    floating point numbers at
                    once.




Tuesday, March 3, 2009
Floating Point
              •     The VFP stands for “vector”

              •     Work on up to four 32-bit
                    floating point numbers at
                    once.

              •     The compiler won’t help
                    you though.




Tuesday, March 3, 2009
Floating Point
              •     The VFP stands for “vector”

              •     Work on up to four 32-bit
                    floating point numbers at
                    once.

              •     The compiler won’t help
                    you though.

              •     See the vfpmath library in
                    Google Code




Tuesday, March 3, 2009
Memory




Tuesday, March 3, 2009
Memory
            • 128 MB RAM




Tuesday, March 3, 2009
Memory
            • 128 MB RAM
            • 11 MB for video




Tuesday, March 3, 2009
Memory
            • 128 MB RAM
            • 11 MB for video
            • System can use most of the
                    RAM!




Tuesday, March 3, 2009
Memory
            • 128 MB RAM
            • 11 MB for video
            • System can use most of the
                    RAM!
                                      Video
                                       11
                                          Your app
                                             15



                                OS
                                102


Tuesday, March 3, 2009
Graphics




Tuesday, March 3, 2009
Graphics
                    • 320x480 resolution




Tuesday, March 3, 2009
Graphics
                    • 320x480 resolution
                    • OpenGL ES 1.1 API + a few
                         extensions




Tuesday, March 3, 2009
Graphics
                    • 320x480 resolution
                    • OpenGL ES 1.1 API + a few
                         extensions
                    • OpenGL great for 3D but also
                         2D games with need for
                         performance.




Tuesday, March 3, 2009
Graphics Hardware




Tuesday, March 3, 2009
Graphics Hardware
                    •    PowerVR MBX Lite:
                         Texturing and
                         rasterization




Tuesday, March 3, 2009
Graphics Hardware
                    •    PowerVR MBX Lite:
                         Texturing and
                         rasterization

                    •    PowerVR VGP Lite:
                         Vertex processing.




Tuesday, March 3, 2009
Graphics Hardware
                    •    PowerVR MBX Lite:
                         Texturing and
                         rasterization

                    •    PowerVR VGP Lite:
                         Vertex processing.

                    •    No shaders!




Tuesday, March 3, 2009
Graphics Hardware
                    •    PowerVR MBX Lite:
                         Texturing and
                         rasterization

                    •    PowerVR VGP Lite:
                         Vertex processing.

                    •    No shaders!

                    •    Tile-based




Tuesday, March 3, 2009
Graphics Hardware




Tuesday, March 3, 2009
Graphics Hardware
                    •    Triangles per second:
                         500K/sec (16K polys per
                         frame at 30fps)




Tuesday, March 3, 2009
Graphics Hardware
                    •    Triangles per second:
                         500K/sec (16K polys per
                         frame at 30fps)

                    •    Fill rate: 25 million pixel
                         per second (5.4 screen
                         redraws per frame at
                         30fps)




Tuesday, March 3, 2009
OpenGL ES Extensions




Tuesday, March 3, 2009
OpenGL ES Extensions
                    •    Frame buffer objects




Tuesday, March 3, 2009
OpenGL ES Extensions
                    •    Frame buffer objects

                    •    Memory mapped vertex
                         buffers




Tuesday, March 3, 2009
OpenGL ES Extensions
                    •    Frame buffer objects

                    •    Memory mapped vertex
                         buffers

                    •    Point sprites




Tuesday, March 3, 2009
OpenGL ES Extensions
                    •    Frame buffer objects

                    •    Memory mapped vertex
                         buffers

                    •    Point sprites

                    •    PVRTC texture format




Tuesday, March 3, 2009
OpenGL ES Extensions
                    •    Frame buffer objects   1
                                                #define   GL_EXT_texture_filter_anisotropic
                                                1
                                                #define   GL_EXT_texture_lod_bias
                                                #define   GL_IMG_read_format
                                                1

                    •                           1
                                                #define   GL_IMG_texture_compression_pvrtc
                         Memory mapped vertex   1
                                                #define   GL_IMG_texture_format_BGRA8888
                         buffers                1
                                                #define   GL_OES_blend_subtract
                                                1
                                                #define   GL_OES_depth24
                                                #define   GL_OES_framebuffer_object
                                                1

                    •    Point sprites          1
                                                #define   GL_OES_mapbuffer
                                                1
                                                #define   GL_OES_rgb8_rgba8
                                                1
                                                #define   GL_OES_texture_mirrored_repeat

                    •    PVRTC texture format




Tuesday, March 3, 2009
Texture Combiners




Tuesday, March 3, 2009
Texture Combiners
                •        Two texture units




Tuesday, March 3, 2009
Texture Combiners
                •        Two texture units

                •        Multi-texturing




Tuesday, March 3, 2009
Texture Combiners
                •        Two texture units

                •        Multi-texturing

                •        Per-pixel lighting




Tuesday, March 3, 2009
Texture Combiners
                •        Two texture units

                •        Multi-texturing

                •        Per-pixel lighting

                •        Many interesting effects




Tuesday, March 3, 2009
OpenGL And UIKit




Tuesday, March 3, 2009
OpenGL And UIKit
                    • They mix, but not perfectly




Tuesday, March 3, 2009
OpenGL And UIKit
                    • They mix, but not perfectly
                    • UIKit on top of OpenGL can
                         cause performance issues




Tuesday, March 3, 2009
OpenGL And UIKit
                    • They mix, but not perfectly
                    • UIKit on top of OpenGL can
                         cause performance issues
                    • Can have OpenGL views in
                         a regular app




Tuesday, March 3, 2009
OpenGL And UIKit
                    • They mix, but not perfectly
                    • UIKit on top of OpenGL can
                         cause performance issues
                    • Can have OpenGL views in
                         a regular app
                    • Multiple OpenGL views
                         possible too.


Tuesday, March 3, 2009
OpenGL And UIKit
                    • They mix, but not perfectly
                    • UIKit on top of OpenGL can
                         cause performance issues
                    • Can have OpenGL views in
                         a regular app
                    • Multiple OpenGL views
                         possible too.


Tuesday, March 3, 2009
Audio




Tuesday, March 3, 2009
Audio
                    • Several APIs: OpenAL, Audio Sessions, or
                         AVAudioPlayer (2.2 SDK)




Tuesday, March 3, 2009
Audio
                    • Several APIs: OpenAL, Audio Sessions, or
                         AVAudioPlayer (2.2 SDK)
                    • Custom music is huge. Let people play their
                         tunes.




Tuesday, March 3, 2009
Comparison




Tuesday, March 3, 2009
Comparison




Tuesday, March 3, 2009
Comparison




Tuesday, March 3, 2009
Comparison




Tuesday, March 3, 2009
Why We                                iPhone
                                                                      PSN
                                              Flash   PC   Consoles        Phones iPhone
                                                                      XBLA
                          Short timeframes     x                       ?      x     x
                            Small budgets      x                       ?      x     x
                          Unified platform      x              x        x            x
                         Powerful hardware            ?       x        x            x
                            Great tools        x      x       x        x            x
                           Large audience      x              x        x      x     x
                           Easy payments                               x      x     x
                     Direct access to users    x      x                             x
                         Development access    x      x                             x




Tuesday, March 3, 2009
Tuesday, March 3, 2009
Part II: Developing
                               Games




Tuesday, March 3, 2009
Asset Pipeline




Tuesday, March 3, 2009
Asset Pipeline
                    •    Huge deal in large teams




Tuesday, March 3, 2009
Asset Pipeline
                    •    Huge deal in large teams

                    •    Not as much of a big
                         deal for a single
                         developer (or small
                         team)




Tuesday, March 3, 2009
Asset Pipeline
                    •    Huge deal in large teams

                    •    Not as much of a big
                         deal for a single
                         developer (or small
                         team)

                    •    Put whatever assets in
                         XCode and let it bundle
                         it with the rest of the
                         app.



Tuesday, March 3, 2009
Asset Pipeline




Tuesday, March 3, 2009
Asset Pipeline
                    • If you have some dedicated artists, or
                         especially contractors, they need to run
                         XCode to see new content.




Tuesday, March 3, 2009
Asset Pipeline
                    • If you have some dedicated artists, or
                         especially contractors, they need to run
                         XCode to see new content.
                    • Set up a small web server locally (simple
                         python script) and have the app try to load
                         from there first.




Tuesday, March 3, 2009
Baking resources




Tuesday, March 3, 2009
Baking resources
              • You want to bake
                         resources to their final
                         format for fast load times.




Tuesday, March 3, 2009
Baking resources
              • You want to bake
                         resources to their final
                         format for fast load times.
              • Textures: texturetool



Tuesday, March 3, 2009
Baking resources
              • You want to bake
                         resources to their final
                         format for fast load times.
              • Textures: texturetool
              • Sound: afconvert


Tuesday, March 3, 2009
Baking resources
              • You want to bake
                         resources to their final
                         format for fast load times.
              • Textures: texturetool
              • Sound: afconvert
              • 3D models:You’re on your
                         own


Tuesday, March 3, 2009
Assets




Tuesday, March 3, 2009
Assets
                    • iPhone games have much smaller asset sizes
                         than current PC/console games.




Tuesday, March 3, 2009
Assets
                    • iPhone games have much smaller asset sizes
                         than current PC/console games.
                    • Most iPhone games are under 30MB. DVD-
                         based games fill up all 8GB.




Tuesday, March 3, 2009
Assets
                    • iPhone games have much smaller asset sizes
                         than current PC/console games.
                    • Most iPhone games are under 30MB. DVD-
                         based games fill up all 8GB.
                    • Source assets probably add up to
                         200-300MB. Makes asset management and
                         version control a lot simpler.



Tuesday, March 3, 2009
Data-Driven Games




Tuesday, March 3, 2009
Data-Driven Games
              • AAA games with huge teams
                     are almost fully data driven.




Tuesday, March 3, 2009
Data-Driven Games
              • AAA games with huge teams
                     are almost fully data driven.
              • HUGE amount of overhead in
                     terms of performance, work,
                     and complexity!




Tuesday, March 3, 2009
Data-Driven Games
              • AAA games with huge teams
                     are almost fully data driven.
              • HUGE amount of overhead in
                     terms of performance, work,
                     and complexity!
              • Makes sense with 30
                     programmers and 150 content
                     creators.


Tuesday, March 3, 2009
Tuesday, March 3, 2009
Data-Driven Games




Tuesday, March 3, 2009
Data-Driven Games
                    • With small iPhone games, not so much.




Tuesday, March 3, 2009
Data-Driven Games
                    • With small iPhone games, not so much.
                    • Fast build times, so changing data is easy.




Tuesday, March 3, 2009
Data-Driven Games
                    • With small iPhone games, not so much.
                    • Fast build times, so changing data is easy.
                    • Expose assets, simple variables, level layout.




Tuesday, March 3, 2009
Tuesday, March 3, 2009
Tuesday, March 3, 2009
More Than
                         Programming




Tuesday, March 3, 2009
More Than
                                 Programming
                    •    Programming is only part of
                         it.You wear many hats!




Tuesday, March 3, 2009
More Than
                                  Programming
                    •    Programming is only part of
                         it.You wear many hats!

                    •    Designer, of course but also...




Tuesday, March 3, 2009
More Than
                                  Programming
                    •    Programming is only part of
                         it.You wear many hats!

                    •    Designer, of course but also...

                    •    Public relations, producer,
                         testing coordinator,
                         contractor manager, content
                         creator, web developer, video
                         editor, etc, etc.




Tuesday, March 3, 2009
Content Creation




Tuesday, March 3, 2009
Content Creation
                    • Most projects need multiple people for
                         content creation: UI elements, textures,
                         models, animations, audio.




Tuesday, March 3, 2009
Content Creation
                    • Most projects need multiple people for
                         content creation: UI elements, textures,
                         models, animations, audio.
                    • Contracting works well for some of the
                         content.




Tuesday, March 3, 2009
Tuesday, March 3, 2009
PR




Tuesday, March 3, 2009
PR
                 •       Creating a great app is half the
                         battle.




Tuesday, March 3, 2009
PR
                 •       Creating a great app is half the
                         battle.

                 •       PR is the other half.




Tuesday, March 3, 2009
PR
                 •       Creating a great app is half the
                         battle.

                 •       PR is the other half.

                 •       Extremely time consuming and
                         hard to do effectively.




Tuesday, March 3, 2009
PR
                 •       Creating a great app is half the
                         battle.

                 •       PR is the other half.

                 •       Extremely time consuming and
                         hard to do effectively.

                 •       Build grass-roots support. Add viral
                         components to your app.




Tuesday, March 3, 2009
PR
                 •       Creating a great app is half the
                         battle.

                 •       PR is the other half.

                 •       Extremely time consuming and
                         hard to do effectively.

                 •       Build grass-roots support. Add viral
                         components to your app.

                 •       Good reason to use a publisher.



Tuesday, March 3, 2009
Part III: The Future




Tuesday, March 3, 2009
Tuesday, March 3, 2009
Tuesday, March 3, 2009
Tuesday, March 3, 2009
Tuesday, March 3, 2009
Tuesday, March 3, 2009
• The big guys are coming to play.




Tuesday, March 3, 2009
• The big guys are coming to play.
           • They’ll be able to throw many more resources and
                   make a difference.




Tuesday, March 3, 2009
Tuesday, March 3, 2009
• Rumours of a premium App
                         Store area.




Tuesday, March 3, 2009
• Rumours of a premium App
                         Store area.

               • Big companies + big games
                         = Bigger price tags




Tuesday, March 3, 2009
• Rumours of a premium App
                         Store area.

               • Big companies + big games
                         = Bigger price tags

               • What will it mean for us
                         indies?




Tuesday, March 3, 2009
Tuesday, March 3, 2009
15+ million iPhones and growing


Tuesday, March 3, 2009
Tuesday, March 3, 2009
Tuesday, March 3, 2009
Thank you!

Tuesday, March 3, 2009
Questions?


                              Noel Llopis
                         noel@snappytouch.com
                             Snappy Touch




Tuesday, March 3, 2009
Questions?
                         Slides will be available from my blog Games
                         from Within (http://gamesfromwithin.com)



                                        Noel Llopis
                                   noel@snappytouch.com
                                       Snappy Touch




Tuesday, March 3, 2009

Más contenido relacionado

Similar a Becoming Indie

Atlassian - A Different Kind Of Software Company
Atlassian - A Different Kind Of Software CompanyAtlassian - A Different Kind Of Software Company
Atlassian - A Different Kind Of Software CompanyMike Cannon-Brookes
 
Creation of an iPhone Game
Creation of an iPhone GameCreation of an iPhone Game
Creation of an iPhone GameJohn Wilker
 
IT Depends: Custom vs Packaged Software
IT Depends: Custom vs Packaged SoftwareIT Depends: Custom vs Packaged Software
IT Depends: Custom vs Packaged Software★ Selcuk Atli
 
JSUG - ActionScript 3 vs Java by Christoph Pickl
JSUG - ActionScript 3 vs Java by Christoph PicklJSUG - ActionScript 3 vs Java by Christoph Pickl
JSUG - ActionScript 3 vs Java by Christoph PicklChristoph Pickl
 
JSUG - AS3 vs Java by Christoph Pickl
JSUG - AS3 vs Java by Christoph PicklJSUG - AS3 vs Java by Christoph Pickl
JSUG - AS3 vs Java by Christoph PicklChristoph Pickl
 
Managing And Optimizing Memory Usage
Managing And Optimizing Memory UsageManaging And Optimizing Memory Usage
Managing And Optimizing Memory UsageJohn Wilker
 
MacRuby - When objective-c and Ruby meet
MacRuby - When objective-c and Ruby meetMacRuby - When objective-c and Ruby meet
MacRuby - When objective-c and Ruby meetMatt Aimonetti
 
Scaling with Postgres
Scaling with PostgresScaling with Postgres
Scaling with Postgreselliando dias
 
Plone Testing Tools And Techniques
Plone Testing Tools And TechniquesPlone Testing Tools And Techniques
Plone Testing Tools And TechniquesJordan Baker
 
Realtime 3D on the web - a toy or a useful tool?
Realtime 3D on the web - a toy or a useful tool?Realtime 3D on the web - a toy or a useful tool?
Realtime 3D on the web - a toy or a useful tool?Jens Brynildsen
 
RSC Future of Technology in Education
RSC Future of Technology in EducationRSC Future of Technology in Education
RSC Future of Technology in EducationMiles Metcalfe
 
Developing Technology for Ratchet and Clank Future: Tools of Destruction
Developing Technology for Ratchet and Clank Future: Tools of DestructionDeveloping Technology for Ratchet and Clank Future: Tools of Destruction
Developing Technology for Ratchet and Clank Future: Tools of DestructionSlide_N
 
intl me this, intl me that
intl me this, intl me thatintl me this, intl me that
intl me this, intl me thatAndrei Zmievski
 
Using Models To Ease The Start Up Of Automated
Using Models To Ease The Start Up Of AutomatedUsing Models To Ease The Start Up Of Automated
Using Models To Ease The Start Up Of Automatedbredex
 
Agile Planning
Agile PlanningAgile Planning
Agile PlanningAgileee
 
Agile Planning
Agile PlanningAgile Planning
Agile PlanningAgileee
 

Similar a Becoming Indie (20)

Atlassian - A Different Kind Of Software Company
Atlassian - A Different Kind Of Software CompanyAtlassian - A Different Kind Of Software Company
Atlassian - A Different Kind Of Software Company
 
Creation of an iPhone Game
Creation of an iPhone GameCreation of an iPhone Game
Creation of an iPhone Game
 
IT Depends: Custom vs Packaged Software
IT Depends: Custom vs Packaged SoftwareIT Depends: Custom vs Packaged Software
IT Depends: Custom vs Packaged Software
 
JSUG - ActionScript 3 vs Java by Christoph Pickl
JSUG - ActionScript 3 vs Java by Christoph PicklJSUG - ActionScript 3 vs Java by Christoph Pickl
JSUG - ActionScript 3 vs Java by Christoph Pickl
 
JSUG - AS3 vs Java by Christoph Pickl
JSUG - AS3 vs Java by Christoph PicklJSUG - AS3 vs Java by Christoph Pickl
JSUG - AS3 vs Java by Christoph Pickl
 
Django Testing
Django TestingDjango Testing
Django Testing
 
Managing And Optimizing Memory Usage
Managing And Optimizing Memory UsageManaging And Optimizing Memory Usage
Managing And Optimizing Memory Usage
 
MacRuby - When objective-c and Ruby meet
MacRuby - When objective-c and Ruby meetMacRuby - When objective-c and Ruby meet
MacRuby - When objective-c and Ruby meet
 
Scaling with Postgres
Scaling with PostgresScaling with Postgres
Scaling with Postgres
 
Intro To Git
Intro To GitIntro To Git
Intro To Git
 
Plone Testing Tools And Techniques
Plone Testing Tools And TechniquesPlone Testing Tools And Techniques
Plone Testing Tools And Techniques
 
Realtime 3D on the web - a toy or a useful tool?
Realtime 3D on the web - a toy or a useful tool?Realtime 3D on the web - a toy or a useful tool?
Realtime 3D on the web - a toy or a useful tool?
 
RSC Future of Technology in Education
RSC Future of Technology in EducationRSC Future of Technology in Education
RSC Future of Technology in Education
 
Developing Technology for Ratchet and Clank Future: Tools of Destruction
Developing Technology for Ratchet and Clank Future: Tools of DestructionDeveloping Technology for Ratchet and Clank Future: Tools of Destruction
Developing Technology for Ratchet and Clank Future: Tools of Destruction
 
intl me this, intl me that
intl me this, intl me thatintl me this, intl me that
intl me this, intl me that
 
Using Models To Ease The Start Up Of Automated
Using Models To Ease The Start Up Of AutomatedUsing Models To Ease The Start Up Of Automated
Using Models To Ease The Start Up Of Automated
 
Depot Best Practices
Depot Best PracticesDepot Best Practices
Depot Best Practices
 
Agile Planning
Agile PlanningAgile Planning
Agile Planning
 
Agile Planning
Agile PlanningAgile Planning
Agile Planning
 
Young Activists
Young ActivistsYoung Activists
Young Activists
 

Último

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 

Último (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 

Becoming Indie

  • 1. Becoming Indie A Professional Game Developer Change To The iPhone Noel Llopis Snappy Touch http://snappytouch.com Tuesday, March 3, 2009
  • 5. 1998: 12 people - 1 year Tuesday, March 3, 2009
  • 6. 1998 2001: 24 people - 2 years Tuesday, March 3, 2009
  • 7. 1998 2001 2005: 100 people 2.5 years Tuesday, March 3, 2009
  • 8. 1998 2001 2005 2008: 200 people 3 years Tuesday, March 3, 2009
  • 9. 1998 2001 My previous startup 2005 2008: 200 people 3 years Tuesday, March 3, 2009
  • 10. 1998 2001 My previous startup 2005 Now 2008: 200 people 3 years Tuesday, March 3, 2009
  • 13. Part I: What’s Inside? Tuesday, March 3, 2009
  • 15. Hardware Specs • CPU: 32-bit RISC ARM Tuesday, March 3, 2009
  • 16. Hardware Specs • CPU: 32-bit RISC ARM • Memory: 128 MB RAM Tuesday, March 3, 2009
  • 17. Hardware Specs • CPU: 32-bit RISC ARM • Memory: 128 MB RAM • Graphics: PowerVR MBX Lite Tuesday, March 3, 2009
  • 18. Hardware Specs • CPU: 32-bit RISC ARM • Memory: 128 MB RAM • Graphics: PowerVR MBX Lite • Extra features: Multi-touch screen, GPS, camera, accelerometer, WiFi, microphone. Tuesday, March 3, 2009
  • 20. Development Tools • XCode. Great IDE Tuesday, March 3, 2009
  • 21. Development Tools • XCode. Great IDE • Familiar tools: gcc, gdb Tuesday, March 3, 2009
  • 22. Development Tools • XCode. Great IDE • Familiar tools: gcc, gdb • Great performance and analysis tools: Instruments Tuesday, March 3, 2009
  • 23. Programming Language Most iPhone-related stuff in Objective C Tuesday, March 3, 2009
  • 24. Programming Language Most iPhone-related stuff in Objective C ... but you can write all C and C++ you want! Tuesday, March 3, 2009
  • 25. Programming language You can even write assembly if you want! void MyFunction() { // do some stuff int value = 57; asm volatile ( quot;mov %0, %0, ror #1quot; : quot;=rquot; (value) : quot;0quot; (value) ); } Tuesday, March 3, 2009
  • 27. Unit Testing • Any C/C++ unit-testing framework Tuesday, March 3, 2009
  • 28. Unit Testing • Any C/C++ unit-testing framework • Biased towards UnitTest++ of course (http://unittest-cpp.sourceforge.net/) Tuesday, March 3, 2009
  • 29. Unit Testing • Any C/C++ unit-testing framework • Biased towards UnitTest++ of course (http://unittest-cpp.sourceforge.net/) • How to get it to run as a postbuild step? Tuesday, March 3, 2009
  • 30. Unit Testing • Any C/C++ unit-testing framework • Biased towards UnitTest++ of course (http://unittest-cpp.sourceforge.net/) • How to get it to run as a postbuild step? • Google toolbox for Mac (http:// code.google.com/p/google-toolbox-for-mac/ wiki/iPhoneUnitTesting) Tuesday, March 3, 2009
  • 32. Unit Testing • Run script as part of build process. Tuesday, March 3, 2009
  • 33. Unit Testing • Run script as part of build process. • Build and you’re done. Tuesday, March 3, 2009
  • 34. Unit Testing • Run script as part of build process. • Build and you’re done. • Super fast in simulator. Tuesday, March 3, 2009
  • 36. Unit Testing • Also frameworks for Objective C: OCUnit, SenTestingKit Tuesday, March 3, 2009
  • 37. Unit Testing • Also frameworks for Objective C: OCUnit, SenTestingKit • I haven’t used them yet Tuesday, March 3, 2009
  • 38. Unit Testing • Also frameworks for Objective C: OCUnit, SenTestingKit • I haven’t used them yet • Some people modified UnitTest++ to work with Objective C Tuesday, March 3, 2009
  • 39. Unit Testing • Also frameworks for Objective C: OCUnit, SenTestingKit • I haven’t used them yet • Some people modified UnitTest++ to work with Objective C • Also mock frameworks: OCMock Tuesday, March 3, 2009
  • 41. Build Servers • Continuous integration was a key practice in large teams. Tuesday, March 3, 2009
  • 42. Build Servers • Continuous integration was a key practice in large teams. • Even with a one or two-man team it was extremely useful. Tuesday, March 3, 2009
  • 43. Build Servers • Continuous integration was a key practice in large teams. • Even with a one or two-man team it was extremely useful. • CruiseControl or Hudson Tuesday, March 3, 2009
  • 45. CPU • CPU: 32-bit RISC ARM Tuesday, March 3, 2009
  • 46. CPU • CPU: 32-bit RISC ARM • iPhone @ 412MHz Tuesday, March 3, 2009
  • 47. CPU • CPU: 32-bit RISC ARM • iPhone @ 412MHz • iPod Touch @ 535MHz Tuesday, March 3, 2009
  • 48. CPU • CPU: 32-bit RISC ARM • iPhone @ 412MHz • iPod Touch @ 535MHz • Can go as high as 620MHz Tuesday, March 3, 2009
  • 50. Floating Point • The main CPU has no floating point support. Tuesday, March 3, 2009
  • 51. Floating Point • The main CPU has no floating point support. • Compiled C/C++/OC code uses the vector floating point unit for any floating point operations. Tuesday, March 3, 2009
  • 53. Thumb Mode • CPU has a special thumb mode. Tuesday, March 3, 2009
  • 54. Thumb Mode • CPU has a special thumb mode. • Less memory, maybe better performance. Tuesday, March 3, 2009
  • 55. Thumb Mode • CPU has a special thumb mode. • Less memory, maybe better performance. • No floating point support. Tuesday, March 3, 2009
  • 56. Thumb Mode • CPU has a special thumb mode. • Less memory, maybe better performance. • No floating point support. • It’s on by default! Tuesday, March 3, 2009
  • 57. Thumb Mode • CPU has a special thumb mode. • Less memory, maybe better performance. • No floating point support. • It’s on by default! • Potentially HUGE wins turning it off. Tuesday, March 3, 2009
  • 58. Thumb Mode • CPU has a special thumb mode. • Less memory, maybe better performance. • No floating point support. • It’s on by default! • Potentially HUGE wins turning it off. Tuesday, March 3, 2009
  • 60. Floating Point • The VFP stands for “vector” Tuesday, March 3, 2009
  • 61. Floating Point • The VFP stands for “vector” • Work on up to four 32-bit floating point numbers at once. Tuesday, March 3, 2009
  • 62. Floating Point • The VFP stands for “vector” • Work on up to four 32-bit floating point numbers at once. • The compiler won’t help you though. Tuesday, March 3, 2009
  • 63. Floating Point • The VFP stands for “vector” • Work on up to four 32-bit floating point numbers at once. • The compiler won’t help you though. • See the vfpmath library in Google Code Tuesday, March 3, 2009
  • 65. Memory • 128 MB RAM Tuesday, March 3, 2009
  • 66. Memory • 128 MB RAM • 11 MB for video Tuesday, March 3, 2009
  • 67. Memory • 128 MB RAM • 11 MB for video • System can use most of the RAM! Tuesday, March 3, 2009
  • 68. Memory • 128 MB RAM • 11 MB for video • System can use most of the RAM! Video 11 Your app 15 OS 102 Tuesday, March 3, 2009
  • 70. Graphics • 320x480 resolution Tuesday, March 3, 2009
  • 71. Graphics • 320x480 resolution • OpenGL ES 1.1 API + a few extensions Tuesday, March 3, 2009
  • 72. Graphics • 320x480 resolution • OpenGL ES 1.1 API + a few extensions • OpenGL great for 3D but also 2D games with need for performance. Tuesday, March 3, 2009
  • 74. Graphics Hardware • PowerVR MBX Lite: Texturing and rasterization Tuesday, March 3, 2009
  • 75. Graphics Hardware • PowerVR MBX Lite: Texturing and rasterization • PowerVR VGP Lite: Vertex processing. Tuesday, March 3, 2009
  • 76. Graphics Hardware • PowerVR MBX Lite: Texturing and rasterization • PowerVR VGP Lite: Vertex processing. • No shaders! Tuesday, March 3, 2009
  • 77. Graphics Hardware • PowerVR MBX Lite: Texturing and rasterization • PowerVR VGP Lite: Vertex processing. • No shaders! • Tile-based Tuesday, March 3, 2009
  • 79. Graphics Hardware • Triangles per second: 500K/sec (16K polys per frame at 30fps) Tuesday, March 3, 2009
  • 80. Graphics Hardware • Triangles per second: 500K/sec (16K polys per frame at 30fps) • Fill rate: 25 million pixel per second (5.4 screen redraws per frame at 30fps) Tuesday, March 3, 2009
  • 82. OpenGL ES Extensions • Frame buffer objects Tuesday, March 3, 2009
  • 83. OpenGL ES Extensions • Frame buffer objects • Memory mapped vertex buffers Tuesday, March 3, 2009
  • 84. OpenGL ES Extensions • Frame buffer objects • Memory mapped vertex buffers • Point sprites Tuesday, March 3, 2009
  • 85. OpenGL ES Extensions • Frame buffer objects • Memory mapped vertex buffers • Point sprites • PVRTC texture format Tuesday, March 3, 2009
  • 86. OpenGL ES Extensions • Frame buffer objects 1 #define GL_EXT_texture_filter_anisotropic 1 #define GL_EXT_texture_lod_bias #define GL_IMG_read_format 1 • 1 #define GL_IMG_texture_compression_pvrtc Memory mapped vertex 1 #define GL_IMG_texture_format_BGRA8888 buffers 1 #define GL_OES_blend_subtract 1 #define GL_OES_depth24 #define GL_OES_framebuffer_object 1 • Point sprites 1 #define GL_OES_mapbuffer 1 #define GL_OES_rgb8_rgba8 1 #define GL_OES_texture_mirrored_repeat • PVRTC texture format Tuesday, March 3, 2009
  • 88. Texture Combiners • Two texture units Tuesday, March 3, 2009
  • 89. Texture Combiners • Two texture units • Multi-texturing Tuesday, March 3, 2009
  • 90. Texture Combiners • Two texture units • Multi-texturing • Per-pixel lighting Tuesday, March 3, 2009
  • 91. Texture Combiners • Two texture units • Multi-texturing • Per-pixel lighting • Many interesting effects Tuesday, March 3, 2009
  • 92. OpenGL And UIKit Tuesday, March 3, 2009
  • 93. OpenGL And UIKit • They mix, but not perfectly Tuesday, March 3, 2009
  • 94. OpenGL And UIKit • They mix, but not perfectly • UIKit on top of OpenGL can cause performance issues Tuesday, March 3, 2009
  • 95. OpenGL And UIKit • They mix, but not perfectly • UIKit on top of OpenGL can cause performance issues • Can have OpenGL views in a regular app Tuesday, March 3, 2009
  • 96. OpenGL And UIKit • They mix, but not perfectly • UIKit on top of OpenGL can cause performance issues • Can have OpenGL views in a regular app • Multiple OpenGL views possible too. Tuesday, March 3, 2009
  • 97. OpenGL And UIKit • They mix, but not perfectly • UIKit on top of OpenGL can cause performance issues • Can have OpenGL views in a regular app • Multiple OpenGL views possible too. Tuesday, March 3, 2009
  • 99. Audio • Several APIs: OpenAL, Audio Sessions, or AVAudioPlayer (2.2 SDK) Tuesday, March 3, 2009
  • 100. Audio • Several APIs: OpenAL, Audio Sessions, or AVAudioPlayer (2.2 SDK) • Custom music is huge. Let people play their tunes. Tuesday, March 3, 2009
  • 105. Why We iPhone PSN Flash PC Consoles Phones iPhone XBLA Short timeframes x ? x x Small budgets x ? x x Unified platform x x x x Powerful hardware ? x x x Great tools x x x x x Large audience x x x x x Easy payments x x x Direct access to users x x x Development access x x x Tuesday, March 3, 2009
  • 107. Part II: Developing Games Tuesday, March 3, 2009
  • 109. Asset Pipeline • Huge deal in large teams Tuesday, March 3, 2009
  • 110. Asset Pipeline • Huge deal in large teams • Not as much of a big deal for a single developer (or small team) Tuesday, March 3, 2009
  • 111. Asset Pipeline • Huge deal in large teams • Not as much of a big deal for a single developer (or small team) • Put whatever assets in XCode and let it bundle it with the rest of the app. Tuesday, March 3, 2009
  • 113. Asset Pipeline • If you have some dedicated artists, or especially contractors, they need to run XCode to see new content. Tuesday, March 3, 2009
  • 114. Asset Pipeline • If you have some dedicated artists, or especially contractors, they need to run XCode to see new content. • Set up a small web server locally (simple python script) and have the app try to load from there first. Tuesday, March 3, 2009
  • 116. Baking resources • You want to bake resources to their final format for fast load times. Tuesday, March 3, 2009
  • 117. Baking resources • You want to bake resources to their final format for fast load times. • Textures: texturetool Tuesday, March 3, 2009
  • 118. Baking resources • You want to bake resources to their final format for fast load times. • Textures: texturetool • Sound: afconvert Tuesday, March 3, 2009
  • 119. Baking resources • You want to bake resources to their final format for fast load times. • Textures: texturetool • Sound: afconvert • 3D models:You’re on your own Tuesday, March 3, 2009
  • 121. Assets • iPhone games have much smaller asset sizes than current PC/console games. Tuesday, March 3, 2009
  • 122. Assets • iPhone games have much smaller asset sizes than current PC/console games. • Most iPhone games are under 30MB. DVD- based games fill up all 8GB. Tuesday, March 3, 2009
  • 123. Assets • iPhone games have much smaller asset sizes than current PC/console games. • Most iPhone games are under 30MB. DVD- based games fill up all 8GB. • Source assets probably add up to 200-300MB. Makes asset management and version control a lot simpler. Tuesday, March 3, 2009
  • 125. Data-Driven Games • AAA games with huge teams are almost fully data driven. Tuesday, March 3, 2009
  • 126. Data-Driven Games • AAA games with huge teams are almost fully data driven. • HUGE amount of overhead in terms of performance, work, and complexity! Tuesday, March 3, 2009
  • 127. Data-Driven Games • AAA games with huge teams are almost fully data driven. • HUGE amount of overhead in terms of performance, work, and complexity! • Makes sense with 30 programmers and 150 content creators. Tuesday, March 3, 2009
  • 130. Data-Driven Games • With small iPhone games, not so much. Tuesday, March 3, 2009
  • 131. Data-Driven Games • With small iPhone games, not so much. • Fast build times, so changing data is easy. Tuesday, March 3, 2009
  • 132. Data-Driven Games • With small iPhone games, not so much. • Fast build times, so changing data is easy. • Expose assets, simple variables, level layout. Tuesday, March 3, 2009
  • 135. More Than Programming Tuesday, March 3, 2009
  • 136. More Than Programming • Programming is only part of it.You wear many hats! Tuesday, March 3, 2009
  • 137. More Than Programming • Programming is only part of it.You wear many hats! • Designer, of course but also... Tuesday, March 3, 2009
  • 138. More Than Programming • Programming is only part of it.You wear many hats! • Designer, of course but also... • Public relations, producer, testing coordinator, contractor manager, content creator, web developer, video editor, etc, etc. Tuesday, March 3, 2009
  • 140. Content Creation • Most projects need multiple people for content creation: UI elements, textures, models, animations, audio. Tuesday, March 3, 2009
  • 141. Content Creation • Most projects need multiple people for content creation: UI elements, textures, models, animations, audio. • Contracting works well for some of the content. Tuesday, March 3, 2009
  • 144. PR • Creating a great app is half the battle. Tuesday, March 3, 2009
  • 145. PR • Creating a great app is half the battle. • PR is the other half. Tuesday, March 3, 2009
  • 146. PR • Creating a great app is half the battle. • PR is the other half. • Extremely time consuming and hard to do effectively. Tuesday, March 3, 2009
  • 147. PR • Creating a great app is half the battle. • PR is the other half. • Extremely time consuming and hard to do effectively. • Build grass-roots support. Add viral components to your app. Tuesday, March 3, 2009
  • 148. PR • Creating a great app is half the battle. • PR is the other half. • Extremely time consuming and hard to do effectively. • Build grass-roots support. Add viral components to your app. • Good reason to use a publisher. Tuesday, March 3, 2009
  • 149. Part III: The Future Tuesday, March 3, 2009
  • 155. • The big guys are coming to play. Tuesday, March 3, 2009
  • 156. • The big guys are coming to play. • They’ll be able to throw many more resources and make a difference. Tuesday, March 3, 2009
  • 158. • Rumours of a premium App Store area. Tuesday, March 3, 2009
  • 159. • Rumours of a premium App Store area. • Big companies + big games = Bigger price tags Tuesday, March 3, 2009
  • 160. • Rumours of a premium App Store area. • Big companies + big games = Bigger price tags • What will it mean for us indies? Tuesday, March 3, 2009
  • 162. 15+ million iPhones and growing Tuesday, March 3, 2009
  • 166. Questions? Noel Llopis noel@snappytouch.com Snappy Touch Tuesday, March 3, 2009
  • 167. Questions? Slides will be available from my blog Games from Within (http://gamesfromwithin.com) Noel Llopis noel@snappytouch.com Snappy Touch Tuesday, March 3, 2009

Notas del editor

  1. Show of hands: - How many are making games on the iPhone now? - How many have done games on other platforms before? This is about Games -> iPhone for iPhone developers. I’ll be giving the opposite talk at GDC
  2. Different background than many people. Over 10 years in the games industry Small companies, large companies Lots of games and platforms. This is my second startup.
  3. Different background than many people. Over 10 years in the games industry Small companies, large companies Lots of games and platforms. This is my second startup.
  4. Different background than many people. Over 10 years in the games industry Small companies, large companies Lots of games and platforms. This is my second startup.
  5. Different background than many people. Over 10 years in the games industry Small companies, large companies Lots of games and platforms. This is my second startup.
  6. Different background than many people. Over 10 years in the games industry Small companies, large companies Lots of games and platforms. This is my second startup.
  7. Different background than many people. Over 10 years in the games industry Small companies, large companies Lots of games and platforms. This is my second startup.
  8. Different background than many people. Over 10 years in the games industry Small companies, large companies Lots of games and platforms. This is my second startup.
  9. Different background than many people. Over 10 years in the games industry Small companies, large companies Lots of games and platforms. This is my second startup.
  10. Different background than many people. Over 10 years in the games industry Small companies, large companies Lots of games and platforms. This is my second startup.
  11. Different background than many people. Over 10 years in the games industry Small companies, large companies Lots of games and platforms. This is my second startup.
  12. Team sizes over time When I started, a team was 5-8 people. Towards the end 200+ people.
  13. Two years ago I quit and started my own, two-person company to make downloadable console games.
  14. Two years ago I quit and started my own, two-person company to make downloadable console games.
  15. What am I doing now?
  16. Game developers want to know hardware specs right away Hardware specs seem great, but where are they? Apple not very open
  17. iPhone games so far are about content, not tech. Nice change!
  18. iPhone games so far are about content, not tech. Nice change!
  19. iPhone games so far are about content, not tech. Nice change!
  20. iPhone games so far are about content, not tech. Nice change!
  21. This is one of the keys of the success of games in the iPhone. Imagine if all you could do was to write web apps with Javascript!
  22. This is one of the keys of the success of games in the iPhone. Imagine if all you could do was to write web apps with Javascript!
  23. UnitTest++ was designed with consoles and limited hardware in mind. Perfect fit for iPhone!
  24. UnitTest++ was designed with consoles and limited hardware in mind. Perfect fit for iPhone!
  25. UnitTest++ was designed with consoles and limited hardware in mind. Perfect fit for iPhone!
  26. UnitTest++ was designed with consoles and limited hardware in mind. Perfect fit for iPhone!
  27. I have to admit I never got around to setting it up for my current project. Too busy and not enough hardware. I regret not doing it though. First thing in my next project.
  28. I have to admit I never got around to setting it up for my current project. Too busy and not enough hardware. I regret not doing it though. First thing in my next project.
  29. I have to admit I never got around to setting it up for my current project. Too busy and not enough hardware. I regret not doing it though. First thing in my next project.
  30. I’m doing heavy fp math, so I went from 15 to 39fps!
  31. I’m doing heavy fp math, so I went from 15 to 39fps!
  32. I’m doing heavy fp math, so I went from 15 to 39fps!
  33. I’m doing heavy fp math, so I went from 15 to 39fps!
  34. I’m doing heavy fp math, so I went from 15 to 39fps!
  35. I’m doing heavy fp math, so I went from 15 to 39fps!
  36. I’m doing heavy fp math, so I went from 15 to 39fps!
  37. That’s Dapple by the way. Great game! :-)
  38. That’s Dapple by the way. Great game! :-)
  39. That’s Dapple by the way. Great game! :-)
  40. Takes a lot getting used to fixed-function pipeline again!
  41. Takes a lot getting used to fixed-function pipeline again!
  42. Takes a lot getting used to fixed-function pipeline again!
  43. Takes a lot getting used to fixed-function pipeline again!
  44. That’s from the glext.h header file
  45. That’s from the glext.h header file
  46. That’s from the glext.h header file
  47. That’s from the glext.h header file
  48. That’s from the glext.h header file
  49. That’s an example of a UIKit button on top of an OpenGL app
  50. That’s an example of a UIKit button on top of an OpenGL app
  51. That’s an example of a UIKit button on top of an OpenGL app
  52. That’s an example of a UIKit button on top of an OpenGL app
  53. That’s an example of a UIKit button on top of an OpenGL app
  54. It is, in fact, very close to a Dreamcast in power and hardware, but with more memory.
  55. It is, in fact, very close to a Dreamcast in power and hardware, but with more memory.
  56. It is, in fact, very close to a Dreamcast in power and hardware, but with more memory.
  57. It is, in fact, very close to a Dreamcast in power and hardware, but with more memory.
  58. It is, in fact, very close to a Dreamcast in power and hardware, but with more memory.
  59. It is, in fact, very close to a Dreamcast in power and hardware, but with more memory.
  60. It is, in fact, very close to a Dreamcast in power and hardware, but with more memory.
  61. It is, in fact, very close to a Dreamcast in power and hardware, but with more memory.
  62. It is, in fact, very close to a Dreamcast in power and hardware, but with more memory.
  63. It is, in fact, very close to a Dreamcast in power and hardware, but with more memory.
  64. Small budgets is a good reason to stay self-funded and avoid publisher money
  65. App Store!! Great access to customers (PC does not have a focal point for payment and ads, consoles have very restrictive approval process and far removed from final customer)
  66. Explain what I mean by asset pipeline
  67. Explain what I mean by asset pipeline
  68. Explain what I mean by asset pipeline
  69. I’m working with an artist and I would give him ad-hoc builds with new content. Very slow! Now running XCode
  70. I’m working with an artist and I would give him ad-hoc builds with new content. Very slow! Now running XCode
  71. This is a small piece of game logic using Unreal Kismet
  72. This is something I learned the hard way in my last startup :-)
  73. This is something I learned the hard way in my last startup :-)
  74. This is something I learned the hard way in my last startup :-)
  75. Flower Garden is a bit different because it’s mostly procedurally generated
  76. Flower Garden is a bit different because it’s mostly procedurally generated
  77. An issue tracking system is huge for managing contractors. Trac is very useful and simple to install Doubles as bug system
  78. Getting noticed is getting harder and harder. It’s only going to get worse An improved App Store would help
  79. Right now it’s a race to 99c. I don’t think that’s going to be that way in the future. Tide is starting to turn with developers foregoing the chance of getting in the top 100
  80. Pretty cool graphics, uh? They are from a game on the Dreamcast, which is on part with the iPhone. Notice a difference? Lots of room for improvement.
  81. This has already happened with XBLA and PSN
  82. This has already happened with XBLA and PSN
  83. Here’s another parameter: Userbase is huge and continues to grow So things may even out for indies It probably means no more iShoot-like games in the top for a while. We’ll be able to make a living, but not hit it big.
  84. Flash might be coming to the iPhone? Does it mean that Flash-like quality games in the App Store are over?