OpenZone

version 0.3.90

http://ducakar.github.io/openzone/

Contents

  1. Controls
  2. Command Line
  3. Settings
  4. Directories
  5. Virtual Filesystem
  6. Dependencies
  7. Troubleshooting
  8. Legal

Controls

Free Camera Controls

mouse movement rotate camera
arrow keys rotate camera
w/a/s/d move forwards / left / backwards / right
Space up / increase height
LCtrl, c down / decrease height
LShift toggle fast move
Tab toggle freelook / interface mode
Numpad Enter, Enter switch between FreeCam and Strategic camera
n toggle night vision
m toggle minimap / maximised map
i incarnate into the selected bot (or vehicle's pilot)
y cycle switchable units

Bot Controls

mouse movement look around
arrow keys look around
w/a/s/d move forwards / left / backwards / right
q/e turn left / right
LShift toggle run
LCtrl, c toggle crouch
Space jump
left click trigger equipped weapon / rotate object you are holding
right click perform action on tagged object
middle click grab tagged object / drop object you are holding
wheel up throw object you are holding
wheel down put tagged object into inventory / open inventory to exchange objects
1 - 4 select n-th weapon from inventory or hide it if the current weapon is selected
n toggle night vision (if available)
b toggle binoculars (if available)
m toggle minimap / maximised map (if available)
Alt + k commit suicide (if available)
i un-incarnate bot
Tab toggle freelook / interface mode
Numpad Enter, Enter switch between 1st person and 3rd person camera
Numpad * toggle free camera rotation in 3rd person camera or in a vehicle
f point gesture
g fall back gesture
h salute gesture
j wave gesture
k flip out gesture
l play all animations

Inventory

left click drop item / move item between inventories
middle click grab item from inventory
right click perform action on item / arm or holster a weapon

Vehicle Controls

mouse movement rotate vehicle or turret
arrow keys rotate vehicle or turret
w/a/s/d move forwards / left / backwards / right
q/e turn left / right
Space up (air vehicles only)
LCtrl, c down (air vehicles only)
left click trigger selected weapon
right click select next weapon
x exit
Alt + x eject

Miscellaneous

Alt + drag move UI windows
o rotate sky backward fast
p rotate sky forward fast
F5 quick save
F7 quick load
F8 load autosaved
F9 take screenshot
Ctrl + F9 toggle UI visibility
F10, Esc exit to main menu (only F10 works on NaCl)
F11 toggle fullscreen mode
Ctrl + F11 toggle mouse centring and system cursor visibility (and input grab on SDL 1.2)
F12 minimise and pause
Ctrl + F12 exit application

Command Line

openzone [-v] [-l | -i <mission>] [-t <num>] [-L <lang>] [-p <prefix>]

-v Print verbose log messages to terminal.
-l Skip main menu and load the last autosaved game.
-i <mission> Skip main menu and start mission <mission>.
-t <num> Exit after <num> seconds (can be a floating-point number) and use 42 as the random seed. Useful for benchmarking.
-L <lang> Use language <lang>. Should match a subdirectory name in 'lingua/' directory inside game data archives.
-p <prefix> Sets data directory to '<prefix>/share/openzone'. Defaults to '/usr'.

Settings

Settings file is located in <config>/client.json.

Configuration variables

_version [string] "0.3.90"
Version of OpenZone for which the settings file was created. If version doesn't match, OpenZone saves updated configuration on exit. Obsolete variables are lost during that process.
camera.angle [float] 80.0
Vertical camera angle in degrees. Horizontal angle adjusted depending on aspect ratio.
camera.aspect [float] 0.0
Aspect ratio (width/height). If 0.0, it is determined from the screen resolution.
dir.music [string] "<music>/OpenZone"
Top directory that will be recursively searched for *.oga, *.ogg, *.mp3 and *.aac files. All found tracks will be accessible from Music Player along the original tracks included in game data.
dir.prefix [string] Linux: "/usr", Windows: "."
Prefix path to game directory structure. The share/openzone directory should be located inside the prefix directory.
lingua [string] ""
Language code for translations. Language code must correspond to a subdirectory of "lingua" directory in one of game data archives.
render.postprocess [bool] true
Enable postprocessing. Also enables offscreen rendering.
render.scale [float] 1.0
Scale of resolution of offscreen buffer where world is rendered to. Enables offscreen rendering if not 1.0.
render.scaleFilter ["NEAREST" | "LINEAR"] "LINEAR"
When using offscreen rendering, this specifies which filter to use when rendering offscreen buffer into the main buffer. "NEAREST" produces sharp edges but blocky image while "LINEAR" produces more smooth but blurry image.
render.showAim [bool] false
Draw a small green box at the point you are currenty aiming at. It was intended for testing collision detection.
render.showBounds [bool] false
Show AABBs of objects. Green for solid objects, grey for non-solid objects, blue for structures and red for structure entities.
render.visibilityRange [float] 350.0
Visible range.
seed [int | "TIME"] "TIME"
Seed for random number generator. Can be an integer or "TIME" to use the current time as the seed.
shader.vertexTexture [bool] false
Use vertex texture fetch feature to perform mesh animation in vertex shader. Should work on GeForce 6 or newer and Radeon HD 2xxx or newer. Does not work with Catalyst drivers.
sound.device [string] ""
Sound device to pass to OpenAL. If empty string, choice is left to OpenAL. To see available devices look into log file <config>/client.log.
sound.volume [float] 1.0
Sound volume. 1.0 represents full volume.
ui.showBuild [bool] false
Show a windows with buttons to add various objects into the world. For development purpuses.
ui.showDebug [bool] false
Show a window that shows coordinates, orientation and other data about camera, controlled bot, tagged object etc. For development purposes.
ui.showFPS [bool] false
Show frames per second. Since world simulation runs on 60 Hz FPS cannot be higher than this value.
window.fullscreen [bool] false
Start in fullscreen mode.
window.height [int] 0
Vertical screen resolution. If either window.width or window.height is zero, desktop resolution is used.
window.width [int] 0
Horizontal screen resolution. If either window.width or window.height is zero, desktop resolution is used.

Directories

<config> directory

Platform Exact location Typical location
Linux $XDG_CONFIG_HOME/openzone ~/.config/openzone
Windows XP %APPDATA%\openzone C:\Documents and Settings\<username>\Application Data\openzone
Windows 7 %APPDATA%\openzone C:\Users\<username>\AppData\Roaming\openzone

<local> directory

Platform Exact location Typical location
Linux $XDG_DATA_HOME/openzone ~/.local/share/openzone
Windows XP %LOCAL_APPDATA%\openzone C:\Documents and Settings\<username>\Local Settings\Application Data\openzone
Windows 7 %LOCAL_APPDATA%\openzone C:\Users\<username>\AppData\Local\openzone

<data> directory

Platform Exact location Typical location
Linux <install_prefix>/share/openzone /usr/share/openzone
Windows XP <install_dir>\share\openzone C:\Program Files\OpenZone\share\openzone
Windows 7 <install_dir>\share\openzone C:\Program Files (x86)\OpenZone\share\openzone

<music> directory

Platform Exact location Typical location
Linux $XDG_MUSIC_DIR/OpenZone ~/Music/OpenZone
Windows XP %MYMUSIC%\OpenZone C:\Documents and Settings\<username>\My Music\OpenZone
Windows 7 %MYMUSIC%\OpenZone C:\Users\<username>\Music\OpenZone

Virtual Filesystem

Game data are read from internal virtual filesystem that is a union of the following locations:

  1. contents of <local> directory
  2. contents of *.7z and *.zip archives found in <local> directory
  3. contents of <data> directory
  4. contents of *.7z and *.zip archives found in <data> directory.

If a file appears multiple times, the first appearance overrides the later ones. Locations are searched in the same order as stated above. 7zip archives are searched before ZIP ones in the same directory. Archives of the same type in the same location are searched in lexicographical order (sorted by file name using strcmp() function).

Extension checking is case-sensitive, so make sure lowercase letters are used for archive extensions.

Dependencies

Binary packages already either include all required libraries or list them as dependencies. The following libraries are direct dependencies required in run-time:

Troubleshooting

Performance Tips

Legal

OpenZone Engine

Copyright © 2002-2014 Davorin Učakar
Author: Davorin Učakar
Contact: davorin.ucakar@gmail.com
Web page: ducakar.github.com/openzone

This program comes with ABSOLUTELY NO WARRANTY. This is free software under GNU General Public License version 3 or (at your option) any later version.

ozCore, ozDynamics, ozEngine and ozFactory libraries are part of OpenZone engine but can also be distributed or modified alone under the zlib licence.

Game Data

Game data are obtained from various sources and covered by many different licences. See individual README.txt and COPYING.txt files in game data archives for details.

Third-party Libraries

Unless OpenZone is built as a package for some Linux distribution it also includes (most) of the following 3rd party libraries:

FreeType

Web page: freetype.sourceforge.net
Licence: GNU General Public License 2.0

libogg

Web page: www.xiph.org/ogg
Licence: BSD

libpng

Web page: http://www.libpng.org/
Licence: libpng

libvorbis

Web page: www.xiph.org/vorbis
Licence: BSD

Lua

Web page: www.lua.org
Licence: MIT

MinGW runtime

Web page: www.mingw.org
Licence: Public Domain

OpenAL Soft

Web page: www.openal.org
Licence: GNU Lesser General Public Licence 2.1

PhysicsFS

Web page: icculus.org/physfs
Licence: zlib

SDL 1.2

Web page: www.libsdl.org
Licence: GNU Lesser General Public License 2.1

SDL 2.0

Web page: www.libsdl.org
Licence: zlib

SDL_ttf

Web page: www.libsdl.org/projects/SDL_ttf
Licence: zlib

zlib

Web page: www.zlib.net
Licence: zlib