Giter VIP home page Giter VIP logo

arxlibertatis's Introduction

        _______________________
       /\                      \
       \_|         Arx         |
         |      Libertatis     |
         |   __________________|__
          \_/____________________/

Cross-platform port of Arx Fatalis

Arx Libertatis is based on the publicly released Arx Fatalis source code. GPLv3 - read ARX_PUBLIC_LICENSE.txt

Contact

Website: http://arx-libertatis.org/

Bug Tracker: https://bugs.arx-libertatis.org/

IRC: #arxfatalis on irc.freenode.net

Wiki: http://wiki.arx-libertatis.org/

Reddit: http://www.reddit.com/r/ArxFatalis/

Dependencies

Systems without Win32 or POSIX filesystem support will also need Boost 1.44 or newer including the filesystem and system libraries.

Renderer

There is currently a single rendering backend for OpenGL, but it can be used on GLES1.1 also:

For Pure OpenGL:

  • OpenGL 1.5+ (OpenGL 2.1 or newer is recommended)
  • GLEW 1.5.2

For GLES:

  • OpenGL|ES 1.1+ (CM profile only)

Crash Reporter

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

  • Qt 4 or 5 (QtCore, QtGui, QtWidget^1 and QtNetwork libraries)
  • 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.

Compile and install

For Linux run:

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

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-build 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_CRASHREPORTER (default=ON): Build the Qt crash reporter gui (default OFF for Mac)
  • UNITY_BUILD (default=OFF): Unity build (faster build, better optimizations but no incremental build)
  • CMAKE_BUILD_TYPE (default=Release): Set to Debug for debug binaries
  • DEBUG (default=OFF^1): Enable debug output and runtime checks
  • DEBUG_EXTRA (default=OFF): Expensive debug options
  • USE_OPENAL (default=ON): Build the OpenAL audio backend
  • USE_OPENGL (default=ON): Build the OpenGL renderer backend
  • USE_SDL (default=ON): Build the SDL windowing and input backends
  • USE_NATIVE_FS (default=ON): Use the native filesystem backend (POSIX / Win32) if available and not boost::filesystem.
  1. Enabled automatically if CMAKE_BUILD_TYPE is set to Debug.

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. To install the data files run

$ arx-install-data

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.

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 - this is done automatically by the arx-install-data script.

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

Mac OS X:

  • 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 <pakfile> [<pakfile>...]
    Extracts the .pak files containing the game assets.

  • 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 Linux.

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

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

arxlibertatis's People

Contributors

adejr avatar alexmarlo avatar chrismgray avatar culexian avatar dbertolotto avatar dimoks avatar dscharrer avatar eli2 avatar hennr avatar jfpowell avatar lordsk avatar lubosz avatar nuky avatar okready avatar otty avatar ptitseb avatar ricje avatar sebastienlussier avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

arxlibertatis's Issues

Building this or current version

Hi ptitSeb! Been reviewing your work here. Very cool stuff.

Do you have any interest in the updated Arx Libertatis? dscharrer has been real busy.

I've tried building the upstream master and it seems to require libGL - it picks up gl4es and then i get the 3 textures when two only available error
[E] SDL1Window:222 Not enough GL texture units available: have 2, need at least 3

Naively trying to build your tree (on omap4, devuan) gets me

user@ml1:/big/arxes/ArxLibertatis/build$ cmake ..
-- Could NOT find OpenGL (missing: OPENGL_opengl_LIBRARY) 

though i do have from gl4es

/usr/lib/arm-linux-gnueabihf/libGL.so
/usr/lib/arm-linux-gnueabihf/libGL.so.1

Would love to get Arx runing on droid4! Any interest in updated build for pyra (with native gl-es not opengl)?

Cheers!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.