views:

982

answers:

6
+2  Q: 

2D Game Engines?

Some friends and I are just starting a small 2D game project (sort of a Shoot 'em up type game) and, not wanting to reinvent the wheel, we are looking for a (free/open source) game engine. So far, the candidates are Allegro (C++) and Pygame (Python). Are there any others we should be looking at? Are there any reasons to choose or not to choose the two that we are currently looking at? Any experience that you have had with these or any others would be helpful.

Also, the programming language is not too important to us, but cross-platform is important, so no XNA.

+4  A: 

It depends on what language you're most comfortable with. From my experience, games need prototyping - i.e. small demonstration programs for various sub-features. It's important to be able to write those quickly and comfortably.

I've used Pygame, it's very good. You can use it for basic prototyping, and most likely it will be enough to run any full-featured 2D game - just look at the example games at the Pygame website - some of them are quite advanced and have smooth, complex 2D graphics.

Besides, Python is a much more convenient language to prototype games with than C++, IMHO. And as Pygame is basically a wrapper around SDL, you can always move to SDL later on if performance becomes a problem.

Eli Bendersky
+1  A: 

SDL is relatively low level, but it has been used in many games and is very portable. I've built my own engine on top of that and a few additional ones like AGG, FreeImage and WxWidgets.

Adrian Grigore
A: 

If you're good with Java, there's Slick2D. It uses OpenGL (via LWJGL) to render 2D graphics.

There's also Golden T Game Engine, which uses LWJGL as well.

I've looked at the source code for both libraries and I'd recommend Slick over GTGE. Slick has many more features and a more permissive license (BSD).

cdmckay
+1  A: 

I am using pyglet. It has some things considerably well done. For instance event dispatching. It's also clean enough that you don't need to think about wrapping it under yet another wrapper - unlike SDL or pygame.

Cheery
+3  A: 

In addition to Allegro for 2D game programming in C++, I would recommend taking a look at the following two libraries:

SDL - Simple DirectMedia Layer

SFML - Simple and Fast Multimedia Library

SFML is a bit different from Allegro and SDL in that is object-oriented.

pikejd
A: 

while not exactly a 'game' engine, i'd suggest opengl along with glfw. some additional information can be obtained from the following sites: http://74.125.95.132/search?q=cache:hJh6Sg-kVtwJ:glfw.sourceforge.net/GLFWReference26.pdf http://nehe.gamedev.net/ http://glfw.sourceforge.net/

william56