Sign in to follow this  
Drew_Benton

Unity *Unofficial* Alternative Game Libraries FAQ [Updated 2/03/08]

Recommended Posts

Drew_Benton    1861
Current Updates:
  • Updated Cornerstone's tutorial link, double checked most links (2/3)

The Alternative Game Libraries FAQ Welcome! This forum is dedicated to the discussion of alternative game libraries used. If you have a specific question on the workings actual library itself, make sure you have checked the respective library’s forum if available. Please note that due to the broadness of this forum, not all libraries may be discussed here. We will try and cover as many as possible with the resources we have.
Before You Post Guidelines:
  • Read the library's documentation. Yes, it's a hassle and programmers are lazy, but most of the time your answer can be found there.
  • Perform a quick <insert your favorite search engine here> search. It takes less than a minute and you can find information a lot faster that way on your own.
  • Check the library’s forums/site for anything else that you might have missed.
  • Check the most recent pages of this forum for anything similar. Yes, the search does not work, but no, that does not mean you should not spend a minute or two hitting the 'next page' button and glancing down for keywords that are similar to what you are after.
If you have done all of these things and still cannot find what you need, then post your question in guidance with the posting rules.
Posting rules:
  • Use a subject line that accurately describes your problem. Subject lines like "Problem! I need help!", "Looky now!", "Boo!", or “Help PLZ PLZ PLZ PLZ” should be avoided; something like "SDL_Init(SDL_INIT_VIDEO) is failing" or "GLFW cannot be compiled" is more appropriate and appreciated.
  • When writing the question, write as clearly as possible. Proper grammar will help avoid misunderstanding, and is good netiquette. If you take the time to write your post properly, people will be happier to take the time to answer it.
  • Include all the information that might be needed for people to give a good answer. If you don't do give enough information, people won't be able to help you until you do. As a rule of thumb, always state the programming language you are using (SDL is made for more than one), operating system (SDL is cross-platform), and the SDL version (Not everyone uses the most recent) as the bare minimal.
  • Make good use of the the source and code tags where applicable. Posts such as this are hard to follow and read.
  • Abide by the GameDev.net posting rules.

Library Specific FAQs It is important to understand that the Alternate Game Library forum covers a vast number of topics, in comparison to some of the other forums. Keep this in mind when posting for you may not always get a response right away. As a general rule, wait at least 6 hours before you bump your own post if no one responds. For libraries that are not popular and well known, you might have to wait even longer. Contents: Allegro Audiere FMod GLee GLEW GLFW GLUT Irrlicht OGLWFW Ogre OpenAL SDL Allegro 1. What is Allegro?
  • Allegro is a game programming library for C/C++ developers distributed freely, supporting the following platforms: DOS, Unix (Linux, FreeBSD, Irix, Solaris, Darwin), Windows, QNX, BeOS and MacOS X. It provides many functions for graphics, sounds, player input (keyboard, mouse and joystick) and timers. It also provides fixed and floating point mathematical functions, 3d functions, file management functions, compressed datafile and a GUI.
2. Where can I find additional information on Allegro? 3. Can I use Direct3D with Allegro? Top Audiere 1. What is Audiere?
  • Audiere is a high-level audio API. It can play Ogg Vorbis, MP3, FLAC, uncompressed WAV, AIFF, MOD, S3M, XM, and IT files. For audio output, Audiere supports DirectSound or WinMM in Windows, OSS on Linux and Cygwin, and SGI AL on IRIX.
  • Audiere is open source and licensed under the LGPL. This means that you may freely use Audiere in commercial products, as long as you do not modify the source code. If you do modify Audiere and release a product that uses your modifications, you must release your changes to the code under the LGPL as well.
  • Audiere is portable. It is tested on Windows, Linux-i386, Cygwin, and IRIX with at least three major compilers. Most of Audiere is endian-independent, so I expect it would work with few modifications on other architectures.
Top FMod 1. What is FMOD?
  • FMOD is a cross platform audio library to let you easily implement audio into your applications and games. It can play almost any sound format you can think of including MP3s, OGGs, Midis, MOD files, WMAs, etc.
