3D Engine for Indie Games?

I’ve been working on games for a while. Worked with a few commercial 3D engines, made a couple myself… I’ve been around the indie-scene for quite some time too. Most indie games that make money are 2D games (though some make use of 3D graphics cards to render their sprites faster), and that makes sense: the customer don’t care, and it’s a more cost-effective way to produce games.

My opinion on games in general, is that very few game types benefit from 3D – they make better games if done in 2D (and at this point, someone always goes "but what about FPS games, they require 3D", failing to realize that the game type is, of course, shooter, and that there’s plenty of great 2D shooters. Which are also generally better than the first person ones).

But there’s one specific genre which I think lends itself better to 3D: the racing games (and in my previous post on racing games, I tell you what a fun racing game is). Sure, there’s 2D racing games too, but they tend to not work as well. Even on the early computers and consoles, the good racing games were 3D, although a simplistic, primitive form of 3D.

I like the kind of whacky, casual types of racing games, a la Mario Karts. Would be fun to make one at some point. But as a hobbyist developer (as for most indies), my technology options are limited. The commercial engines are too expensive. The free ones are usually developed to make use of the latest and greatest shader technology with fancy lighting and realtime shadows. They are (for this very reason, I bet) quite unstable, and won’t run (or will run way too slow to be usable) on a large number of computers. They will also, in some cases, require a greater effort in terms of the artwork (normal maps, shadow volumes etc to be created, which takes time). Some of them are difficult to use. It’s clear that their developers favors working on new features over making the basic technology stable, reliable and easy to use.

The fact of the matter is, that for indie developers, there’s no point using fancy modern 3D technology, like the latest shaders. It will incurr a cost to the indie, in the form of time spent and more expensive art resources, as well as in reduced sales (given higher hardware requirements).

You might think that there are benefits to using fancy effects – but the truth is, by doing so, you’re starting to compete with the AAA retail games – and you won’t ever win that battle, as you’re outnumbered to start with. If you focus on your gameplay and mechanics though, you have a chance of delivering something that the AAA games industry can’t – A great game.

Though most games are better in 2D, considering that some (like racing games) can actually work better in 3D, I think that what’s missing today, is a good, basic 3D engine, free to use for indies and hobbyist, which focus on stability and ease of use, and leaves out the fancy shader effects. One which supports models and animations, basic particle systems and billboards, basic decals, simple lighting (with something like lightmaps to efficiently add static lighting to a scene). And not much more. But, in a way that is simple, straightforward, easy to use and modify, at which works just about everywhere.

I don’t think there is an engine like that out there. Yet. I’m planning to make one, and as with other tech I write, it will be released into the public domain. That means that there’s no license for using the engine: anyone can use it for any purpose, without restrictions and without paying anything. It probably won’t see widespread use though, as most indies who do 3D stuff seems to want to compete with the latest and greatest AAA games in terms of visual quality – meaning they will fail doubly: they won’t get it as nice as the AAA games they are imitating, and they won’t make a fun game either.

But for those rare indies that see a need for 3D as a gameplay mechanic rather than a visual effects fest, I’m hoping this 3D addition to my Pixie game engine will be a welcome and useful one.

I’ll keep you posted…

7 Responses to “3D Engine for Indie Games?”

  1. Arthur says:

    A basic, solid freeware 3D engine seems like a great idea to me. I agree that the racing game is the most clear and incontrovertible type of game that benefits from 3D versus 2D. I disagree about other games however. I believe almost all games are more enjoyable in 3D and more specifically 1st person view, as in a shooter. Oblivion is my favorite game so far and is more of a RPG, limited to 1st person view. A solid 3D engine that could be used for indie racing, adventure, RPG and shooter games, with constructible and destructible environments (in game), even if the graphics were primative by Oblivion or Half-life2 standards, would still generate some interest and might open up the gaming world to a new class of casual programmers (such as myself).

  2. Mattias says:

    Thanks for you interest in the engine…

    It’s a common misconception that games would be more enjoyable in 3D or first person view. It is in the game industry’s interest to encourage this belief among it’s targets audience, as it is much easier to “dazzle and amaze” with 3D (especially new shader techniques and such).

    This is used as a distraction, to take focus away from the fact that in most games, there is no actual game – it’s all pretty effects and nothing else. It is much more profitable that way – shaders are easy to write, real games are hard to make.

    So try to ignore the marketing messege of the inbred and retarded mainstream games industry, and realize that good 3D games are not good because they are 3D – they are good although they are 3D. Oblivion may be good, but it would have been a much better game if done in 2D, when more resources could have been directed to gameplay rather than gloss.

    Just the mention of “constructible and destructible environments” make me suspect that you are missing the point: relying on gimmicks like that is no way to make a good game. Relying on proper balancing and mechanics is.

    The engine I’m making would of course be capable of other types of games than racing games, but what would be the point, if those games would be made better and faster as 2D games? I definitely won’t add support for things like destructible environments, and the graphics will be primitive compared to the first Half-life, not to mention Half-life 2. This means that it will be of limited use to people mesmerized by the games industrys incoherent mumblings, but it will be of great use to those of use interested in making real game!

  3. Anonymous says:

    Check Irrlicht.http://irrlicht.sourceforge.netSupport for Windows, Linux and partial Mac support. Works with DirectX, OpenGL and a Software renderer. It’s amazing for a zlib licensed engine.Kind regards,Anonymous.

  4. Mattias says:

    Well, first of all, Irrlicht is not public domain, but more importantly, it’s way too complex and bloated to be really useful. Sure, it’s a nice little engine to play around with and maybe learn a thing or two, but it’s not the type of engine you’d build a commercial game on. It’s been a while since I last looked at irrlicht now, but I guess there’s still no commercial games made with it, is there?

  5. Anonymous says:

    There is a engine written on top of it (the 3D part, of course). It’s the first project (RABCAT): http://irrlicht.sourceforge.net/screenshots-projects.html But as you have said before (of good 3D games), the graphics are fine, but if you check the AI (on the video) you will see that it’s very stupid. Also, that was a fast answer. :-)

  6. Mattias says:

    The problem with all of these free engines, is that they are trying to do too much.

    If you’re a one-man company making games that you self-distribute, you need to be very careful about how you use your time and resources.

    If you use third-party code, the most important things about it is that it is stable and easy to manage.

    The free “indie” engines out there are rarely stable, and never small enough to be manageable.

    I guess my point is that as a lone developer, you just don’t need all the bells and whistles – and more importantly, you don’t even want the code for those extra things in your engine, as it will increase dependencies, reduce stability and make debugging time skyrocket.

    Remember – in all software development, code is a liability, not an asset.

  7. Jangedoo says:

    Which one is good? Unity 3d or Ogre 3d in terms of graphics processing?

Leave a Reply

You must be logged in to post a comment.