01-16-2016, 10:17 AM
hello all,
i decided to make a topic for anyone who want's to develop games a little easier
i introduce C and C++ libraries and resources for developing games, but if you want, you can introduce in other languages
because both programming languages and people are different
although it would not be completed, but it is good for a simple and little reference
so, i give some
SDL (simple direct media layour)
this library has interface to audio drivers, keyboard and mouse and joystick and some others like rendering, window creation, CPU detection, dll loading, etc
it is good mostly for 2d games, but i'm using it for my 3d games two
SFML (simple and fast multimedia layour)
like SDL, sfml has ruteens for keyboard and mouse and window management, but with networking support and based on object orianted programming
Ogre
in my idea, everything for renderring 3d graphics
camera, animations, etc
but i'm not using it, so i can't comment on it
AngelScript
nowadays, scripting is popular in game development (specially game engines), and AngelScript is a good scripting language similar to C++
it has a grate feature: you just write your functions and classes, and with some function calls, without any wrapper, bang!, you can use your functions and classes in your scripts
Squirrel
squirrel is a scripting language similar to C++, but with dynamic typing, and with table support like lua
lua
this scripting language is mostly used in games, because of it's dynamic typing
Luajit
it is the same lua programming language with just-in-time compiler (jit)
it is very very fast, thanks to mike pall for his work
Allegro
it is not as good as sdl and sfml, but introducing it here is not bad
bullet
a grate physics library for 3d games
it is used in grand theft auto IV
ClanLib
it is a game library with networking, sound, etc
imGui
it has some dialogs and functions for OpenGL
i haven't used it, but it seems good
kNet
a network library for games with data serialization support, and many features
eNet
a UDP network library specially for games
Box2d
a physics library for 2d games
it is easy to learn and use
panda3d
it is a game library for C++ and python
i haven't used it
irrlicht
a game library which supports 3d, but i think ogre is better
HGE
an easy to use 2d game framework
Crystal Space 3D
it is a huge library for game development
it supports 3d, but i haven't used it
Cafu3D
a 3d game library, supports for lua scripting language, and mutch more
i haven't used this to
TinyAI
it supports knn and machine learning algorithm (mlp)
SoLoud
an easy to use audio library for games
it support's 3d audio, audio colisions, etc
Crypto++
it has many algorithms for encryption and decryption such as aes, blowfish, twofish, rc4, rc5, rc6, etc, many algorithms for hashing such as md5, sha1, sha256, etc, rsa and dsa encryption, random number generator, gzip archiving and many more
LibTomCrypt
a c library for encryption and hashing and many other features with many algorithms and in the public domain
botan
a library for cryptography which is bsd licensed with many features and algorithms
Sqlite
an embeddable and serverless database engine
this is somehow useful if you are making an online game which you want to store usernames and passwords and some other stuff in it
wren
a dynamicly typed scripting language
i'm not using it, so i can't comment on it
just i've read some of it's documentation
SqliteCpp
a wrapper for sqlite database engine for C++, it make's your life easier
MIT-licensed
Object orianted input system (ois)
zlib-licensed (like sdl2) input library
it is very useful for mouse input, joystick, keyboard, etc
obme
if you don't want the variables to be changed in your game (specially online games where cheating is a problem), it is better to use this library, easy to use
AICore
this is very handy for artificial intelligence
it make's your life easier
MIT-licensed
btsk
this is for artificial intelligence and you can use it to make a behavior system
cURL
it is useful for example when you want to make an update system and probeblly, you need an http request library
so, libcurl help's you to send requests
curlcpp
libcurl itself is a c Library, but curlCPP is a easy to use wrapper for it
Happy HTTP
Happy HTTP is a http library for C++
it is very easy to use, based on callback functions
libtmx-parser
if you are making a map system for your game, you can use a standard called tmx
this tiny library help's you
you can get the map editor at
here
lz4
a library for compression and decompression based on lz77 algorithm
native file dialogs
it has some functions for some dialogs like open and save (i haven't used it)
it is cross-platform
stb
some public domain stuff such as image loading, stb_vorbis which load's ogg sound files, etc
TinyVM
an embeddable and easy to use virtual machine which you can give instructions to it and it execute's them for you
(the instructions are based on 32bit assembly and intel syntax)
TinyXML2
this is continued work of tinyXML with many improvements
libtmx-parser also use's this library to process xml
unittest-cpp
automated testing is sometime nessesary, for example you want to check a condition is always true or your function always return the same results
and this is a test framework for your applications or games, which you can use it
asmjit
as it's name says, it is a just in time compiler library, it is good if you are rolling your scripting language
FakeScript
it is a scripting language similar to lua, but with support for data structures
libSDL2pp
it is a wrapper for SDL2 for C++
GamePlay3d
a library for developing games, it support's anything
physics from bullet, etc (i haven't used it myself)
encog
a nural network library for C++
licensed on the apache license
github link
note: i haven't used this too
NLDatabase
a wrapper to SQLite database engine like sqliteCpp but quite smaller, and SqliteCpp has more features
libffi
foreign function interface or libFFI is a library for calling functions
this is very useful for script developers
LLVM (low level virtual machine)
if you want to make a compiler (it is useful for scripting language makers), it is a complete framework for you
also clang is it's c/c++ compiler
log4z
a logging library, just a cpp and a header file, add those to your project and read it's readme and support logging in your application or game
LZMA SDK
the sdk which is used by 7-zip archiver and is under public domain
useful if you want to work with archive files (for example resource files in archives such as images, sound files, etc)
i decided to make a topic for anyone who want's to develop games a little easier
i introduce C and C++ libraries and resources for developing games, but if you want, you can introduce in other languages
because both programming languages and people are different
although it would not be completed, but it is good for a simple and little reference
so, i give some
SDL (simple direct media layour)
this library has interface to audio drivers, keyboard and mouse and joystick and some others like rendering, window creation, CPU detection, dll loading, etc
it is good mostly for 2d games, but i'm using it for my 3d games two
SFML (simple and fast multimedia layour)
like SDL, sfml has ruteens for keyboard and mouse and window management, but with networking support and based on object orianted programming
Ogre
in my idea, everything for renderring 3d graphics
camera, animations, etc
but i'm not using it, so i can't comment on it
AngelScript
nowadays, scripting is popular in game development (specially game engines), and AngelScript is a good scripting language similar to C++
it has a grate feature: you just write your functions and classes, and with some function calls, without any wrapper, bang!, you can use your functions and classes in your scripts
Squirrel
squirrel is a scripting language similar to C++, but with dynamic typing, and with table support like lua
lua
this scripting language is mostly used in games, because of it's dynamic typing
Luajit
it is the same lua programming language with just-in-time compiler (jit)
it is very very fast, thanks to mike pall for his work
Allegro
it is not as good as sdl and sfml, but introducing it here is not bad
bullet
a grate physics library for 3d games
it is used in grand theft auto IV
ClanLib
it is a game library with networking, sound, etc
imGui
it has some dialogs and functions for OpenGL
i haven't used it, but it seems good
kNet
a network library for games with data serialization support, and many features
eNet
a UDP network library specially for games
Box2d
a physics library for 2d games
it is easy to learn and use
panda3d
it is a game library for C++ and python
i haven't used it
irrlicht
a game library which supports 3d, but i think ogre is better
HGE
an easy to use 2d game framework
Crystal Space 3D
it is a huge library for game development
it supports 3d, but i haven't used it
Cafu3D
a 3d game library, supports for lua scripting language, and mutch more
i haven't used this to
TinyAI
it supports knn and machine learning algorithm (mlp)
SoLoud
an easy to use audio library for games
it support's 3d audio, audio colisions, etc
Crypto++
it has many algorithms for encryption and decryption such as aes, blowfish, twofish, rc4, rc5, rc6, etc, many algorithms for hashing such as md5, sha1, sha256, etc, rsa and dsa encryption, random number generator, gzip archiving and many more
LibTomCrypt
a c library for encryption and hashing and many other features with many algorithms and in the public domain
botan
a library for cryptography which is bsd licensed with many features and algorithms
Sqlite
an embeddable and serverless database engine
this is somehow useful if you are making an online game which you want to store usernames and passwords and some other stuff in it
wren
a dynamicly typed scripting language
i'm not using it, so i can't comment on it
just i've read some of it's documentation
SqliteCpp
a wrapper for sqlite database engine for C++, it make's your life easier
MIT-licensed
Object orianted input system (ois)
zlib-licensed (like sdl2) input library
it is very useful for mouse input, joystick, keyboard, etc
obme
if you don't want the variables to be changed in your game (specially online games where cheating is a problem), it is better to use this library, easy to use
AICore
this is very handy for artificial intelligence
it make's your life easier
MIT-licensed
btsk
this is for artificial intelligence and you can use it to make a behavior system
cURL
it is useful for example when you want to make an update system and probeblly, you need an http request library
so, libcurl help's you to send requests
curlcpp
libcurl itself is a c Library, but curlCPP is a easy to use wrapper for it
Happy HTTP
Happy HTTP is a http library for C++
it is very easy to use, based on callback functions
libtmx-parser
if you are making a map system for your game, you can use a standard called tmx
this tiny library help's you
you can get the map editor at
here
lz4
a library for compression and decompression based on lz77 algorithm
native file dialogs
it has some functions for some dialogs like open and save (i haven't used it)
it is cross-platform
stb
some public domain stuff such as image loading, stb_vorbis which load's ogg sound files, etc
TinyVM
an embeddable and easy to use virtual machine which you can give instructions to it and it execute's them for you
(the instructions are based on 32bit assembly and intel syntax)
TinyXML2
this is continued work of tinyXML with many improvements
libtmx-parser also use's this library to process xml
unittest-cpp
automated testing is sometime nessesary, for example you want to check a condition is always true or your function always return the same results
and this is a test framework for your applications or games, which you can use it
asmjit
as it's name says, it is a just in time compiler library, it is good if you are rolling your scripting language
FakeScript
it is a scripting language similar to lua, but with support for data structures
libSDL2pp
it is a wrapper for SDL2 for C++
GamePlay3d
a library for developing games, it support's anything
physics from bullet, etc (i haven't used it myself)
encog
a nural network library for C++
licensed on the apache license
github link
note: i haven't used this too
NLDatabase
a wrapper to SQLite database engine like sqliteCpp but quite smaller, and SqliteCpp has more features
libffi
foreign function interface or libFFI is a library for calling functions
this is very useful for script developers
LLVM (low level virtual machine)
if you want to make a compiler (it is useful for scripting language makers), it is a complete framework for you
also clang is it's c/c++ compiler
log4z
a logging library, just a cpp and a header file, add those to your project and read it's readme and support logging in your application or game
LZMA SDK
the sdk which is used by 7-zip archiver and is under public domain
useful if you want to work with archive files (for example resource files in archives such as images, sound files, etc)