'\" t .\" Title: spring .\" Author: [see the "Author" section] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 08/03/2022 .\" Manual: Games .\" Source: Spring package .\" Language: English .\" .TH "SPRING" "6" "08/03/2022" "Spring package" "Games" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" spring \- An open source RTS game engine \- Default Engine .SH "SYNOPSIS" .sp \fBspring\fR [\-f|\-\-fullscreen] [\-w|\-\-window] [\-m|\-\-minimise] [\-\-safemode] [\-s|\-\-server \fIIP_OR_HOSTNAME\fR] [\-p|\-\-projectiledump] [\-t|\-\-textureatlas] [\-\-benchmark \fITIME\fR [\-\-benchmarkstart \fITIME\fR]] [\-i|\-\-isolation] [\-\-isolation\-dir \fIPATH\fR] [\-n|\-\-name \fISTRING\fR] [\-C|\-\-config \fIFILE\fR] [\fISCRIPT\fR] .sp \fBspring\fR \-\-list\-ai\-interfaces .sp \fBspring\fR \-\-list\-skirmish\-ais .sp \fBspring\fR \-\-list\-def\-tags .sp \fBspring\fR \-\-list\-config\-vars .sp \fBspring\fR [\-h|\-\-help] .sp \fBspring\fR \-\-sync\-version .sp \fBspring\fR [\-V|\-\-version] .SH "DESCRIPTION" .sp Spring is a versatile 3D RTS game engine\&. Using extensively Lua for scripting game\-specific code to make nearly every aspect of the engine customizable, from GUI, to unit AI, to pathfinding\&. .sp It is mainly designed around online multiplayer games but can also be played in single\-player mode against AIs\&. .sp The engine can run graphics and simulation in two separate threads, depending on the game and engine settings\&. This will typically boost the performance on multi\-core systems\&. .SH "OPTIONS" .PP \fB\-h, \-\-help\fR .RS 4 Print the options help message and exit .RE .PP \fB\-V, \-\-version\fR .RS 4 Display program version and exit .RE .PP \fB\-\-sync\-version\fR .RS 4 Display program sync version (for online gaming) and exit .RE .PP \fB\-\-nocolor\fR .RS 4 Disables colorized stdout .RE .PP \fB\-\-quiet\fR .RS 4 Ignore unreccognized arguments .RE .PP \fB\-f, \-\-fullscreen\fR .RS 4 Run in fullscreen mode .RE .PP \fB\-w, \-\-window\fR .RS 4 Run in windowed mode .RE .PP \fB\-b, \-\-minimise\fR .RS 4 Start in background (minimised) .RE .PP \fB\-\-safemode\fR .RS 4 Turns off many things that are known to cause problems (i\&.e\&. on PC/Mac\(cqs with lower\-end graphic cards) .RE .PP \fB\-s, \-\-server\fR::\*(AqIP_OR_HOSTNAME\*(Aq .RS 4 Run as a server on the given address .RE .PP \fB\-t, \-\-textureatlas\fR .RS 4 Dump each finalised textureatlas into textureatlasN\&.tga .RE .PP \fB\-\-benchmark\fR::\*(AqTIME\*(Aq .RS 4 Enable benchmark mode (writes a benchmark\&.data file)\&. The given number specifies the timespan to test\&. .RE .PP \fB\-\-benchmarkstart\fR::\*(AqTIME\*(Aq .RS 4 Benchmark start time in minutes\&. .RE .PP \fB\-i, \-\-isolation\fR .RS 4 Limit the data\-dir (games & maps) scanner to one directory (see \-\-isolation\-dir and the SPRING_ISOLATED env var) .RE .PP \fB\-\-isolation\-dir\fR::\*(AqPATH\*(Aq .RS 4 Specify the isolation\-mode data\-dir (see \-\-isolation and the SPRING_ISOLATED env var) .RE .PP \fB\-\-write\-dir\fR::\*(AqPATH\*(Aq .RS 4 Specify the directory used for all saving\&. .RE .PP \fB\-n, \-\-name\fR::\*(AqNAME\*(Aq .RS 4 Set your player name .RE .PP \fB\-C, \-\-config\fR::\*(AqFILE\*(Aq .RS 4 Exclusive configuration file .RE .PP \fB\-\-list\-ai\-interfaces\fR .RS 4 Dump a list of available AI Interfaces to STDOUT .RE .PP \fB\-\-list\-skirmish\-ais\fR .RS 4 Dump a list of available Skirmish AIs to STDOUT .RE .PP \fB\-\-list\-def\-tags\fR .RS 4 Dump a list of available Definition Tags in JSON\-format to STDOUT .RE .PP \fB\-\-list\-ceg\-classes\fR .RS 4 Dump a list of available Projectile classes in JSON\-format to STDOUT .RE .PP \fB\-\-list\-config\-vars\fR .RS 4 Dump all default config vars in JSON\-format to STDOUT .RE .PP \fB\-g, \-\-game\fR::\*(AqGAME\*(Aq .RS 4 instantly start the GAME with a minimal setup\&. Requires \-\-map to be present, too\&. Sets the modoption minimalsetup = 1 .RE .PP \fB\-m, \-\-map\fR::\*(AqMAP\*(Aq .RS 4 Requires \-\-game to be set, too\&. see \-\-game .RE .SH "FILES" .sp .if n \{\ .RS 4 .\} .nf ~/\&.config/spring/ .fi .if n \{\ .RE .\} .sp The default data\-directory (see section DATA DIR)\&. .sp .if n \{\ .RS 4 .\} .nf ~/\&.config/spring/springsettings\&.cfg .fi .if n \{\ .RE .\} .sp Contains the users settings for the engine, for things like graphic and sound\&. .sp .if n \{\ .RS 4 .\} .nf /etc/spring/datadir .fi .if n \{\ .RE .\} .sp Contains the \fI:\fR separated paths to additional data\-dirs (see section DATA DIR)\&. .SH "ENVIROMENT VARIABLES" .sp \fBSPRING_LOG_SECTIONS\fR Selective functionality to change the verbosity (separated by \fI,\fR)\&. .sp \fBSPRING_WRITEDIR\fR Define custom primary write DATA DIR\&. Place where spring saves logs, settings, \&... .sp \fBSPRING_DATADIR\fR Adds additional DATA DIRs Spring will search for files (separated by \fI:\fR)\&. .sp \fBSPRING_ISOLATED\fR If defined, Spring will stop searching files outside of the binaries directory\&. If it is set to a valid directory path, it will be used as the isolation directory\&. See the \-\-isolation and the \-\-isolation\-dir options\&. .sp \fBSPRING_NOCOLOR\fR Same as spring \-\-nocolor\&. .SH "SCRIPT" .sp Can either be a: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Spring URL (spring://[username[:password]@]host[:port]) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} start script (often named script\&.txt) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} replay file (*\&.sdfz) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} save game (*\&.ssf) .RE .SH "PORTABLE MODE" .sp An all\-in\-one\-folder setup, which allows to run Spring without installation\&. To do so all relevant files (binaries & basecontent) must be in a single folder, esp\&. spring(\&.exe), libunitsync\&.so/unitsync\&.dll and springsettings\&.cfg\&. Spring will then use the all\-in\-one\-folder for writing and won\(cqt do so anywhere else on the system, but it may open other files & directories for reading\&. .SH "ISOLATION MODE" .sp Not to confuse with Portable Mode, this mode disables all automatic Data Dir scanning and limit reading & writing to a single folder\&. This is very useful when games want to run separate from other Spring games\&. Isolation mode can be enabled by placing an empty isolated\&.txt next to the spring executable or by setting SPRING_ISOLATED env var\&. .SH "DATA DIRS" .sp Data directories are searched for content, and among other things, may contain: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} config files .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} logs .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} games .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} maps .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} AIs .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} cache .RE .sp Sorted by priority the engine may use multiple data directories, but it will use only the one with the highest priority as writable, to write cache & log files to\&. The hierarchy the engine loads DATA DIRs in can be grouped in 3 sections: .TS allbox tab(:); ctB ctB ctB ctB ctB. T{ priority T}:T{ section T}:T{ normal T}:T{ portable T}:T{ isolation T} .T& rt lt lt lt lt lt lt lt lt lt rt lt lt lt lt. T{ .sp high T}:T{ .sp custom user write T}:T{ .sp \-e directory defined via \-\-write\-dir .sp SPRING_WRITEDIR envvar T}:T{ .sp \-e directory defined via \-\-write\-dir .sp SPRING_WRITEDIR envvar T}:T{ .sp \-e directory defined via \-\-write\-dir .sp SPRING_WRITEDIR envvar T} T{ .sp T}:T{ .sp automatic scanned T}:T{ .sp \-e CONFIG_HOME .sp ETC_DIRS .sp USR_SHARE T}:T{ .sp \-e INSTALL_DIR .sp CONFIG_HOME .sp ETC_DIRS .sp USR_SHARE T}:T{ .sp ISOLATION_DIR T} T{ .sp low T}:T{ .sp custom user read T}:T{ .sp \-e SPRING_DATADIR envvar .sp SpringData configtag T}:T{ .sp \-e SPRING_DATADIR envvar .sp SpringData configtag T}:T{ .sp \-e SPRING_DATADIR envvar .sp SpringData configtag T} .TE .sp 1 .PP \fBCONFIG_HOME\fR .RS 4 Config directories in user\(cqs home\&. .PP *nix/MacOSX: .RS 4 ${XDG_CONFIG_HOME\-"~/\&.config"}/spring ~/\&.spring .RE .PP Windows: .RS 4 C:/\&.../My Documents/My Games/Spring/ C:/\&.../My Documents/Spring/ C:/\&.../All Users/Applications/Spring/ .RE .RE .sp \fBINSTALL_DIR\fR Location of spring binary\&. .sp \fBETC_DIRS\fR Additional \fI:\fR separated DATA DIRs defined in /etc/spring/datadir\&. .PP \fBUSR_SHARE\fR .RS 4 *nix/MacOSX: /usr/\&.../share/spring & binary dir if is Data Dir MacOSX: \&.../Spring\&.app/Contents/Resources/share/games/spring/base/ Windows: Install directory .RE .PP \fBISOLATION_DIR\fR .RS 4 Mode A (\-\-isolation): INSTALL_DIR Mode B (\-\-isolation\-dir): supplied dir .RE .SH "CONFIG FILES" .sp Spring can load configurations from multiple files and merge them\&. So similar to DATA DIRs there is one file where the engine writes to and multiple read\-only files\&. .sp It scans following directories for config files : .TS allbox tab(:); ltB ltB. T{ priority T}:T{ scanned directories T} .T& rt lt rt lt lt lt rt lt. T{ .sp exclusive T}:T{ .sp file defined via \fB\-\-config\fR (when defined only this is loaded) T} T{ .sp high T}:T{ .sp write DATA DIR T} T{ .sp T}:T{ .sp \-e (skipped in Isolated mode) .sp *nix/MacOSX: ~/\&.springrc .sp Windows: C:\eUsers\eUSER\eAppData\eLocal\espringsettings\&.cfg T} T{ .sp low T}:T{ .sp all read DATA DIRs T} .TE .sp 1 .sp (The one with highest priority will be used for writing\&.) .sp The filename of such config files can be as following: .TS allbox tab(:); ltB ltB. T{ priority T}:T{ filenames T} .T& rt lt lt lt lt lt rt lt. T{ .sp high T}:T{ .sp springsettings\-%Engine_Version%\&.cfg T} T{ .sp T}:T{ .sp springsettings\&.cfg T} T{ .sp T}:T{ .sp springrc\-%Engine_Version% (*nix/MacOSX only) T} T{ .sp low T}:T{ .sp springrc (*nix/MacOSX only) T} .TE .sp 1 .sp (An example for a versioned config file is "springsettings\-94\&.1\&.cfg"\&.) .SH "SEE ALSO" .sp spring\-legacy(6) spring\-headless(6) spring\-dedicated(6) .SH "HOMEPAGE" .sp More information about Spring can be found at link: \m[blue]\fBhttps://springrts\&.com\fR\m[] .SH "AUTHOR" .sp Spring was written by the Spring developers\&. .sp This manual page was written by Marco Amadori <\m[blue]\fBmarco\&.amadori@gmail\&.com\fR\m[]\&\s-2\u[1]\d\s+2>, for the Debian project (and may be used by others)\&. .SH "NOTES" .IP " 1." 4 marco.amadori@gmail.com .RS 4 \%mailto:marco.amadori@gmail.com .RE