libsdlgame ========== libSDLGame is a C++ library for writing games in SDL. It has been tested on Windows XP, Windows 7, Ubuntu Linux, and Mac OS X 10.5/10.6 Building ======== After making sure you have all the dependencies: make OS=[mingw32|linux|macosx] make OS=[mingw32|linux|macosx] install You can do: make CFG=[Debug|Release] ... to say whether you want a debug build or a release build. Debug builds have gstabs and gdb info, while Release builds are more optimized and stripped. Using ===== Include it with: #include ... and link it with: SDL_CFLAGS=$(shell sdl-config --cflags) SDL_LDFLAGS=$(shell sdl-config --libs) ld -lsdlgame $(SDL_LDFLAGS) -lSDL_image -lSDL_mixer -lSDL_gfx -lSDL_ttf Demos ===== There are various tiny demos in ./demos/. Type "make demos" to build them; if that fails, cd into each demo, and do "make". Games using this engine ======================= My spaceshooter demo's C++ port uses this engine (see akesterson/spaceshooter ). Development Status ================== libsdlgame is a pet project that I pick up from time to time. It is not branched well, and may often have working code intermixed with broken code in the default production branch. I do my best to keep this code working, but your best bet to see which code is working, until I get my act together, is to check 'make demos' to see which demos compile and run. More Specific Status ==================== In general, the following things work: * Loading and looping background music from files * Loading and playing sound effects from files * Loading and animating sprites from files * Managing multiple render viewports * Managing a list of stateful actors on the screen * On-screen menus and menu items (left/right selection options, on/off) Dependencies ============ libsdlgame has a number of dependencies: * GNU Compiler Collection (COMPLETELY UNTESTED on MSVC, Xcode, etc) * GNU bintools * GNU make * libsdl * zlib * libpng * libjpeg * libtiff * SDL_image * libvorbis * flac * SDL_mixer * freetype * SDL_ttf * SDL_gfx * backtrace (for win32 targets - *nix/OS X targets don't need this) The following dependencies are needed for some beta functionality, and may be supplanted/changed/completely replaced in the near future; they have been removed from the default targets in 'make deps'. * libxml2 * cmake * ffmpeg * SDL_ffmpeg * yaml-cpp Building Dependencies ===================== On mingw32, you can use: make OS=mingw32 deps .. On linux targets, you can probably figure out how to install all of the required packages, but on Ubuntu you can do: make OS=linux deps There is no dependency makefile for Mac OS X; I obviously intended to make one, but never did. Regardless, homebrew or macports should have everything you need, if you don't want to install everything into your native OS X.