Jump to content

  • Log In with Google      Sign In   
  • Create Account

Suggestion for a cross-platform C++ 3D game engine/framework


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
47 replies to this topic

#1 skwee   Members   -  Reputation: 341

Like
3Likes
Like

Posted 03 December 2013 - 05:22 AM

Hi,

 

I'm looking for a C++ 3D game engine/framework which is either free or cheap for indie developer, available for commercial use.

Those are the features I need

  • Free or cheap for indie developer and available for commercial use
  • Written in C++ (preferably C++11 - not mandatory)
  • Cross platform: Windows, Linux and Mac. Consoles/smartphones are not mandatory.
  • OpenGL 3.x+
  • Graphics Subsystem with Scene graph, animation, particles, font, sprites
  • Sound subsystem (either in the framework it self, or ability to attach 3d party API like OpenAL)
  • Physics Subsystem (either in the framework it self, or ability to attach 3d party framework like Bullet/ODE)
  • GUI subsystem (either in the framework it self, or ability to attach 3d party framework like CEGUI)
  • Input subsystem with support for keyboard, mouse and gamepad
  • Scripting support either using Lua or JavaScript (v8)
  • Tools to create content OR ability to use Blender as content creation tool
  • Preferably and not mandatory - Entity subsystem using Component based design.

A big list I got there.. Hope such beast exists.

 

[Edit] I know there is Unity3D, but for me it looks like a tool where you create content, put it all together, write few scripts and you got a game. While I do want to make games, I also get great satisfaction from Programming.

 

[Edit2] Its not mandatory that this will be one library. This could be a set of libraries that work together with each other. I'm ready to implement the glue code and missing functionality.

 

[Edit3] I got a suggestion about this http://mosra.cz/blog/magnum-features.php It have support for modern OpenGL, OpenAL and Bullet physics. I assume its possible to attach GUI, scripting and Entity system of my own to it.

 

Thank you in advance!


Edited by skwee, 03 December 2013 - 06:08 AM.

I would love to change the world, but they won’t give me the source code.


Sponsor:

#2 Sponji   Members   -  Reputation: 1248

Like
3Likes
Like

Posted 03 December 2013 - 06:28 AM

How about Ogre3D? I think it could be a good choice.


Derp

#3 skwee   Members   -  Reputation: 341

Like
5Likes
Like

Posted 03 December 2013 - 06:38 AM

Yea, Ogre3D is usually the first framework people recommend.

 

But for me Ogre3D is very bloat, big, confusing and messy. The learning curve is very high, their examples are not good enough, a lot of polymorphism to support both OpenGL and DirectX, messy plugin system, bad architecture (over-usage of Singleton pattern).

I want something more clear both in design and in usage.


I would love to change the world, but they won’t give me the source code.


#4 AticAtac   Members   -  Reputation: 328

Like
4Likes
Like

Posted 03 December 2013 - 07:30 AM

If you cann't handle Ogre3D (which in my opinion is far from being messy or confusing) then i wonder if you could handle the "features" you want to have with any engine.

To me it sounds that you are looking for a pure api engine which might be easier to start with but more diificult to deal with later.

 

Have a look here: http://devmaster.net/devdb/engines



#5 Mussi   Crossbones+   -  Reputation: 1967

Like
5Likes
Like

Posted 03 December 2013 - 07:46 AM

Have you taken a look at the C4 Engine? It's not free but it's a great engine with almost all the features you need(no lua or javascript based scripting), plus you get access to the source code. The community is also very active and helpful.



#6 skwee   Members   -  Reputation: 341

Like
4Likes
Like

Posted 03 December 2013 - 07:52 AM

AticAtac

I don't want to turn this thread into pros/cons of Ogre3D. Ogre is complex and big. When I used it, I didn't like it. I might reconsider my decision, but I first to check other alternatives first.

 

Mussi

Thanks, Ill check the features and will consider if I want to buy it or not.

 

Other suggestions are welcomed.


I would love to change the world, but they won’t give me the source code.


#7 dejaime   Crossbones+   -  Reputation: 4027

Like
3Likes
Like

Posted 03 December 2013 - 07:58 AM

Yea, Ogre3D is usually the first framework people recommend.

 

But for me Ogre3D is very bloat, big, confusing and messy. The learning curve is very high, their examples are not good enough, a lot of polymorphism to support both OpenGL and DirectX, messy plugin system, bad architecture (over-usage of Singleton pattern).

I want something more clear both in design and in usage.

I don't know about you, but Ogre3D architecture uses singletons very well, its architecture is very good imho.

 

The engine may be bloated, but that's expected once a library gets widely used. The fact that it has something you won't use doesn't affect your development.

 

