I searched all over the internet but couldn't find the information I was looking for. So, now I would like to ask for your opinion. I just wanted to know what you think is the best free C++ 2D game engine. I'm not looking for a game programming library, but an actual game engine.
Yeah, that's definitely one. But the problem is, the last update was January 21, 2007. So I think that ship's been abandoned just like this one http://hge.relishgames.com/
I think I might go with HGE simply because it's been updated up to 2008. LOL. Not much of a choice. Thanks Code Assassin
I feel like I'm beating a dead horse here.. :: Rolls eyes :: LMAO
OpenGL is a 2D / 3D graphics API and it fully supports the creation of a 2D graphics Engine. It has most of the functions you want built in. You just make the loop using GL to do it. Look into it. AND its cross platform. Do some research on the net and you'll see that 2D graphics engines are all over as Open Source. But in the end, they are using either DirectX or OpenGL as their API. I'll rephrase that, Most use OpenGL or DirectX as their API, not all of them.
Might I suggest the book OpenGL SuperBible 4th Edition. ( Do not get the newer editions until you know for sure your target audience [ even if its only you ] can support the higher versions of OpenGL. The OpenGL Version means everything here. )
I totally agree, which is why I suggested OpenGL as his API. Remember DirectX and OpenGL are not graphics engines. They are only API's. Ogre can use either one of those API's. That's just one example.
So with either API he could make his own game engine.
I would recommend starting with SFML. It's basically a thin wrapper around OpenGL for graphics, but it also makes other stuff way easier, like texture loading, window creation, audio, joypad input, and even networking.
Another perk is that it's very easy to use OpenGL for graphic directly and still use SFML for all the other things. So even if you don't like SFML's graphic API, you don't have to use it.
EDIT: oh crap I just read the OP's post. He's not looking for a lib, he's looking for an engine. So what's with everyone recommending directX/OpenGL? o_O.
The reason its recommended is because once you start to get into graphics programming, you'll realize there are TWO MAJOR API's that are at war with each other. OpenGL and DirectX.
DirectX 11 has some REALLY powerful tessellation functions. But its windows only.
OpenGL is cross-platform.
Those are the two major differences between them. But just about ALL graphics engines call either one of these two APIs. Its why you see some games are made for Windows and the XBOX only. They will not run on Linux or MAC, period. But you'll see some games that run on all platforms. Well the answer is which API they are using. Now some Game Engines use BOTH of these APIs depending on which Operating System your on. If your on windows and your code allows it, it will default to DirectX because DirectX looks better if its done right. However, you can take that same program and post it to MAC or Linux and it looks great on there too, but only because its switching over to OpenGL. There are other graphics APIs, but the two I listed are the two major competitors.
Example : When you look up Video Card specs, you look and will find DirectX version number as well as the OpenGL number that the card will support by default. You can upgrade these versions by updating your DirectX version and your Graphics Drivers for OpenGL. ( NOTE : Not all cards support the most recent versions if your on an older video card. )
Also, he clearly said "Game Engine" not "Graphics API". I take it you know the difference? He doesn't want to get into graphics programming, he wants to write a game. Pure OpenGL/DirectX takes a long time to get into, and then you'd still not even be close to writing a game cause there's so much other stuff you'd have to worry about. Telling someone who wants to make a game "go write your own engine" is incredibly unreasonable.
Also, Direct3D doesn't magically make stuff look better than OpenGL. It's just that it took ages for OpenGL to get past version 2, which was designed for intermediate mode and thus awkward to work with.
@ Disch I totally agree with you. He was not asking about an API. However, he will still need to know what he is getting into if he is getting into graphics programming. He will have no choice. 2d graphics engines still use an API and there are those rare cases when something just plain will not work, so you must rely on knowing what API the engine will be using.
@ WinwordExonar: I don't agree. There's no reason he needs to concern himself with those details. You're probably just overwhelming him with unnecessary information. It's entirely possible (and very likely) that he can just choose a game engine and work with it without ever knowing how that engine's underlying code works.
EDIT:
I mean really, you're talking about video cards and drivers. Who cares about all of that -- all he wants is a prebuilt 2D game engine. He's not making the next Halo.