2. Where can I download FMOD? 3. Where can I find instructions on how to use FMOD? 4. What are some other uses of FMOD?
  • FMOD can be used to put sound and music into games, multimedia applications or pretty much anything that requires audio. The main benefit to using FMOD is that it is a cross platform library, allowing you to use it on a wide variety of operating systems. Not only is it very powerful, but it's also very easy to use. Just go through Joachim's quick tutorial and you'll see how easy it really is. FMOD Ex brings a new design to FMOD which makes sound and music data even easier to manage.
5. Are there any other additional features to FMOD?
  • FMOD Ex is a branch off of FMOD that gives it a whole set of new features including a .NET interface for development with C# and other .NET language.
Top GLee 1. What is GLee?
  • GLee (GL Easy Extension library) is a free cross-platform extension loading library for OpenGL. It provides seamless support for almost all OpenGL extensions and core functions up to OpenGL 2.0, automatically linking extension and core functions as they are used. GLee 1.5 is compatible with Windows, Linux and FreeBSD platforms. It is also likely to be compatible with other unix-like systems which use X windows.
2. Why use GLee?
  • GLee provides a simple interface for using extensions and core OpenGL functionality beyond OpenGL version 1.1, and automates the otherwise tedious process of linking function pointers. GLee works with both C and C++ compilers (as of version 2.3).
  • Because the code is automatically generated, the latest extensions can be included rapidly in new versions. Currently there is support for OpenGL up to 2.0 and almost all registered extensions.
Top GLEW 1. What is GLEW?
  • The OpenGL Extension Wrangler Library (GLEW) is a cross-platform C/C++ extension loading library. GLEW provides efficient run-time mechanisms for determining which OpenGL extensions are supported on the target platform. OpenGL core and extension functionality is exposed in a single header file. GLEW is available for a variety of operating systems, including Windows, Linux, Mac OS X, FreeBSD, Irix, and Solaris.
Top GLFW 1. What is GLFW?
  • GLFW is a free, open source, portable framework for OpenGL application development. In short, it is a link library that constitutes a powerful API for handling operating system specific tasks, such as opening an OpenGL window and reading keyboard, mouse and joystick input.
  • It also provides functions for reading a high precision timer, using OpenGL extensions, creating and synchronizing threads, reading textures from files and more
2. Why use GLFW?
  • GLFW is similar to SDL in terms of rich functionality and broad usage. Since it is an OpenGL library, you will have to be wanting to use OpenGL (unlike the other graphics apis you can use in SDL). It does not come with a sound system so you will have to use another library for that, but it does come with an input library. If you are looking for something new and easy to try, GLFW is a good bet.
3. Where can I find more information on GLFW? Top GLUT, FreeGLUT, etc… 1. What is GLUT?
  • GLUT (pronounced like the glut in gluttony) is the OpenGL Utility Toolkit, a window system independent toolkit for writing OpenGL programs. It implements a simple windowing application programming interface (API) for OpenGL. GLUT makes it considerably easier to learn about and explore OpenGL programming. GLUT provides a portable API so you can write a single OpenGL program that works across all PC and workstation OS platforms.
  • GLUT is designed for constructing small to medium sized OpenGL programs. While GLUT is well-suited to learning OpenGL and developing simple OpenGL applications, GLUT is not a full-featured toolkit so large applications requiring sophisticated user interfaces are better off using native window system toolkits. GLUT is simple, easy, and small.
  • The GLUT library has both C, C++ (same as C), FORTRAN, and Ada programming bindings. The GLUT source code distribution is portable to nearly all OpenGL implementations and platforms. The current version is 3.7. Additional releases of the library are not anticipated.
2. Why use GLUT?
  • If you are in need of something very quick and easy to make a demo or concept demonstration, then GLUT is a good choice. It provides a lot of functionality in OpenGL, such as pop up menus and a draw teapot function that are very useful. There are many versions and extensions to GLUT. Some of the main ones are: FreeGLUT, OpenGLUT, and GLUT for Win32.
