Whether you have experienced them for fun, educational, or simulation purposes, games have probably made their way into your life one way or another, and at HiDef, we are finding that games can contribute to the great causes we are all about.
Game engines are complete systems which can be used to simplify the game development process. Engineering a game is a complex endeavor, and however good your artwork is, you need fast and efficient algorithms implemented to be able to bring it to the virtual screen–there is more to it than “cool” graphics. A game engine is made up of several entities, each specific to a certain needed functionality, such as artificial intelligence or physics-based computations. Open-source graphics engines (also known as rendering engines) are of special interest as their communities have matured greatly over the past several years and, well, are free! I recently took a look at four of the more popular open-source graphics engines out there while I work on non-game related projects at HiDef, relating to other game engine components briefly when possible.
Crystal Space
Crystal Space is more of a software development kit than a rendering engine, with a focus on game development, as it comes with specific components which when used would aid the process. Its physics capability revolves around Open Dynamics Engine, or ODE and Bullet. The only downside is that it’s not being actively developed when compared to other engines; its last release was 14 months ago. Though updates are mentioned, such frequency is not favorable with the rapidly changing state of computer graphics.
Irrlicht
Irrlicht brings state-of-the-art features found in commercial 3D engines to the table; it is essentially a 3D engine. It is well written, fast, defined in interfaces, and comes with a shallow learning curve. If you’ve worked on an engine, you will appreciate the design. Irrlicht is actively being developed and can be integrated with several physics engines such as Nvidia’s PhysX, which makes Irrlicht ideal for your game/application if you don’t mind working with a strictly graphics-based engine and integrating other functionality (such as physics) on your own. The downside? Well, with simplicity comes lack of extensibility and modularity, but it really depends on what features you require of the engine.
OGRE
OGRE is one of the most popular open-source graphics engines out there, even used in some commercial games, such as Ankh and Earth Eternal. Built on the idea that everything can be plugged in and out, OGRE is designed to be intuitive for the developer. It brings Cg support to its shader sub-system which is useful if you’re using that language to define your shader programs. Integration with other physics libraries such as Nvidia’s PhysX and ODE is available. OGRE is actively being developed and well documented, leaving little to be desired if you’re looking for a 3D rendering engine. Note that its trading of completeness and features at the cost of simplicity may turn away developers looking for a quick-to-pick engine to prototype their ideas, in which case, Irrlicht would be their perfect choice.
jMonkey
jMonkey is a Java based graphics engine, built to satisfy the lack of Java engines. It is useful if you’re writing a web-based game, recognizing the lack of many of the additions available for C/C++ based graphics engines, like the ones overviewed above.
Conclusion
The gaming industry is evolving at a rapid pace, finding its way into most disciplines, and if done right, the game itself becomes more than just a “game” but a memorable experience, one that could shape your personality and character. Research suggests that certain games can improve the gamer analytical and problem-solving skills as well as various cognitive functions, memory, attention to detail, multitasking, and creative thinking. It would be great if more games would make it into the education sector, as “learning by doing” with the high level of concentration observed on gamers, shapes an excellent environment that would benefit the education system.
If you are looking into getting your idea out there, then going for an engine design and development from scratch is a risky option, unless your team (and budget) is big enough to handle actual engine and game development; the latter is hard enough with game budgets nowadays easily reaching millions of dollars even if game engines are used. Then again, why reinvent the wheel? That would be understandable years ago when you couldn’t find an engine that provided the necessary features for your project to succeed. But these days, you have a wide assortment of engines and tools, and they are stable and mature enough to handle the most complex ideas you may have. Better yet, you have free open-source solutions competing with commercial solutions, and if you find some feature missing, then go ahead and engineer it!
