C++ 2D Game Engine

Pages: 12
Hi guys,

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.

Thanks!
Oui.

I'm not sure there is one. Perhaps you can be the one to make one? =]

I like the suggestion Code Assassin. I wish I could. ROFL
Alright, I think I found something:

http://gamedev.sourceforge.net/

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
Torque2D?

@TheNoobie: It looks awesome...apparently it's not free =(
you can probably try using a 3d game engine instead, I think those should have 2D support as well. Ogre3D seems to have a 2D sprite manager I mean. =)

http://www.ogre3d.org/tikiwiki/SpriteManager2d&structure=Cookbook
Last edited on

@Dacster13: I will check that out. Thanks!
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. )
Last edited on
There's nothing wrong if he doesn't want to implement a game engine from scratch though. That's just my humble opinion.
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.

http://www.sfml-dev.org

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.
Last edited on
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.


lolz, that was what I was wondering too. :P
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. )
Last edited on
I'm not saying you're wrong, I'm just saying he wasn't asking about any of that. In fact he specifically said that wasn't what he was looking for.

OP wrote:
I'm not looking for a game programming library, but an actual game engine.
Win - OpenGL has tessellation too.

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.

@OP: Look here, maybe you'll find something worthwhile.
http://content.gpwiki.org/index.php/Game_Engines
@ 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.
Last edited on
I used to think that too. Until I really got into game programming.
Pages: 12