TUER
TUER: Truly Unusual Experience of Revolution®

Free of charge and free (for non commercial purposes) First Person Shooter written in Java by Julien Gouesse



EnglishFrançais

Home    Blog    Documentation    Play    Images    Videos    Project    Contact    TUER RSS feed
Summary:

How to build and run the game

Software requirements

You need these programs to use the game for development purposes:

Source code repositories

These are the URIs of the Git repositories for all versions:

Build steps

Enter this when you're in the ANT home to download the JARs required by some optional tasks: ./bin/ant networking -f fetch.xml -Ddest=system

Please follow one of these methods:

Source code of the dependencies

You can get the source code of the dependencies here :

TUER requires less than 32 MB (the latest version may require more than 64 MB) but some programs used to precompute its data require 1 GB and even 2 GB. Do not try to build the game from the source code if your computer does not have enough RAM. Use the VM argument "-Xmx" if a particular map needs much memory.

JNDT: Java Native Deployment Toolkit

Introduction

JNDT is used to build the self-contained native application bundles of the project. It turns a fat JAR into some bundles easy to deploy and to install. It builds both some convenient native installers with a full desktop integration and some archives as fallbacks.

It's a cross-platform packager, i.e it's able both to run under several operating systems and to generate native bundles for an operating system different from the one it's being executed.

N.B: JNDT supports Java 9 and higher. As it uses a viral license (GPL version 2) and as it injects a part of its own source code into the bundles, its use is allowed only for the programs using a compatible license.

Source code

The source code of JNDT is in a single Ant library file here.

Setup

The dependencies of JNDT are here, you must copy them into a directory and set the value of the Ant property "jndtlibdir" to this path ("lib/ant" in the example below):

<property name="jndt-version" value="0.0.0"/>
<property name="jndt-release" value="0"/>
<property name="jndt-jar-filename" value="jndt-${jndt-version}-${jndt-release}.jar"/>
<property name="jndtlibdir" value="lib/ant"/>
<taskdef resource="jndt/antlib.xml" classpath="${jndtlibdir}/${jndt-jar-filename}"/>

Nullsoft Scriptable Install System (NSIS), available in numerous GNU Linux distributions, under Microsoft Windows and under Mac OS X, must be installed separately to generate an installer for Microsoft Windows.

Manual of the Ant tasks

JNDT is composed of the 4 Ant tasks below:

create-app-dir

Creates the directory of the application, i.e the directory containing the necessary files to run the application, its JAR, its resources (optional), the JRE (optional), the native launcher or the launch script and the files for the native integration in the desktop (the icon, ...).

AttributeDescriptionRequired
osone of Linux, Mac OS X, Windows (similar to the 'os' attribute of the 'resources' tag in JNLP)Yes
archone of i386, amd64, universal, arm, none (similar to the 'arch' attribute of the 'resources' tag in JNLP but simplified). 'none' is supported only with jdk set to ''Yes
executablename of the script, without extension such as .bat and .shYes
linuxpackageshscriptenabledcreates a simplified portable two-line shell script used as a launcher for any GNU Linux package if true and if os is set to 'Linux'No - default is "false"
appjarfile location of the JAR to packageYes
appnameapplication name, mandatory to build the package name if linuxpackageshscriptenabled is set to trueNo, unless linuxpackageshscriptenabled is "true" - default is ""
outdiroutput directoryYes
vmargslist of arguments for the JVM, separated by ';', e.g. -Xmx1GNo - default is ";"
jdkZIP file location or URL to an OpenJDK build containing a JRE, can be empty to use the JRE of the systemYes
resourceslist of files and directories to be packaged next to the script, separated by ';'No - default is ";"
bundleidentifierbundle identifier similar to a Java package nameNo - default is "com.yourcompany.identifier"
iconsfileicons file (imperatively .png for GNU Linux, .ico for Windows, .icns for Mac)No - default is ""
useserverjreuses the server jre if true, otherwise uses the client jreNo - default is "true"

create-linux-app-bundles

Creates a RPM package, a DEB package and an archive for GNU Linux.

