Choosing a 2D game engine for my project

Started by
17 comments, last by GamDev 11 years, 7 months ago

I had this same problem ( not knowing what 2D engine to use ) and I ended up writing my own.
My main issue with most 2D engines is that they don't support shaders.
Even Torque 2D has just some silly blend modes that makes me think that they just use fixed pipeline when rendering everything in there.
Using a 3D Engine for 2D games might give you a lot of work too. You will need to change the way physics works if you wnat to make a sprite based engine ( not just a 3D game where you see the character from the side). This can be easy or not depending on what you choose here. For example for UDK it's nearly impossible to change the physics code and replace it with Box2D since you don't have access to the sources.

In the end you need to ask youself what is the end goal.
Do you want to make a game in order to sell it? I doubt it can be successfull given the huge amount of first-project flops that come even from experinced programmers.
Not wanting to discurage you here, but since you mentioned PASCAL I start to believe that you're not that experienced with game development or programming in general.
If you want to make it for your portofolio, you could impress people more if you do your own engine. It would also be a really nice learning experience.


Well I don't need shaders, I'm not looking to create a game of high-end graphics. I'm looking to create a game that looks like it has been created in '91, they don't have shaders and possibly other features that you needed for your project. :)

I've mentioned Pascal because I had to work with it at school. It was absolute horror! The primitive way how it works... Horrible experience. So in short, that's unrelated to my own choices, it was an enforced enforced by school, I will never lay my hands on it again. However that is true, I'm not very experienced programmer in general, I am good with the logic, but writing it down is hard for me.

I do understand that I'm not experienced, however when I work on something, I always do my best and then some, I never leave it half-way. I've seen many projects and (no offense), but most of them are horrible. I think the commercial way is the way to go for me, due to the lack of money mentioned in real life. But as the first project, I don't think writing an engine is the right way to go, it is a lot of work and has a great potential for a lot of bugs and inefficiency compared to what's already written and is proven to work.
Advertisement
I would also suggest SFML
It's only a graphics library.
SFML is a great API for graphics, Input, Windowing, and Audio. I combine that with a 2d physics library to handle all my movements and collision detection. I use chipmunk-physics but Box2d is a popular one as well.

My old blog (linked in my sig) outlines the steps and has all the source code I took to make a top-down game using SFML and chipmunk-physics.

My Gamedev Journal: 2D Game Making, the Easy Way

---(Old Blog, still has good info): 2dGameMaking
-----
"No one ever posts on that message board; it's too crowded." - Yoga Berra (sorta)

What you are looking for simply isn't out there. The closes you are going to come is Cocos2d-x (The C++ port of Cocos2d) http://www.cocos2d-x.org/
Maybe game-maker? The issue with game-maker being it uses a scripting language, not C++. http://www.yoyogames.com/gamemaker/studio/standard

Anyway, if you find entity management a challenge you probably don't have a solid enough understanding of C++ to make a game without shooting yourself in the foot.
I understand the make games, not engines mentality; but making games without enough understanding of what is under the hood leads to bad games.

My opinion mate, spend some time studying, it's worth it in the end. Either write your own data structures, write your own memory manager, your own entity handling framework, render code, actually understand what it is you are doing, or admit to yourself that your understanding of C/C++ is too minimal for a game, learn a scripting language and script games in engines.
You will not find what you are looking for sir. Based upon your responses thus far, it seems you and I are after the same thing. Why do you think I am in the process of converting SFML into a full fledged game engine. I expect this little project of mine to take years to complete.

You can find it at https://github.com/kd7tck/SFML, still just an early prototype though.

SFML is a great API for graphics, Input, Windowing, and Audio. I combine that with a 2d physics library to handle all my movements and collision detection. I use chipmunk-physics but Box2d is a popular one as well.

My old blog (linked in my sig) outlines the steps and has all the source code I took to make a top-down game using SFML and chipmunk-physics.


Thanks, I'll definitely check it out! When I was a kid, my dream was to make an isometric RPG, but as I looked into actual programming, a side-scroller seems like a solid starting point instead. :)


What you are looking for simply isn't out there. The closes you are going to come is Cocos2d-x (The C++ port of Cocos2d) http://www.cocos2d-x.org/
Maybe game-maker? The issue with game-maker being it uses a scripting language, not C++. http://www.yoyogames...studio/standard

Anyway, if you find entity management a challenge you probably don't have a solid enough understanding of C++ to make a game without shooting yourself in the foot.
I understand the make games, not engines mentality; but making games without enough understanding of what is under the hood leads to bad games.

My opinion mate, spend some time studying, it's worth it in the end. Either write your own data structures, write your own memory manager, your own entity handling framework, render code, actually understand what it is you are doing, or admit to yourself that your understanding of C/C++ is too minimal for a game, learn a scripting language and script games in engines.


I do understand the concept, I could tell you how it works step-by-step, what's used and how, the thing I cannot tell you is the code. So no offense, but starting with an engine for me is irrational. Building an engine is good if you are bad at understanding the theory and/or analyzing it in-depth.


You will not find what you are looking for sir. Based upon your responses thus far, it seems you and I are after the same thing. Why do you think I am in the process of converting SFML into a full fledged game engine. I expect this little project of mine to take years to complete.

You can find it at https://github.com/kd7tck/SFML, still just an early prototype though.


I see. Well prototype isn't useful (no offense), but thanks for the link. I'll follow your progress. ;)
SDL, Allegro and SFML are not game engines!!

SDL 2.0

Latest SDL port for Windows, Linux, Mac OSX, iOS and Android. Improvement to the last 1.2 API. Offers 2D hardware Acceleration. Still in development but last I checked they where talking about releasing it. Don't let the still in development fool you, it's been for a while now and it's near release I would say. Many improvements and functionality have been added to it. Note you will have to download SDL from mercurial if you want the latest, you can also get all the other extensions from there SDL_image, SDL_mixer, SDL_ttf, SDL_net

SFML 2.0

Support for Windows, Linux and Mac OSX, built in features like audio, networking... Higher Level then SDL.

Allegro 5

Supports for Windows, Linux, Mac OSX and iOS. Allegro 5.1 supports Android.

addons are:
Audio addon
Audio codecs
Color addon
Font addons
Image I/O addon
Main addon
Memfile addon
Native dialogs addon
PhysicsFS addon
Primitives addon
Shader addon

Really any of the 3 could be used to make your game note you can use Box2D for physics with any of the 3. Also like to say SDL is written in pure C not half C half C++, if you decide to use C++ with it it's completely up to the coder. C was just the language preference of the creator.

Ive heard great things about all the above, SFML I have never used.

I'm currently using SDL 2.0 on iOS, and it's doing a pretty good job, if you needed anything for SDL I could provide example code or even a game template. If so also let me know what platform you will be working on
@stevo58 Thank you, I will definitely consider contacting you if I'll choose SDL to work with.

This topic is closed to new replies.

Advertisement