All Projects → arx → Arxlibertatis

arx / Arxlibertatis

Licence: other
Cross-platform port of Arx Fatalis, a first-person role-playing game

Projects that are alternatives of or similar to Arxlibertatis

Engine
A basic cross-platform 3D game engine
Stars: ✭ 208 (-65.45%)
Mutual labels:  cmake, game, opengl, cross-platform
Tprpix
a Cross-Platform, 2D Survival Sandbox Game Project. Based on C++17/cmake/OpenGL/SQLite3.
Stars: ✭ 448 (-25.58%)
Mutual labels:  cmake, game, opengl, cross-platform
Lasercrabs
Launch your LASERCRAB at walls, ceilings, and enemy heads in this indie multiplayer shooter where "move" and "attack" are synonymous.
Stars: ✭ 465 (-22.76%)
Mutual labels:  game, opengl, cross-platform
Openage
Free (as in freedom) open source clone of the Age of Empires II engine 🚀
Stars: ✭ 10,712 (+1679.4%)
Mutual labels:  cmake, game, opengl
Etlegacy Deprecated
Archived repository. For current repo, see: https://github.com/etlegacy/etlegacy
Stars: ✭ 470 (-21.93%)
Mutual labels:  game, game-engine-3d, opengl
Etlegacy
ET: Legacy is an open source project based on the code of Wolfenstein: Enemy Territory which was released in 2010 under the terms of the GPLv3 license.
Stars: ✭ 212 (-64.78%)
Mutual labels:  game, game-engine-3d, opengl
Openspades
Compatible client of Ace of Spades 0.75
Stars: ✭ 769 (+27.74%)
Mutual labels:  cmake, game, opengl
Raz
Modern & multiplatform game engine in C++17
Stars: ✭ 161 (-73.26%)
Mutual labels:  cmake, opengl, cross-platform
Expo Crossy Road
🐥🚙 Crossy Road game clone made in Expo (iOS, Android, web), THREE.js, Tween, React Native. 🐔
Stars: ✭ 701 (+16.45%)
Mutual labels:  game, opengl, cross-platform
Cute headers
Collection of cross-platform one-file C/C++ libraries with no dependencies, primarily used for games
Stars: ✭ 3,274 (+443.85%)
Mutual labels:  game, opengl, cross-platform
Skui
Skia-based C++ UI framework
Stars: ✭ 218 (-63.79%)
Mutual labels:  cmake, opengl, cross-platform
Ultralight
Next-generation HTML renderer for apps and games
Stars: ✭ 3,585 (+495.51%)
Mutual labels:  cmake, opengl, cross-platform
Rigelengine
A modern re-implementation of the classic DOS game Duke Nukem II
Stars: ✭ 393 (-34.72%)
Mutual labels:  game, opengl, cross-platform
Rubeus
A cross platform 2D game engine written in C++ for beginners
Stars: ✭ 159 (-73.59%)
Mutual labels:  game, opengl, cross-platform
Openrct2
An open source re-implementation of RollerCoaster Tycoon 2 🎢
Stars: ✭ 10,115 (+1580.23%)
Mutual labels:  cmake, game, opengl
Minijvm
Develop iOS Android app in java, Cross platform java virtual machine , the minimal jvm .
Stars: ✭ 127 (-78.9%)
Mutual labels:  game, opengl, cross-platform
Ark
ARK is a lightweight, agility, elastic, distributed plugin framework written in C++,make it easier and faster to create your own application service.
Stars: ✭ 370 (-38.54%)
Mutual labels:  cmake, game, cross-platform
Magnum
Lightweight and modular C++11 graphics middleware for games and data visualization
Stars: ✭ 3,728 (+519.27%)
Mutual labels:  cmake, game, opengl
Open Builder
Open "Minecraft-like" game with multiplayer support and Lua scripting support for the both client and server
Stars: ✭ 569 (-5.48%)
Mutual labels:  cmake, game, opengl
Exengine
A C99 3D game engine
Stars: ✭ 391 (-35.05%)
Mutual labels:  game, opengl
        _______________________
       /\                      \
       \_|         Arx         |
         |      Libertatis     |
         |   __________________|__
          \_/____________________/

Cross-platform port of Arx Fatalis

Arx Libertatis is based on the publicly released Arx Fatalis source code. The source code is available under the GPLv3+ license with some additional terms - see the COPYING and LICENSE files for details.