You could simply go ahead and code DirectX and OpenGL directly if that really is a problem.

 

Take a look at Polycode, I've never used it myself (got frustrated by the lack of documentation back then) but it is very good.


Edited by dejaime, 03 December 2013 - 07:59 AM.


#8 skwee   Members   -  Reputation: 341

Like
4Likes
Like

Posted 03 December 2013 - 08:09 AM

dejaime

Well, again, Ogre3D is a matter of taste. I didn't like it.

 

I could code DX or OGL, but this is what I'm trying to avoid, since I want to make games and not engines.

 

Polycode looks nice! Ill check it better in comparison to Magnum I mentioned earlier. Those two looks very solid for me!


I would love to change the world, but they won’t give me the source code.


#9 V3ntr1s   Members   -  Reputation: 402

Like
3Likes
Like

Posted 03 December 2013 - 08:26 AM

You can try Irrlicht, you can find features here.

 

I prefer ogre, I think it's more powerful once you get used to it.



#10 skwee   Members   -  Reputation: 341

Like
4Likes
Like

Posted 03 December 2013 - 08:31 AM

V3ntr1s

Yeah, Irrlicht looks good.

 

Anyway, looks like many people are happy with Ogre3D and I'm probably misinformed or still padawan in game making. Therefor I'd like to ask:

All the guys who suggested Ogre3D: did you make any game or went further than running the Ogre3D examples? Did you successfully integrated sound, physics, ui, scripting into Ogre3D? Maybe I just got frustrated by the examples, therefor I have wrong understanding of Ogre3D

 

Thanks in advance.


Edited by skwee, 03 December 2013 - 08:34 AM.

I would love to change the world, but they won’t give me the source code.


#11 Mussi   Crossbones+   -  Reputation: 1967

Like
5Likes
Like

Posted 03 December 2013 - 09:11 AM

Ogre3D is just a graphics engine, you'll need different libraries for sound, physics, GUI, etc. I don't recommend it if you just want to get started on creating a game.



#12 JTippetts   Moderators   -  Reputation: 8491

Like
6Likes
Like

Posted 03 December 2013 - 09:12 AM

I use Urho3D. I tried Ogre for awhile, but it had some quite severe performance issues and for that reason I understand it is currently undergoing a major overhaul. The creator of Urho3D used Ogre for a long time in his job, and has stated he created Urho3D with Ogre as a basis of what not to do. I've been pretty impressed with the performance and features of Urho, so you might give it a look.

Edit: I should add that Urho3D fits nearly every criteria you listed, though it does list GL2.0 as the minimum requirement (or D3D9 if you choose, on Windows). However, for the rest of your list it provides a scripting interface with a choice of AngelScript or Lua, it provides particle systems, physics based on Bullet, audio, UI and input, it comes packed with a Blender exporter script, has an Assimp-based importer to import assets from various formats, has a tool for importing assets directly from Ogre format, and is fundamentally component-based at the architecture level. It's cross-platform and provides build targets for Windows, Mac, Linus, iOS, Android, Raspberry Pi. Plus, no singletons.

I recommend you pull directly from the git repository rather than downloading the latest release, as the repo is under active development and bug-fixing.

Edited by JTippetts, 03 December 2013 - 09:20 AM.


#13 skwee   Members   -  Reputation: 341

Like
3Likes
Like

Posted 03 December 2013 - 09:16 AM

Mussi

Yes I know that Ogre is just a graphics engine. But it have "Addons" for OpenAL, ODE, CEGUI and etc.

What do you recommend then, apart from C4?

 

JTippetts

Thanks! Heard about Urho. Looks very good. Need to investigate its feature. Will do so a bit later.

[Edit] Saw your edit. Yea it looks like exactly what I need. OpenGL, Lua and even with LuaJit, bullet, audio, UI. One thing I did not find, is async resource loading, but even if it does not exists, I can roll my own (though I have the feeling Urho3D does have one). Also nice to see that it comes with SDL2.0 which is also great! However it looks like no OpenGL 3.x+ support.


Edited by skwee, 03 December 2013 - 09:39 AM.

I would love to change the world, but they won’t give me the source code.


#14 Mussi   Crossbones+   -  Reputation: 1967

Like
4Likes
Like

Posted 03 December 2013 - 10:03 AM


Yes I know that Ogre is just a graphics engine. But it have "Addons" for OpenAL, ODE, CEGUI and etc.

What do you recommend then, apart from C4?

Setting up those libraries to work with Ogre3D isn't as simple as downloading and installing an add-on for some software. I recommend you go for a game engine that satisfies most of your needs in order to create the game you want to create. Why would you put together bits and pieces to create something that you already know you want, a game engine.



