Yesterday I had the chance to give a talk at Pocket Gamers Connect at San Francisco about Open source libraries for Game development. It was the first time that I attended that conference, and I really like the 15-minute format for all the talks: all talks were concise, to the point.
The slides of my talk can be found here: Game-OpenSource. And below you can find my personal opinions about the different libraries and licenses:
- You can use them in any kind of game, any kind of store.
- You are not forced to distribute patches for these libraries, but do it whenever possible.
Non-Commercial friendly licenses:
- LGPL: Apparently it is possible to use it on the App Store and other stores if you use it as a dynamic library. If you use it as a static library, it is still not certain whether or not it is legal.
- GPL: Try to avoid it if possible. This is famous Viral license.
Ad-hoc licenses: Licenses created by engineers, not attorneys. Avoid them.
All-in-one Game Engine Libraries:
- libGDX: Very good 2d + 3d game engine. Java based.
- GamePlay3d: Very good 3d game engine, with basic 2d features. Its code is super clean, super easy to understand. C++ based.
- Godot: 2d + 3d game engine. Nice visual editor based on Godot itself. Bonus point for dog-fooding its own technology! C++ based with its own scripting language.
- Ogre3d: Very advanced 3d game engine. Great for console or desktop games.
- Torque3d: Used to be a commercial product. Was released as open source a few years ago. C++ based, with its own scripting engine.
- Chipmunk2d: Fastest 2d physics library. C based with bindings to many languages.
- Box2d: Most popular 2d physics library. C++ based with bindings to many languages.
- LiquidFun: Google’s Box2d fork. Includes particle engine to simulate liquid.
- Bullet: Very good 3d physics engine.
- Lua: Very popular among game developers. Easy to embed. Fast.
- Squirrel: Based on Lua, includes objects and other features not present on Lua.
- Python: Great language, although not the smallest/fastest language.
- AngelScript: Syntax pretty similar to C/C++. Great if you like C/C++ and don’t want to learn yet another language
Renderers and more:
- LibSDL: C based, nice API. Includes many multimedia APIs.
- SFML: Alternative to libSDL, C++ based.
- Allegro: Another alternative to libSDL, C++.
- BGFX: Advanced renderer, C++ based. Very nice architecture.
- ANGLE: OpenGL / OpenGL ES emulation for Direct3D. Google and Microsoft are behind this project.
- FreeType: TTF font rendering
- LibPNG, libJPEG, WebP: Image loaders. Use WebP to reduce file size.
- GPUImage: Huge collection of post-processing effects. Ignore the Objective-C code, and use the shaders
- FlatBuffers: Another Google project. Fast, efficient serialization library. C++, based.
- Entity-X: Entity Component System. Could be used on top of Cocos2d-x or any other engine. C++ based.
- Recast: 3D navigation library. C++ based.
In a 15-minute talk, it is impossible to cover all the available libraries. So please, feel free to add in the comments other libraries.