Multi-platform indie game development
-
Upload
davide-coppola -
Category
Technology
-
view
3.413 -
download
0
description
Transcript of Multi-platform indie game development
Davide Coppola – [email protected] – Lowpoly Studios
Multi-platform indie game development
Davide Coppola
Lowpoly Studios
All logos , images and trademarks are the property of the respective trademark owners
Davide Coppola – [email protected] – 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 – [email protected] – 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 – [email protected] – Lowpoly Studios
Intro: the talk
Part 1 Indie gamedev Philosophical marketing Commercial solutions Free/Open Source solutions Custom solutions
Part 2 Example: The Undergrounder Working environment Libraries and Frameworks Managing the code Future
Davide Coppola – [email protected] – 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 – [email protected] – Lowpoly Studios
Why developing for Mac OS X?
In the 2009 the Mac market was a niche market, then...
Davide Coppola – [email protected] – 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 – [email protected] – 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 – [email protected] – 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 – [email protected] – 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 – [email protected] – 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 – [email protected] – Lowpoly Studios
A real example
http://www.the-undergrounder.com
Davide Coppola – [email protected] – 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 – [email protected] – Lowpoly Studios
Multi-platform working environment
Eclipse CDT Qt Creator
http://www.codeblocks.org http://qt.nokia.comhttp://www.eclipse.org/cdt/
Code::Blocks
Davide Coppola – [email protected] – Lowpoly Studios
Working environment on Linux
Kdevelop
http://www.kdevelop.org
SCONS
http://www.scons.org
Davide Coppola – [email protected] – Lowpoly Studios
Working environment on Mac
Xcode
http://developer.apple.com/technologies/tools/xcode.html
Davide Coppola – [email protected] – Lowpoly Studios
Working environment on Windows
Visual Studio Express
http://www.microsoft.com/express/Windows/
MinGW
Cygwin
http://www.mingw.org
http://www.cygwin.com
Davide Coppola – [email protected] – 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 WIN32QueryPerformanceCounter(&m_T1);
#elsegettimeofday(&m_TV1, NULL);
#endif}
Davide Coppola – [email protected] – 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 – [email protected] – Lowpoly Studios
Coding for Mac Os X
#ifdef MAC#include "OpenAL/al.h"#include "OpenAL/alc.h"
#else#include "AL/al.h"#include "AL/alc.h"
#endif
Mac Os X follows the POSIX standard Only difference: path of the .h files used by the frameworks
Davide Coppola – [email protected] – Lowpoly Studios
Base code
http://www.libsdl.org http://www.sfml-dev.org
Davide Coppola – [email protected] – Lowpoly Studios
FisicaBox2D
Chipmunk
http://www.box2d.org
http://bulletphysics.org
http://code.google.com/p/chipmunk-physics/
Davide Coppola – [email protected] – 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 – [email protected] – Lowpoly Studios
The future
http://www.khronos.org/webgl/http://www.w3.org/html/
Davide Coppola – [email protected] – Lowpoly Studios
Contacts
http://www.lowpoly-studios.com
http://www.facebook.com/m3xican
http://www.facebook.com/LowpolyStudios http://twitter.com/LowpolyStudios
http://twitter.com/vivaladav
Davide Coppola – [email protected] – Lowpoly Studios
Questions?