XLEngine allows you to play Dark Forces, Daggerfall and soon Outlaws and Blood with modern technology.
Branch: master
Clone or download
psi29a Merge pull request #42 from winterheart/darkxl
[DarkXL] Rewrite Cutscene parser
Latest commit 20e105a Dec 11, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
BloodXL all resources go to resources/ directory which should simplify asset … Apr 12, 2018
DaggerXL Merge pull request #35 from afritz1/unit-vectors Apr 13, 2018
DarkXL [DarkXL] Rewrite Cutscene parser Dec 9, 2018
OutlawsXL all resources go to resources/ directory which should simplify asset … Apr 12, 2018
cmake Added FindENet.cmake. Apr 9, 2018
fileformats Add missing include Apr 13, 2018
linux replacing usleep with sched_yield so that we behave ourselves and let… Apr 16, 2018
math Fixed tabs. Apr 13, 2018
memory Changed NULL to nullptr. Apr 10, 2018
movieplayback Changed iterator loops to range-based for loops. Apr 11, 2018
networking Changed NULL to nullptr. Apr 10, 2018
os use time_t, cross platform Apr 13, 2018
plugin_framework Removed unnecessary void parameters. Apr 10, 2018
procedural no longer using namespace std Apr 9, 2018
render Fix model world offsets in OpenGL mode Apr 14, 2018
resources another float->int issue Apr 28, 2018
scriptsystem Use the VFS to load scripts Apr 13, 2018
thirdparty Update AngelScript to a more recent release Apr 9, 2018
threading Changed NULL to nullptr. Apr 10, 2018
ui Implement ENABLE_NETWORKING macro Jul 14, 2018
win Implement ENABLE_NETWORKING macro Jul 14, 2018
world Replaced another trivial find_if with find. Apr 14, 2018
.appveyor.yml Added AppVeyor Apr 10, 2018
.gitignore Greatly improve CMakeLists.txt for Visual Studio. Apr 9, 2018
.travis.yml add sdl2 as well... Apr 11, 2018
CMakeLists.txt Add CMake option for enable/disable of networking Jul 14, 2018
CONTRIBUTING.md Added preliminary CONTRIBUTING.md. Apr 5, 2018
CommonTypes.h Attempt to fix macOS builds Apr 11, 2018
Engine.cpp Implement ENABLE_NETWORKING macro Jul 14, 2018
Engine.h Removed unnecessary void parameters. Apr 10, 2018
EngineSettings.cpp no longer using namespace std Apr 9, 2018
EngineSettings.h no longer using namespace std Apr 9, 2018
LICENSE updated README with latest info Apr 6, 2018
PlatformDef.h initial push, but not for thirdparty Apr 8, 2018
PluginAPI_Func.h Removed unnecessary void parameters. Apr 10, 2018
README.md Copy required files to the build directory Apr 13, 2018
XLEngine.conf Copy required files to the build directory Apr 13, 2018

README.md

XLEngine

TODO

  • game plugin fix-ups

Dependencies

  • DevIL Cross-platform image loading and manipulation toolkit
  • enet Thin network communication layer on top of UDP
  • GLEW OpenGL Extension Wrangler Library
  • SDL2 Cross-platform low-level I/O access
  • cmake

Install the dependencies on Linux:

sudo apt install libdevil-dev libenet-dev libglew-dev libsdl2-dev

Install the dependencies on Windows with vcpkg:

vcpkg install devil enet glew sdl2

Building

We use CMake as the cross-platform build system.

Building on Linux:

git checkout https://github.com/Mindwerks/XLEngine.git
mkdir build; cd build; cmake ../XLEngine; make -j4

Building on Windows:

(Replace < Location of vcpkg > with the location where you installed vcpkg)

git checkout https://github.com/Mindwerks/XLEngine.git
mkdir build && cd build && cmake -DCMAKE_TOOLCHAIN_FILE=< Location of vcpkg >\scripts\buildsystems\vcpkg.cmake ../XLEngine

Runtime Configuration

Game data paths and render settings are specified in XLEngine.conf. On non- Windows systems, it will look for this in the XDG standard directory:

$XDG_CONFIG_HOME/XLEngine/XLEngine.conf

or, if XDG_CONFIG_HOME is unset or empty:

$HOME/.config/XLEngine/XLEngine.conf

On all systems, it will then search for XLEngine.conf in the process's working directory and use the settings there as overrides.

The available settings are:

[general]
width = # window/screen width, 320 minimum
height = # window/screen height, 200 minimum
fullscreen = # true or false
vsync = # true or false
emulate-low-res = # true to render at 320x200 and stretch to fit, or false
renderer = # opengl, soft32 (true-color software), soft8 (paletted software)

[DaggerXL]
data-path = # Full path to game data, e.g. C:\DAGGER\ARENA2

[DarkXL]
data-path = # ...

[BloodXL]
data-path = # ...

[OutlawsXL]
data-path = # ...

Currently the game must be run from where it can find the DarkXL/, DaggerXL/, etc. directories, where the AngelScript (*.as) and image (*.png) files are for the respective games. Just copy the contents of the resources/ directory to your build directory.

Changelog

0.2.0

  • dos2unix all files
  • PlatformDef magic with macros
  • bare minimum fixes to compile on linux with gcc
  • added cross-platform cmake build system
  • re-added angelscript external dep

0.1.0 Initial Release

  • LuciusDXL code drop from 2011-07-12 09:24:47 +0200 (Tue, 12 Jul 2011)
  • LuciusDXL licensed code under the Expat License (aka MIT License)
  • Original LuciusDXL release will be included in 0.1.0 tagged release
  • Added README.md
  • Removed 3rd-party libs (will add back as necessary)
  • Removed binaries and MSVC related files