A group dedicated to indie and standalone game development.
Read our discussion about picking good third-party libraries, and avoid making the same mistakes we did.
Posted by robinerd on Nov 24th, 2012
Basic Client Side Coding.
Have you ever been troubled about finding good third party libraries which are both affordable (free) and with a non-restrictive license? With this article we want to share our investigations, to let you save some time. Most of the libraries below have been tested and verified through prototyping by our dev team.Note: if you have any tips or questions, feel free to leave a comment!
We initially had a discussion about using a complete game engine. We investigated many different engines, particularly Unreal Engine, but most require expensive licence fees for commercial use. So, since we are on a quite low budget in this project, we decided to implement our own engine and make use of severallibraries for specific parts instead.
For rendering we considered many alternatives, but finally decided to make our own engine using DirectX. Since our game is in space, the implementation of graphics is not very complicated, and by creating our own engine we will have more flexibility and it will be easier to find and understand bugs. A strong alternative we considered is Ogre.
Choice of sound engine has been a really hot topic of debate in our team. We require a sound library with easy support for 3D-audio and streamed sound sources. Our main considerations were OpenAL, SFML and FMOD. Finally we decided to use OpenAL.
For a non-commercial project or any commercial project with a higher budget, we would recommend FMOD. If you have a low or zero-budget project but still having ideas of releasing it commercially we recommend either OpenAL or SFML.FMOD
OpenAL (before v1.1)
For network we recommend RakNet. It has a special license for commercial indie games, allowing your team to use it for free initially. When you have made a profit of $100000 you will have to pay $7500 for a full licence. RakNet comes with good support and lots of example code and documentation. It is easy to use, has tons of features and it took us just a few days to make a thorough working prototype with 10 clients and a server.
We initially considered Havoc, but decided to not use it since it seems complicated and requires a paid license. We decided to use Bulletphysics since it seems very well documented. Bulletphysics is free to use for commercial projects.
There are several libraries available for AI. However, most of them appear to be discontinued or lacking features. The most promising one we found, OpenSkyNet, is still in development but provides functionality for pathfinding and statemachines. We decided to implement our own AI since no library supported any features useful for our project.
There are many useful libraries, and using them can be a good alternative to save some time. However, finding libraries with enough documentation and a proper license for your project can be tricky.
Make sure to make early prototypes before you decide to implement a library to your game, that will help if it is worth the time to integrate the library in your engine. After all, using a library applies maintainence overhead, so be careful when you pick them.