SlideShare a Scribd company logo
1 of 30
Download to read offline
Davide Coppola
                                                                                        Lowpoly Studios
  Multi-platform indie game development


All logos , images and trademarks are the property of the respective trademark owners

                                   Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
Intro: the speaker

   Graduated in Computer Science at Federico II (Naples, IT) - 2008
   Master thesis was a GPGPU project about creation and erosion of heightmaps
   Coder for Curve Studios (London, UK) - 2008-2010
   Started Lowpoly Studios working in his spare time (most of it) - 2009
   Got crazy and decided to work full-time as Lowpoly Studios – 2010
   Took part in Codemotion as speaker - 2011

                                      Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
Intro: the company

   Started in London in 2009
   Main project still under development: The Undergrounder
   Made some experiments using Flash
   Created Flash games portal www.AskFlashGames.com
   Developing a secret project for the mobile market



                                      Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
Intro: the talk

                    Part 1                                           Part 2
   Indie gamedev                           Example: The Undergrounder
   Philosophical marketing                 Working environment
   Commercial solutions                    Libraries and Frameworks
   Free/Open Source solutions              Managing the code
   Custom solutions                        Future

                                  Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
Indie Gamedev
           INDIE = UNSTABLE




                Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
Indie Gamedev
           INDIE = UNSTABLE




                Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
Why developing multi-platform?

   More distribution channels
   Pretty simple from a technical point of view
   Pretty cheap (working for the desktop market)
   Why not?




                                       Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
Why developing for Mac OS X?

In the 2009 the Mac market was a niche market, then...




                         Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
Why developing for Linux?

   Niche market
   Catalyst for different markets
   Full availability of tool/framework
   More dedicated website
   Supporting the rising of the platform



                                          Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
Commercial solutions

   Engines: Torque, Unigine, Unity, …
   Professional products
   Documentation not always perfect
   High costs not affordable for all
   Controlled by productors and licenses



                                         Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
free/Open Source solutions

   2D engines: Allegro, Clanib, Love, ...
   3D engines: Crystal Space, Irrlitch, Ogre 3D, Panda 3D, …
   Multi-platform (desktop)
   Mostly oriented to rendering
   Long development times
   No commercial support

                                         Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
Custom solutions

   Made with your project in mind, so flexible
   No needs to learn new (third-party) thechnologies
   No fixed costs
   Less dependent on third party technologies
   Give you more experience
   Developing proprietary technology

                                        Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
Proposed solution

   Follows the Custom model
   C++ code
   Multi-platform: Windows, Mac, Linux
   Based on free/Open Source frameworks and libraries
   Custom, but be flexible...



                                     Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
A real example




      http://www.the-undergrounder.com



                     Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
Hardware

   Linux and Windows: PC
   Mac Os X: Mac mini
   Mac + Bootcamp?
   Virtualization: Virtual Box, Vmware, etc...?
   Optional: laptop and netbook



                                        Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
Multi-platform working environment

   Code::Blocks                    Eclipse CDT                                   Qt Creator



http://www.codeblocks.org      http://www.eclipse.org/cdt/                      http://qt.nokia.com




                                        Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
Working environment on Linux

    Kdevelop                                              SCONS


http://www.kdevelop.org                             http://www.scons.org




                          Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
Working environment on Mac

                          Xcode



   http://developer.apple.com/technologies/tools/xcode.html




                          Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
Working environment on Windows
                                                                            MinGW
     Visual Studio Express

                                                                      http://www.mingw.org



http://www.microsoft.com/express/Windows/                                   Cygwin


                                                                     http://www.cygwin.com

                                            Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
Managing multi-platform code

   Some low level code may depend on the specific platform
   Compile different files for each platform
   Use pre-processor directives
                         void FrameTimer::Start()
                         {
                             m_fElapsed = 0.f;

                         #ifdef WIN32
                             QueryPerformanceCounter(&m_T1);
                         #else
                             gettimeofday(&m_TV1, NULL);
                         #endif
                         }


                                       Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
Coding for Windows

   No changes needed when using MinGW + Cygwyn
   Some changes to low level system code when using VisualC++
   Examples available on UNIX Application Migration Guide:
                     http://msdn.microsoft.com/en-us/library/ms811903.aspx




                                           Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
Coding for Mac Os X

   Mac Os X follows the POSIX standard
   Only difference: path of the .h files used by the frameworks
                             #ifdef MAC
                                 #include "OpenAL/al.h"
                                 #include "OpenAL/alc.h"
                             #else
                                 #include "AL/al.h"
                                 #include "AL/alc.h"
                             #endif




                                       Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
