Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Multi-platform indie game development

3,800 views

Published on

presentation about indie game development using free and opensource tools I made for the Codemotion 2011.

The ODP file is available in English and Italian on our website: http://www.lowpoly-studios.com

Published in: Technology
  • Be the first to comment

Multi-platform indie game development

  1. 1. Davide Coppola Lowpoly Studios Multi-platform indie game developmentAll logos , images and trademarks are the property of the respective trademark owners Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  2. 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. 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. 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. 5. Indie Gamedev INDIE = UNSTABLE Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  6. 6. Indie Gamedev INDIE = UNSTABLE Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  7. 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. 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. 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. 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. 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. 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. 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. 14. A real example http://www.the-undergrounder.com Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  15. 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. 16. Multi-platform working environment Code::Blocks Eclipse CDT Qt Creatorhttp://www.codeblocks.org http://www.eclipse.org/cdt/ http://qt.nokia.com Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  17. 17. Working environment on Linux Kdevelop SCONShttp://www.kdevelop.org http://www.scons.org Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  18. 18. Working environment on Mac Xcode http://developer.apple.com/technologies/tools/xcode.html Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  19. 19. Working environment on Windows MinGW Visual Studio Express http://www.mingw.orghttp://www.microsoft.com/express/Windows/ Cygwin http://www.cygwin.com Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  20. 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. 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. 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. 23. Base codehttp://www.libsdl.org http://www.sfml-dev.org Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  24. 24. Graphics http://www.opengl.org Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  25. 25. Audio http://connect.creativelabs.com/openal/ Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  26. 26. Fisica Box2D http://www.box2d.org Chipmunk http://bulletphysics.orghttp://code.google.com/p/chipmunk-physics/ Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  27. 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. 28. The futurehttp://www.w3.org/html/ http://www.khronos.org/webgl/ Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios
  29. 29. Contacts http://www.lowpoly-studios.comhttp://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. 30. Questions? Davide Coppola – davide.coppola@lowpoly-studios.com – Lowpoly Studios

×