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