Description
This has been mentioned multiple times, so here is a master issue to talk about it and suggest possible solutions.
The problem is the following: Descent 3 relies on pre-compiled scripts inside of levels to run the logic: open doors, pick-up objects, etc. For a long time now, we're compiling the main campaign's level scripts and put them in an OS-dependent file: d3-linux.hog
/d3-osx.hog
/d3-win.hog
. This means that level scripts should be compiled again when the game ABI is updated.
Outside of the main campaigns, many user levels have been created over the years using the Descent 3 level editor, generating level scripts binary blobs that are now incompatible with the current version of the game. Especially, the game is now compiled exclusively to 64-bit architectures, instead of the original 32-bit it originally ran on. This means that user-created level scripts that have not been compiled recently against the 64-bit Descent 3 game cannot be played at all.
So far, it has been proposed to use a virtual machine able to run 32-bit black-box scripts/blobs, in particular using the Box86 or loadlibrary projects, but no proof of concept has been made. More investigation is needed to find the best solution we can get to get old user-created levels to run again.
Related to #583 among others