Base code




http://www.libsdl.org                            http://www.sfml-dev.org




                        Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
Graphics




           http://www.opengl.org




                 Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
Audio




        http://connect.creativelabs.com/openal/




                       Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
Fisica
                Box2D


          http://www.box2d.org


             Chipmunk                                                   http://bulletphysics.org




http://code.google.com/p/chipmunk-physics/

                                             Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
Tools

   Gimp (2D bitmap graphics) - http://www.gimp.org/
   Inkscape (2D vector graphics) - http://inkscape.org/
   Blender (3D graphics) - http://www.blender.org/
   Audacity (audio editing) - http://audacity.sourceforge.net/
   Kdenlive (video editing, Linux e Mac)- http://www.kdenlive.org/
   Virtualdub (video editing, Windows)- http://www.virtualdub.org/

                                        Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
The future




http://www.w3.org/html/                        http://www.khronos.org/webgl/




                          Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
Contacts




                               http://www.lowpoly-studios.com



http://www.facebook.com/LowpolyStudios                       http://twitter.com/LowpolyStudios
  http://www.facebook.com/m3xican                                http://twitter.com/vivaladav



                                          Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
Questions?




             Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios

More Related Content

Similar to Multi-platform indie game development

Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1benDesigning
 
ODROID Magazine January 2015
ODROID Magazine January 2015ODROID Magazine January 2015
ODROID Magazine January 2015Nanik Tolaram
 
Dublin Unity User Group Meetup Sept 2015
Dublin Unity User Group Meetup Sept 2015Dublin Unity User Group Meetup Sept 2015
Dublin Unity User Group Meetup Sept 2015Dominique Boutin
 
OpenY: Scaling and Sharing with Custom Drupal Distribution
OpenY: Scaling and Sharing with Custom Drupal DistributionOpenY: Scaling and Sharing with Custom Drupal Distribution
OpenY: Scaling and Sharing with Custom Drupal DistributionDrupalCamp Kyiv
 
ITB2019 CommandBox vs Node.js - Nolan Erck
ITB2019  CommandBox vs Node.js - Nolan ErckITB2019  CommandBox vs Node.js - Nolan Erck
ITB2019 CommandBox vs Node.js - Nolan ErckOrtus Solutions, Corp
 
ODROID Magazine April 2014
ODROID Magazine April 2014ODROID Magazine April 2014
ODROID Magazine April 2014Nanik Tolaram
 
Minko - Scripting 3D apps with Lua and C++
Minko - Scripting 3D apps with Lua and C++Minko - Scripting 3D apps with Lua and C++
Minko - Scripting 3D apps with Lua and C++Minko3D
 
DevOps for Design - Using Figmagic to support continuous design
DevOps for Design - Using Figmagic to support continuous designDevOps for Design - Using Figmagic to support continuous design
DevOps for Design - Using Figmagic to support continuous designMikael Vesavuori
 
Run your Java apps on Cloud Foundry
Run your Java apps on Cloud FoundryRun your Java apps on Cloud Foundry
Run your Java apps on Cloud FoundryAndy Piper
 
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)jaxLondonConference
 
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.FormsBienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.FormsVicente Gerardo Guzman Lucio
 
Android design lecture #1
Android design   lecture #1Android design   lecture #1
Android design lecture #1Vitali Pekelis
 
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learnedBuilding an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learnedWojciech Koszek
 
State ofappdevelopment
State ofappdevelopmentState ofappdevelopment
State ofappdevelopmentgillygize
 
Introduction to Cross Platform Development with Xamarin/ Visual Studio
Introduction to Cross Platform Development with Xamarin/ Visual StudioIntroduction to Cross Platform Development with Xamarin/ Visual Studio
Introduction to Cross Platform Development with Xamarin/ Visual StudioIndyMobileNetDev
 
Alessandro Binhara - Presentación en la Convención Internacional de Interoper...
Alessandro Binhara - Presentación en la Convención Internacional de Interoper...Alessandro Binhara - Presentación en la Convención Internacional de Interoper...
Alessandro Binhara - Presentación en la Convención Internacional de Interoper...Asociación Ecuatoriana de Software AESOFT
 
Cross-Platform Mobile Development in Visual Studio
Cross-Platform Mobile Development in Visual StudioCross-Platform Mobile Development in Visual Studio
Cross-Platform Mobile Development in Visual Studiobryan costanich
 
