• Advertisement
Sign in to follow this  

choosing a library for c++

This topic is 1911 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I've tried both allegro and sdl for a week each. I cant find many advanced allegro tutorials and I eventually want to move onto 3-d programming. What I really want is to be able to find a library that I can stick with til the end, no matter how hard or easy it is to learn.
Does anyone have suggestions on what I can use?

Share this post


Link to post
Share on other sites
Advertisement
Ogre 3d is great. It is under the [url="http://www.ogre3d.org/licensing"]MIT License[/url] and has many tutorials you just have to search through the wiki and stuff.
[url="http://www.ogre3d.org/"]http://www.ogre3d.org/[/url]
[url="http://www.ogre3d.org/tikiwiki/tiki-index.php"]http://www.ogre3d.or.../tiki-index.php[/url]
[url="http://www.ogre3d.org/tikiwiki/tiki-index.php?page=Tutorials"]http://www.ogre3d.or...?page=Tutorials[/url]

And for input and sound I like SFML and you can use this for commercial or non commercial games whether they are open source or not.
[url="http://www.sfml-dev.org/"]http://www.sfml-dev.org/[/url]
[url="http://www.sfml-dev.org/license.php"]http://www.sfml-dev.org/license.php[/url]

Also here is a tutorial I have used and it is great for starting out in SFML. It shows you how you can set up SFML and any other library in Visual Studios C++. It also shows you how to make a pong game with SFML.

http://www.gamefromscratch.com/page/Game-From-Scratch-CPP-Edition.aspx Edited by Manill66

Share this post


Link to post
Share on other sites
SFML: Great for Graphics, Input, and Sound. It makes manipulating images extremely easy because of built in functionality (Unlike Allegro or SDL).
SDL: Functional programming, Great for input and has a large community
Allegro: Slowly moving to Object Oriented Programming (Like SFML). It's fallen out of popularity but is a great library.

For 3d you can either use:
DirectX: For windows platform only.
OpenGL: Android, Windows, and I believe Mac?
Ogre3d: A rendering engine. I don't like it. There's a lot of good stuff, however it's slow (From what I've heard). I wouldn't use it, however I recommend you try it out and see if you like it.

Overall, you should try out all the options available for a little bit and see what you like. No matter which one you choose, they all have the same end resolution. (If you're going to be dealing with OpenGL however, use SDL, it's far better than SFML or Allegro currently)

Share this post


Link to post
Share on other sites
Well, you have to choose if you want to use the low-level 3D library (OpenGL, Direct3D) which only handle things like drawing triangles, skinning etc. and program the advanced functionality (loading models, skeletal animation, et cetera). It takes a LONG TIME to comprehend (I would say 2-3 years at least to move to the current state of art technology), so be prepared. The upside is that you can make unusual games (e. g. space simulators) – the library won't limit you much – and you can fine-tune the graphics. Also take note that OpenGL and Direct3D (and drivers for them) are developed by professionals and don't suffer from "opensourceness" – known bugs and missing features not being fixed/added because the developers don't think they are important. The support is also much better because almost every programmer in game programming field knows one of them.

If you use the Direct3D, you can run your game only on Windows (and maybe Wine), so the best windowing library is the Windows API.

If you use OpenGL, you must choose a windowing library:[list]
[*]Windows API (as demonstrated by NeHe) is not recommended to use. You lose your portability and it's messy.
[*]GLUT was a nice library, it has been discontinued by the author, but its fork FreeGLUT looked fine to me.
[*]I personally prefer GLFW, it is a lightweight library, so don't expect much, but it is clean and stable.
[*]SFML is another choice, but I found its documentation lacking and the library kind of new and missing important features. The sprite-manipulation API looks half-done to me at this point.
[*]Allegro and SDL are heavy-weight libraries, having 2D functionality, more helper functions and so on. I would recommend the latter as it has much larger community.
[/list]
To summarize, if you just want a window created for drawing and input polled, use GLFW or FreeGLUT. If you need more from the library (2D drawing, audio), use SDL.

If you want to use graphics engines (Ogre3D, Irrlicht), you will have to cope with incomplete documentation, some bugs and inflexibility. But you will learn it (and make a game with it) much sooner than a 3D library. I used only Ogre3D and I have to say that it is a rapid and sufficient tool to make a game with. You can always modify it (MIT license). Some people say that Irrlicht is good, but I don't know.

In the end, the thing that matters is whether you want to make an engine or a game.

Share this post


Link to post
Share on other sites
[quote name='superman3275' timestamp='1351132954' post='4993640']
OpenGL: Android, Windows, and I believe Mac?
[/quote]
+ Linux (let's not forget our friendly penguin)

Share this post


Link to post
Share on other sites
[url="http://www.rastertek.com"][sub]http://www.rastertek.com[/sub][/url] has some nice tutorial on DirectX. I'm presently teaching myself DirectX 11 with the help of his tutorials and they are great. You can find one about DirectInput here : [url="http://www.rastertek.com/dx11tut13.html"]http://www.rastertek.com/dx11tut13.html[/url]

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement