This is re-implementation of the LucasArts Outlaws and Dark Forces game engines. Currently this is a very early prototype, with no gameplay functionality.
MIT, with exception of third-party code (on their own licenses).
- Level geometry is correctly interpreted and generated, including slopes.
- Texture coordinates are correct (as far as I could see), including floor/ceiling rotations and offsets.
- Parser for LVT text level files.
- Code for converting LVB binary level files into LVT files.
- Parser for INF script files.
- Parser for ATX animated texture files.
- Unity project for displaying geometry (see
OutlawsXUnity
subdirectory). lab-fuse
- utility for mouting.lab
files as Windows disks.
- ATX textures are not displayed. ATX files are not processed.
- There is no game logic.
- There are no objects, enemies, weapons, cuscenes, menus, etc.
- INF files are not processed.
- There is no music, sounds.
- There is no water.
- There is no shading, lights, tinting.
- There is no sky/pit.
- Everything else...
- Extract a level file (
.lvt
or.lvb
) from Outlawsolgeo.lab
(I suggestHIDEOUT
orCANYON
, as those are tested).
You can use LabFuse for that (available in Releases on GitHub).
See LabFuse docs below for information about how to run it. - Copy
OutlawsPlugin.dll
andantlr4-runtime.dll
toOutlawsXUnity
directory.
You can either use the released versions (see Releases on GitHub), or compile it yourself (as explained in sections below). - Open
OutlawsXUnity
in Unity (tested on Unity version2022.3.33f1
). - In
GameHandler
object setLevel File
to your.lvt
or.lvb
file. - In
GameHandler
object update pathTextures Pack File
to theOutlawsX\OutlawsXUnity\Assets\Textures\pack.json
file. - Play.
- Fly around using WSAD + mouse or game pad.
- You might need to install Visual Studio Community 2022 to get the necessary compilers and tools.
- Install CMake: https://cmake.org/download/
- Install Vcpkg:
git clone https://github.com/microsoft/vcpkg.git cd vcpkg && bootstrap-vcpkg.bat
- Clone
OutlawsX
. - Clone ArbitraryFormatSerializer next to
OutlawsX
directory. - Optionally install Dokan 2.1 (needed for LabFuse project): https://github.com/dokan-dev/dokany/releases
- In steps below we assume that
vpckg
was installed in<some-dir>/vcpkg
, andOutlawsX
was cloned to<some-dir>/OutlawsX
- Download ANTLR4 Jar file: https://www.antlr.org/download/antlr-4.13.1-complete.jar
- Install CMake.
- Use CMake to build
OutlawsPlugin
for Unity and optionallyLabFuse
. - Generate project:
cmake -DCMAKE_TOOLCHAIN_FILE=<some-dir>/vcpkg/scripts/buildsystems/vcpkg.cmake ^
-DVCPKG_TARGET_TRIPLET=x64-windows ^
-DCMAKE_INSTALL_PREFIX="<some-dir>\OutlawsX\OutlawsXUnity" ^
-DDOKAN_HOME="C:\Program Files\Dokan\Dokan Library-2.1.0" ^
-DANTLR4_JAR_LOCATION="<some-dir>\antlr-4.13.1-complete.jar" ^
-S <some-dir>/OutlawsX 6
-B <some-dir>/OutlawsX-build
Note:
DOKAN_HOME
is needed only if LabFuse is to be built.
Note: Compilation make take a long time, due to building
boost
libraries.
- Build the project:
cmake --build <some-dir>/OutlawsX-build --config Release
- Copy
OutlawsPlugin.dll
toOutlawsXUnity
:
cmake --install <some-dir>/OutlawsX-build --config Release
- Don't forget to copy
antlr4-runtime.dll
toOutlawsXUnity
directory as well.
You will find it in<some-dir>/OutlawsX-build/OutlawsPlugin/Release
.
Note: You can generate VisualStudio project using:
cmake -G "Visual Studio 17 2022" -A x64 ...
. Open Visual Studio project (<some-dir>/OutlawsX-build/OutlawsX.sln
) and build it. Then buildINSTALL
target.
Note: You can use
INSTALL
target in VisualStudio orcmake --install <build-dir> --config Release
to copyOutlawsPlugin.dll
toOutlawsXUnity
directory.
This plugin uses textures extracted from Outlaws and merged into one texture atlas.
If you'd like to re-generate the texture atlas see documentation here: Textures/oltex.md
In LabFuse directory there is a working user-mode file system (requires Dokany installed) for mounting LAB package files as drives in Windows.
It is written using FUSE, so it should be trivial to port to Linux.
See documentation here: LabFuse/README.md
See here: OutlawsHlpFiles
json
by Niels Lohmann (MIT license),libtess
(GLUTesselator
) by Silicon Graphics and AT&T (SGI FREE SOFTWARE LICENSE).