Contact

Website: arx-libertatis.org

Bug Tracker: bugs.arx-libertatis.org

IRC: #arxfatalis on irc.freenode.net

Wiki: wiki.arx-libertatis.org

Reddit: /r/ArxFatalis/

Dependencies

  1. Systems without Win32 or POSIX filesystem support will also need the filesystem and system libraries from Boost.

Renderer

There is currently a single rendering backend for OpenGL:

  • SDL 1.2.10+ or 2.0.0+
  • OpenGL 1.5+ (OpenGL 2.1 or newer is recommended) or OpenGL ES-CM 1.x¹
  • libepoxy 1.2+ (recommended) or GLEW 1.5.2+
  1. OpenGL ES support requires libepoxy

Crash Reporter

Arx Libertatis comes with an optional gui crash reporter which has additional dependencies:

  • Qt 4.7+ or 5 (QtCore, QtConcurrent¹, QtGui and QtWidgets¹ libraries)
  • libcurl 7.20.0+ (not required on Windows)
  • GDB (Linux-only, optional, run-time only)
  • DbgHelp (Windows-only)
  1. Qt 5 only

While the crash reporter can be run without GDB, it's main usefulness comes from generating and submitting detailed back-traces in the event of a crash. On non-window systems we use GDB, the GNU Debugger, to accomplish that. If you want to help out the arx project, please install GDB before running arx. GDB is however purely a run-time dependency and is not needed when building the crash reporter.

Tests

Building and running tests has additional dependencies:

Git Build Dependencies

Building checkouts from git on their own requires additional dependencies:

These are needed to render and scale the SVG icons, which currently only render correctly in Inkscape. Release and development snapshot source tarballs include pre-built icon files and do not need these dependencies to build.

To avoid the Inkscape (as well as ImageMagick and OptiPNG) dependency for git builds, pre-built icons can be downloaded from https://arx-libertatis.org/files/data/ or the ArxLibertatisData repository. The required data version is listed in the VERSION file. Place arx-libertatis-data-$version directory into the build directory or tell the build system about it's location using the DATA_FILES CMake variable (-DDATA_FILES=… on the command-line).

Alternatively, icons can be disabled by setting the ICON_TYPE CMake variable to none. See OPTIONS.md for other supported icon type values.

Compile and install

For Linux run:

$ mkdir build && cd build
$ cmake ..
$ make

The default build settings are tuned for users - if you plan to make changes to Arx Libertatis you should append the -DDEVELOPER=1 option to the cmake command to enable tests, debug checks and fast incremental builds.

To install the binaries system-wide, run as root:

# make install

Alternatively you can run the game by specifying the full path to the arx binary in the build directory.

The wiki has more detailed instructions on compiling under Linux.

Getting all the dependencies set up for Windows is more tricky. Pre-built dependencies are available in the ArxWindows repository and instructions on how to use them are available on the wiki.

