Terminus Est: Difference between revisions
No edit summary |
No edit summary |
||
Line 118: | Line 118: | ||
<font style="color:green"> | <font style="color:green"> | ||
FMOD is the one "pay for" piece to the game. The built-in SDL sound libs were problomatic. That, and FMOD allows me to use a compressed XM file format that will save me about 5M off my downloadable size. I think that I will pay about $100 per OS license, once for Win, once for Mac, and once for Linux. To me, it was a close call, borderline, but in the end I deemed it worth it. | FMOD is the one "pay for" piece to the game. The built-in SDL sound libs were problomatic. That, and FMOD allows me to use a compressed XM file format that will save me about 5M off my downloadable size. I think that I will pay about $100 per OS license, once for Win, once for Mac, and once for Linux. To me, it was a close call, borderline, but in the end I deemed it worth it. | ||
</font> | |||
<font style="color:orange"> | |||
Sounds good to me. Removing the older (open-source?) fmod: | |||
yum remove fmod | |||
Removing: | |||
fmod i386 3.74.1-1.2.fc4.rf installed 431 k | |||
Removing for dependencies: | |||
fmod-devel i386 3.74.1-1.2.fc4.rf installed 1.8 M | |||
Then, I believe I won't need to run the "Makefile", I should be able to use the libraries and includes from my local copy, with a little stupid trickery. | |||
cd /home/m/development/terminus | |||
ls | |||
fmodapi40303linux fmodapi40303linux.tar.gz terminus | |||
ln -s fmodapi40303linux fmod | |||
cd fmod/api | |||
ln -s inc fmod | |||
cd ../../terminus | |||
g++ main.cpp -o main `sdl-config --cflags --static-libs` -I../fmod/api/ -L../fmod/api/lib/libfmodex.so | |||
</font> | </font> |
Revision as of 22:16, 21 March 2006
Terminus Est is John's awesome space shooter. See his Soloforge website.
Mike is hoping to help John build Terminus under linux. Here's John's "getting started" list...
There is some stuff in here on getting set up to build SDL apps with KDeveloper: http://gpwiki.org/index.php/SDL You will need SDL, plus the SDL_image and SDL_gfx support libs. Available from: http://www.libsdl.org/index.php And the FMOD sound system from http://www.fmod.org.
Typically I'll be using either Fedora or Gentoo during my porting effort.
FEDORA
1 Install SDL and fmod:
yum install SDL-devel yum install SDL_gfx yum install SDL_gfx-devel yum install SDL_image yum install SDL_image-devel yum install fmod yum install fmod-devel Mar 19 22:42:01 Installed: SDL_gfx.i386 2.0.13-2.2.fc4.rf Mar 19 22:45:23 Installed: SDL_image.i386 1.2.4-1.2.fc4.rf Mar 19 23:11:05 Installed: fmod.i386 3.74.1-1.2.fc4.rf Mar 20 21:22:26 Installed: fmod-devel.i386 3.74.1-1.2.fc4.rf Mar 20 21:24:32 Installed: alsa-lib-devel.i386 1.0.10-27.rhfc4.at Mar 20 21:24:41 Installed: SDL-devel.i386 1.2.8-4 Mar 20 21:24:41 Installed: SDL-devel.i386 1.2.8-4 Mar 20 21:27:59 Installed: SDL_gfx-devel.i386 2.0.13-2.2.fc4.rf
Mike's comments will occasionally be marked in orange, John's comments in green, when we're not feeling lazy.
Huh. Does that yum app go out and get the latest version too? Slick. I will get some source control up and running today.
Yep it auto-updates everything to the latest stable versions, including tracking down dependencies.
2 Grab the source - John is using subversion - very l337!
yum install subversion Mar 20 20:00:03 Installed: subversion.i386 1.2.3-2.1 cd development mkdir terminus cd terminus svn checkout http://xxxxx/terminus/
and there it is!
3 Build it
sdl-config tells you what you need on the gcc command line:
[m@thedigitalmachine terminus]$ sdl-config --libs -L/usr/lib -lSDL -lpthread [m@thedigitalmachine terminus]$ sdl-config --static-libs -L/usr/lib -lSDL -lpthread -lm -ldl -lasound -L/usr/X11R6/lib -lX11 -lXext
So let's try this:
g++ main.cpp -o main `sdl-config --cflags --static-libs`
Here's what we got so far:
In file included from system.hpp:17, from startup.hpp:8, from main.cpp:8: util/audio.hpp:82: error: syntax error before `*' token util/audio.hpp:145: error: `FMOD_SOUND' was not declared in this scope
Looks like the version of fmod that Fedora wants to pull down is old (3.74). I believe we need to go with FMOD Ex 4 (4.03.03 as of this writing). I will pull down the code from fmod.org and build a local version.
Hmmm... There are two versions of FMOD Ex, the C and the C++ version. I had to use the C version because the C++ version is not compatable with Dev-C++ and MinGW. Check and make sure that you have the C version of the lib installed too.
FYI, here is my linker options:
-lmingw32 -lSDLmain -lSDL -mwindows ../../Dev-Cpp/lib/libSDL_image.a ../../Dev-Cpp/lib/libfmodex.a ../../Dev-Cpp/lib/libSDL_gfx.a
Try this:
Download the linux tar.gz from http://www.fmod.org
Notice there is both a fmod.h and an fmod.hpp in the inc dir.
Put into the compile path, the compiler should compile in the correct one (fmod.h) since that is what is in my files.
There are two .03 files in the lib dir, is one of those the C version of the lib and the other the CPP?
OK I'm getting to the bottom of this. :> Looks like FMOD Ex 4 is not open source. The download includes pre-built libraries but no source code. The "makefile" just copies the pre-built libraries into place. I think that will be OK but I have to make sure I know what it's doing. From the "makefile" script:
VERSION = 4.03.03 LIBDIR = api/lib HDRDIR = api/inc DESTLIBDIR = /usr/local/lib DESTHDRDIR = /usr/local/include/fmodex
I am going to uninstall Fedora's fmod 3.74 then try the makefile.
FMOD is the one "pay for" piece to the game. The built-in SDL sound libs were problomatic. That, and FMOD allows me to use a compressed XM file format that will save me about 5M off my downloadable size. I think that I will pay about $100 per OS license, once for Win, once for Mac, and once for Linux. To me, it was a close call, borderline, but in the end I deemed it worth it.
Sounds good to me. Removing the older (open-source?) fmod:
yum remove fmod Removing: fmod i386 3.74.1-1.2.fc4.rf installed 431 k Removing for dependencies: fmod-devel i386 3.74.1-1.2.fc4.rf installed 1.8 M
Then, I believe I won't need to run the "Makefile", I should be able to use the libraries and includes from my local copy, with a little stupid trickery.
cd /home/m/development/terminus ls fmodapi40303linux fmodapi40303linux.tar.gz terminus ln -s fmodapi40303linux fmod cd fmod/api ln -s inc fmod cd ../../terminus g++ main.cpp -o main `sdl-config --cflags --static-libs` -I../fmod/api/ -L../fmod/api/lib/libfmodex.so