3. Where can I find more information on GLUT? Top 1. What is Irrlicht?
  • The Irrlicht Engine is an open source high performance realtime 3D engine written and usable in C++ and also available for .NET languages. It is completely cross-platform, using D3D, OpenGL and its own software renderer, and has all of the state-of-the-art features which can be found in commercial 3d engines.
  • We've got a huge active community, and there are lots of projects in development that use the engine. You can find enhancements for Irrlicht all over the web, like alternative terrain renderers, portal renderers, exporters, world layers, tutorials, editors, language bindings for java, perl, ruby, basic, python, lua, and so on. And best of all: It's completely free.
2. Where can I find more information on Irrlicht Top OGLWFW 1. What is the OpenGL Window Framework (OGLWFW)?
  • The OGLWFW is a C++ framework design to allow for the creation and control of windows which are capable of hold an OpenGL rendering context. Windows can be windowed or fullscreen and the framework allows for switching between modes.
  • Methods exist to allow for you to either find a compatible mode for display and OpenGL as well as enumerate all the available hardware accelerated display modes and retrieve some basic information about the OpenGL subsystem installed on the system.
  • The OGLWFW also take care of extension initialization via GLee which is compiled in.
  • Finally, a basic event system exists which allows you to listen for window messages via a functor. This system is expanded as the need arises and often by request.
  • Currently only a MSVS.Net03/Win32 implementation exists, however a Linux/X version is in the works.
2. Where can I download OGLWFW at?
  • The OGLWFW can be downloaded from sourceforge and is released under the zlib licence.
3. Where can I find instructions to install OGLWFW?
  • No real instructions exist, its a simple case of download, extract and ensure the library and header folders are in your compilers path. On MSVS.Net03 including the oglwfw.hpp automatically links in the correct lib file for the runtime you are using.
4. Where can I find tutorials and other information on OGLWFW? 5. What are the uses of OGLWFW?
  • Creation and controlling of multiple windows, with some events relating to window operations. It also allows easy access to things such as FSAA, the accumlation buffer and all the OpenGL and display modes on the current machine. It is also possible to create a window in one thread and the OpenGL context in another to allow for message handing and rendering to accrue in separate threads.
Top Ogre 1. What is Ogre3D?
  • OGRE 1.4.6 [Eihort] represents the culmination of many years of continuous development, resulting in what is now regarded by many as the leading open source real time 3D rendering engine. OGRE is packed with features to make your development life easier, whether you're making games, architectural visualization, simulations, or anything else which requires a top-notch 3D rendering solution.
2. Where can I find additional information on Ogre3D?
  • All of the information you need is at their Wiki and on their forums.
3. What do I do when I need help with this library?
  • Any technical problem/question about Ogre belong on their forums. Ogre has excellent help available, make use of it when you are using this library.
Top OpenAL 1. What is OpenAL?
  • OpenAL is a cross-platform 3D audio API appropriate for use with gaming applications and many other types of audio applications.
  • The library models a collection of audio sources moving in a 3D space that are heard by a single listener somewhere in that space. The basic OpenAL objects are a Listener, a Source, and a Buffer. There can be a large number of Buffers, which contain audio data. Each buffer can be attached to one or more Sources, which represent points in 3D space which are emitting audio. There is always one Listener object (per audio context), which represents the position where the sources are heard -- rendering is done from the perspective of the Listener.
2. Why use OpenAL?
  • The main use is that it is a free cross platform LPGL licensed audio library that is fairly easy to use and very practical. It comes with a sample file that shows just about everything you would need to do in OpenAL. There are a few great tutorials on using OpenAL and it has good documentation. If you are looking for an alternative to DirectX based libraries and SDL's libraries, then you should take a look at OpenAL.
3. Where can I find some more information on OpenAL? Top SDL 1. What is SDL?
  • Simple DirectMedia Layer is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is used by MPEG playback software, emulators, and many popular games, including the award winning Linux port of "Civilization: Call To Power."
  • Simple DirectMedia Layer supports Linux, Windows, BeOS, MacOS Classic, MacOS X, FreeBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX. There is also code, but no official support, for Windows CE, AmigaOS, Dreamcast, Atari, NetBSD, AIX, OSF/Tru64, RISC OS, and SymbianOS. SDL is written in C, but works with C++ natively, and has bindings to several other languages, including Ada, Eiffel, Java, Lua, ML, Perl, PHP, Pike, Python, and Ruby.
  • Important Information on the status of SDL