Interopability with Suse Linux: MoonLight Project
Interopability with Suse Linux: MoonLight Project Interopability with Suse Linux: MoonLight Project
Interopability with Suse Linux: MoonLight Project Alessandro Binhara
 
Mobile apps on the big screen
Mobile apps on the big screenMobile apps on the big screen
Mobile apps on the big screenHeinrich Seeger
 
Cordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirstCordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirstRaymond Camden
 

Similar to Multi-platform indie game development (20)

Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1
 
ODROID Magazine January 2015
ODROID Magazine January 2015ODROID Magazine January 2015
ODROID Magazine January 2015
 
Dublin Unity User Group Meetup Sept 2015
Dublin Unity User Group Meetup Sept 2015Dublin Unity User Group Meetup Sept 2015
Dublin Unity User Group Meetup Sept 2015
 
OpenY: Scaling and Sharing with Custom Drupal Distribution
OpenY: Scaling and Sharing with Custom Drupal DistributionOpenY: Scaling and Sharing with Custom Drupal Distribution
OpenY: Scaling and Sharing with Custom Drupal Distribution
 
ITB2019 CommandBox vs Node.js - Nolan Erck
ITB2019  CommandBox vs Node.js - Nolan ErckITB2019  CommandBox vs Node.js - Nolan Erck
ITB2019 CommandBox vs Node.js - Nolan Erck
 
ODROID Magazine April 2014
ODROID Magazine April 2014ODROID Magazine April 2014
ODROID Magazine April 2014
 
Minko - Scripting 3D apps with Lua and C++
Minko - Scripting 3D apps with Lua and C++Minko - Scripting 3D apps with Lua and C++
Minko - Scripting 3D apps with Lua and C++
 
DevOps for Design - Using Figmagic to support continuous design
DevOps for Design - Using Figmagic to support continuous designDevOps for Design - Using Figmagic to support continuous design
DevOps for Design - Using Figmagic to support continuous design
 
Run your Java apps on Cloud Foundry
Run your Java apps on Cloud FoundryRun your Java apps on Cloud Foundry
Run your Java apps on Cloud Foundry
 
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
 
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.FormsBienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
 
Android design lecture #1
Android design   lecture #1Android design   lecture #1
Android design lecture #1
 
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learnedBuilding an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learned
 
State ofappdevelopment
State ofappdevelopmentState ofappdevelopment
State ofappdevelopment
 
Introduction to Cross Platform Development with Xamarin/ Visual Studio
Introduction to Cross Platform Development with Xamarin/ Visual StudioIntroduction to Cross Platform Development with Xamarin/ Visual Studio
Introduction to Cross Platform Development with Xamarin/ Visual Studio
 
Alessandro Binhara - Presentación en la Convención Internacional de Interoper...
Alessandro Binhara - Presentación en la Convención Internacional de Interoper...Alessandro Binhara - Presentación en la Convención Internacional de Interoper...
Alessandro Binhara - Presentación en la Convención Internacional de Interoper...
 
Cross-Platform Mobile Development in Visual Studio
Cross-Platform Mobile Development in Visual StudioCross-Platform Mobile Development in Visual Studio
Cross-Platform Mobile Development in Visual Studio
 
Interopability with Suse Linux: MoonLight Project
Interopability with Suse Linux: MoonLight Project Interopability with Suse Linux: MoonLight Project
Interopability with Suse Linux: MoonLight Project
 
Mobile apps on the big screen
Mobile apps on the big screenMobile apps on the big screen
Mobile apps on the big screen
 
Cordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirstCordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirst
 

Recently uploaded

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
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
 
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
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
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
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 

