TABLE OF CONTENTS

General information:
 1. INTRODUCTION
 2. KEYBOARD CONTROLS
 3. GAME CONFIGURATION
 4. CHANGING THE GAME LANGUAGE
 5. COPYING GAME PROGRESS FROM WINDOWS TO LINUX
 6. MULTIPLE MICE SUPPORT
 7. CHANGING DISPLAY RESOLUTION

Troubleshooting:
 8. PROBLEMS WHEN USING A COMPOSITING WINDOW MANAGER
 9. GLOBAL HOTKEYS DO NOT WORK IN-GAME
10. GENERAL SOUND PROBLEMS
11. GENERAL DISPLAY PROBLEMS
12. SCREEN CROPPED OR PLACED OUT OF CENTER ON A TFT MONITOR
13. SCREEN OUT OF PROPORTION ON WIDESCREEN MONITOR
14. INTERNET CONNECTIVITY WITH AN HTTP PROXY


 1. INTRODUCTION

This file documents configuration options, features and bugs specific to the
Linux version of World of Goo. It also includes work-arounds for a variety of
problems encountered during the beta-test of the Linux version.

By far the most common source of trouble is the use of a compositing window
manager, which is used when turning on "Desktop Effects" in Gnome or KDE.
If the game does not play smoothly, you are advised to disable desktop effects.
See PROBLEMS WHEN USING A COMPOSITING WINDOW MANAGER for details.

Note that many of the solutions proposed in this document involve changing
game or X server configuration settings, which is not officially supported.
Any changes made, even when following the instruction given here, are therefore
at your own risk. Use caution before changing system settings, and do not make
any changes if you do not fully understand their consequences.


 2. KEYBOARD CONTROLS

The Linux version supports the following keyboard controls:

  Alt-Enter   Toggle between full-screen mode and windowed mode

  Alt-F4      Quit the game at any point
              (Note that any progress made in the current level will be lost!)

  Alt-M       Toggle sound (mute/unmute)

The game can be paused by switching to windowed mode and then minimizing the
game window. This will also pause sound playback.


 3. GAME CONFIGURATION

Advanced configuration settings are available through the configuration file
located at /opt/WorldOfGoo/properties/config.txt. Changes made in this file
affect all users. Alternatively, the configuration can be changed on a per-user
basis by copying the config.txt file to $HOME/.WorldOfGoo/; in that case,
the global configuration no longer applies.


 4. CHANGING THE GAME LANGUAGE

By default, the game automatically detects the language to be used based on
the environment in which the game is run. To override this, you can change the
value of the "language" parameter in config.txt to one of the following values:

  "en"      English (US)
  "de"      Deutsch: German (Germany)
  "es"      Español: Spanish (Spain)
  "fr"      Français: French (France)
  "it"      Italiano: Italian (Italy)
  "nl"      Nederlands: Dutch (The Netherlands)
  "auto"    auto-detect language (default)


 5. COPYING GAME PROGRESS FROM WINDOWS TO LINUX

If you have played the Windows version of World of Goo and do not want to start
over, you can copy your progress from Windows to Linux. This requires locating
a file called "pers2.dat" that contains all user progress on Windows.

On Windows XP, this file is typically stored in the directory:
  "%USERPROFILE%\Local Settings\Application Data\2DBoy\WorldOfGoo"
On Windows Vista, the file is stored in the directory:
  "%USERPROFILE%\AppData\Local\2DBoy\WorldOfGoo"
Here, %USERPROFILE%  refers to the path to the user's profile directory,
which is typically "C:\Documents and Settings\NAME" on Windows XP and
"C:\Users\NAME" on Windows Vista.

Alternatively, you can use the Search For Files facility to locate the file
on your system. Note that on many systems (especially with non-English versions
of Windows) the file is located in a different directory than described above.

The pers2.dat file must be copied to the .WorldOfGoo subdirectory of your home
directory in Linux. For example:

  mkdir -p "$HOME"/.WorldOfGoo               # create directory 
  cp -i pers2.dat "$HOME"/.WorldOfGoo        # copy game progress

Note that if you overwrite the progress data in this way, the game progress
made in Linux before copying the file will be lost completely!


 6. MULTIPLE MICE SUPPORT

As an unsupported feature, the Linux version of World of Goo can be played
with up to four players at a time, each using a separate mouse. In order to
use this feature, edit config.txt and change the "manymouse" parameter value
from "false" to "true".

