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