Setting up the development environment
--------------------------------------
-You first need tools to download and compile the Xonotic game data. Make sure you have at least 2 GB memory to compile.
+Make sure you have at least 2 GB memory to compile.
### Linux
-Linux already is adequate for development, all we need are the **dependencies** for the download/compilation process and then we can clone the data.
-
**Ubuntu Dependencies**:
- sudo apt-get install autoconf build-essential curl git-core libasound2-dev libclalsadrv-dev libgmp-dev libjpeg-turbo8-dev libsdl2-dev libsdl2-image-dev libtool libxcb-xf86dri0-dev libxext-dev libxpm-dev libxxf86dga-dev libxxf86vm-dev p7zip-full unzip wget x11proto-xf86dga-dev x11proto-xf86dri-dev x11proto-xf86vidmode-dev xserver-xorg-dev zlib1g-dev
+ sudo apt-get install autoconf build-essential curl git-core libtool libgmp-dev libjpeg-turbo8-dev libsdl2-dev libxpm-dev xserver-xorg-dev zlib1g-dev
Note: On Debian, use `libjpeg8-dev` if `libjpeg-turbo8-dev` isn’t available in the package repositories.
-For **Fedora** and other **RPM based** distros dependencies:
+Note: `curl` isn't required but it's strongly recommended for downloading maps when playing online.
+
+Note: `libasound2-dev libxext-dev libxxf86vm-dev p7zip-full unzip wget x11proto-xf86vidmode-dev` might be needed but are probably already installed. `libclalsadrv-dev libsdl2-image-dev libxcb-xf86dri0-dev libxxf86dga-dev x11proto-xf86dga-dev x11proto-xf86dri-dev` should no longer be needed.
+
+**Fedora** and other **RPM based** distro dependencies:
+
+ autoconf automake gcc-c++ gmp-devel libjpeg-turbo-devel libtool SDL2-devel
- x11-proto-devel libalsa2-static-devel libjpeg62-devel libjpeg62-static-devel libSDL2-devel
+Note: `x11-proto-devel` or `xorg-x11-proto-devel` might be needed but might be already installed.
-For **Archlinux** the dependencies can be installed via the following command:
+**Archlinux** dependencies:
sudo pacman -S alsa-lib curl libjpeg-turbo libmodplug libpng libvorbis libxpm libxxf86dga libxxf86vm sdl2 unzip wget
You can now use this shell to continue on with the guide and clone the Xonotic repositories.
-### MacOS
+### macOS
You must first install **XCode** which comes on your installation DVD or can be downloaded from the Apple website. This package provides tools like **Git and GCC**, which are needed for successful checkout and compilation of Xonotic. Some versions of XCode come with Git and others don’t - if you don’t have Git after installing XCode get it here: [XCode installer](http://sourceforge.net/projects/git-osx-installer/files/)
The **git://** protocol uses port **9418**, which may be a problem if you’re behind a **strict firewall**. You may instead use the clone url http://git.xonotic.org/xonotic/xonotic.git (however, using the git protocol directly is preferred for performance reasons).
-For Windows users: once finished cloning move to the main repository (`cd xonotic`) and checkout the branch Mario/Win64 with the command:
-
- git checkout -b Mario/win64 origin/Mario/win64
-
Now the game can be compiled and run with the following commands:
./all compile -r
**Note:** if you encounter en error similar to darkplaces#111, try `./all clean && ./all compile -r -0`.
-You can use just `./all compile` to create a slower build with debug symbols but usually you want `-r`.
+You can use just `./all compile -d` to create a slower unoptimized (debug) build with debug symbols but usually you want `-r` (which is also the new default if you have recent enough git).
-The `./all run` or `./all compile` line can be followed by one of `glx` (Linux native), `sdl` (input/sound managed by SDL), `agl` (macOS native), `wgl` (Windows native), or `dedicated` (for server hosting) to choose which executable to run or compile. E.g. `./all compile -r dedicated`.
+The `./all run` or `./all compile` line can be followed by `dedicated` to build or run the executable for server hosting. E.g. `./all compile -r dedicated`.
The `run` command can also be followed by standard DarkPlaces commandline arguments:
./all update # pull and prune
./all compile -r # recompile what changed
-**Note:** The compiled binary will have a faint watermark with the git revision. To remove it completely put `set menu_watermark ""` into your `autoexec.cfg`.
-
**Note:** If you intend to play on public servers, you should probably also enable the nexcompat repo to download additional textures that are used on some older unofficial maps. Use `touch data/xonotic-nexcompat.pk3dir.yes` and `./all update`. For mappers: these textures should NOT be used on new maps.
***
To apply for write access, add your SSH key to your GitLab account and ask for access in #xonotic on the FreeNode IRC network or [request access](https://docs.gitlab.com/ce/user/group/index.html#request-access-to-a-group) using the GitLab interface.
-### Windows/Linux/OS X
+### Windows/Linux/macOS
Get a checkout (see above), and do:
./all compile
-Compiles the game, assuming that you have the required libs installed. Don't forget `-r` if you wanna actually play the game with decent fps.
+Compiles the game, assuming that you have the required libs installed.
./all checkout BRANCH
This command commits and pushes your local changes.
- ./all run xonotic
+ ./all run
Starts the Xonotic client
- ./all run dedicated xonotic
+ ./all run dedicated
Starts a Xonotic dedicated server