LBreakout2 a breakout-style arcade game for Linux by Michael Speck ******************** I. Requirements II. Installation III. Network Server IV. Documentation V. Troubleshooting VI. Localization VII. Resources VIII. Feedback ******************** ******************** I. Requirements ******************** LBreakout runs in X and uses SDL (any version though >= 1.1.4 is recommended), SDL_mixer (optional for sound) and SDL_net (optional for networking on non-Unices). These libraries can be found at http://libsdl.org. The graphical stuff requires PNG which is usually included in a distro. If not check out http://www.libpng.org/pub/png/libpng.html. ******************** II. Installation ******************** Enter your favorite shell and type in the following stuff (in the directory you extracted the LBreakout source) > ./configure [--disable-audio] [--disable-install] [--enable-warp] [--with-docdir=DOCDIR] [--disable-network] [--enable-sdl-net] [--localstatedir=HIDIR] --disable-audio: no sound --disable-install: no installation; play from source directory --enable-warp: nescessary for non-Unices to use relative mouse motion for inverting or modify mouse speed --with-docdir: install documentation to $DOCDIR/lbreakout2 DEFAULT: /usr/doc --disable-network: compile LBreakout2 without any network support --enable-sdl-net: use SDL_net for networking (required if platform is not Unix-like) --localstatedir: install global highscores to this directory REPLACES --with-highscore-path TO COMPLY WITH AUTOCONF; THE DEFAULT LOCATION NOW DEPENDS ON YOUR DISTRIBUTION: PREVIOUSLY IT WAS /var/lib/games. USE --localstatedir=/var/lib/games FOR EXISTING HIGHSCORES. > make > su (become root) > make install (if install wasn't disabled) > exit (become user again) > lbreakout2 (run client/non-network game) Note: Swearing is disabled in version >= 2.6. To enable it you have to edit ~/.lgames/lbreakout2.conf manually and set the hidden option badspeech to 1. If you cannot find the option start and quit LBreakout2 once. Building on Win32 ----------------- There might be an easier way to get things to work but at least the following worked for me. Simplifications are welcome. 1) Get MinGW, Msys, MsysDTK from http://mingw.sf.net The following uses michael as the Msys home directory, naturally you'll have to substitute your windows user name for this. 2) Get SDL, SDL_mixer, SDL_net from http://libsdl.org as tar.gz's and put them to c:\msys\1.0\home\michael (or whereever you installed Msys to) 3) Get libpng and zlib from http://libpng.org and put them to the same directory as above. 4) Same with the latest and greatest LBreakout2 package, which you already have, I assume. :) 5) Start Msys and enter the commands tar -xzf *.tar.gz (extract the above archives) cd SDL-1.2.7; (your version might differ, of course) configure; make; make install; cd .. [do the same with SDL_net, SDL_mixer, zlib] ln -s libpng-1.2.5 libpng (your version might differ, of course) ln -s zlib-1.1.3 zlib (your version might differ, of course) cd libpng-1.2.5 cp scripts/makefile.gcc Makefile; make cp png.h pngconf.h /usr/local/include cp libpng.a /usr/local/lib (manual install as the linux makefile caused problems) cd .. cd lbreakout2-2.5 export LDFLAGS="-L/usr/local/lib" export CFLAGS="-I/usr/local/include" echo '' > depcomp (why this is required is again a mystery to me) configure --disable-install --enable-sdl-net win32_mancomp (this is a hack required for unknown reasons here. make works but it just states the gcc commands but does not execute them, in this little script they work however, dunno why... a fix for this would be most welcome. if you change any configure or install settings the hardcoded compile command in win32_mancomp will probably not work so you should check it for such a case) make 6) Get the dll's of SDL, SDL_mixer, SDL_net, libpng, zlib and put them to c:\msys\1.0\home\michael\lbreakout2-2.5\win32dlls as well as msvcrt.dll (freely available from Microsoft) 7) run win32_preparchive (this will copy all required files to the directory lbreakout2) 8) copy c:\msys\1.0\home\michael\lbreakout2-2.5\lbreakout2 to c:\games or whereever you want to and run the game from there. NOTE: The server does not open any display and in windows a message overwrites all old messages in stdout.txt. Also the command line options do not work, at least it seems so. All I managed was to run the server without any options but at least I could connect to it successfully. Lee Read added some scripting to create a standalone installer. This scripting is broken right now, but hopefully fixed soon. Building on OS/2 ---------------- On OS/2 GCC creates windowed console apps by default. There are various solutions, see http://www.edm2.com/index.php/SDL#General_tips_and_tricks or run 'emxbind -e -p lbreakout2.exe' after building. - Dave Yeo ******************** III. Network Server ******************** To run a server start lbreakout2server with any of the following options: -p <PORT> server port (default 2002) -l <LIMIT> maximum number of users that may connect to the server (default is 30) -i <IDLETIME> a user will be kicked if he didn't communicate with the server for this amount of seconds (default is 1200) -n <MESSAGE> this message is displayed to welcome a user -a <PASSWORD> a user that logs in with this name will become administrator named admin (default is no admin) -b <BOTNUM> number of bots with strength 800 and 1000 (paddle speed in pixels, default is none) After that you'll have to query your IP (e.g. with /sbin/ifconfig) and pass it to your friends as there is no permanent internet server yet. Note, that you shouldn't use localhost as you won't be able to challenge others then. Check the online documentation at http://lgames.sf.net for information on how to play. When updating this README the last time, petersdtp.net:8000 has been the current internet test server. ******************** IV. Documentation ******************** If you have any questions about options, game play or editor please check the documentation and see if you can find an answer there. I will not respond to any eMails concerning questions easily answered by the manual (/usr/doc/lbreakout2). However, if you have any other problems or suggestions or you found a bug please contact me: kulkanie@gmx.net ******************** V. Troubleshooting ******************** The solution for relative mouse motion (nescessary when inverting or slowing down mouse by motion modifier) works fine for Linux and Win32 but fails for other non-Unices. Current solution is to warp the mouse (by using configure option --enable-warp). Unfortunately, this will handicap events when trying to fire weapon or release balls AND move the paddle at the same time. This means it may happen that a weapon is not fired or doesn't stop fire, balls keep being attached and so on... --- Disabling sound while playing seems to result in loosing various sound channels when some sounds were actually mixed. --- Someone reported that he had problems with PNG (configure script didn't find it) if it was installed to /usr/local/lib. Setting a link in /usr/lib fixes this. --- If you have SDL_mixer installed but configure tells you that it can't find it, remember that you have to install the development package for compiling! --- If you can't compile because LBreakout2' timestamps are slightly in the future run 'touchall' (found in the configure directory). --- If 'fullscreen' just adds a black frame around the game but does not change the solution make sure that you have 640x480 available as resolution in your Xconfig. --- If the SDL sound seems to be out of sync first try to modify the audio buffer size in ~/.lgames/lbreakout2.conf. If this fails set SDL_AUDIODRIVER to dma (export SDL_AUDIODRIVER=dma). ******************** VI. Localization ******************** This game now supports i18n. If you want to add l10n for your native language, please contact me first, to prevent overlapping translations. A thorough documentation can be found at http://www.gnu.org/software/gettext/manual/html_mono/gettext.html Basically, you will have to do the following: 1) cd po 2) add your language code (e.g., de for German) to the existing line in LINGUAS merely separated from the other languages by a blank 3) run `msginit -o <LL>.po` with <LL> replaced by your language code 4) translate the english message IDs in <LL>.po 5) run make <LL>.gmo Whenever you change something in your translation you'll have to repeat step 5). I strongly recommend to configure the program with --disable-install while working on a translation. Otherwise you'd have to copy and rename the .gmo file as root every time you want to see your changes. If the source has been compiled without installation, only step 5) and simply running the game is required. (Of course, the enviroment variable LANG must be set to your locale.) This should suffice. If not, please read the excellent documentation at gnu.org. The fonts do only contain the basic latin letters. No special letters (like the german umlauts or any accents for example) are supported, so a l10n should not use them. If a string has a single %, meant as a percent sign, you'll have to manually remove the 'format' comment above the id (if any). ******************** VII. Resources ******************** Some graphics and sounds has been taken and modified from other non-copyrighted resources: Backgrounds: http://www.grsites.com/textures Sounds: "Web Clip Empire 50.000", NovaMedia Verlag, Germany Thanks to all of these guys for there free stuff! ******************** VIII. Feedback ******************** LGames URL: http://www.lgames.sf.net e-Mail: kulkanie@gmx.net