Ori Hanegby Pixtazy Blog:
Open Source is Everywhere! Operating Systems Linux, FreeBSD Web Servers Apache, PHP, Python, Ruby Embedded Systems Embedded Linux Hardware Open Cores Web Browsers FireFox, Chrome. GAMES
How can Open Source help my project? Almost every aspect of game development has an Open Source solution these days, below is a (very) partial list: Libraries and SDKs 3D, Sound, Networking Tools Modeling, Art, Sound Editing Full games: open_source_games open_source_games
Choosing an Open Source engine Platform What are the target platforms that your game runs on? Languages Does the project has binding to your development language? Some projects has “parallel” projects for other languages ○ Example: Bullet vs JBullet
Choosing an Open Source engine How active is the community? Successful open source projects have active community ○ Forums ○ Wiki Releases How often is there a new release of the project? Make sure it is not a “dead” project, even if it used to be an active project. For example: OpenTNL last update- 22-Feb-2005 Licensing
Licensing Open Source licenses might be restrictive Some are not suitable for commercial projects Some projects offer dual licensing models to enable commercial needs
Licensing cont’d. GPL Any project using GPL must be GPL itself Not suitable for commercial projects LGPL “Lesser GPL” Used to license libraries in a less restrictive manner than GPL. LGPL libraries can be used in propriety software and distributed in binary format. Any modifications to the library itself must be shared. … as long as the end user has the ability to replace the library, hence statically linking is not permitted. Suitable for PC games but not for console games.
Licensing cont’d BSD, MIT, ZLIB and alike Very liberal licenses Suitable for any kind of application license.php license.php
Games related domains at a glance 3D Rendering Physics Networking Sound Game Engines
3D Engines Some of the features that are provided by 3D engines: Cross platform 3D rendering Loading models exported from 3D software Scene Graph management Particle systems Materials and Shaders Good selection of 3D Engines today: Ogre3D, Irrlicht, Open Scene Graph, G3D etc.
Focus: Ogre3D High end features Active community Used in commercial games C++ Has ports and binding to Java,.NET, Python and Ruby Dual Licensing – LGPL / Propriety
Focus: Ogre3D
Focus: Irrlicht Easy to learn Good for beginners Active community Cross platform Support for older hardware ZLib license (very permissive)
Focus: Irrlicht
Physics 2D and 3D physics libraries Collision detection Rigid Body Dynamics Soft Body Dynamics Forces simulation Good selection of engines available ODE, Bullet, Box2D, Chipmunk etc.
Focus: Chipmunk 2D Physics engine for games Easy to use MIT License (unrestricted) Fast Many Languages bindings Ruby, Python, Java, C++ and more Flash port exists as “Glaze” engine
Focus: Chipmunk
Focus: Bullet High end features Rigid and Soft Body dynamics, Vehicle, Ragdoll, PS3 and CUDA optimizations and more Used in commercial applications and AAA games. ZLib license Lacks good documentation.
Focus: Bullet
Networking Networking libraries supplies a higher level communication structure than plain sockets. Some common features are: RPC Authentication Remote object management Messaging Time synchronization Current open source networking libraries appear to be lagging behind commercial/indie solutions.
Focus: Games Networking Engine (GNE) Connection and bandwidth handling Packet ordering Object serialization Time synchronization Cross platform LGPL license
Sound Some of the common features that are supported by sound engines are: Loading and playing sound files Decoding MP3/OGG or alike 3D sound emulation Open Source sound libraries tend to be lower level and tend to supply less complete solutions than propriety solutions Additional libraries can supply missing features i.e. Ogg Vorbis libraries for.OGG music decoding.
Focus: OpenAL Maintained by Creative Labs Focused on 3D sound features No special sound formats decoding such as MP3 or OGG Cross Platform LGPL license
Game Engines Game engines provides a more complete framework for game development Some of them are comprised of other open source engines Good open source engine options are available today Crystal Space, Panda3D, Wintermute and more
Focus: Panda3D Disney’s game engine Python High end 3D graphics Sound 2D and 3D sound, music streaming Network Low level and high level object distribution API Physics Basic physics support Used in commercial games Modified BSD license.
Focus: Panda3D
Resources Ogre3D: Irrlicht: Chipmunk: pmunk pmunk Bullet: GNE: OpenAL: Panda3D:
Thanks!