
				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
