Open Source vs Affordable Indie 3D Game Engines?
TBBScorpion asks: "Lately I have been investigating 3D game engines. I was mostly paying attention to open source engines like Ogre3d, Irrlicht, Crystal Space 3D, and the like. Then I found out about cheap Indie licenses for commercial game engines like Torque Game Engine ($150), Torque Game Engine Advanced ($295) and the C4 Engine ($200 + free upgrades). I found a list of top commercial and open source game engines at devmaster.net in case anyone is interested (I didn't want to take the time to list all the engines, but there are more good ones that I did not list on this page). Now for my questions. Now, here's my dilemma. Which of the engines are worth investing in? Should I buy an indie license or hold out for open source? Or should I start with an indie engine and switch later if open source catches up?"
"Torque Game Engine 1.5 works on Windows, Mac OS X, and Linux but lacks modern shader support (except for something about a free modernization kit). I mostly do cross-platform software development so I like this feature.
However, there is Torque Game Engine Advanced (TGEA) which adds shader support, the Atlas terrain paging feature, and a few other nice features, but since is DirectX9 based it is no longer cross-platform. I have also heard rumors about support for the engine to be a little on the lacking side, yet the Torque community seems to be rather large compared to other commercial engines. Are the complaints just from people who don't really know how to program expecting to be able to edit the C++ of the game engine, or are capable people really having trouble? I've heard rumors about stability of TGEA compared to TGE? For those of you who have used TGE or TGEA, would you recommend it over other engines?
The C4 Engine looks nice as well, but seems to be under active development and less mature, but might it potentially be a more modern game engine? Also, it supports Windows XP and Mac OS X, which is better then just Windows.
Here are the features I am hoping for are: a cross-platform engine, if possible; modern shader support; a built-in terrain paging system; and model, material and animation import from Blender 3d.
When it comes to the open source engines like Ogre3D, the main thing that seems to be lacking is the built-in editors, and at least Ogre3D is currently mostly a graphics engine rather then a complete game engine (i.e. physics built-in; does provide wrappers for ODE and other physics engines). My assumption is that is just a matter of time before Ogre3D and other engines catch up with the top Indie commercial engines?
Lastly, I will be using the game engine for not only making games, but for some scientific applications as well. Also, I started using C++ 10 years ago and have been using Python since January 2002, so I'm ready to dive into the engine code."
However, there is Torque Game Engine Advanced (TGEA) which adds shader support, the Atlas terrain paging feature, and a few other nice features, but since is DirectX9 based it is no longer cross-platform. I have also heard rumors about support for the engine to be a little on the lacking side, yet the Torque community seems to be rather large compared to other commercial engines. Are the complaints just from people who don't really know how to program expecting to be able to edit the C++ of the game engine, or are capable people really having trouble? I've heard rumors about stability of TGEA compared to TGE? For those of you who have used TGE or TGEA, would you recommend it over other engines?
The C4 Engine looks nice as well, but seems to be under active development and less mature, but might it potentially be a more modern game engine? Also, it supports Windows XP and Mac OS X, which is better then just Windows.
Here are the features I am hoping for are: a cross-platform engine, if possible; modern shader support; a built-in terrain paging system; and model, material and animation import from Blender 3d.
When it comes to the open source engines like Ogre3D, the main thing that seems to be lacking is the built-in editors, and at least Ogre3D is currently mostly a graphics engine rather then a complete game engine (i.e. physics built-in; does provide wrappers for ODE and other physics engines). My assumption is that is just a matter of time before Ogre3D and other engines catch up with the top Indie commercial engines?
Lastly, I will be using the game engine for not only making games, but for some scientific applications as well. Also, I started using C++ 10 years ago and have been using Python since January 2002, so I'm ready to dive into the engine code."
I can't stress enough to avoid TGEA. I can't speak for the original engine (TGE) but the new version has no documentation, and a pervasive attitude of "If you can't figure it out without help, you shouldn't have gotten the Advanced Engine".
The engine is simply not geared towards direct interfacing. If you're happy using TorqueScript to do everything, then give it a shot. If, like me, you need to interface with other C++ components, you're in for a tough ride.
Please correct me if I am wrong (which I am almost sure I am), but last time I had a look for all the Open Source game engines available they where focused on First Person Shooter type of games... I was doing a 3D puzzle game (sort of like Tetrisphere)... I ended up finishing it in raw OpenGL and SDL... although I would have liked to use an engine to easly add particle effects and other stuff...
I personally hope to find nice answers in this thread... also, from what I have seen in the Gamedev.net forums people over there do not like Open Source stuff... of course I saw some 2 years ago... things surely have changed by now.
Ubuntu is an African word meaning 'I can't configure Debian'
The time spent trying to figure out the Torque engine is better spent just developing your own engine, the documentation is terrible, tools for torque are outdated, just don't waste your time.
Have you investigated the open source versions of Doom and Quake? While maybe a bit dated (the Quake III engine is from 1999), they are GPL and have a lot of community support.
The original Doom engine has been used in a shit load of games since (including games available for a wide variety of platforms, such as portable music players).
The Wikipedia page, http://en.wikipedia.org/wiki/Quake_III_engine has a lot more information about the Quake III engine, and a lot of handy links at the bottom (such as http://www.icculus.org/quake3/ "A project to remove bugs, clean up source code and to add more advanced graphical and audio features via SDL and OpenAL, and to act as a clean base package to build other projects on.")
Go get it!
I wank in the shower.
jmonkeyengine http://www.jmonkeyengine.com/
Runs on OSX, Win, and Linux. Advanced Shader Support. Open.
"Slashdot - News and Chat Sites Deviant". (Click "homepage" link above for details).
After going through all the choices and possibilties, I ended up with Ogre. It's true, it's 'just' a graphics engine. But it's made that way. The designers have many times over said they don't wish it to be anything more than that. But that doesn't mean you can't use it in conjunction with other packages out there. Projects like Yake are attempting to do so.
It in some part depends on specifically you want to do with the engine. For example, physics stuff can be handled with ODE, Newton, Novadex, or others. There are even Ogre bindings to use these (Gangsta wrapper abstracts this process, though there does exist OgreODE and OgreNewt as well). You'll also find, basically all open source projects end up using OPCODE for collision detection, though you might not want to use it directly (there is also a wrapper for Ogre and OPCODE).
I ended up writing my own code for interfacing with ODE, since I desired collision detection, but not physics. Since the code you can find is open sourced (a good amount is free use without any restrictions -- I believe this is true for anything posted or related to Ogre).
Not having an editor is somewhat problematic, though there does exist world/terrain editors out there -- both free and for pay (some are reasonably priced). For basic 3d modeling there is of course Blender, which can also do scenes, though it does have a fairly large learning curve. If you search around Ogre's web page, it actually provides a ton of links to the other resources out there.
For input management, the new version of Ogre comes with OIS (open input system), which is cross-platform. And you can use OpenAL for sound. So all the components are there, but you do have to assemble them. I like this strategy, as each component has its own dedicated group of people who worry about it, and try to make it the best possible.
However, if you like things prepackaged, you might also want to look at the Irrlicht engine. They've taken the opposite approach to Ogre, and provide a self-contained engine. I haven't used it myself, but I am of the understanding it is much faster to learn and use than Ogre, though I don't know how the performance compares..
One last thing I would add about Ogre, and what convinced me to use it was that there are a bunch of profressional games out there that use it. Again, if you go to the Ogre web page, you can peruse the comercial games made.
To give you my background, I'm a TGE, TGEA licensee as well as a licensee of the RTS kit and many of their content packs. I imagine I'm going to get shot for this post, if even half the Torque fans from Gamedev.net visit here also then I'm expecting a -1 Troll moderation within around 30 seconds, but seeing as I can give an honest, first hand, from the trenches opinion of Torque, here goes:
It's probably one of the things I truly regret spending money on the most. Garagegames put a lot of money into marketing and hype but never pull through on their promises. TGEA arrived 2 years late and by the time it arrived had many major features cut from it such as the promised built in terrain editors, OpenGL support and so forth.
The RTS kit was another scam in this respect, it doesn't contain pathfinding, support for RTS AI or anything of the sort by default, Garagegames claim this is because "all games need different pathfinding/AI requirements" however this argument is extremely weak - let's face it, core AI is pretty standard and surely it's better to provide at least some AI to the demographic they sell the engine to on their "why make a mod when you can make a game" premise that provide nothing at all. Also, the RTS kit is about 3 versions out of date with the main Torque Game Engine - Garagegames don't keep it up to date with the main codebase, they simply tell you to do it yourself.
TorqueX is yet another example of Garagegame's cutting of features and delays, it was meant to be ready with 3D support included for XNA GSE's release in their original press release, now however it's still entirely unreleased and anything other than basic 3D has been cut from the initial release.
Do not trust Devmaster.net, it's sponsored by Garagegames and is heavily biased, in it's top 10 list of commercial game engines (http://www.devmaster.net/engines/) Torque is always listed first, even when the site's very own ratings system shows TGE as only have 3.5 stars when the likes of C4 has 4.5 and TV3D SDK 6 has 4!.
Other than that the issues with TGE and TGEA are that the engines have just turned into such messy hacked together swamps of code over the years they're really tough to use. Many features of the engine are also half-assed or extremely dated compared to other offerings on the market, some are even suffering from long running bugs that can even result in fatal crashes - physics and vehicle support for example really need a complete rewrite for anything other than the very simple games that you see in the Garagegames store. The other problem that plagues all GG's products other than TGB is a severe lack of decent documentation - this is really bad when the engine is such a nonsensical mess. The Torque code base is ancient and new features have been hacked in through the years - it's either time to write it off and start from scratch or a MASSIVE refactoring session to clean up and update the code base. The sad fact is, the learning curve for the combination of such a messy engine, non-intuitive scripting system, poor documentation, requirement to fix a lot of things yourself means that you're not far off writing your own engine from scratch over using TGE/TGEA.
So is all of Garagegames stuff bad? No not at all, Torque Game Builder is pretty good if it's 2D your after, that's one product that has a whole lot of polish, good documentation, a good toolset and so forth. Arcane FX is absolutely fantastic too, but this is a 3rd party addon to TGE and is hence unfortunately absolutely wasted on this engine.
I think the problem Garagegames has is bad management and a marketing department that doesn't seem to worry about outright lying to make sales (not that that's a rare thing in marketing of course!). The management problems I'm referring to is the fact they keep announcing new engines or product lines without completing their last projects! Torque Game Builder game along when they were claiming they were too busy to fix the RTS kit. TorqueX came along when not only was the RTS still neglecte
crystal space also is not geared only towards FPS's in fact one of the demos (or at least it used to be there, don't know if it is now), is a 3d tetris game.
http://panda3d.org/
I did my masters' thesis using Ogre3D, and i'd choose Ogre again immediately. I also evaluated Torque and Irrlicht, but Torque is just a mess, and Irrlicht didn't seem as complete ( as far as graphics functionality goes ). Yes, Ogre3D is a 3d engine, not a complete game engine, but it does that ( graphics ) really good. If you need Physics, use ODE or Newton, networking can be easily implemented using RakNet, scripting with python (or lua, or...) and for sound there's OpenAL. In my eyes, using a specialized library for the different things is a real advantage - if something doesn't work as expected, you can replace that part. And Ogre doesn't need to cath up to Torque; Graphics-wise it's more than on par, and the api design is (imho) far better. Ogre has also been used for commercial games already; Ankh comes to mind...
The world always seems brighter when you've just made something that wasn't there before. - Neil Gaiman
I couldn't agree more. I loved TGE when I first started, but eventually I spent so much time wading through WTF moments of poor documentation, broken functions and the like that I could have brewed my own, or used a well-crafted engine like Irrlicht.
./Khak
Don't even get me started on its Linux "support." Linux is a second-class-citizen in Torque, the engine even stubs out(!) some important things like joysticks.
If your projects are small, I'd recommend homebrewing your own framework. If you're really not into graphics programming, try Irrlicht or Ogre.
Aaaand, if you want a full-fledged game engine that's easy to use, with Windows/Linux support (Mac support is dodgy at the moment), try Panda3D. I don't know how freely-usable it is in commercial projects (something about the libraries it links to), but it's a kickass engine, so much so that I make all my stuff with Panda3D now.
Basically, just don't be swayed by Torque's shinier logo. I mean, damn, it really is a nice logo.
OMG! Wau!
Yes, getting TGE to run on Linux is an ungrateful task, to say the least.
Some time ago I got lured into buying it because they used to state on the product page that they supported linux. I bought both Torque Game Engine (3D) and Torque Game Builder (2D).
Long story short, the Linux version is far from the quality of the Windows and OS X counterparts (when it runs at all) and the company dropped Linux as a supported platform, "because it consumes too many of their resources". Instead, the Linux version is now supported by the community - but it bears the same price tag, nonetheless...
There used to be a guy who offered himself to help with the Linux version of the engine. He did this *for free*. Garage Games used to take months to reply to his e-mails when he sent them a message saying "hey guys, you just released a new TGE version so I took care of making a linux release, it's ready for you to put on your page". There was somewhat of a revolt on the forums and Garage Games eventually worked with this guy for some more time (still for free) and after that, I just gave up on Garage Games, because their support really suck. It's just as UnDiWhan said on another comment: a pervasive attitude of "If you can't figure it out without help, you shouldn't have gotten the Advanced Engine". This is also valid for the regular TGE and TGB.
Things may have changed, though, because Garage Games created a buzzword for their documentation and also a site to host it. But again, just like the Linux versions are "community-supported", the documentation is mostly (all?) user created content - it's a Wiki...
As for Ogre3D, I wouldn't say it's slow, it's actually pretty good and pretty fast. But if you don't use it correctly, it can kill your game. I've seen games using Ogre very efficiently and others that were slow as hell.
You. Your Ideas. Newsletter. NOW
I like the documentation on CS because it is an API that's easy to understand. But what really shines in CrystalSpace's favor is it's community. I wouldn't be able to code in 3d if it wasn't for handholding by the developers. They walked me through compiling and building, and then they answered my questions when I got stuck. I think they're so friendly, that I casually talk about my game I'm making in help questions that I post to the mailing list. CS is the 3d engine that I am writing: www.roamingdragon.com
I'm not saying the other engines could be bad, but I know that CS is awesome.
God spoke to me.
> crystalspace seems to have a stigma associated with it of being antiquated.
Probably going to get flamed and down-modded, but what the hell. IAAPGD (I AM a professional game developer) and shipped titles on PSX, PC, PS2, and soon Wii.
CS has been around, what 10 years? It was crap for the first few years. It overly complicated something simple, with terrible class design and coding style that was clearly written by an amateur. Unless you've shipped a game or two, most developers just aren't aware of all the issues -- not just tech, but features, that a game engine needs. A game engine really needs to run on both PC and consoles so it has the opportunity to have a _clean_ API of the various math, rendering, collision detection, collision response, physics, sound, input, etc.
Since it's not good to criticize without offering a solution, David Eberly's Wild Magic engine and books do a very nice job of clearly explaining the how and why's of engine design. It's not perfect, and you can tell where he had to make compromises, but it's a joy to read. Probably because he wrote NetImmerse before they became Gamebryo.
Cheers
This is a great thread. There are so many 3D alternatives out it will be great to see what this thread comes up with. I am only disappointed this topic didn't get rated as a major story on Slashdot.
;-)
u res/lua.
Not to downplay the benefits of programming in C++, I think it is better to focus game development using scripting language rather than for C++. When I started writing games on the Apple II+ I wrote everything in 6502 assembly but with lores B&W graphics. Today the successful game developer no longer has that luxury.
Game development now requires imagination, creativity, artistic talent and often times story telling ability in addition to programming talent. IMHO it is better to balance your time developing all the different parts of a game than to waste cycles on the ins and outs of C++ (or assembly). I believe this is why the LUA (open source) scripting language has seen so much success in the development of video games. Games such as Grim Fandango and Escape from Monkey Island published by Lucasarts and Neverwinter Nights and MDK2 developed by Bioware were written in LUA. More information about LUA can be found here: http://www.lua.org/ and here: http://www.gamedev.net/reference/programming/feat
There are no less than five (and probably more) major 3D engines tied to LUA: Ogre3D (using Emma3D http://emma3d.sourceforge.net/, Irrlicht http://irrlicht.sourceforge.net/ (using https://sourceforge.net/projects/irrlua/, Apocalyx http://apocalyx.sourceforge.net/, Luxina http://www.luxinia.de/, and Electro http://www.evl.uic.edu/rlk/electro/index.html
I am just getting started learning LUA (for a 2D game - another advantage of learning LUA - the ability to grow) so I make no claims to know which 3D engine is the best. There may be other 3D engines integrated to LUA out there and I would love to hear from other people who have experience developing games using LUA and from people developing 3D games using LUA.
Having worked on a 3d engine for the last 7 years the most important advice I can give you is "only invest in a game engine that can do what you need right now".
Every game engine I've seen, ours included, have a list of great upcoming features. But there is no guaranty that any of those features will be implemented by the time you need them (if they are added at all).
Spell cheek you've failed me four the last thyme!
You are confusing the game with the game engine. Which is the product that a customer is paying for? They aren't buying the SoCool Engine; they are buying the Hot Barbie Surfing 2007 game.
For a very few developers like id and Valve, their engines are state of the art, and intended to be sold as products in their own right. There is an argument to be made that id is no longer a game company; they are really a middleware company that sells game engines, and releases tech demos every 5 years or so.
For all smaller developers, their engines are not that impressive. Most would much rather use an existing solution, and focus on game play instead. Those that can afford it license the big name engines. Those that cannot are forced to write their own engines. For the most part, customers are oblivious to the difference. A few hard core players know what it means when the game says it uses the "Source" engine, but most are just looking at the pictures. As long as it looks good, they will buy it. It doesn't matter what engine produced the graphics.
The game industry has a long tradition of reinventing the wheel. If it wasn't written there, they don't trust it. This is slowly changing, and I expect to see a lot more adoption of FOSS, particularly at the indie and small company end of the market.
What do I want to hear? I want to hear what the community has to say. I don't want to waste money on the Torque Game Engine if it's not worth it and from what I can tell from the comments to my post, it's not as good (especially the support) compared to what GarageGames advertises. (By the way, this is why I love open source code as I can try it out for myself and decide if it works for me). The intention was not an advertisement for the Torque Game Engine. I will have to be more careful the next time I make a post like this. I was leaning toward the Torque Game Engine, but now I am not so sure. The comments on the GameDev.net reviews were not enough for me to make a decision. In fact I believe more people should post there experiences as reviews there and I probably should like to the comments made in response to my post. Yes, scientific stuff... A game engine may not be the best choice for many scientific applications, but I try to keep an open mind. When I do that I find I can take a technology meant for another field and make it work very nicely for my needs. Note that I am a gamer at heart and software developer in bioinformatics by career. Of course I will use the game engine first for making games, but those who know me know I take technologies a squeeze as much juice as I can out of them. P.S. I am looking for a casing and some powder so I can add my own silver bullet.
Crystal Space is certainly not only for FPS projects. In fact FPS projects are the minority. Most projects using Crystal Space are MMORPG type games like PlaneShift (http://www.planeshift.it).
Greetings,
Project Manager of Crystal Space (http://www.crystalspace3d.org). Support CS at http://tinyurl.com/cb3x4
I'm the project manager of Crystal Space and I would like to tell you a bit about how Crystal Space evolved and what it has become. I do agree with you that in the beginning the code was pretty much put together 'on demand'. There was little design and little planning. I just made the engine so that it worked more or less. However, one of the strengths of my kind of development (and the development of my team later) is that I'm very good at refactoring and redesigning. And in fact we have done that several times. We let our API evolve greatly (causing much annoyance to people trying to use CS :-) Later in the evolution of Crystal Space we got many new people in our team. And this caused CS to become a lot better then it was in the past. At this moment the API of CS is pretty stable and we have a solid 'deprecation system' in place so that we avoid annoying people too much. That means that in version 1.x we deprecate a feature so that we can remove it in version 1.(x+1). This means we can still evolve the API but we give some stability to the users.
As to CS being complicated. This has improved a great deal but it remains the case that CS is probably more complicated to use then the other engines. The big reason for this is that we concentrate on flexibility and modularity. This allows people to extend Crystal Space with their own plugins (and people actually do that) and even to insert new plugins to some application at runtime.
Finally I'd like to add that Crystal Space is no longer alone. We have a companion project called Crystal Entity Layer which is very popular these days and sits on top of Crystal Space to give the programmer a much easier to use game framework. And on top of CEL we also have CELstart. By using CELstart a person can make a full powered game using only Python and/or XML scripts. No coding required. We also have great support for Blender through the blender2crystal project which means that you can nearly code a full working game from Blender alone (with a few exceptions on writing Python or XML scripts for some of the game logic).
Greetings,
Project Manager of Crystal Space (http://www.crystalspace3d.org). Support CS at http://tinyurl.com/cb3x4