What is the best cross-platform game engine, being the most commercially supported, there is for free available for development on Linux? I'm planning on creating multiple, non-commercial, fps games to gain real industry experience in C++ game development.


Firstly, "best" is a rather subjective term, personally, I enjoy working with the Source engine (at least, the client and server which plug in to the base source engine, and determine your game play), making a MOD with a recent industry-standard engine is probably the closest you'll get to working within the confines of a restricted codebase in the industry. Others swear by the Quake engine for it's open-source qualities, and other's prefer various other engines.

If you are looking for industry experience, then I would say that it would be extremely advisable to develop your own engine, to get an idea of the scale of development that goes into producing a marketable industry-quality game. You will learn how to handle graphics development, AI development, handling performance and optimization of your code, understanding what goes into making a game cross-platform, and hopefully, have an enjoyable time. If you do decide to go down this route, I would recommend OpenGL for it's cross-platform ability, however, most games are written for Windows, so DirectX with an OpenGL fallback is also a possibility (this also allows you to learn about dynamic linking of DLLs etc.)

Although you may only be interested primarily in one field (AI Programming, Weapons programming, Physics programming etc.), building your own game-engine demonstrates to a potential employer that you are, firstly, passionate about game programming and dedicated enough to do something about it, and secondly, have a well-rounded understanding of game development, which is extremely desirable especially for a senior programmer).

Personally, other than the Source engine, I've never used another's engine for an FPS, however, I have heard good things about the cafu engine, which is supposed to be cross-platform and relatively recent (and with good access to it's rendering process etc.)

I hope this helps you to make a decision, and good luck with your future career in the gaming industry! :)

EDIT: With regards to your edited question, I believe OGRE has a lot of commercial support, and has a regularly updated code-base (and fulfills all of your other criterion). However, I would still recommend writing your own engine, for the reasons highlighted above. :)

| improve this answer | |
  • \$\begingroup\$ So does a game engine render meshes, handle physics, sound etc. Should it handle weapon display etc or not. If I was to separate an engine from the game what is the line that separates the features? \$\endgroup\$ – Will03uk Jul 27 '11 at 0:09
  • 1
    \$\begingroup\$ A game engine should implement things such as rendering process, Physics handling, Sound handling, font-handling, error abstraction. In short, everything that would be required to get a game to RUN, not to be playable. Things such as AI, Weapons, UX etc. are best left to implementations over the engine; that's not to say they aren't included in some engines, just that a good engine leaves as much to be modifiable as possible, and provides as much abstraction as possible. \$\endgroup\$ – Thomas Russell Jul 27 '11 at 0:12

Not the answer you're looking for? Browse other questions tagged or ask your own question.