Best engines for openGL (easy to learn)


I’m developing a project in C++ with openGL. It’s a maze type of 3D game.
I googled for openGL engines that could make the “heavy lifting” of the programming. I was wondering if there was a lightweight engine that’s easy to learn to make it easier to draw walls or apply textures or whatever…

I looked a bit into Magnum (github /mosra/magnum) and Ogre (wikipedia (dot) org/wiki/OGRE), but felt like they have little documentation and few examples online. I need something that’s easy to use and doesn’t change much our workflow.

Can anyone recommend an engine? (except for unity, cryEgine, unreal and those more advanced stuff)


Regarding your title: Please don’t confuse a graphics API with some software layered using implementations of this API, i.e. OpenGL is not software and you don’t choose what some people call “engine” for OpenGL, it’s the otherway around, you choose software that uses implementations of OpenGL through the specified API. I know it’s nitpicking but it’s important not to confuse stuff.

Regarding the docs for OGRE, IIRC they were not that lacking, muss less incomplete but a little inconvenient to browse. They also have a wiki which provides a lot of tutorials on getting started and so on.

Can anyone recommend an engine? (except for unity, cryEgine, unreal and those more advanced stuff)

The question is: do you really need a full blown game engine to realize a simple 3D maze game? What are your requirements? Do you need networking, sound, physics simulation, character animation and so forth?

I wouldn’t choose a library solely depending on ease-of-use but mostly depending on the feature set I need. Every good game engine is a complex beast and IMHO, none of them are super easy to use so that you don’t have to do almost nothing to get your stuff on screen.

I don’t know about that; Herb Sutter was able to make a reasonable, mute Pac-Man clone with nothing more than standard C++11 and a single graphics library. In an afternoon.

Sure, it’s Herb Sutter (for those who don’t know, he’s the chairman of the ISO C++ standards committee, a software architect at Microsoft, and author of several well know and excellent C++ books, so he knows his stuff), and Pac-Man is hardly complex in this day and age. But Herb is far from a game developer. So my point is clear: a good game engine does not have to be hard to learn or get something done with.

Now, if you’re learning how to program at the same time, then you’ll have some problems.

Yeah cinder is more like it I guess - arguably a much better scale than the Unreal Engine. :slight_smile: Frankly, if I had to do a simple, mute 3D maze game, I’d write it in core GL 3/4, C++11 and probably GLFW and maybe something like FreeImage or even procedural textures. Then again, we don’t know how experienced the OP is in terms of general and graphics programming. (BTW, Sutter’s talk on this was quite nice.)

Agreed - If given a choice (sadly sometimes you don’t get to choose), always go for the most suitable lib in terms of usability (including good documentation) and feature set (including portability) and implementation quality. I think it’s the tricky, more advanced parts of making a game or any visualization software that show weaknesses and strengths of the 3rd party libs very quickly. That’s when you really get screwed by bad design choices, performance issues and lack of documentation.

Also, since when is “not super easy” equal to “hard”? :stuck_out_tongue:

I’m a little puzzled by the OPs statement

What workflow is that? I didn’t realize that until now and it just adds to the list of requirements. Also what platforms (both actual device and OS) are you targetting?

EDIT: … and I’d use glLoadGen … :smiley:

Perhaps I should’ve given a bit more information about the assignment. And I’m sorry for the API/engine confusion, I have been using the terms “framework” and “engine” rather loosely and I take it may bring some confusion.

First of all, Unity and unreal are not allowed, because they would make the project “too easy”. If I was developing on my own I would surely consider them but since there are rules to this assignment these sort of engines are out of the question. Others like Ogre and Magnum are OK.

The concept can be developed in pure C++, I only seek something that can make it faster because there’s a deadline and I want to work as fast as possible. Since Christmas vacations are caught in between I considered using them to learn one of these API’s (am I using the term correctly?)
Graphically I’ll require to draw the maps, textures, add some pre made objects (like boxes, NPC’s), and then the usual stuff like collision control and whatnot… later on I will have to play a bit with lights and effects like rain, thunder or other similar stuff…

So I guess the question here is: is it worth it to learn how to use Ogre (or other similar API) to develop my project?

thokra What I meant with “workflow” is… hum… I should’ve expressed a little better… Basically I mean I want to stay strictly with Visual Studio and not mess around with graphical UI’s, so I won’t use software like Blender (any models will probably be given or free ones downloaded).

I ask this for one simple reason… back in college I started coding for OpenGL in my mac, using Xcode, and I every time I downloaded a template project or an example from the school’s website, after changing the imports (to Mac’s openGL) I was astounded there were still 40+ warnings… almost all related to “deprecated” functions. Later on I changed to Visual Studio in a VM to avoid compatibility issues when working in a team (the other’s are running Windows so…) … I want to ask if there are any big differences with the recent version of openGL… but I’m not quite sure which one I was using…

I would post a link of a very similar project to the one I want to make (that I made in class), but this forum doesn’t allow me to post links… still please search Github for my username and see if you find a “Homer-LabyrinthGame” repo there.

Thanks a bunch for the replies I’ll look a bit into that glLoadGen.

jMonkeyEngine- A 3D game engine written in and for Java. Many features including collisions, particle systems, shaders, terrain system, renderer abstraction.