Recently uploaded (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
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?
 
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...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
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
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 

Multi-platform indie game development

  • 1. Davide Coppola Lowpoly Studios Multi-platform indie game development All logos , images and trademarks are the property of the respective trademark owners Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  • 2. Intro: the speaker  Graduated in Computer Science at Federico II (Naples, IT) - 2008  Master thesis was a GPGPU project about creation and erosion of heightmaps  Coder for Curve Studios (London, UK) - 2008-2010  Started Lowpoly Studios working in his spare time (most of it) - 2009  Got crazy and decided to work full-time as Lowpoly Studios – 2010  Took part in Codemotion as speaker - 2011 Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  • 3. Intro: the company  Started in London in 2009  Main project still under development: The Undergrounder  Made some experiments using Flash  Created Flash games portal www.AskFlashGames.com  Developing a secret project for the mobile market Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  • 4. Intro: the talk Part 1 Part 2  Indie gamedev  Example: The Undergrounder  Philosophical marketing  Working environment  Commercial solutions  Libraries and Frameworks  Free/Open Source solutions  Managing the code  Custom solutions  Future Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  • 5. Indie Gamedev INDIE = UNSTABLE Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  • 6. Indie Gamedev INDIE = UNSTABLE Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  • 7. Why developing multi-platform?  More distribution channels  Pretty simple from a technical point of view  Pretty cheap (working for the desktop market)  Why not? Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  • 8. Why developing for Mac OS X? In the 2009 the Mac market was a niche market, then... Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  • 9. Why developing for Linux?  Niche market  Catalyst for different markets  Full availability of tool/framework  More dedicated website  Supporting the rising of the platform Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  • 10. Commercial solutions  Engines: Torque, Unigine, Unity, …  Professional products  Documentation not always perfect  High costs not affordable for all  Controlled by productors and licenses Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  • 11. free/Open Source solutions  2D engines: Allegro, Clanib, Love, ...  3D engines: Crystal Space, Irrlitch, Ogre 3D, Panda 3D, …  Multi-platform (desktop)  Mostly oriented to rendering  Long development times  No commercial support Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  • 12. Custom solutions  Made with your project in mind, so flexible  No needs to learn new (third-party) thechnologies  No fixed costs  Less dependent on third party technologies  Give you more experience  Developing proprietary technology Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  • 13. Proposed solution  Follows the Custom model  C++ code  Multi-platform: Windows, Mac, Linux  Based on free/Open Source frameworks and libraries  Custom, but be flexible... Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  • 14. A real example http://www.the-undergrounder.com Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  • 15. Hardware  Linux and Windows: PC  Mac Os X: Mac mini  Mac + Bootcamp?  Virtualization: Virtual Box, Vmware, etc...?  Optional: laptop and netbook Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  • 16. Multi-platform working environment Code::Blocks Eclipse CDT Qt Creator http://www.codeblocks.org http://www.eclipse.org/cdt/ http://qt.nokia.com Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  • 17. Working environment on Linux Kdevelop SCONS http://www.kdevelop.org http://www.scons.org Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  • 18. Working environment on Mac Xcode http://developer.apple.com/technologies/tools/xcode.html Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  • 19. Working environment on Windows MinGW Visual Studio Express http://www.mingw.org http://www.microsoft.com/express/Windows/ Cygwin http://www.cygwin.com Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  • 20. Managing multi-platform code  Some low level code may depend on the specific platform  Compile different files for each platform  Use pre-processor directives void FrameTimer::Start() { m_fElapsed = 0.f; #ifdef WIN32 QueryPerformanceCounter(&m_T1); #else gettimeofday(&m_TV1, NULL); #endif } Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  • 21. Coding for Windows  No changes needed when using MinGW + Cygwyn  Some changes to low level system code when using VisualC++  Examples available on UNIX Application Migration Guide: http://msdn.microsoft.com/en-us/library/ms811903.aspx Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  • 22. Coding for Mac Os X  Mac Os X follows the POSIX standard  Only difference: path of the .h files used by the frameworks #ifdef MAC #include "OpenAL/al.h" #include "OpenAL/alc.h" #else #include "AL/al.h" #include "AL/alc.h" #endif Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  • 23. Base code http://www.libsdl.org http://www.sfml-dev.org Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  • 24. Graphics http://www.opengl.org Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  • 25. Audio http://connect.creativelabs.com/openal/ Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  • 26. Fisica Box2D http://www.box2d.org Chipmunk http://bulletphysics.org http://code.google.com/p/chipmunk-physics/ Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  • 27. Tools  Gimp (2D bitmap graphics) - http://www.gimp.org/  Inkscape (2D vector graphics) - http://inkscape.org/  Blender (3D graphics) - http://www.blender.org/  Audacity (audio editing) - http://audacity.sourceforge.net/  Kdenlive (video editing, Linux e Mac)- http://www.kdenlive.org/  Virtualdub (video editing, Windows)- http://www.virtualdub.org/ Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  • 28. The future http://www.w3.org/html/ http://www.khronos.org/webgl/ Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  • 29. Contacts http://www.lowpoly-studios.com http://www.facebook.com/LowpolyStudios http://twitter.com/LowpolyStudios http://www.facebook.com/m3xican http://twitter.com/vivaladav Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  • 30. Questions? Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios