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
OutlawsXUnitysubdirectory). lab-fuse- utility for mouting.labfiles 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 (
.lvtor.lvb) from Outlawsolgeo.lab(I suggestHIDEOUTorCANYON, 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.dllandantlr4-runtime.dlltoOutlawsXUnitydirectory.
You can either use the released versions (see Releases on GitHub), or compile it yourself (as explained in sections below). - Open
OutlawsXUnityin Unity (tested on Unity version2022.3.33f1). - In
GameHandlerobject setLevel Fileto your.lvtor.lvbfile. - In
GameHandlerobject update pathTextures Pack Fileto theOutlawsX\OutlawsXUnity\Assets\Textures\pack.jsonfile. - 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
OutlawsXdirectory. - Optionally install Dokan 2.1 (needed for LabFuse project): https://github.com/dokan-dev/dokany/releases
- In steps below we assume that
vpckgwas installed in<some-dir>/vcpkg, andOutlawsXwas 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
OutlawsPluginfor 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_HOMEis needed only if LabFuse is to be built.
Note: Compilation make take a long time, due to building
boostlibraries.
- Build the project:
cmake --build <some-dir>/OutlawsX-build --config Release
- Copy
OutlawsPlugin.dlltoOutlawsXUnity:
cmake --install <some-dir>/OutlawsX-build --config Release
- Don't forget to copy
antlr4-runtime.dlltoOutlawsXUnitydirectory 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 buildINSTALLtarget.
Note: You can use
INSTALLtarget in VisualStudio orcmake --install <build-dir> --config Releaseto copyOutlawsPlugin.dlltoOutlawsXUnitydirectory.
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
jsonby Niels Lohmann (MIT license),libtess(GLUTesselator) by Silicon Graphics and AT&T (SGI FREE SOFTWARE LICENSE).
