30
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

Multi-platform indie game development

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: 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

Page 2: Multi-platform indie game development

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

Page 3: Multi-platform indie game development

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

Page 4: Multi-platform indie game development

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

Page 5: Multi-platform indie game development

Davide Coppola – [email protected] – Lowpoly Studios

Indie Gamedev

INDIE = UNSTABLE

Page 6: Multi-platform indie game development

Davide Coppola – [email protected] – Lowpoly Studios

Indie Gamedev

INDIE = UNSTABLE

Page 7: Multi-platform indie game development

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?

Page 8: Multi-platform indie game development

Davide Coppola – [email protected] – Lowpoly Studios

Why developing for Mac OS X?

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

Page 9: Multi-platform indie game development

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

Page 10: Multi-platform indie game development

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

Page 11: Multi-platform indie game development

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

Page 12: Multi-platform indie game development

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

Page 13: Multi-platform indie game development

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...

Page 14: Multi-platform indie game development

Davide Coppola – [email protected] – Lowpoly Studios

A real example

http://www.the-undergrounder.com

Page 15: Multi-platform indie game development

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

Page 16: Multi-platform indie game development

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

Page 17: Multi-platform indie game development

Davide Coppola – [email protected] – Lowpoly Studios

Working environment on Linux

Kdevelop

http://www.kdevelop.org

SCONS

http://www.scons.org

Page 18: Multi-platform indie game development

Davide Coppola – [email protected] – Lowpoly Studios

Working environment on Mac

Xcode

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

Page 19: Multi-platform indie game development

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

Page 20: Multi-platform indie game development

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}

Page 21: Multi-platform indie game development

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

Page 22: Multi-platform indie game development

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

Page 23: Multi-platform indie game development

Davide Coppola – [email protected] – Lowpoly Studios

Base code

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

Page 24: Multi-platform indie game development

Davide Coppola – [email protected] – Lowpoly Studios

Graphics

http://www.opengl.org

Page 25: Multi-platform indie game development

Davide Coppola – [email protected] – Lowpoly Studios

Audio

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

Page 26: Multi-platform indie game development

Davide Coppola – [email protected] – Lowpoly Studios

FisicaBox2D

Chipmunk

http://www.box2d.org

http://bulletphysics.org

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

Page 27: Multi-platform indie game development

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/

Page 28: Multi-platform indie game development

Davide Coppola – [email protected] – Lowpoly Studios

The future

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

Page 29: Multi-platform indie game development

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

Page 30: Multi-platform indie game development

Davide Coppola – [email protected] – Lowpoly Studios

Questions?