Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Kinsie

Descent 3 Source Code Release

Recommended Posts

I got news of the source dropping around 12:30 AM. by 2 AM I had it building by substituting the missing source from the editor, and went to bed. Now that I'm awake again, I'm starting to roll in my improvements I made for InjectD3, including good windowed mode (the 1.5 source had windowed mode hacked in, but it wasn't particularly usable).

 

Not much to show, but I'm glad this is finally happening.

descent3source.png.76ea34a93c930b04cb41aa4d5e97d884.png

Share this post


Link to post

Congrats on the release! I'm looking forward to the emergence of Descent 3 source ports in the not-so-distant future.

 

Now what we need to look forward is Red Faction (and all its descendants) source code release...

Share this post


Link to post
5 hours ago, taufan99 said:

Congrats on the release! I'm looking forward to the emergence of Descent 3 source ports in the not-so-distant future.

 

Now what we need to look forward is Red Faction (and all its descendants) source code release...

Probably considerably less likely, sadly. The Descent games are an odd situation where Interplay only owns the "Descent" trademark and the publishing rights to sell the games, and the actual game code is owned by Parallax Software (which still exists as a legal entity). Later games after the split into Volition and Outrage would be under very different more traditional legal deals (ie. the publisher probably owns it), meaning it would likely be tied up in all the Embracer Group shit.

Share this post


Link to post

Not so much related to descent 3, but I feel the need to thank you for introducing me to the source ports for descent 1 & 2. I loved the first game before I had even heard of doom, and somehow didn't know these existed til today.

Share this post


Link to post
Posted (edited)
On 4/16/2024 at 9:02 AM, Kinsie said:

especially if you wanna run in a window - good luck!

The Loki Linux release actually works decently in this regard (the dynamically linked binary still works as of Ubuntu 23.10 although it seems to not like the SDL 1.2 to SDL 2 wrapper, so needed to compile real SDL 1.2).  It actually got better with Xwayland due to a combination of not supporting application defined window positioning (so resolution changes don't reposition the window) and now that alt-tab isn't blocked allowing easy repositioning.

 

Still glad to see the source code released in any case since there are still many rough edges to smooth out regardless.

 

Edit: Still working on Ubuntu 24.04 too. Probably should have tried a newer SDL2 wrapper since it's working with SDL2 now too.

Edited by Blzut3

Share this post


Link to post
8 hours ago, Blzut3 said:

The Loki Linux release actually works decently in this regard

Same for Unreal. The executable for Linux still runs.

Share this post


Link to post

After a brief "Github left a default license in the repo when it was created" kerfuffle, the code license is now GPLv3. There are now also binaries to test for a planned vanilla "what if the v1.5 patch came out back in the day" milestone release. Give 'em a kick around if you're brave enough, and see what trouble you can stir up.

Share this post


Link to post

With the release of Descent 3's source code, there doesn't seem to be any decrease of price on stores. I guess other developers and companies need to learn from this. *smirks*

Share this post


Link to post
Posted (edited)

If anyone's interested, I threw together a quality of life release by rolling in my patches from InjectD3 and adding some new ones. Plays nicely in multiplayer and I've been running the campaign for a while and it seems fine. It's available here.

 

It's still a little rough around the edges, I feel, but hey if you want your Descent 3 fix in ultrawide with expanded fov, I've got you

descent3ultrawide.jpg.3df48b8b1fe889f1befe89266d77db6b.jpg

Edited by SaladBadger

Share this post


Link to post
On 5/1/2024 at 9:03 AM, SaladBadger said:

If anyone's interested, I threw together a quality of life release by rolling in my patches from InjectD3 and adding some new ones. Plays nicely in multiplayer and I've been running the campaign for a while and it seems fine. It's available here.

 

It's still a little rough around the edges, I feel, but hey if you want your Descent 3 fix in ultrawide with expanded fov, I've got you

descent3ultrawide.jpg.3df48b8b1fe889f1befe89266d77db6b.jpg

Excellent stuff, thanks for keeping this particular flame alive!

Share this post


Link to post

Piccu Engine just got an update to 1.1. New features are as follows.

Quote

No mouse polling rate limit

Descent 3 normally polled the mouse at 20 hz, regardless of what your mouse was capable of. Piccu Engine will now allow you to poll at your mouse's native rate. Do note that you will have to adjust sensitivity to compensate for this, and this does add some framerate dependence to how fast your mouse polls. If these pose problems, you can restore the 20 hz polling limit by going to Options->Config->Joy/Mouse->Adjust Settings and changing the mouse polling limit to "Original (20hz)"

 

Additional

  • Added minidumps on crash. These will be stored in your user directory (where pilots are stored) and stored with the current UTC timestamp. These can be uploaded to help debug crashes.
  • Gamma correction now works, using shaders.
  • Expanded vclip frame limit, though the overall bitmap limit still applies.
  • Raise number of Windows Multimedia Joysticks to 15. The entire joystick needs rewriting.
  • Framerate limiter is more precise now.

Bugfixes

  • OOF model polygons won't cause stack corruption if a glow is attached and they have more than 30 vertices.
  • Fix weird text clipping playing at high resolutions.
  • Fix game constantly nagging about portable mode when a piccu_portable file exists.
  • Fix some HUD elements (such as the reactor status in D3 level 5) being positioned differently based on resolution.
  • Fix Mercenary expansion not being loaded from Steam data files.

 

Share this post


Link to post
Posted (edited)

Bumping this to say the 1.5 patch has been finished after four months of community work. Go get it (just a note: 32-bit support has been dropped). The changes are below:

Quote

Added

  • New HogMaker utility script to build platform-specific HOG files containing level scripts
  • Set up gtest as a unit testing framework
  • Show git hash in main menu

Changed

  • Use SDL2 on all platforms. Upon code release, the Windows was using an old version of DirectX for input and window management, and Linux and MacOS were using SDL1.2 from the Loki port of the game. All operating systems now use a common SDL2 back-end.
  • Use a configuration file instead of the registry to store game settings on Windows, to be consistent with the other OSes.
  • Support 64-bit builds on all platforms. 32bit compatibility for existing savefiles and demos is not functional.
  • Eliminate assembly code specific to x86.
  • Add icons to Windows and MacOS bundles
  • Replace OS-specific filesystem functions by C++17 std::filesystem in the CFile and DDIO modules.
  • Use standard temporary directory for cache files instead of game data directory
  • Implement new byteswap functions
  • Build the internal level editor using MFC UI framework. The executable is not included in this release because it is still very unstable and not usable, and can only run on Windows (32-bit) (#397, #476)
  • Render the game to an OpenGL Frame Buffer Object at the game's resolution
  • Format code-base using clang-format
  • Use upstream libacm 1.3 for ACM audio decoding
  • Implement a new MVE video decoder based on the open source implementation used in D2X. MVE movies for intro and cutscenes can now be played on all platforms. OGV movies shipped with the Linux game cannot be played yet.
  • Use the "push" model of filling sound buffer for MVE playback
  • Write a new implementation of the md5 algorithm used to compute checksums.
  • Use VCPKG to build third-party dependencies not included in the code tree, such as SDL2 and zlib.
  • Set up automated build and testing using Github Actions for Linux (clang/gcc), Windows (MSVC) and MacOS (apple-clang, x64 & arm64)
  • Modernize build system: require CMake 3.20, use present-day CMake practices
  • Ensure compatibility with popular compilers, convert misc. pieces of code to modern C++
  • Mark relevant variables and functions as static
  • Update the module system: isolate code for independant sub-modules in separate directories and CMake targets
  • Document build procedure and usage on all platforms
  • Unifiy Windows & Unix command line arguments: --foo, -foo and +foo is accepted on any OS
  • Refactor CleanupStr in misc/pstring.cpp
  • Change non-specific types (e.g. unsigned int) to their stdint specified counterparts (e.g. uint32_t)
  • Support case-insensitive loading of content files
  • Build TCP/IP and PXO multiplayer modules
  • Refactor renderer: move non-OpenGL specific code to a base file, abstract triangle rendering code
  • Save screenshots in PNG format instead of the legacy TGA format
  • Increment max cells value to increase render distance for outdoor terrain
  • Use chrono C++11 steady_clock for time measurement
  • Enable real-time library memory functions by default
  • Change __LINUX__ defines to POSIX for general OS checks

Fixed

  • Cleanup warnings issued by modern compilers
  • Replace sprintf by snprintf
  • Add object unlink sanity check
  • Use a static background image in the main menu if the video file is not present
  • Add virtual default constructors on abstract classes
  • Fix cursor not being grabbed on macOS
  • Fix detection of mercenary installation, where hogfiles are not the same for CD and digital installation
  • Fix some out-of-bounds array access
  • Fix for Level 5 script; Make CustomText2 centered on Y axis
  • Fix a crash when calling quit in the server console in dedicated server mode
  • Fix a game crash when launching with -useexedir argument
  • -nomousegrab command-line argument now works correctly
  • Only close SDL audio if it's open
  • Do not segfault when critical game files are missing
  • Avoid server crash during client connection
  • Fix -aspect aspect ratio argument for ship selection screen
  • Remove usage of non-glibc GLOB_PERIOD
  • Fix endian issues with iff importer
  • Fix a crash with -nointro command-line argument
  • Support -nosound option for movie playbacks
  • Use UTF-8 in more places on Windows using a manifest file

Removed

  • Remove unused supporting modules for obsolete hardware or unused features: Aureal 3D sound cards, GameGauge performance benchmark, CD-ROM asset loading, Intellivibe interface for VRF Tactile Feedback System, AngelScript, legacy Macintosh, IPX/SPX network protocol support, Rock'n Ride
  • Unused library dynamic loading headers
  • References to libGLU
  • References to X11 and glX
  • Unused mono debug code
  • Unused software renderer and d3m files
  • DDAccess.h header and access ring definitions
  • DMFC_DLL definition
  • Misc. removal of unfinished or unused code

 

Share this post


Link to post
12 minutes ago, SonicWind said:

Bumping this to say the 1.5 patch has been finished after four months of community work. Go get it (just a note: 32-bit support has been dropped). The changes are below:

This contains changes from Piccu Engine too, right?

Share this post


Link to post
Posted (edited)
10 minutes ago, taufan99 said:

This contains changes from Piccu Engine too, right?

They may borrow some of those in later versions of the patch (in-game widescreen options are a priority, from what I've seen), but not as of yet, to my knowledge. I think they wanted to make sure the 1.5 patch was solid first.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×