AttributeDescriptionRequired
executablename of the script, without extension such as .shYes
packageexecutabledirdirectory containing the executable after the install of a RPM or DEB packageNo - default is "/usr/bin"
packageshscriptenabledcreates a simplified portable two-line shell script used as a launcher for any GNU Linux package if trueNo - default is "true"
appjarfile location of the JAR to packageYes
appnameapplication nameYes
outdiroutput directoryYes
vmargslist of arguments for the JVM, separated by ';', e.g. -Xmx1GNo - default is ";"
jdkZIP file location or URL to an OpenJDK build containing a JRE, can be empty to use the JRE of the systemYes
resourceslist of files and directories to be packaged next to the script, separated by ';'.No - default is ";"
bundleidentifierbundle identifier similar to a Java package nameNo - default is "com.yourcompany.identifier"
iconsfileicons file (imperatively in .png format)No - default is ""
useserverjreuses the server jre if true, otherwise uses the client jreNo - default is "true"
archone of i386, amd64, arm, none (similar to the 'arch' attribute of the 'resources' tag in JNLP but simplified). 'none' is supported only with jdk set to ''Yes
categorieslist of categories separated by ;, used to put the shortcut into the start menu, see https://standards.freedesktop.org/menu-spec/latest/apa.htmlNo - default is ""
commentcomment of the shortcutNo - default is ""
vendororganization that distributes the softwareNo - default is ""
packagerorganization that actually packaged the softwareNo - default is ""
licenselicenseNo - default is ""
summaryshort description of the packaged software (generally on a single line)No - default is ""
descriptiondetailed description of the packaged software (can take up more than one line)No - default is ""
groupstring composed of a series of words separated by slashes that defines how the packaged software should be grouped with other packagesNo - default is "Applications"
sectionclassifier of the application for the Debian package, see https://www.debian.org/doc/debian-policy/ch-archive.html#s-subsectionsNo - default is "java"
versionversionNo - default is "0.0"
releasereleaseNo - default is "0"
hosthost (codebase)No - default is ""
urlhomepage url, generally pointing to the documentation of the software being packagedNo - default is ""
emailemailNo - default is ""
distributiontarget GNU Linux distributionNo - default is "unknown"
priorityhow important it is that the user have the package installed: required, important, standard, optional or extraNo - default is "optional"
urgencyhow important it is to upgrade to this version from previous ones: low, medium, high, emergency, or critical followed by an optional commentNo - default is "low"
essentialwhether the package management system will refuse to remove the packageNo - default is "no"
debdependsdependencies of the Debian package, can end with ':any' (see 'multiarch')No - default is ""
multiarchsupport of multiple architectures, see https://wiki.ubuntu.com/MultiarchSpecNo - default is "no"
docdirdirectory containing the documentationNo - default is ""
docdirincludesinclusion filter of the documentation directoryNo - default is "*"
archivefileformatarchive file format, with or without compression: zip, gzip, bzip2, tarNo - default is "gzip"

create-os-x-app-bundle

Creates a compressed APP file for Mac OS X.

AttributeDescriptionRequired
archone of universal, none (similar to the 'arch' attribute of the 'resources' tag in JNLP but simplified). 'none' is supported only with jdk set to ''No - default is "universal"
executablename of the script, without extension such as .shYes
appjarfile location of the JAR to packageYes
appnameapplication nameYes
outdiroutput directoryYes
vmargslist of arguments for the JVM, separated by ;, e.g. -Xmx1GNo - default is ";"
jdkZIP file location or URL to an OpenJDK build containing a JRE, can be empty to use the JRE of the systemYes
resourceslist of files and directories to be packaged next to the script, separated by ;No - default is ";"
bundleidentifierbundle identifier similar to a Java package nameNo - default is "com.yourcompany.identifier"
iconsfileicons file (imperatively in .icns format)No - default is ""
useserverjreuses the server jre if true, otherwise uses the client jreNo - default is "true"
versionversionNo - default is "0.0"
releasereleaseNo - default is "0"
docdirdirectory containing the documentationNo - default is ""
docdirincludesinclusion filter of the documentation directoryNo - default is "*"
archivefileformatarchive file format, with or without compression: zip, gzip, bzip2, tarNo - default is "bzip2"

create-windows-app-bundles

Creates a compressed application archive and an installer for Microsoft Windows.

AttributeDescriptionRequired
executablename of the script, without extension such as .batYes
appjarfile location of the JAR to packageYes
appnameapplication nameYes
outdiroutput directoryYes
vmargslist of arguments for the JVM, separated by ;, e.g. -Xmx1GNo - default is ";"
jdkZIP file location or URL to an OpenJDK build containing a JRE, can be empty to use the JRE of the systemYes
resourceslist of files and directories to be packaged next to the script, separated by ;No - default is ";"
bundleidentifierbundle identifier similar to a Java package nameNo - default is "com.yourcompany.identifier"
iconsfileicons file (imperatively in .ico format)No - default is ""
useserverjreuses the server jre if true, otherwise uses the client jreNo - default is "true"
versionversionNo - default is "0.0"
releasereleaseNo - default is "0"
archone of i386, amd64, arm, none (similar to the 'arch' attribute of the 'resources' tag in JNLP but simplified). 'none' is supported only with jdk set to ''Yes
docdirdirectory containing the documentationNo - default is ""
docdirincludesinclusion filter of the documentation directoryNo - default is "*"
archivefileformatarchive file format, with or without compression: zip, gzip, bzip2, tarNo - default is "bzip2"
licensefiletext file (.txt or .rtf) containing the licensing terms displayed during the install, only used by the installerNo - default is ""