Planet Descent

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

Title: Chocolate Descent (beta 1 available)
Post by: InsanityBringer 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: InsanityBringer 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: InsanityBringer 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: InsanityBringer 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: InsanityBringer 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: InsanityBringer 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: InsanityBringer 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: InsanityBringer 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: InsanityBringer 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: InsanityBringer 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: InsanityBringer 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: InsanityBringer 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)