Menu

Tree [542e45] master /
 History

HTTPS access


File Date Author Commit
 .idea 2025-01-26 Andreas Kirschbaum Andreas Kirschbaum [998e65] Update IDEA settings
 bin 2020-09-13 akirschbaum akirschbaum [41cdd0] Update URLs in documentation and help dialog
 doc 2024-12-25 Andreas Kirschbaum Andreas Kirschbaum [0dd67c] Update the minimal supported Java version to Ja...
 gradle 2024-12-25 Andreas Kirschbaum Andreas Kirschbaum [0dd67c] Update the minimal supported Java version to Ja...
 misc 2024-04-07 Nicolas Weeger Nicolas Weeger [030d1b] Upgrade JRE for Windows package
 repo 2020-02-11 akirschbaum akirschbaum [6b9dbd] Add support for mp3 sounds
 src 2026-06-02 Andreas Kirschbaum Andreas Kirschbaum [2e36e8] Fix layout issue in metaserver screen
 .gitignore 2021-08-12 Nicolas Weeger Nicolas Weeger [0195e8] Add Windows installer, using NSIS
 .gitmodules 2022-02-27 Andreas Kirschbaum Andreas Kirschbaum [839a0c] Include sound effects from the crossfire-sounds...
 ChangeLog 2026-06-02 Andreas Kirschbaum Andreas Kirschbaum [2e36e8] Fix layout issue in metaserver screen
 LICENSE 2010-03-24 akirschbaum akirschbaum [440858] Fix repository structure.
 README.md 2026-07-21 Kevin Zheng Kevin Zheng [542e45] Update README
 build-run 2021-01-16 akirschbaum akirschbaum [8c619c] Allow to start multiple build environments in p...
 build-setup 2024-12-25 Andreas Kirschbaum Andreas Kirschbaum [0dd67c] Update the minimal supported Java version to Ja...
 build.gradle 2026-05-31 Rick Tanner Rick Tanner [4e32f8] Update download file name and checksum used in ...
 gradle.properties 2021-02-09 akirschbaum akirschbaum [e5cbfc] Enable some Gradle warnings
 gradlew 2024-12-25 Andreas Kirschbaum Andreas Kirschbaum [0dd67c] Update the minimal supported Java version to Ja...
 gradlew.bat 2024-12-25 Andreas Kirschbaum Andreas Kirschbaum [0dd67c] Update the minimal supported Java version to Ja...
 jxclient.jnlp 2024-12-25 Andreas Kirschbaum Andreas Kirschbaum [0dd67c] Update the minimal supported Java version to Ja...
 run.sh 2016-02-29 ryo_saeba ryo_saeba [ae94e4] Allow the use of HTML colors for text.
 settings.gradle 2022-02-26 Andreas Kirschbaum Andreas Kirschbaum [937fb5] Move sound files from src/gui to src/sounds

Read Me

JXClient

JXClient is a cross-platform Crossfire RPG client.

Building

This builds JXClient on your machine. For Docker instructions, see below.

  1. Initialize submodules to clone the client sounds:

    $ git submodule --init --recursive
    
  2. Install JDK 17. Other versions of JDK will fail to build due to incompatibility with the bundled Gradle.

If you have more than one Java version installed, you can select the right one using environment variables:

  • On Linux:

        $ export JAVA_HOME=/.../java-17-openjdk
    
  • On Windows:

        > SET JAVA_HOME=\...\java-17-openjdk
    
  • On FreeBSD:

        $ export JAVA_VERSION="17"
    
  • Run ./gradlew (or gradlew on Windows) to build the client.

Build inside Docker

JXClient can also be built inside Docker. For this you will need the docker command-line tool.

  1. Run build-setup to generate a Dockerfile and build a Docker image.

  2. Run build-run to start a shell inside the Docker container.

  3. Follow the Building instructions above, but inside the Docker container.

Running

$ java -jar jxclient.jar

Hardware acceleration

Enabling the hardware-accelerated Java 2D OpenGL pipeline may increase performance on some platforms.

$ java -Dsun.java2d.opengl=True -jar jxclient.jar

Fullscreen support

JXClient uses the fullscreen support provided by the JVM.

Although the client will switch to windowed mode if real fullscreen is not
available, it is important to note that accelerated support will probably end up
being disabled.

To check if the graphical operations are accelerated, you can add
-Dsun.java2d.trace=log,timestamp,count,out:java2d.log to your JVM command
line, run the client, then check the content of java2d.log.

Connecting through a proxy

Set an HTTP proxy to allow metaserver access to retrieve the list of available
game servers:

java -Dhttp.proxyHost=proxy.hostname and -Dhttp.proxyPort=8080 -jar jxclient.jar

or, alternatively,

export http_proxy=http://proxy.hostname:8080/
java -jar jxclient.jar

Set a SOCKS proxy for connection to game servers:

java -DsocksProxyHost=proxy.hostname -DsocksProxyPort=1080 -jar jxclient.jar

Windows Installer

It is possible to build a Windows installer, see files in misc/windows_installer for more information.