#15 Kryzon   Prime Members   -  Reputation: 3033

Like
0Likes
Like

Posted 03 December 2013 - 10:48 AM

Leadwerks

 

Maratis3D

 

Panda3D (uses Python but it's a very, very good engine)



#16 AgentC   Members   -  Reputation: 1335

Like
1Likes
Like

Posted 03 December 2013 - 10:49 AM

JTippetts, thanks for the Urho3D promotion (again smile.png) To clarify a bit, I have high respect for Ogre for teaching me about scene graphs, 3D math, rendering and animation. But as I learned more, I began to understand the deficiencies.

 

And yes, just to confirm, Urho3D only uses OpenGL up to the 2.0 spec and some extensions. It also does not load resources in the background, as of now.


Every time you add a boolean member variable, God kills a kitten. Every time you create a Manager class, God kills a kitten. Every time you create a Singleton...

Urho3D (engine)  Hessian (C64 game project)


#17 dejaime   Crossbones+   -  Reputation: 4027

Like
1Likes
Like

Posted 03 December 2013 - 12:07 PM

dejaime

Well, again, Ogre3D is a matter of taste. I didn't like it.

 

I could code DX or OGL, but this is what I'm trying to avoid, since I want to make games and not engines.

 

Polycode looks nice! Ill check it better in comparison to Magnum I mentioned earlier. Those two looks very solid for me!

Yes, I understand that, but your statement that it has a bad architecture is not a matter of taste; that's what I meant to correct. Ogre3D has a very simple and, more importantly, functional architecture.

 

Also, making engines is a part of making games, there are just some cases where you can find this part of your job done for you by someone else. Usually this doesn't happen when you step up from simple games to complex games, so we go engine hunting for something that doesn't exist; this is when one has to step up and really do the not-so-satisfying job of implementing boring stuff...


Edited by dejaime, 03 December 2013 - 12:12 PM.


#18 Kryzon   Prime Members   -  Reputation: 3033

Like
0Likes
Like

Posted 03 December 2013 - 01:02 PM

[Edit] I know there is Unity3D, but for me it looks like a tool where you create content, put it all together, write few scripts and you got a game.

While I do want to make games, I also get great satisfaction from Programming.

Hello. I hadn't read this edit of yours before.

 

In what way do you expect to create any game other than creating content and putting it together? Whatever engine you pick, these are the things that you will always have to do.

I don't understand how this, for you, is a negative point towards Unity.

Note that I didn't mention the scripting because it's included in "content" as well (shaders and logic code are assets just like art and sound). 

 

Regarding that "write a few scripts" clause:

A) You won't write a few or a lot of scripts; You will write the precise amount that you need for your game to work - it depends on the complexity of your game, not the engine that you're using.

B) Any original game with original content that you set to make will be a challenging task and require a lot of scripts, regardless of the tool you use.

 

Getting satisfaction from programming vs scripting.

Scripting is programming, only without requiring an explicit compilation step: http://stackoverflow.com/a/17253557

You will still deal with algorithms, conditioning, program flow, debugging etc., if this is what gives you satisfaction.

 

So I suggest that you revise your opinion of Unity and other engines that you may have disregarded because of this, as they might just be what you're looking for.

Instead of seeing features as "taking away control from you", try to see them as "facilitating production" so that you can reach your goal faster: make a finished, polished game.

Regards.


Edited by Kryzon, 03 December 2013 - 01:10 PM.


#19 rpiller   Members   -  Reputation: 683

Like
0Likes
Like

Posted 03 December 2013 - 01:05 PM

Leadwerks supports pretty much everything on your list. If you code in C++ (it has lua also) you can structure your game however you want. It doesn't lock you, or highly suggest a design pattern like Unity does. This can be good or bad but you said you like coding so I would think you would love it.

 

It's Lua scripting has more of a pattern to it. You can mix and match C++ & Lua. I've exposed RakNet to it's Lua bindings so you can do a lot with it.

 

It's OpenGL and the new version (out in dec) is the latest version and Linux support.

 

It has Mac, Windows, Android, & iOS with Linux coming in Dec.

 

It's entity based which makes programming with it really fun and easy.

 

It has a nice and clean API.

 

It has a nice editor and supporting tools.

 

No GUI but you can plug whatever 3rd party into it.


Edited by rpiller, 03 December 2013 - 01:10 PM.


#20 Godmil   Members   -  Reputation: 744

Like
2Likes
Like

Posted 03 December 2013 - 04:21 PM

I may get shot down for this but... What are your thoughts on Unreal?






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS