Allegro vs. SDL vs. Ogre3D vs, Irrlicht
I have some questions that maybe you experienced individuals might be able to answer. Im looking to start trying out things with games in 2d/3d in c++. Im decent at the language. I think i would be considered a novice, but if not somewhere in between a novice and a newbie. I would like to know the best game library out of the four i chose, but if you know one that would be better than by all means recommend it.
I would like a comparison between them all if possible, or some tell me about the experience you had with them. Talk about difficulties/problems, pros, cons, etc...
Thanks for the help :)
May I suggest adding SFML to your list? It's much like SDL except it provides a modern C++ interface and supports hardware accelerated sprite rotation and scaling (huge benefit over SDL which lacks these unless GL is used). SDL is an excellent library, but the C API doesn't work all that well with a C++ code base in my opinion.
My experience with Ogre and Irrlicht is very limited, but if I had to choose one I'd definitely say Ogre because its design is cleaner, it appears to have a slightly larger community, and it is commercially proven (Torchlight). With that said I strongly urge you to make some 2D games before taking on a 3D project.
[Edited by - Windryder on January 23, 2010 1:27:46 PM]
My experience with Ogre and Irrlicht is very limited, but if I had to choose one I'd definitely say Ogre because its design is cleaner, it appears to have a slightly larger community, and it is commercially proven (Torchlight). With that said I strongly urge you to make some 2D games before taking on a 3D project.
[Edited by - Windryder on January 23, 2010 1:27:46 PM]
I haven't used Irrlicht much, and never touched Ogre, but I have used Allegro and have really played around with SDL.
My recommendation to you would be to, if making a 2D game, use one directed for 2D (SDL or Allegro), and if making a 3D game, use one directed for 3D (Ogre or Irrlicht); sure, you can make the 2D-focused APIs play with 3D, or the 3D engines be bound to 2D, but why jump through those hoops? There's no reason you are stuck with one or the other, and figuring out the "best" tool for the job depends heavily on what that job actually is. Plus, learning multiple APIs will give you more experience and make you a better programmer.
That said, between the two I am familiar with (Allegro and SDL), my problem with Allegro is that when I was a new-er programmer, it was teaching me bad programming practices because I didn't really understand what I was doing. Allegro is a C programming API (as is SDL), and I didn't know how to properly apply C++ features to an older API like that.
Plus, I recall that I always ran into minor problems that, as a new programmer, left me really lost and confused and I ended up giving up 2D graphics and going back to text-based games for another six months before I found SDL.
SDL, while still having a learning curve for a programmer as inexperienced as I was, seemed a much more "friendlier" API, and it was much easier for me to learn.
Currently, I'm playing with a API called SFML, and I'm liking it even better than SDL. Allegro is a C library; SDL is a library made for C++ and C, so it fits C++ (in my opinion) better than Allegro does, but still must cater to C by not using any C++ features that don't work with C. SFML is a thouroughly C++ library, and embraces C++ entirely.
I still love SDL alot, and I'd recommend checking out either SFML or SDL. As for 3D - go get a 3D engine to make 3D games, not a 2D API, unless you actually enjoy manually doing the 3D stuff yourself.
My recommendation to you would be to, if making a 2D game, use one directed for 2D (SDL or Allegro), and if making a 3D game, use one directed for 3D (Ogre or Irrlicht); sure, you can make the 2D-focused APIs play with 3D, or the 3D engines be bound to 2D, but why jump through those hoops? There's no reason you are stuck with one or the other, and figuring out the "best" tool for the job depends heavily on what that job actually is. Plus, learning multiple APIs will give you more experience and make you a better programmer.
That said, between the two I am familiar with (Allegro and SDL), my problem with Allegro is that when I was a new-er programmer, it was teaching me bad programming practices because I didn't really understand what I was doing. Allegro is a C programming API (as is SDL), and I didn't know how to properly apply C++ features to an older API like that.
Plus, I recall that I always ran into minor problems that, as a new programmer, left me really lost and confused and I ended up giving up 2D graphics and going back to text-based games for another six months before I found SDL.
SDL, while still having a learning curve for a programmer as inexperienced as I was, seemed a much more "friendlier" API, and it was much easier for me to learn.
Currently, I'm playing with a API called SFML, and I'm liking it even better than SDL. Allegro is a C library; SDL is a library made for C++ and C, so it fits C++ (in my opinion) better than Allegro does, but still must cater to C by not using any C++ features that don't work with C. SFML is a thouroughly C++ library, and embraces C++ entirely.
I still love SDL alot, and I'd recommend checking out either SFML or SDL. As for 3D - go get a 3D engine to make 3D games, not a 2D API, unless you actually enjoy manually doing the 3D stuff yourself.
Thanks, SFML seems to be promising and doesn't look to have an extreme learning curve.
I have some questions that maybe you experienced individuals ...would be considered a novice...
Man, I´m experienced in C++, but a novice in games, just like you. I tried several libraries and picked Irrlicht. Great engine, easy to understand and extend.
SDL is easier than Allegro. Ogre is more of a graphics library than game staff and, believe me, it is hard to master.
Go for Irrlicht. You can find your way with the tutorials, but there are some useful books on games and engines. Found this book for example, about irrlicht & games. I´ve ordered it, I´ll post comments later.
Irrlicht is great but after some time I started to feel that it is bounding me...
So I switched OGRE and I do not regret it... there are lot of other libraries which work great together with Ogre.
Also several commercial Ogre powered games went gold, while Irrlicht powered... ???
For 2D I still use SDL, Ogre is too complex for 2D drawing...
So I switched OGRE and I do not regret it... there are lot of other libraries which work great together with Ogre.
Also several commercial Ogre powered games went gold, while Irrlicht powered... ???
For 2D I still use SDL, Ogre is too complex for 2D drawing...
I create cool-looking Graphical Installers in NSIS:
http://unsigned-softworks.sk/installer
http://unsigned-softworks.sk/en/images/gallery/solutions/solution_1.jpg
http://unsigned-softworks.sk/en/images/gallery/technical/technical_1.jpg
http://unsigned-softworks.sk/installer
http://unsigned-softworks.sk/en/images/gallery/solutions/solution_1.jpg
http://unsigned-softworks.sk/en/images/gallery/technical/technical_1.jpg
Hi there,
I am using Irrlicht quite a lot, mainly because it's easy to use, but Irrlicht is just a graphics engine. It provides some (imho) easy and extensible 3D rendering features and even an input system, but it doesn't include lots of the other things necessary for games, e.g. physics and sound. On the other hand there are a lot of wrappers in the Irrlicht forum that add the functionality of other libraries, e.g. ODE, Bullet... .
I am using Irrlicht quite a lot, mainly because it's easy to use, but Irrlicht is just a graphics engine. It provides some (imho) easy and extensible 3D rendering features and even an input system, but it doesn't include lots of the other things necessary for games, e.g. physics and sound. On the other hand there are a lot of wrappers in the Irrlicht forum that add the functionality of other libraries, e.g. ODE, Bullet... .
If you're intending to make 2D games, you really can't beat SDL. Many Allegro faithfuls exist, but SDL is just great. It abstracts just enough to save countless hours of development time, but remains low-level enough that you have a considerable amount of control over your application with a simple and understandable interface.
SFML is a good option, but it isn't nearly as mature or well-ported as SDL or Allegro.
If you want to program a 3D game, and don't want to write your own graphics engine, I recommend Irrlicht. It's very simple to get started.
That said, if you plan to jump straight into game programming without learning generic programming first, I must dissuade you.
SFML is a good option, but it isn't nearly as mature or well-ported as SDL or Allegro.
If you want to program a 3D game, and don't want to write your own graphics engine, I recommend Irrlicht. It's very simple to get started.
That said, if you plan to jump straight into game programming without learning generic programming first, I must dissuade you.
I wouldn't use Irrlicht. I started using it came up with some issues on rendering to the screen and couldnt figure out my issue. I went to the forums and asked for help I didn't get any help, they kept telling me to remove something out of my code, which would make it so it wouldnt run they said it would make it so it ran in which, their support sucks. So I'd go with Orge that is the one I am going to start playing with.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement