# LBreakout2 Manual

maintained by Michael Speck
last change: 03/05/24

## Table Of Contents

- Game Play
  - Basics
  - Bonus/Penalty
  - Special Bricks
  - Keys
  - Resuming A Local Game
  - Network Game
- Editor
  - Miscellany
  - Editor Layout
  - How To Edit
- Themes
  - Miscellany
  - How To Make A Theme

## Game Play

### Basics

Okay, I guess all of you know how to play breakout basically. Ball bounces around --> paddle keeps ball in game -> all bricks destroyed --> next level ;-D
The chosen difficulty level has some influence on the size of the paddle, the speed of balls and the score gained.

Level | paddle size (in pixel) | ball speed (in pixels per second) | score modification
Easy | 72 - 180 | 240 - 400 | -20%
Medium | 72 - 144 | 270 - 430 | 0
Hard | 52 - 108 | 300 - 450 | +30%

If there is more than one player the next player will get his/her chance when the current one restarts the level or looses all balls. The name of the current/next player is displayed in the right top corner of the screen and before each turn.

### Bonus/Penalty

A destroyed brick may release a bonus or penalty which will move down slowly. It's used as soon as it is collected by paddle.
Name | Time (in sec) | Picture | Description
Extra Score | - |  | Gives you the score written on it.
End Of The Rainbow | 20 |  | If you destroy a brick with no bonus assigned it will release 1000 points extra score!
Expand Paddle | - |  | Expands your paddle about one tile (the maxium size depends on the chosen difficulty level).
Extra Life | - |  | Gives you one extra life (paddle).
Sticky Paddle | 20 |  | Balls touching the paddle will keep attached until you press fire.
Energy Balls | 5 |  | Balls won't be reflected at a brick but go directly through it.
Extra Ball | - |  | Creates a new ball.
Bonus floor | 10 |  | Closes the screen so no balls can get lost.
Weapon | 5 |  | Adds a weapon to the paddle.
Speed Down | 20 |  | Deccelerates all balls to mimum speed.
Joker | - |  | Collects all bonus on screen instantly and destroys all penalties. Doubles score and time of the collected bonus!
Explosive Balls | 10 |  | When hitting a brick balls will cause an explosion destroying all surounding bricks.
Bonus Magnet | 20 |  | While this bonus is active the paddle will attract other bonuses.
Reset | - |  | All active bonuses and penalties will be reset.
Time-Add | - |  | All active bonuses and penalties will last seven seconds longer.
Random Extra | - |  | Gives you any of the listed extras.
Speed Up | 20 |  | Accelerates all balls to maximum speed.
Frozen Paddle | 1 |  | Freezes the paddle (no movement possible).
Shrink Paddle | - |  | Shrinks your paddle about one paddle tile (18 pixels).
Lights Out! | 20 |  | Total darkness. All you see is a shade of paddle, balls and extras.
Chaos | 20 |  | Balls are reflected randomly at bricks. (but not at paddle)
Ghostly Paddle | 20 |  | Paddle disappears when not moving and won't reflect any balls then. (nor does it collect bonuses)
Penalty Magnet | 20 |  | While this penalty is active the paddle will attract other penalties.
Weak Balls | 10 |  | With this penalty active there is a 40% chance that a ball won't damage a brick.

### Special Bricks

Name | Picture | Description
Shielded Brick |  | This brick is indestructible even for energy balls.
Metal Brick |  | This wall is indestructible except for energy balls.
Chaotic Brick |  | Similiar to the Chaos Penalty the ball is reflected randomly at such a brick.
Strong Brick |  | These walls take up to three shots before destruction and grow darker with every hit. NOTE: to this series belongs a forth brick which is invisbile.
Regenerating Brick |  | This brick will regenerate one point durability within four seconds if not hit again.
Explosive Brick |  | This bricks destroys its neighbors on destruction.
Growing Brick |  | If this brick is destroyed it creates up to 8 new bricks.

### Keys

There are some predefined keys for LBreakout:
h or F1 | Display quick help.
Escape | Quit LBreakout (after confirmation).
p | Pause game.
r | Restart level. If more than player the next one will get his chance before this player may play the restarted level!
w | Warp to next level after required percentage of bricks was cleared. As soon as this is possible a blinking icon will appear at the bottom right-hand side of the screen: . This option can be set in menu Advanced Options. It does only apply to AddOn levelsets as it is meant as a workaround for bad leveldesign.
d | Switch to the Plane Of Inner Stability and disintegrate single bricks. Again, this only works in AddOn levelsets to remove bricks that are hard to hit.
f | Switch Fullscreen and Windowed mode.
a | Change animation level (off/low/high).
s | Turn on/off sound.

### Resuming A Local Game

If you quit a game, it may be continued later by 'Resume Last Game' in menu 'Local Game'. While the current player, all scores and lives are saved, the state of the level itself is not. Thus if you break up a game and resume it later, the level of each player will be reset. Therefore it is recommended to quit a game right after a level was finished (quite difficult for multiple players, yes). A highscore entry will not be created! If you don't intend to resume the game later but want to enter the highscores, you'll have to loose all balls.

### Network Game

You can play LBreakout2 against another human via network. Therefore you'll have to connect to a server or run a server and have your friends connected.
Start A Server
After you started the program lbreakout2server with any of the following options

-p <PORT> | the port the server shall run at (default is 2002)
-l <LIMIT> | maximum number of users that may connect to the server (default is 30)
-m <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)
-f <FRAMERATE> | is the number of calls to the send/recv handler per second. The default is 33.

you can obtain your IP address by using /sbin/ifconfig. If you want to play via LAN the inet addr of device eth0 is important and for internet connections it's the inet addr of device ppp0.
Playing
How to play is explained in the in-game help accessable via the 'Help' button at the bottom right-hand side in the network chatroom.
New Playing Grounds
You can build new levelsets combining pingpong and normal ones. Such a levelset must start with 'N_'. An 'upload' command is planned but right now the only way to make a new levelset available is to copy it to the server's levelset directory (default: /usr/local/share/games/lbreakout2/levels) and restart the server.

ToC

## Editor

### Miscellany

All files you edit are saved to ~/.lbreakout2/levels. This '~' you see in front of the name when choosing levelset for playing is not part of the file name but added afterwards to separate the files in the installation path from the files in the config path (these you may edit).

### Editor Layout

Actions like quit, save, load, clear, add, insert, remove require a confirmation for safety.

1. Editable Part
2. Bricks and Bonus
3. Information about location of set file and how many levels you already created, which level your currently on and how many levels more you may create. If you marked a level for swap it's displayed there, too.
4. Click on title to change title of this level.
5. Click here to change author's name for this level.
6. Click here to test this level.
7. Go to first level.
8. Go to next level.
9. Go to previous level.
10. Clear all bricks and bonus in this level.
11. Swap two levels. On first click the current level will be marked (info displayed in region 3), on second click the current and the marked level will be swapped.
12. Insert a level at the end (copies title and author of previously last level).
13. Insert a level at current position (copying current title and author).
14. Remove current level.
15. Reload this level set (discards all unsaved changes).
16. Save this levelset (save all changes).

### How To Edit

Very simple. Select a brick or a bonus by left-click (right-click into the section to switch between the brick and the bonus set) from the bottom of the screen (red-yellow selection frame) go to the editable part and left-click. Right click will remove a brick (any brick and its bonus if a brick's selected) or bonus (any bonus without touching the brick if bonus selected). You may move the mouse while having left or right buttom pressed. To parse/add/remove any levels or save/load this set use the buttons as explained above. You may use the cursor keys, too (UP - first level, RIGHT - next level, LEFT - previous level). Pressing ESCAPE leaves the editor after confirmation.

ToC

## Themes

### Miscellany

If you want to run LBreakout2 with other graphics and sounds you can create a theme which allows you to modify all game graphics and sounds. The use of new backgrounds is also allowed. The following list contains all editable graphics and sounds. What you have to do to edit them is explained below.

Editable graphics:

backgrounds

Handling of backgrounds is special. As long as you do not provide a back0.png file the original backgrounds are used. If you want to use self-made backgrounds you'll have to save them as backindices.png where your first indices must be 0. If this happens LBreakout2 will only use the backgrounds found in your theme directory (six backgrounds at maximum). This means if you only provide one background LBreakout2 will only use this background throughout the game as long as your theme is running.

ball.png |
bricks.png |
menuback.png | background of the main menu
cr_back.png | background of the chatroom
explosions.png | normal explosions
explosions_dark.png | explosions if darkness penalty is active
extras.png | bonuses and penalties
f_frame.png | font used for score and player name in the right upper corner of the frame
f_game.png | font used for level credits and confirmation
floor.png | bonus floor that is used to close playing field (optional)
fr_left.png | left part of frame
fr_right.png | right part of frame
fr_top.png | top part of frame
fr_mp_left.png | left part of frame for network game
fr_mp_right.png | right part of frame for network game
life.png | life lamps displayed in the left bottom corner of the frame
paddle.png |
shine.png | animation running accross bricks
shot.png | shot of the plasma weapon
warp.png | icon that blinks at the bottom right-hand side of the screen when warp became possible
weapon.png | weapon displayed on the paddle

Editable sounds:

attach.wav | played if ball is attached to sticky paddle | joker.wav | bonus sound
bonus_magnet.wav | bonus sound | looselife.wav | played if you loose a life
chaos.wav | penalty sound | malus_magnet.wav | penalty sound
click.wav | played if key was pressed (e.g. confirmation) | metal.wav | enery ball sound
dammit.wav | Dammit! speech sample | reflect.wav | ball reflection sound
damn.wav | Damn! speech sample | score.wav | bonus sound
darkness.wav | penalty sound | shot.wav | weapon's firing noise
disable.wav | penalty sound | shrink.wav | penalty sound
excellent.wav | Excellent! speech sample | speeddown.wav | bonus sound
exp.wav | brick explosion sound | speedup.wav | penalty sound
expand.wav | bonus sound | standard.wav | standard sound for collecting an extra
expl_ball.wav | bonus sound | timeadd.wav | bonus sound
extraball.wav | bonus sound | verygood.wav | Very Good! speech sample
freeze.wav | penalty sound | wall.wav | bonus sound
gainlife.wav | played if you got an extralife | weak_ball.wav | penalty sound
ghost.wav | bonus sound | wontgiveup.wav | I won't give up! speech sample
goldshower.wav | bonus sound |

### How To Make A Theme

1. Create a directory in ~/.lgames/lbreakout2-themes with the name of your theme.
2. Have a look at the original graphics and sounds located in the gfx and sounds directory in the source path or in /usr/local/share/games/lbreakout2.
3. Now change a graphic or sound to your liking and save it with the same name to ~/.lgames/lbreakout2-themes.
   Note:
   - You must not change the measurements of a graphic. The only exception is warp.png which will be centered to the bottom right-side of the frame.
   - You must not save it to a subdirectory gfx or sounds but directly to ~/.lgames/lbreakout2-themes/MyTheme.
   - A graphic or sound that can't be found in your theme directory is loaded from the original resources.
   - Handling of backgrounds is special. As long as you do not provide a back0.png file the original backgrounds are used. If you want to use self-made backgrounds you'll have to save them as backindices.png where your first indices must be 0. If this happens LBreakout2 will only use the backgrounds found in your theme directory (six backgrounds at maximum). This means if you only provide one background LBreakout2 will only use this background throughout the game as long as your theme is running.
   - Some bricks require multiple hits before destruction as explained in section Special Bricks thus we have two 'groups' of bricks Strong Bricks (4th - 7th) and Regenerative Bricks (8th - 10th). Everytime a brick from such a group is hit the id is decreased by one and if we are at the very left brick thus the first id of the group it will be cleared. So as these bricks belong together they should look consistent. All other bricks are independent.
   - The default colorkey (transparency) is pure black (0x000000).
     Exceptions:
     - All frame graphics (fr_*.png) use the upper right pixel of fr_right.png as color key.
     - All fonts (f_*.png) use the very first pixel (0,0) as color key.
     - paddle.png uses the very first pixel (0,0) as color key.
     - extras.png has no color key by default and bricks.png has black as default color key but in both cases you may add a single last column (one pixel width) with a custom color key.
   - floor.png is an optional PNG. Per default a line of indestructible bricks will be drawn when you catch the 'bonus floor'. (closes the playing field) If you provide this PNG, however, it will be drawn instead thus it must have the size of 560x20. (same as the fr_top.png) It uses black as color key.
4. Add a file named ABOUT to your theme directory. The first 255 characters will be displayed in the menu as quick info about your levelset so you should still provide a README with more detailed information. The ABOUT file should contain name, version, author and a short description.
5. Run LBreakout2 and select your theme in Advanced Options/Select Theme.
6. If everything works fine add a README with credits and a description.
7. Tar.gz your theme directory and send it to kulkanie@gmx.net and I'll add it to the site.
   Please provide the following information (either in the mail or in the README):
   1. Full title
   2. Version number
   3. Your name
   4. Email-address for feedback
   5. Description
   6. A jpg screenshot with your theme in action (press TAB while playing).

ToC