Over the last several years I’ve been getting into making video games in some of my free time. I’ve investigated in quite a few places. I figured I’d write down some observations and point to some tools that may help people with a similar interest. Most of my research was centered toward cross-platform hardware-accelerated 2D games, so I focused on tools that could render with OpenGL.
Java
I started out in this pursuit with Java, and for various reasons I’m back with using Java again. It has a good balance between ease of coding, thanks to some great tools like Eclipse, and performance. There is also a strong and growing community of game developers working in Java.
Slick - A great easy to use 2d engine. I’m currently building a platform game with this engine, and its quite friendly to use. It doesn’t have a scenegraph but it does have a lot of things to make it convenient to use without blocking you from going to another library for pieces of functionality.
JMonkey Engine - 3d engine with a strong community. I was using it back in version 2 to make fattywars. At that time the community around the engine was struggling with the loss of some of its developers, but its since picked up speed again.
LWJGL - seen some very cool games that run on it. See puppygames.com
jBox2d - close port of Box2d physics. The most well known 2d physics library.
C++
People say if you want to get serious about games you need to work in C++, because that’s what the industry uses. That said, I expected to find a much larger group of tools for developing games in C++ than in the other languages. But was surprised that while it may be true that there are a ton of commercial tools out there, the amount of open source stuff out there is comparable or lesser than what can be found in java or python. This is especially true if you’re wanting your game to be cross-platform.
SDL - This library’s strength is that it is the number of platforms it runs on. Linux, Mac, PC, homebrew consoles, handhelds, etc.
SFML - I had already switched back to Java when I’d heard about this one, but I hear good things about it. I’ll definitely be checking it out in the future.
Box2d - popular 2d physics
Chipmunk - C, Objective C - fast 2d physics.
Ogre3d - This is a very popular graphics renderer with many proven results. Commercial game Torchlight uses this tool. If I was interested in making a pro-grade 3d game on open source software, I’d look here.
Python
Python seems to have fewer people working on games for each library I looked at than either the C++ camp or the Java camp. Not to say there aren’t a ton of libraries and people collaborating on code. Perhaps there are more people coding libraries than making games in python :).
Pyglet - Very cleanly written library for OpenGL graphics, and multimedia. Very easy to use. Very well documented.
Cocos2d (python) - builds on pyglet adding some stuff useful for 2d game devs. With these two systems together you can get 2d games up and running very quickly.
Pygame - though this library has a big following (biggest game library in Python), most of its community is using it for software rendered graphics rather than OpenGL. The community is currently working on a version 3 of pygame which sounds very promising.
