• Advertisement
Sign in to follow this  

Looking for good free 3d game/graphics engine

This topic is 2680 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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.

Share this post


Link to post
Share on other sites
Advertisement
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?

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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...

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.)

Share this post


Link to post
Share on other sites
OP:

Sounds to me you're trying to get something done that would showcase your skills as well as having something finished under you belt?

Then it depends what you want. Do you want to get more to the metal of things?
Then something like Ogre or IrrLicht might be of more interest. Especially if you don't want to begin from scratch.

However ..

If your intention is to have something to show to game companies? Then they are probably more impressed if you do something with a more widely used engine. I would in that case suggest using either ID's Quake engine, Unity 3d, Unreal engine or Ogre 3d. They are also all free by the way, with a large community to aid.

Out of all I mentioned, getting something done with Unreal Engine would probably be most impressive. Since you are very likely to see, or even use it in the industry.

Having done something with any of those would show that you have the skills (but more importantly) and that you have the ability to finish your goals. In context of the latter, the tool you use is of less importance.

I'd say the most important part is to show you can deliver.

Share this post


Link to post
Share on other sites
Hi,

I want to start by saying that I do agree with everything people have told you thus far. Unity is a great product.

Now, if you somehow decide to pursue working with an engine in C++, for whatever reason, there are more alternatives.

You can look into G3D as well, its open-source and actively developed. I have no idea if its on-par with the latest free engines but it looks nice.

I think if you do a good search you'll find quite a bit of C++ engines out there, but many will be outdated or won't have a supporting community.

Share this post


Link to post
Share on other sites
Ok. First, thanks a lot to everyone, you've been really helpful.
Second, in response to what my goals are: I'm not interested in showcasing anything to anyone, and am not at the moment considering a career in game development. All I want is to learn something, have fun, and finish a game.

So far, my main candidates are Panda and Unity; I'll think I'll try both and fool around with them a bit before making a choice. I'd love to use C++; I'll take a look at Panda with that and see if what Daaark is saying is as bad as he's making it out to be. I'll steer clear of Unreal for now though.

So I'll keep an eye on this thread, but I think I've got the answer I want. Thanks.

Share this post


Link to post
Share on other sites
Out of curiousity what language is the unreal engine written in, and can you get older copies of it freeware? I know the latest ones are only available to established producers and have an enormous price tag.

Share this post


Link to post
Share on other sites
I haven't heard of any of the unreals being released freeware or GPL (like id does). The current unreal engine is available for free for hobbyist, to sale something you pay a one time fee of 99 dollars then pay 25% of revenue above 5K.

Share this post


Link to post
Share on other sites
Quote:
Original post by adder_noir
Out of curiousity what language is the unreal engine written in
C++, but, what difference does it make? It's a pre-compiled executable toolchain. It's just a game authoring toolchain. It could be written in anything and spit out the same executables for you at the end.

The Unreal Engine drives it's games with a built in scripting language. Check out the section called 'The Unreal Virtual Machine'.

Share this post


Link to post
Share on other sites
Thanks for yet more good info. So as well as learning C++ is it advisable to learn how to use the Unreal Engine scripting language too? Or am I asking a bit much of myself there, and is it worth doing it anyway? Thanks.

Share this post


Link to post
Share on other sites
Quote:
Original post by adder_noir
Thanks for yet more good info. So as well as learning C++ is it advisable to learn how to use the Unreal Engine scripting language too? Or am I asking a bit much of myself there, and is it worth doing it anyway? Thanks.
Once you understand the concept of computer programming, picking up side languages likes UnrealScript or Python, etc... becomes easy.

It's only advisable to learn UnrealScript if you are going to use the UnrealEngine.

Share this post


Link to post
Share on other sites
I see thanks. I was thinking it might enhance one's employability potential. Sounds like the best thing is to just stick to learning *your* language ;o) In my case this is C++ and a degree in Java starting next year.

Thanks again.

Share this post


Link to post
Share on other sites
Quote:
Original post by DaaarkC++, but, what difference does it make? It's a pre-compiled executable toolchain. It's just a game authoring toolchain. It could be written in anything and spit out the same executables for you at the end.


So as long as the final code ends up correctly in a suitable machine code (assembly language) for the intended platform processor's architecture, it can be written in any language, just the more higher level, the more decomposition time needed between input and assembly language right?

Have I got that concept correct?

Share this post


Link to post
Share on other sites
Quote:
Original post by adder_noir
Have I got that concept correct?


The final result is the Unreal Engine + the art assets, custom data and scripts (to be run by the unreal scripting engine) that make up your game.

In the days of Unreal 1, the scripts were interpreted at runtime. These days, they may be compiled into byte code, or something else. But it's not really an interesting detail. And nothing you should worry about.

Considering that the scripting engine is probably running on it's own thread, and the low amount of CPU that game logic will take anyways, the difference is mostly negligible.



Share this post


Link to post
Share on other sites
Panda3d is a good engine. As said before it has limitations, but it is free.

C4 is an excellent engine if you want to learn C++ as it is written so clean.

Other engines you might want to look at are Neoaxis, Crystal Space, Shiva and Cafu engine.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement