Planet Descent

Community => Mess Hall => Topic started by: SaladBadger on September 14, 2019, 02:23:25 PM

Title: Chocolate Descent (beta 1 available)
Post by: SaladBadger on September 14, 2019, 02:23:25 PM
Over the past month and a half, I've gotten interested in the idea of making a classic software focused Descent engine, which none of the current ones focus on. Rebirth does have a software renderer, but it has to be built with it specifically and it lacks certain features I want, like the ability to use high-resolution windows with low resolution game output. Wanting to also take a stab at porting an old game, I decided to start working on Chocolate Descent, in the same vein as Chocolate Doom. (https://www.chocolate-doom.org/wiki/index.php/Chocolate_Doom) It uses SDL 2 to enable potential portability to multiple platforms, though currently the code only works correctly on Windows. In the coming months, I want to get Descent 2 ported and also get the mess running on Linux.

Some screenshots:
(https://i.imgur.com/RoKUL5X.png)
(https://i.imgur.com/pKxCd5T.png)
(https://i.imgur.com/2Yuw59c.png)
(https://i.imgur.com/i49yyKi.png)

Videos:
Video demonstrating new MIDI support. (https://youtu.be/cnGUy-fhufo)
Early video with gameplay and buggy sound. (https://youtu.be/QMj5o2dz4cg)

Development:
Chocolate Descent is currently in development, and is at a state where I should be able to release Windows builds soon. A number of things are planned for the future (https://github.com/InsanityBringer/ChocolateDescent/blob/master/todo.txt), and if you want to follow progress, the github repo can be found here. (https://github.com/InsanityBringer/ChocolateDescent)

Beta build:
Beta 1:
https://drive.google.com/open?id=1Mi-rUThMtKLGCitk6V7Czcb3cJ6UQrQ8 (https://drive.google.com/open?id=1Mi-rUThMtKLGCitk6V7Czcb3cJ6UQrQ8)

Old builds:
Testing build 1:
https://drive.google.com/file/d/1LQjARq2B58KdzvmDBE1B9p-gTAPNDFzM/view?usp=sharing (https://drive.google.com/file/d/1LQjARq2B58KdzvmDBE1B9p-gTAPNDFzM/view?usp=sharing)
Title: Re: Chocolate Descent
Post by: Scyphi on September 15, 2019, 05:47:21 AM
So basically...Vanilla Descent...but with benefits? Am I getting that right? Sorry, this all veers into technical fields I'm not so familiar with, so I'm mostly just going off what I'm seeing here in the screenshots...  :-[

I approve, either way, though. Rebirth and D2X-XL are both nice and all, but I've found there is something to be said about playing Descent as it originally appeared in 1994, an experience you somewhat loose with the other mods, so I'm for any project that seeks to restore/preserve that original gameplay experience, even if just for nostalgia.  ;D
Title: Re: Chocolate Descent
Post by: Kaiaatzl on September 15, 2019, 01:30:19 PM
Looks like one to watch!
I'd really like to have a simple software-rendered version of D1 and D2 that just runs on modern OS and adds OGG support for redbook or custom music tracks.  Nothing else necessary.  Just playing it exactly like DOS.  Even Rebirth never seems to get that quite right.
Title: Re: Chocolate Descent
Post by: SaladBadger on September 16, 2019, 10:41:51 AM
Yeah, it's pretty much that, Scyphi. Classic Descent gameplay, classic Descent look, but with modern conveniences. While the game resolution is low and extra crunchy, the window can be of many resolutions, and you can even go borderless fullscreen, and it's automatically pillarboxed to keep the game's classic 4:3 resolution, so the cockpit doesn't look squashed.

OGG music is currently in, though it's a bit simple at the moment. If you place an ogg file in the /music/ directory, with the same name as one of the game's MIDI tracks (ie game01 for level 1), it will play that instead of the MIDI track. This will need some extension in Descent 2 to support the redbook audio tracks, but for now its fine if you want accurate SC55 or OPL recordings or the like. Or maybe drop the Mac/PSX soundtrack in there...

Speaking of ][...
(https://i.imgur.com/id2QXsU.png)

Title: Re: Chocolate Descent
Post by: Kaiaatzl on September 22, 2019, 08:09:32 AM
Woo!
Title: Re: Chocolate Descent
Post by: D2Disciple on September 23, 2019, 04:25:29 AM
This is super cool. Might have to break out the old CRT monitor and download this.  ;)

Let us know when it's released and I'll put it on the front page!
Title: Re: Chocolate Descent
Post by: SaladBadger on October 04, 2019, 08:22:55 AM
https://www.youtube.com/watch?v=4FTnCLzo5mY (https://www.youtube.com/watch?v=4FTnCLzo5mY)

Chocolate Descent 2 looking pretty good. I hope I can get this whole mess released for testing soon but there's still a lot of tiny little things I need to get around to doing...
Title: Re: Chocolate Descent
Post by: Hunter on October 06, 2019, 03:00:16 PM
I'm gearing up to play some D1 again (its been a while), and I was only thinking the other day how neat it would be to experience the game in this fashion again.

As Bender would say: Neat  8)
Title: Re: Chocolate Descent
Post by: SaladBadger on October 16, 2019, 02:51:30 PM
During testing, I was able to play all of Descent 1 without a single crash error, and all of Descent 2 and a number of missions with only one crash. I think that's a really good sign.

I'm probably going to get a testing build released sometime this week. At the moment I'm waiting on an overhaul of some code being performed by a third party contributor, dpjudas, that should hopefully make configuring the thing easier. A few caveats are that emulated CD music isn't available at the moment (you can use the music folder to play CD rips ATM, but it'll only load four level songs), there's no joystick code available in the SDL backend, and diagnostics code is limited. Beyond that, it's much more stable than I was anticipating, which is very nice. (no doubt there's a million lurking memory bugs though, waiting to manifest the moment I release a build....)
Title: Re: Chocolate Descent
Post by: SaladBadger on October 17, 2019, 11:06:10 AM
Alright, so I have made a testing build.

It's available here. (https://drive.google.com/file/d/1LQjARq2B58KdzvmDBE1B9p-gTAPNDFzM/view?usp=sharing)

Look at the included ChocolateDescent.txt document for details. Please report any errors that show up, and if anyone's looking to play with joysticks, do let me know if that works at all. I don't have any sticks to test with, hampering the process. There's some basic gamepad code in play too, but it's very messy. You'll need to set your joystick type to the Flightstick in order to use gamepad buttons. The mapping of them isn't clean ATM, I'll look to improve this in future builds.
Title: Re: Chocolate Descent (testing build available)
Post by: Kaiaatzl on October 29, 2019, 05:11:55 PM
Still can't add dedicated ogg music for custom missions without support, but I did work around the 4-song limitation in D2 by just adding a descent.sng file into the root directory.  If you get the redbook tracks from one of the Rebirth dxa's, the same descent.sng that's in there seems to work without needing any changes besides extracting it into the right folders.
Mouse control feels a little sluggish compared to dosbox (at least the way I had it set up) or Rebirth on "normal" mode.  Not that the ship's turn rate is slow, its just seems that, in order to reach that max turn speed, I need to move the mouse faster than I would on dosbox or Rebirth.  And moving it faster obviously means moving it farther, which means more annoying picking-up of the mouse in turn.
Title: Re: Chocolate Descent (testing build available)
Post by: SaladBadger on October 30, 2019, 10:56:27 AM
I can try adding a mouse scaling option in chocolatedescent.cfg to try to help out. Just some sort of multiplier applied to the raw values read from the mouse in SDL. It's never felt that off to me, I dunno why, but I'll play around with it.

On the subject of input, I dug up an ancient cheap USB joystick from my garage, so I gave the joystick code a thorough test and shook out some problems. It now works much better, you can bind hat switches to movement controls properly, and so on. I also fixed up the button code to make it a lot easier to map buttons from real joystick buttons to the names reported in game, so it should be much easier to work out binds. Sticks are still fairly limited, but Descent's joystick code is surprisingly limited tbh...
Title: Re: Chocolate Descent (testing build available)
Post by: Kaiaatzl on October 30, 2019, 04:42:09 PM
I'd like that.
The game's still perfectly playable and fun, it's just a little quality-of-life sorta deal.  :D

Oh, the other thing I noticed that I forgot about yesterday is that at least on my mouse, when I want to bind the right or middle button to a control I have to press the opposite one.   So for example if I'm binding afterburner to the middle mouse button when I've selected the control in the menu and I'm told to input the control I want, I have to press the right mouse button instead.
Kinda weird, kinda not huge, but still it's a thing. :)

EDIT: I've also noticed now that sometimes when a dialog box shows up with a prompt for the player (like say, the "secret teleporter found, proceeding to secret level" in D2) it only shows up for a split second before the "continue" option activates seemingly by itself.  Also sometimes happens on player death for the respawn control.
Also not a huge deal.
Title: Re: Chocolate Descent (testing build available)
Post by: SaladBadger on November 04, 2019, 01:37:50 PM
I fixed the bug with the wrong mouse buttons, it turns out in certain contexts I wasn't translating SDL mouse button IDs to Descent mouse button IDs properly. What the text in the bind menu says is accurate to what you need to press in game. I think I also fixed the problems with mouse input not being flushed properly, this should fix the instant respawns and dialogs not showing up.

I should have another build out this week.
Title: Re: Chocolate Descent (testing build available)
Post by: Pumo on December 26, 2019, 07:32:53 PM
Oh, how could I miss this up?
This is pretty interesting, a new source port with faithhul graphics sounds sweet.  ;D
Title: Re: Chocolate Descent (testing build available)
Post by: Ionized on February 10, 2020, 11:55:53 PM
Looks really nice. As a Linux ppc64le user when is Linux support likely to land?
Title: Re: Chocolate Descent (testing build available)
Post by: SaladBadger on April 04, 2020, 06:36:17 PM
(https://i.imgur.com/otAw7u5.png)

Sorry for the late response, but linux support is coming along. You can get in game and all of that, but bits of important code right now (such as directory iteration) isn't present yet.

Also I totally forgot to post that build here...... ooooops... Sorry about that, but the project is still alive and kicking.
Title: Re: Chocolate Descent (testing build available)
Post by: VANGUARD on April 07, 2020, 02:56:16 PM
cool  8)

Linux User here as well, KUbuntu.
Title: Re: Chocolate Descent (testing build available)
Post by: SaladBadger on April 08, 2020, 06:05:12 PM
If you want to test, you can try building it from source (github link in OP). I'm curious how it goes on other distros, since at the moment I only have my personal Arch box to do my Linux dev work.

There's still work to be done to get it to be a clean, standard unix-y application like getting the filesystem to work relative to a user-owned directory rather than sticking everything in the working directory, as well as making the code try both DESCENT.HOG and descent.hog for convenience, and there's a couple of problems with the build environment (Descent 1 and 2 cannot exist in the same directory due to file conflicts, but the current CMake setup puts the freshly built executables in the same output dir), but it's functional for now.

edit: I think Descent 2 support is pretty broken ATM since the game tries to load files with lowercase names but encodes uppercase names for the PIG files in the level files. Ugh. I need to work on the solution to get it trying to load both lower and uppercase filenames.
Title: Re: Chocolate Descent (testing build available)
Post by: SaladBadger on April 23, 2020, 03:48:28 PM
(https://i.imgur.com/QV8L7Fx.png)

Well that was a mess, but it works now. For data files (mostly PIGs, HAMs, HOGs, MVLs, SXXs, and the like that are external), the game will now attempt to load the upper case filename, and failing that, will try a fully lowercased filename again. Things that are generated by the game are not affected by this ATM and must be named with the correct casing generated by the game (usually lowercase). I might look into imprvoing that later down the line.
Title: Re: Chocolate Descent (testing build available)
Post by: Kaiaatzl on May 17, 2020, 07:54:16 AM
Just curious where to get the builds... the memory stick where I was keeping the working builds I had before has apparently vanished off the face of the Earth, and the build in the OP doesn't seem to have been updated since last year.
Github links are well and good but I don't have the ability or the know-how to compile a build myself -- and if you tried to guide me through it I'd definitely and repeatedly get it wrong XD  I can apparently never understand simple instructions :P
Title: Re: Chocolate Descent (testing build available)
Post by: SaladBadger on May 17, 2020, 04:34:24 PM
I think things are stable enough that I can get another build out tomorrow or so. I haven't done many formal builds, for the most part I've just given people them when they asked, but having some new nice formal ones would be nice.
Title: Re: Chocolate Descent (testing build available)
Post by: SaladBadger on May 18, 2020, 09:57:20 PM
Alright, here's the newest build, which I'm calling "beta 1" because really may as well:

https://drive.google.com/open?id=1Mi-rUThMtKLGCitk6V7Czcb3cJ6UQrQ8 (https://drive.google.com/open?id=1Mi-rUThMtKLGCitk6V7Czcb3cJ6UQrQ8)
Title: Re: Chocolate Descent (beta 1 available)
Post by: SaladBadger on February 09, 2021, 12:58:09 PM
(https://i.imgur.com/IOX9XMal.png) (https://i.imgur.com/IOX9XMa.png)

well that was a fun way to spend two days. I don't know how reliable it is for practical network play yet (especially over the internet), but it's there if anyone really wants it. Heeh.
I'm starting to get to a point where I feel I can call chocolate "feature complete", something I wish I had a year ago, but eh. Remaining features involve being able to move the filesystem so if you want to install the program in /bin/ on Linux you can do so, and a crash handler so that if this mess crashes on someone else's computer I can get something to help determine what happened. Also some under-the-hood changes to allow more closely emulating the effects that happened in Vanilla when you did something undefined, like loaded a map with no reactor.
Title: Re: Chocolate Descent (beta 1 available)
Post by: Kaiaatzl on August 25, 2021, 10:01:12 AM
Hey, so, I have a couple suggestions or questions.
Don't want to call them "requests" because it's entirely up to you whether to do anything with the information or not.  I just mean to make you aware of stuff that's going on concerning the Descent 1 and a half mission pack.

Xfing and I would both like there to be a DOS-like experience of the mission set for players who want it.  Unfortunately, we recently discovered the original version of Descent 2 is going to be out of the question for us for a few specific reasons, the most relevant pertaining to having enough music tracks for 54 levels in either a midi or audio format.  As it is it looks like the mission experience is only going to be possible on DXX-Rebirth, which is not something we want.
So we'd like to come to this project.  But if we're going to do that there's a few (probably simple) things we need it to be able to do.

First and most importantly is that by default in DOS and on this version, the game only supports SNG playlist files with up to 24 "gamexx" entries.  If there's more than that, music in the game doesn't seem to play at all.  For obvious reasons, we would need to be able to run an SNG with closer to 60 in-game tracks plus entries for title music, briefing, and etc.  Rebirth and XL already support extending the playlist because it was previously required for The Enemy Within (and later on for Plutonian Shores).
And secondly, while most of our levels so far are functioning flawlessly in the "beta" release, there's at least one where the POG textures aren't loading properly.  We're looking into the issue ourselves but it's possible we might get stumped and need to come to you.

I might come find you on Discord as well as making this post-- I just like to have a record of what I've already said for future reference, 'cause on a project that's taken this long, it's very easy to go forgetting something.
Title: Re: Chocolate Descent (beta 1 available)
Post by: SaladBadger on August 28, 2021, 11:13:13 AM
Hmm. Part of the problem is that one of the goals of Chocolate itself is not really to expand any limits, but to be honest, I have been considering a "crispier" fork with limit expansion and increased modding features, higher resolution software rendering (320x200 and 640x480 and the like will still be supported as is, too), and stuff like that. If there's enough interest in it, I can perhaps look into it.
Title: Re: Chocolate Descent (beta 1 available)
Post by: Kaiaatzl on August 28, 2021, 04:00:06 PM
It would be nice to have that for Descent 1.5-- all the other limitations in Chocolate are ones X and I can work around.
And Rebirth is nice, but it has its downsides when it's the only thing you can support.