Furthermore, the mouse event devices for the mice to be used must be readable
by the user running World of Goo. An easy way to set this up (assuming udev
is used for the /dev filesystem) is to execute (as the root user):

  chmod a+r /dev/input/by-id/*event-mouse

Note that this change is not permanent (permissions are reset when the system
is rebooted) and may compromise user privacy on multi-user systems.


 7. CHANGING DISPLAY RESOLUTION

If you want to change the full-screen resolution of the game (which is 800x600
by default) or start the game in windowed mode, you can do so by changing the
"screen_width", "screen_height" and "fullscreen" parameters in config.txt.


 8. PROBLEMS WHEN USING A COMPOSITING WINDOW MANAGER

When using a compositing window manager such as Compiz (sometimes called Desktop
Effects) the game may not display properly or may switch out of full-screen
mode. There are two approaches to solving this problem.

 1. Turn off compositing window managers while playing entirely.

    For example, on Ubuntu Linux this can be done by opening the System menu,
    then Preferences, then Appearance, and on the Visual Effects tab selecting
    "None".

    Alternatively, this can be done by executing "metacity --replace" on the
    command line.

 2. When using Compiz, turn OFF the "Unredirect Fullscreen Windows" setting
    (note the double negative) and restart Compiz.

    In Ubuntu Linux, this can be done by going opening the System menu,
    then Preferences, then Advanced Desktop Effects Settings. Alternatively,
    this can be done on the command line as follows:

      gconftool --type boolean --set \
        /apps/compiz/general/screen0/options/unredirect_fullscreen_windows false

    Note that you may need to log out and back in for these settings to take
    effect.


 9. GLOBAL HOTKEYS DO NOT WORK IN-GAME

Global hotkeys (such as volume control keys) do not work when running the game
in full screen mode. To work around this, switch the game to windowed mode
by hitting Alt-Enter.


10. GENERAL SOUND PROBLEMS

If you experience stuttering or low quality sound, or no sound at all, you can
override the sound settings used by the game in config.txt. There are two
changeable parameters:

  1. Change the "sound_num_channels" and "sound_buffer_size" parameters to
     select the number mixing channels to be used, and the size of the internal
     audio buffer. In many cases, stuttering sound can be fixed by increasing
     the sound buffer size e.g. to 4096.

  2. To override the sound system used by the game, change the value of the
     "SDL_AUDIODRIVER" environmental variable to one of the supported sound
     system values (see config.txt for details).

     Note that you must know the sound system used by your Linux distribution;
     if you select an incorrect value the game may fail to start, or run without
     sound.


11. GENERAL DISPLAY PROBLEMS

Some users report problems with the full-screen game window being displayed
incorrectly. The game uses a display resolution of 800 by 600 pixels by default;
in some cases this video mode is not configured properly. There are two
approaches to solving such problems:

  1. Update the X configuration to ensure a proper 800x600 display mode is
     available. Some common problems are described in this file.

  2. Alternatively, the game configuration can be changed to use a different
     video mode; see CHANGING DISPLAY RESOLUTION above.

When using NVIDIA TwinView, ensure that a proper meta-mode is available to
display the 800x600 resolution. Note that when using TwinView, the NVIDIA driver
bypasses the usual mode configuration in the Screen section of the X
configuration.

Some users reported rendering problems when using the open source AMD/ATI
drivers for their graphics card. Users of ATI graphics cards are advised to try
the proprietary Catalyst (fglrx) driver instead.


12. SCREEN CROPPED OR PLACED OUT OF CENTER ON A TFT MONITOR

If this occurs when using an NVIDIA graphics card, this is caused by the X
server including invalid display modes for low resolutions such as the default
800x600 resolution in the list of available video modes.

This can be fixed by adding the following option to the NVIDIA device section
in your X server configuration:

  Option "ModeValidation" "NoXServerModes"

Or, in a multi-monitor set-up with both a TFT and a CRT monitor:

  Option "ModeValidation" "DFP-0: NoXServerModes"

The X server configuration is typically located at /etc/X11/xorg.conf and
consists of a series of sections, delimited by "Section" and "EndSection"
directives. The NVIDIA device section is a device section that looks like this:

  Section "Device"
    Driver "nvidia"
    Identifier "my-nvidia-card"
    [.. more settings here..]
  EndSection

You will need to add the option in this section, so it becomes:

  Section "Device"
    Driver "nvidia"
    Identifier "my-nvidia-card"
    [.. more settings here..]
    Option "ModeValidation" "NoXServerModes"
  EndSection

After writing these changes to the configuration file, the X server must be
restarted for the new settings to take effect.

An alternative solution is to change the screen resolution used by the game to
your desktop resolution (in config.txt) or play the game in windowed mode.


13. SCREEN OUT OF PROPORTION ON WIDESCREEN MONITOR

By default, the game uses a resolution of 800x600 pixels, which has a width-to-
height ratio of 4:3. Widescreen monitors typically have a ratio of 16:10
or 16:9. If the game is displayed full-screen, the image will appear stretched
out horizontally.

There is one simple way to fix this:

 1. You can change the screen resolution used by the game from the default of
    800x600 to your desktop resolution or a resolution with the same aspect
    ratio (see CHANGING DISPLAY RESOLUTION above).

Another approach is available if you use an NVIDIA graphics card and the
official NVIDIA display driver:

 2. Install and run the "nvidia-settings" utility, and set "Flat Panel Scaling"
    to "Aspect Ratio Scaled" in the properties of your monitor (you will need
    to enable "Force Full GPU Scaling" to set this option).

    This setting will last until the X server is restarted. You can make it
    permanent by adding the following option to the NVIDIA device section in
    you the X server configuration:

      Option "FlatPanelProperties" "Scaling=aspect-scaled"

    See the instructions for editing the X configuration above.


14. INTERNET CONNECTIVITY WITH AN HTTP PROXY

If you need to use an HTTP proxy to connect to the internet, you can configure
the game to use it. Edit the "all_proxy" environment variable in config.txt and
set it to a string of the form "<hostname>:<port>", e.g. "proxy.myisp.com:8080".
Note that the proxy must support HTTPS. 