2. Where can I download SDL at? 3. Where can I find instructions to install SDL?
  • Getting started with SDL (Older) 4. Where can I find additional tutorials and other information on SDL? Tutorials: Other: 5. What are the uses of SDL?
    • SDL can be used for making games, multimedia applications, as well as just about anything else. The main benefit to using SDL is that it is a cross platform library, allowing you to use it on a wide variety of operating systems, but it is still very useful for those that do not have that need. SDL can also server as a framework as well. SDL has been used in conjunction with Ogre3D and can be used with Direct3D as well.
    6. What are the common add-on libraries used with SDL?
    • SDL_mixer – Provides easy to use audio support.
    • SDL_image – Provides multiple image loading functionality.
    • SDL_net – Provides a network wrapper.
    • SDL_gfx – Provides image manipulation.
    • SDL_ttf – TTF fonts in SDL
    • SDL_draw - Provides primitive shape drawing
    Top
    Special thanks to all the users that contributed to this FAQ (in alphabetical order) Chris Barry Drew Benton Ryan Clark Aaron Cox Rob Jones Rob Loach Joel Longanecker Lazy Foo' Vampyre_Dark ... More to come ...
    [Edited by - Drew_Benton on February 3, 2008 6:41:43 PM]

    Share this post


    Link to post
    Share on other sites
    23yrold3yrold    941
    Yeah, definitely my bad there. [embarrass] I meant to do this and then totally forgot. Plus I'm only any good for the Allegro FAQ anyway. [smile] Input on the more obscure libraries especially are most welcome.

    Share this post


    Link to post
    Share on other sites
    Drew_Benton    1861
    Awesome! That takes care of Allegro and SDL for the most part. Now we just need those other libraries as well. We need to petition Oli to come back and give us a hand with Irrlicht as well as VertexNormal because I think I remember them using it last in a few projects. Anyways, I hope more people are able to contribute! For something as large as Alt. Game Libraries, we can use as many people as possible [wink]. 23yrold3yrold, if you can make a FAQ template or posting guidelines for us to follow for submitting tips/advice/etc... that would be great for organization. You can reformat my OP to reflect that as well/

    Share this post


    Link to post
    Share on other sites
    OpenGL_Guru    104
    how about XML and how to make a custom GUI with it? seems custom GUI's have been a popular topic lately. to me the XML route seems like a good idea..of course there is GLFW, GLUI and QT but none of these offer you everything and QT isnt free. a good GUI would be buttons, checkboxes, listboxes(drop down menus), file browsers, radio buttons, sliders(slider bars vertical and Horizontal), a color wheel and text editors just to name some right off the top of my head. maybe JavaCoolDude could head this one up since he is such the master at it..haha.

    Share this post


    Link to post
    Share on other sites
    Gor435    426
    I could just be blind or may have overlooked it but are we wanting to include FMOD?

    I mean I am not a guru or anything but I am quickly getting the hang of it.

    Share this post


    Link to post
    Share on other sites
    23yrold3yrold    941
    Quote:
    Original post by Drew_Benton
    23yrold3yrold, if you can make a FAQ template or posting guidelines for us to follow for submitting tips/advice/etc... that would be great for organization. You can reformat my OP to reflect that as well/

    Considering this list of libraries could get pretty big, I think it would be enough to limit each library to a) what is it, b) where can you get it, c) what does it do, d) what does it not do (if anything eg. like how OpenGL does nothing non-graphics related), and e) a link to any pre-existing FAQ's. Otherwise this forum FAQ could end up being humongous (now there's a word I don't use enough).

    Share this post


    Link to post
    Share on other sites
    23yrold3yrold    941
    Okay, I see SDL got a big add into the first post. Points 8 and 9 just add to the bloat and don't really contribute a whole lot; point 4 covers resources for most of that stuff, methinks. Point 7 is also pushing it a bit too; the library's documentation should cover stuff like that fine (either that, or one of the FAQ's/tutorials). That would trim it down to a managable size.

    Share this post


    Link to post
    Share on other sites
    Drew_Benton    1861
    Ok cool I see what you mean for everything. Sorry for the late delay, been without internet for a week now at the Uni and not sure when it's going to get back up. I'll start removing that stuff amd continue with others as soon as I get internet back. So any takers still for the other libraries?

    Share this post


    Link to post
    Share on other sites
    23yrold3yrold    941
    I'll make up Allegro on Monday (my next day off). My spare time is quite short lately; I only have enough time to poke my head in here and make sure everyone is civil and on-topic. [smile] But yes, any info on the other libs would be nice ...

    Share this post


    Link to post
    Share on other sites
    Drew_Benton    1861
    I'll go ahead and do GLFW and GLUT & co. this weekend. Well, at least we are progressing with this. I guess we can just publish the FAQ with these few libaries to start with and as time goes on, add to it. I just now saw Gor435's suggestion for the Audio API's as well, so those will be added too. I'll also do the OpenAL this weekened. Don't be shy folks, we can use all the help we can!

    If you want a little template that you can just fill out with information for a libary, something like this will suffice -
    1. What is <Library Name>?
    2. Where can I download <Library Name> at?
    3. Where can I find instructions to install <Library Name>?
    4. Where can I find tutorials and other information on <Library Name>?
    5. What are the uses of <Library Name>?
    6. One extra thing of choice if desired

    Now the goal is just to offer a quick glance of these libraries. Most of the time, if you want indepth information about a library, you can visit its site, so we do not need to go into great detail, just something that people can glance over and see what are some of the things people talk about in this forum. You do not have to even do all those things, just what you think is enough! We can always add more later...

    Oh since I'm editing this post so much, sure Joel [wink] I don't think anyone would object. As soon as you get info to put up, you can post it or PM and I'll check back later today and update if it's not already done.

    Share this post


    Link to post
    Share on other sites
    PnP Bios    494
    I was wondering if we could add hxRender to the list of available libraries? With version 2, it is fully complete, and fairly stable. I also have documentation for it.

    Share this post


    Link to post
    Share on other sites
    _the_phantom_    11250
    After Drew Benton messaged me I got around to doing a quick Q&A based on the template for OGLWFW.
    Quote:

    1. What is the OpenGL Window Framework (OGLWFW)?

    The OGLWFW is a C++ framework design to allow for the creation and control of windows which are capible of hold an OpenGL rendering context. Windows can be windowed or fullscreen and the framework allows for switching between modes. Methods exist to allow for you to either find a compatible mode for display and OpenGL as well as enumrate all the availble hardware accelerated display modes and retrieve some basic infomation about the OpenGL subsystem installed on the system.
    The OGLWFW also take care of extension initalisation via GLee which is compiled in.
    Finally, a basic event system exists which allows you to listen for window messages via a functor. This system is expanded as the need arises and often by request.

    Currently only a MSVS.Net03/Win32 implimentation exists, however a Linux/X version is in the works.

    2. Where can I download OGLWFW at?

    The OGLWFW can be downloaded from sourceforge and is released under the zlib licence.

    3. Where can I find instructions to install OGLWFW?

    No real instructions exist, its a simple case of download, extract and ensure the library and header folders are in your compilers path. On MSVS.Net03 including the oglwfw.hpp automatically links in the correct lib file for the runtime you are using.

    4. Where can I find tutorials and other information on OGLWFW?

    Examples can be found on the download page at sourceforge.

    5. What are the uses of OGLWFW?

    Creation and controlling of multiple windows, with some events relating to window operations. It also allows easy access to things such as FSAA, the accumlation buffer and all the OpenGL and display modes on the current machine.
    It is also possible to create a window in one thread and the OpenGL context in another to allow for message handing and rendering to accure in seperate threads.

    Share this post


    Link to post
    Share on other sites
    Zeophlite    144
    An important note about SDL should be SDL/OpenGL

    Its important as it shows how to implement OpenGL easily in non-Windows platforms. This is useful as many tutorials only focus on how to use OpenGL with the Windows API (nehe.gamedev.net)

    Share this post


    Link to post
    Share on other sites
    Drew_Benton    1861
    Quote:
    Original post by 23yrold3yrold
    *marches off, grumbling about no free time*


    Oh I know what you mean! I meant to get some more done last weekend, but stuff came up school wise. Oh well, it's not like GameDev is going to up and disappear before we can put together a FAQ [wink]

    Share this post


    Link to post
    Share on other sites
    Rob Loach    1504
    I've finally gotten around to Drew's request of writing one for FMOD:
    Quote:
    1. What is FMOD?

    FMOD is a cross platform audio library to let you easily implement audio into your applications and games. It can play almost any sound format you can think of including MP3s, OGGs, Midis, MOD files, WMAs, etc.

    2. Where can I download FMOD?



    3. Where can I find instructions on how to use FMOD?



    4. What are some other uses of FMOD?

    FMOD can be used to put sound and music into games, multimedia applications or pretty much anything that requires audio. The main benefit to using FMOD is that it is a cross platform library, allowing you to use it on a wide variety of operating systems. Not only is it very powerful, but it's also very easy to use. Just go through Joachim's quick tutorial and you'll see how easy it really is. FMOD Ex brings a new design to FMOD which makes sound and music data even easier to manage.

    5. Are there any other features to FMOD?

    FMOD Ex is a branch off of FMOD that gives it a whole set of new features including a .NET interface for development with C# and other .NET language.

    Share this post


    Link to post
    Share on other sites
    23yrold3yrold    941
    Okay, finally I get to put 5 minutes thought to this. [headshake]

    Anyway, it's getting way too big, especially in relation to other forum FAQ's. Plus it's a lot of links to maintain. Here's my Allegro one, which I think is a bit more managable. Instead of having "Library Specific FAQs", maybe just a descriptive blurb and a link the the official download/FAQ/tutorials, and a note in the general forum FAQ to check out that link before asking dumb nub questions. [razz]



    Allegro

    1. What is Allegro?
    Allegro is a game programming library for C/C++ developers distributed freely, supporting the following platforms: DOS, Unix (Linux, FreeBSD, Irix, Solaris, Darwin), Windows, QNX, BeOS and MacOS X. It provides many functions for graphics, sounds, player input (keyboard, mouse and joystick) and timers. It also provides fixed and floating point mathematical functions, 3d functions, file management functions, compressed datafile and a GUI.

    The library, tutorials, and documentation can be found at Allegro's website.
    Top



    And why am I being thanked in the top post? I didn't do anything until just now. [embarrass]

    Share this post


    Link to post
    Share on other sites
    Drew_Benton    1861
    Quote:
    Original post by 23yrold3yrold
    Anyway, it's getting way too big, especially in relation to other forum FAQ's. Plus it's a lot of links to maintain. Here's my Allegro one, which I think is a bit more managable. Instead of having "Library Specific FAQs", maybe just a descriptive blurb and a link the the official download/FAQ/tutorials, and a note in the general forum FAQ to check out that link before asking dumb nub questions.


    Ok, I'll do some chopping off tonight and start downsizing it to something more appropriate - that or what about something like this: For the actualy FAQ, something a lot shorter containing the posting rules and stuff, and not any stuff library specific. Then we can just link back to this thread as an 'extension' for more information? Would that be do-able? If that was the case, then there's a lot more info that can be made in maybe new posts, and link to those as well. he main FAQ will be very lite and just link to threads that can be updated at will. Let me know what you think about that if you're still around.

    Quote:
    And why am I being thanked in the top post? I didn't do anything until just now.


    I'm sure you were here with us all the way in spirit [wink].

    Share this post


    Link to post
    Share on other sites
    Drew_Benton    1861
    Quote:
    Original post by ostamo1
    http://www.ferzkopp.net/

    then go under software
    then look for sdl_gfx


    Thanks for pointing that out, their web page has been updated. I fixed the link above to reflect the correct page now.

    Share this post


    Link to post
    Share on other sites
    Guest
    This topic is now closed to further replies.
    Sign in to follow this