Build options:

  • BUILD_TOOLS (default: ON): Build tools
  • BUILD_TOOLS_MERGED (default: ON): Merge tools into a single binary
  • BUILD_IO_LIBRARY (default: ON): Build helper library for the Blender plugin
  • BUILD_CRASHHANDLER (default: ON): Enable the built-in crash handler (default OFF for macOS)
  • BUILD_CRASHREPORTER (default: ON): Build the Qt crash reporter gui - requires BUILD_CRASHHANDLER (default OFF for macOS)
  • BUILD_PROFILER (default: OFF¹): Build the profiler GUI
  • BUILD_TESTS (default: OFF²): Build tests that can be run using make check
  • BUILD_ALL (default: OFF): Enable all the BUILD_* options above by default - they can still be disabled individually
  • UNITY_BUILD (default: ON): Unity build (faster build, better optimizations but no incremental build)
  • CMAKE_BUILD_TYPE (default: Release): Set to Debug for debug binaries
  • DEBUG (default: OFF³): Enable debug output and runtime checks
  • DEBUG_GL (default: OFF⁴): Enable OpenGL debug output by default
  • DEBUG_EXTRA (default: OFF): Expensive debug options
  • RUN_TESTS (default: OFF⁵): Automatically run tests
  • RUN_TARGET (default: (none): Wrapper to run binaries produced in the build process
  • DEVELOPER (default: OFF): Enable build options suitable for developers⁶
  • BUILD_PROFILER_INSTRUMENT (default: OFF): Add profiling instructions to the main arx binary
  1. Enabled automatically if BUILD_ALL or BUILD_PROFILER_INSTRUMENT is enabled
  2. Enabled automatically if BUILD_ALL or DEVELOPER is enabled
  3. Enabled automatically if CMAKE_BUILD_TYPE is set to Debug or if DEVELOPER is enabled.
  4. Enabled automatically if DEBUG is enabled. If disabled, OpenGL debug output can be enabled at run-time using the --debug-gl command-line option.
  5. Enabled automatically if DEVELOPER is enabled unless cross-compiling without RUN_TARGET set
  6. Currently this disables UNITY_BUILD and enables DEBUG, BUILD_TESTS, RUN_TESTS and FASTLINK for faster incremental builds and improved debug checks, unless those options have been explicitly specified by the user.

Install options:

  • CMAKE_INSTALL_PREFIX (default: /usr/local on UNIX and C:/Program Files on Windows): Where to install Arx Libertatis

Set options by passing -D<option>=<value> to cmake.

Backends that are not available are disabled by default. The cmake run should display a summary of the enabled backends at the end.

Advanced options not listed here are documented in OPTIONS.md.

Data file, config and savegame locations

You will need to get either the full game or demo data of Arx Fatalis.

Where arx will look for data files and write config and save files depends on the operating system and environment - the wiki has a page detailing the full data directory detection algorithm.

For Unix-like systems: The game will try to rename all used files in the user directory (but not the data directory) to lowercase on the first run. System-wide installations with case-sensitive filesystems always need to manually rename the files to lowercase. The arx-install-data script can be used to install the data files, convert them to lowercase and verify that all required files are present.

To print all directories searched by arx, run

$ arx --list-dirs

By default, user, config and data files will be loaded from and saved to standard system locations depending on the OS:

Windows:

  • user and config dir:
    XP: %USERPROFILE%\My Documents\My Games\Arx Libertatis
    Vista and up: %USERPROFILE%\Saved Games\Arx Libertatis
  • data dir: location stored in HKCU\Software\ArxLibertatis\DataDir or HKLM\Software\ArxLibertatis\DataDir registry keys

macOS:

  • user and config dir: ~/Library/Application Support/ArxLibertatis/
  • data dir: /Applications/ArxLibertatis/

Linux and others:

  • user dir: ~/.local/share/arx/
  • config dir: ~/.config/arx/
  • data dir: /usr/share/games/arx/, /usr/local/share/games/arx/ and more

Arx will also try to load data files from the directory containing the game executable.

To use the current working directory for user, config and data files (e.g. for a portable install) run the game as

$ arx --no-data-dir --user-dir=. --config-dir=.

Run

Provided the data files are installed at the correct location, you can simply play the game using the installed shortcut or by running

$ arx

See the arx --help and man arx output for more details.

Tools

  • arxunpak [options] <pakfile> [<pakfile>...]
    Extracts Arx Fatalis .pak files containing the game assets.
    See the arxunpak --help and man arxunpak output for more details.

  • arxunpak [options] [--all]
    Extracts all game assets.
    See the arxunpak --help and man arxunpak output for more details.

  • arxsavetool <command> <savefile> [<options>...] - commands are:

    • extract <savefile>
      Extract the contents of the given savefile to the current directory
    • add <savefile> [<files>...]
      Add files to a savefile, create it if needed
    • fix <savefile>
      Fix savegame issues created by previous builds of Arx Libertatis
    • view <savefile> [<ident>]
      Print savegame information - leave out <ident> to list root files

Scripts

The arx-install-data script can extract and install the game data under Linux and FreeBSD from the CD, demo, GOG.com installer or any Arx Fatalis install (such as on Steam) - simply run it and follow the GUI dialogs. Also see the wiki page on installing the game data under non-Windows systems.

Or, if you prefer a command-line interface, run it as

$ arx-install-data --cli

More options and required tools (depending on the source file) are documented in the help output:

$ arx-install-data --help

Developer information

New contributors should first read the CONTRIBUTING.md file.

To build developer documentation (doxygen), run this from the build directory:

$ make doc

To check for coding style problems, run the following: (requires python)

$ make style
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].