Looking for good free 3d game/graphics engine

Started by
20 comments, last by donkey breath 13 years, 5 months ago
Hey guys! I just found this forum, and it looks like a great resource. Anyway...
My experience: I've programmed a good deal in java and python (not really anything high level), participated in olympiads, and made a few simple 2d graphical apps/games in java. I've just started learning C++, primarily for this project.

I'm planning on making a 3d 3rd person action platformer-like game. I won't go into the details, but I have the basics planned out. The art-style I'll be going for is an abstract, minimalist one, which should allow me to make something good looking with my rather mediocre modeling skills. I'm not planning on doing it in pure Open GL from scratch, so I'm looking for a game engine. I'm not going to sink any money into this project during initial development, so I need something free, at least for the "hobbyist" licence. Open source is always nice, too. So far the Irrlich Engine has caught my eye, which is just a graphics engine but has various sound/etc. packages that integrate well. Of course, I'd rather have a full-fledged game engine. Also, I need to be able to import models and animations from blender, but that shouldn't be a problem for any engine, right?

Any suggestions? Thanks.
Advertisement
Download Free Unity and then get the 3rd person game tutorial / starter kit and you are set to go.
I'll take a look at Unity, but I'd like a C++ based one. The guys in the other thread offered Irrlicht, Ogre3D, and Terathons C4. Can someone with experience in more than one engine (or even just experience with one) provide some comparison between them?

What engines do you guys use? You can't all be writing your own engines, right?
Quake III Arena? It's open source (GPL), it's been used for 3rd person games in the past, it's well understood and well respected, and it's formats are quite well supported.

Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls.

Panda3d is pretty good.
Quote:Original post by StrangeQuirk
I'll take a look at Unity, but I'd like a C++ based one.
Those other engines you mentioned aren't really in the same league.

Ogre is just a rendering framework for instance.

Irrlicht is a small hobbyist project. Some of it's features are severely lacking. Your only support and community there are a forum full of ignorant OSS zealots who don't really know much about game programming, or creativity, or any of the skills needed to put something out.

Unity3D is written in C++, but like most mature game engines, the C++ core only handles the system level stuff, and you script the custom functionality you need with one of 3 available scripting languages (how most games are written!). The C# option isn't too different from C++.

Unity also has a great user community who share code snippets, help each other out, and post their games right in the forum (to be run with the web plug-in). Lots of companies big and small are using it successfully for all kinds of game genres.

Familiarity with Unity can also be a valuable skill when looking for a job. For instance, EA just signed a big deal to use Unity on their titles.
Hmm. I doubt that if I were to use Irrlicht, I would find any necessary features missing due to the low-level of my project, and I was hoping that learning C++ would be a part of the project. Still, my primary goal is to complete the game, and I don't want to spend a lot of time trying to make various systems work with each other ("glue code", as someone in the other thread put it), so I guess I'll go with Unity for the time being.

Wait... Where does Panda 3D stand in this? It seems to have the advantages of a) being open-source and freely distributable, and b) supporting C++ and Python. Is there any reason that I should chose Unity over Panda3D? They both seem to be similar-level, all-inclusive game engines. Panda seems to be much less of an industry standard and less well-known, but that doesn't really affect me...
One reason to choose unity over panda is panda's physics are fairly primitive, you can use a third party library like bullet but unity comes with better physics baked in. Panda isn't nearly as slick as unity, unity comes with much better tools out of the box.

Unity, as a commercial product, holds back stuff from the free version mostly graphics effects, some tools.
Learning C++ and trying to make a game at the same time is like building a bomb while trying to learn about explosives. It's just going to blow up in your face. Work through a C++ book, learn the language, and then start to make games.

Quote:Original post by StrangeQuirk
Hmm. I doubt that if I were to use Irrlicht, I would find any necessary features missing due to the low-level of my project
I thought so too.

Problem is, that engine looks like it was slapped together from a bunch of online tutorials. Basically, it could load a bunch of Quake 2 and 3 file formats and render them. Kind of useless, considering that the Q3 format is now 11 years out of date, and predates all modern rendering techniques, like shaders.

Until recently, the animation was just a bad hack that treated all animation the same way as Quake3 did. Making all your bone data, and the benefits of using skeletal animation useless.

And misc other problems. They are slowly correcting this. But it's not really something you can bank on. It's just someone's hobby project, and the community are not much help either. They are mostly know-nothing, and do-nothing, kids who only want to lecture you about GPL software.

Just because someone makes a library that can load a few old/useless/outdated model formats, and render them on screen, doesn't make it a viable engine choice.

As for Unity vs Panda.

Unity is a game engine with a nice editor suite where you can easily import your assets, and then script them with C#, Java, or Boo (A python dialect)... It works very well and I think it's a quality product. It's free for your use, and you can pay for it if you want to release your game commercially. The price scales according to your release plans and size of your company. It's relatively cheap compared to other similarly featured engines.

Panda is a C++ engine meant to be scripted with Python. They claim it's compatible with C++, but it's not really meant to be used that way. There's no real documentation or examples to use it as a standalone C++ library.

It's set up to run on it's own, and execute python scripts. Otherwise, you just get header dumps for C++ as your 'documentation', and it won't get you far. A auto-generated class hierarchy dump isn't much help for learning or using an engine. You need good documentation and a programming guide.

It's a good engine, and it has been used to make some of Disney Online's MMORPG clients. But it lacks a good toolset like Unity has.
Quote:Original post by Daaark
It's free for your use, and you can pay for it if you want to release your game commercially. The price scales according to your release plans and size of your company.
Unless I'm mistaken, you can use the free version for commercial products. (The differences between the free and pro versions - for desktops at least - have to do with feature support and the presence or absence of a splash screen/watermark.)

This topic is closed to new replies.

Advertisement