/alephone

Aleph One is the open source continuation of Bungie’s Marathon 2 game engine.

Primary LanguageC++GNU General Public License v3.0GPL-3.0

Aleph One

Aleph One is the open source continuation of Bungie™’s Marathon® 2 and Marathon Infinity game engines. Aleph One plays Marathon, Marathon 2, Marathon Infinity, and third-party content on a variety of platforms.

Aleph One is available under the terms of the GNU General Public License (GPL 3)

Download

To download ready-to-run versions of all three Marathon games for macOS, Windows, and Linux Flatpak, visit alephone.lhowon.org

Build from source

CI status

Build Status

Scenario data

If you only want an Aleph One executable, you can simply download and untar a release source tarball. However, to build all-in-one Mac apps, flatpaks, or Windows zip files, you will need to populate the data/Scenarios directory. The easiest way to do that is to clone the repository and submodules:

git clone --recurse-submodules https://github.com/Aleph-One-Marathon/alephone.git

Alternatively, you can download the data files and unzip them in the data/Scenarios/ directory.

macOS

These instructions assume familiarity with the Xcode tools and the macOS command line.

macOS dependencies are managed by vcpkg.

Some users have had issues building Aleph One when there are spaces in the path to vcpkg and alephone, so it is recommended to put them in paths without spaces.

Download, bootstrap, and install vcpkg:

git clone https://github.com/microsoft/vcpkg
./vcpkg/bootstrap-vcpkg.sh
./vcpkg/vcpkg integrate install

cd into Aleph One's vcpkg subdirectory and use the install-arm-osx.sh and install-x64-osx.sh scripts to install macOS dependencies for arm64 and x64.

You should now be able to open PBProjects/AlephOne.xcodeproj in Xcode and build Aleph One.

Windows

Windows builds are built using Visual Studio

Windows dependencies are managed by vcpkg.

Note this important recommendation in the vcpkg getting-started guide: If installing globally, we recommend a short install path like: C:\src\vcpkg or C:\dev\vcpkg, since otherwise you may run into path issues for some port build systems. Spaces in the path and non-ASCII characters can also cause problems. These notes apply to the Aleph One source location as well.

Download, bootstrap, and install vcpkg:

git clone https://github.com/microsoft/vcpkg.git
.\vcpkg\bootstrap-vcpkg.bat
.\vcpkg integrate install

You should now be able to build Aleph One using the VisualStudio\AlephOne.sln project file

Linux/FreeBSD/other

Linux/FreeBSD/other builds are built using autoconf. If you downloaded a source tarball, the configure system is already set up for you. If you cloned from git, you first need to set up the configure system:

autoreconf -i

Dependencies

Aleph One requires a C++17 compiler and the following libraries:

  • Boost
  • SDL2
  • SDL2_image
  • SDL2_net
  • SDL2_ttf
  • zlib

These libraries are recommended for full features and third-party scenario compatibility:

  • alsa for net mic
  • curl for stats upload to lhowon.org
  • ffmpeg for music playback and film video export
  • libsndfile for some old third party scenarios with compressed audio
  • miniupnpc for opening router ports
  • speex for net mic
  • zziplib for using zipped plugins

Fedora

First, enable the RPM Fusion Repository.

Then, install the following packages.

sudo dnf install boost-devel curl-devel ffmpeg-devel gcc-c++ \
  libpng-devel SDL2-devel SDL2_ttf-devel SDL2_image-devel SDL2_net-devel \
  speex-devel speexdsp-devel zziplib-devel miniupnpc-devel

As an alternative to using FFmpeg (which requires the RPM Fusion Repository), you can install alternative libraries:

sudo dnf install libsndfile-devel libvorbis-devel

If you don't compile with FFmpeg support, you won't be able to use WebM export in Aleph One.

Ubuntu

Run this command to install the necessary prerequisites for building Aleph One:

sudo apt install libboost-all-dev libsdl2-dev \
  libsdl2-image-dev libsdl2-net-dev libsdl2-ttf-dev \
  libspeexdsp-dev libzzip-dev libavcodec-dev libavformat-dev \
  libavutil-dev libswscale-dev libpng-dev libcurl4-gnutls-dev \
  libminiupnpc-dev

Compile

First, run the configure script:

./configure

After running the configure script, start the compile process by running make:

make

Once the compile is finished, you can install the executable by running:

sudo make install

By default, the Aleph One executable is installed into /usr/local/bin/alephone.

Run

You can download game data from the Aleph One Scenarios page. After unzipping one of the games, pass the directory as an argument to Aleph One:

/usr/local/bin/alephone ~/Games/Marathon