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

DOOM Retro v5.3 (updated March 3, 2024)

Recommended Posts

bradharding said:

Not ideal, but I think it's something I might do in DR as well. Could you share how you've implemented it?
Lee's code hasn't been the easiest to decipher but there's some great stuff in there. What's interesting is in two places in his comments he mentions that "oscillations are prevented", which they're not.

He somehow fails to account for the case where motion off one line carries the object onto another of equal height. In that situation, the corpse can end up moving indefinitely as it "falls" off one ledge onto the other.

Hate to say that despite living with the code in my own port for 10+ years, I have no better of an understanding of it than you, so I won't be of any help in fixing it. I am skeptical that an efficient fix beyond such a counter "hack" is even possible due to the nature of the problem.

Perhaps rather than a hard limit to the number of times something can torque off a ledge, it'd be better to gradually reduce the force behind the torquing motions based on a counter in mobj_t? (movecount might even be usable since it starts to increment for dead monsters in P_MobjThinker).

Share this post


Link to post

Enjoying it as usual. :)

I have (yet!) another request. Would it be possible to have the Next Weapon change happen quicker? If I use Chocolate Doom I can quickly press Next Weapon a couple of times (say, from pistol to chaingun) and the weapon changes right away. It's really handy when I'm away and I'm playing on my netbook keyboard.

Just now, in DR, when you change from one weapon to another the whole weapon switch animation has to play out first before one can hit the 'next weapon' key again. This can be pretty time consuming from going from something like shotgun to beserk and often gets me killed!

Also, I was wondering if there was a way for DR to ignore the aspect ratio of the game? Having played Chocolate Doom on my widescreen at 320x200 I've grown used to what I like to think of as "Chubby Doom". Everything's a little stretched and I quite like the look. DR only seems to offer the 'correct' aspect ratio from what I can see...

Share this post


Link to post
Average said:

Also, I was wondering if there was a way for DR to ignore the aspect ratio of the game? Having played Chocolate Doom on my widescreen at 320x200 I've grown used to what I like to think of as "Chubby Doom". Everything's a little stretched and I quite like the look. DR only seems to offer the 'correct' aspect ratio from what I can see...

You want the game to purposely look incorrect? That's a first...

Share this post


Link to post
Linguica said:

You want the game to purposely look incorrect? That's a first...


Off topic, but I had an urge to implement a "Doom95" mode using crispydoom as a base. Since hipsters want to use that Doom95 garbage, It would have all the super-shitty features, including terrible aspect ratio, incorrectly scaled weapon sprites, and pitched-down sound effects. Maybe even the terrible spectres that some people saw!

Even better would be a mode that replaces the first 20 indices of the PLAYPAL with Windows colors! For that authentic Doom95 Experience!

Share this post


Link to post
Average said:

Enjoying it as usual. :)

I have (yet!) another request. Would it be possible to have the Next Weapon change happen quicker? If I use Chocolate Doom I can quickly press Next Weapon a couple of times (say, from pistol to chaingun) and the weapon changes right away. It's really handy when I'm away and I'm playing on my netbook keyboard.

Just now, in DR, when you change from one weapon to another the whole weapon switch animation has to play out first before one can hit the 'next weapon' key again. This can be pretty time consuming from going from something like shotgun to beserk and often gets me killed!

I'll definitely look into this. Thanks. This is while using a gamepad, the mousewheel, or both?

Also, I was wondering if there was a way for DR to ignore the aspect ratio of the game? Having played Chocolate Doom on my widescreen at 320x200 I've grown used to what I like to think of as "Chubby Doom". Everything's a little stretched and I quite like the look. DR only seems to offer the 'correct' aspect ratio from what I can see...

Sorry, not going to happen. No fatties! :P

Share this post


Link to post

^
It's fine with the mouse wheel. I don't have access to my controller to see if it's affected but from memory I think it swaps quickly enough (at least, it's never caught my attention. It's when I'm using my netbook and I'm playing with the keyboard only. I don't use the number keys to change weapons. I just assign the down arrow key to Next Weapon. It's when using that set up that I notice the lag.

Thanks for replying and taking an interest in what I blether on about. :)

No worries about the aspect ratio thing. I kinda figured that would be the case. I can just play with any other port when I want the chubby feeling! :P

Share this post


Link to post
Gez said:

Here's a suggestion: remove the MF_COUNTKILL flag from monsters that are spawned by A_A_PainShootSkull, A_VileChase, P_NightmareRespawn, and A_SpawnFly
[..]
Why do that? This way, all monsters placed on the map directly will count as monsters, but those added during the game by spawning or respawning will not. If you want to prevent going over 100%, this is the best approach IMO. You can even give the lost souls their COUNTKILL flag back safely.

An alternative approach that I am currently investigating for Crispy Doom is to increase the totalkills counter each time a new monster is (re-)spawned. This way, you really only reach 100% Kills if all the monsters on the map are killed, regardless if they were on the map from the beginning or not. What do you think about it?

Share this post


Link to post
Average said:

I can just play with any other port when I want the chubby feeling! :P


Oh Tobias, you blowhard!

Share this post


Link to post
fabian said:

An alternative approach that I am currently investigating for Crispy Doom is to increase the totalkills counter each time a new monster is (re-)spawned. This way, you really only reach 100% Kills if all the monsters on the map are killed, regardless if they were on the map from the beginning or not. What do you think about it?


Well, that's what ZDoom is doing.

The approach I'm suggesting makes it easier to get a "valid" 100% kill on things like a nightmare or uv-respawn max kills run, or anytime an icon of sin monster spawner is involved.

Share this post


Link to post
Gez said:

[...] kills run, or anytime an icon of sin monster spawner is involved.


Well, consider you are in an Icon of Sin map and when you have finished it, the icon has spawned 14 monsters of which you have killed 7.

- Vanilla Doom will give you 700% kills
- Your approach will result in 0% kills
- The approach I suggest will result in 50% kills

What do you think, which if these data reflect the most appropriately what really happened in that map?

Share this post


Link to post
fabian said:

Well, consider you are in an Icon of Sin map and when you have finished it, the icon has spawned 14 monsters of which you have killed 7.

- Vanilla Doom will give you 700% kills
- Your approach will result in 0% kills
- The approach I suggest will result in 50% kills

What do you think, which if these data reflect the most appropriately what really happened in that map?


If the map has a monster placed (like the revenant in the original Icon of Sin level) and you have killed it, you get 100% kills.

If you have a map with 100 monsters, a berserk pack, and a way to glide to the exit from the start. You stay in the start room, punching a zombieman to death a hundred times, never visiting the rest of the level. Then you exit. You get 100% kills in vanilla, 50% in your approach, 1% in what I suggest.

Share this post


Link to post
Gez said:

If you have a map with 100 monsters, a berserk pack, and a way to glide to the exit from the start. You stay in the start room, punching a zombieman to death a hundred times, never visiting the rest of the level. Then you exit. You get 100% kills in vanilla, 50% in your approach, 1% in what I suggest.

Hm, it's tricky and I cannot really say for sure which is the one *right* solution. But, after all, in the case you describe here you have actually killed half the monsters that were on the map before reaching the exit. So, I assume 50% isn't such a bad estimate.

Share this post


Link to post
bradharding said:

Not ideal, but I think it's something I might do in DR as well. Could you share how you've implemented it?

Sure, but it sucks:

in PIT_ApplyTorque()

...
// [kb] Make an attempt to prevent torque oscillations
//  by increasing 'gearapplied' when the direction
//  completely reverses 180 degrees. Only works when
//  direction oscillates between two opposite directions,
//  but ignores the reversal if there's any lateral
//  movement inbetween. Crappy.

if (mo->momx < 0)
{
	if (mo->momy < 0)
		curgeardir = 5; // nw
	else if (mo->momy > 0)
		curgeardir = 3; // sw
	else
		curgeardir = 4; // w
}
else if (mo->momx > 0)
{
	if (mo->momy < 0)
		curgeardir = 7; // ne
	else if (mo->momy > 0)
		curgeardir = 1; // se
	else
		curgeardir = 0; // e
}
else
{
	if (mo->momy < 0)
		curgeardir = 6; // n
	else if (mo->momy > 0)
		curgeardir = 2; // s
	else
		curgeardir = 8; // none
}

if (mo->lastgeardir != 8 && curgeardir != 8)
{
	if (((curgeardir + 4) & 7) == mo->lastgeardir)
		mo->gearapplied++;
}
		
mo->lastgeardir = curgeardir;				
Don't ask me what it does, other than suck :) But, it does "stop" the oscillations, but tends to leave the poor corpse hanging by it's toes again :( I think it kicks the corpse off in another direction, breaking the pattern. But, please, try your hand at something different before using mine - it's very ugly in game. The corpse is sliding back and forth, then, it appears to slow down, and, finally, it shoots off faster, before stopping at some unlikely place.

If I were to rewrite it (which I may), I would do the following:
1. Wait until the corpse's momx and momy are 0, and z = floorz. This would allow the corpse to fly up the stairs first, as it does sometimes in vanilla.
2. Slide in the closest direction to a lower floor, as long as it's < X units away (width of the corpse, or something).
3. Repeat at step 1 until there's no floor within X units away, lower than the corpse.

bradharding said:

Lee's code hasn't been the easiest to decipher but there's some great stuff in there. What's interesting is in two places in his comments he mentions that "oscillations are prevented", which they're not.

My guess is that Lee had a trouble-spot in a specific place in a level, that he was using to diagnose his torque issues. He probably fiddled with the code, until that trouble-spot stopped being troublesome. Then, he assumed that that fixed the code.

I know I recently deployed an app that I had been working on for a couple months, fixing the bugs, and someone got a crash within 15 minutes of it being deployed. I had been using the same old test record to do all my tests! It's easy to do.

I can't really fault Lee or the Boom team. Sure, there's bugs, and sure Lee wrote some interesting, "optimized" one-liners, but, all in all, they added good stuff, and somehow contained the possible madness, at a time when everyone was adding all sorts of half-baked stuff. Boom did make a lot of the original code much more efficient, and less bug-prone (though they added some new ones - it happens to the best of us).

It says something when Boom support is considered the minimum standard above Vanilla support.

Quasar said:

...
Perhaps rather than a hard limit to the number of times something can torque off a ledge, it'd be better to gradually reduce the force behind the torquing motions based on a counter in mobj_t? (movecount might even be usable since it starts to increment for dead monsters in P_MobjThinker).

Not a bad idea. At any rate, it deserves some investigation. Honestly, once a got my corpses to STOP FREAKING DANCING, I never looked back. Again, Lee's variable names appeared to be misleading to me: 'torque' and 'gear' don't seem to mean what I think they should mean.

Share this post


Link to post
fabian said:

Well, consider you are in an Icon of Sin map and when you have finished it, the icon has spawned 14 monsters of which you have killed 7.

- Vanilla Doom will give you 700% kills
- Your approach will result in 0% kills
- The approach I suggest will result in 50% kills

What do you think, which if these data reflect the most appropriately what really happened in that map?



I believe the only correct approach is to track monsters properly, like you propose and ZDoom actually implements.

Anything else is either ignoring the issue or putting some half-assed band-aid fix on it.
The worst was the original 'solution', i.e. making the Lost Souls not count as a monster and adding a shitload of workaround code for it.

Share this post


Link to post

sorry if I missed the answer for this elsewhere, but is there currently dehacked/.deh support? If so, how do I load them?

Trying to play through the Darkening ep1 with doom retro, but the start up file selection doesn't let me pick the dehacked file. I load resource.wad, then darken.wad, then doom2.wad.

Share this post


Link to post

Use a launcher like ZDL or a batch file. Or a shortcut with cmdline parameters.

Share this post


Link to post
VGA said:

Use a launcher like ZDL or a batch file. Or a shortcut with cmdline parameters.


And the command line parameter to use is -DEH. Also, if the Dehacked file has the same name as the .wad file (except with a .deh extension), it is automatically loaded. Or if a DEHACKED lump is present, it's used instead.

Share this post


Link to post
Average said:

No worries about the aspect ratio thing. I kinda figured that would be the case. I can just play with any other port when I want the chubby feeling! :P


If your graphics card's control panel has an option to disable aspect ratio correction (Nvidia tends to) you could go that route, and then set Doom Retro to a non widescreen resolution.

Personally I hate the way that looks but power to you I suppose. :P

Share this post


Link to post

Hi all. In an attempt to be "open" and hopefully create some actual constructive criticism on improving Doom Retro, I thought I'd point out a video I found: https://www.youtube.com/watch?v=3pHgDqIqAqY. This guy spends a whole hour(!) playing Doom Retro, and it is quite the performance. He does encounter a few bugs, (which I've since fixed in v1.6.2 and the yet to be released v1.6.3), but spends the rest of the time ridiculing as many features of DR as he can, based purely on his own narrow personal preferences. The guy actually codes for ZDoom, so you'd think he would be a little less of a c**t about other people's work, but hey, it's interesting nonetheless.

Share this post


Link to post

I have no idea why you're posting as if I'm not here.

Yes, I made a livestream of your source port as it was brought up in conversation on an IRC channel during the Doom NEO joke. I had never played it so I figured it was worth taking a look. You had me interested as to why a source port was so dedicated to receiving donations.

If you're so angry about any amount of criticism towards your port at all, why would you draw attention to this video?

And yes, there is a big difference between criticism and ridicule. Your port needs a purpose, however that is not, and never will be, a direct attack on you as a person.

Share this post


Link to post
bradharding said:

be a little less of a c**t

I think this is the operative phrase, here, Edward. You've historically had a bad habit of believing that you're criticizing people when you are actually being quite nasty at times.

Share this post


Link to post
Edward850 said:

I have no idea why you're posting as if I'm not here.

Yes, I made a livestream of your source port as it was brought up in conversation on an IRC channel during the Doom NEO joke. I had never played it so I figured it was worth taking a look. You had me interested as to why a source port was so dedicated to receiving donations.

If you're so angry about any amount of criticism towards your port at all, why would you draw attention to this video?

And yes, there is a big difference between criticism and ridicule. Your port needs a purpose, however that is not, and never will be, a direct attack on you as a person.


It's all good, Edward. My post wasn't directed at you, just as your video wasn't directed at me. Nothing personal. Doing a bit of research into your past interactions with other people, I won't argue with you. Enjoy the rest of your night.

Share this post


Link to post

I was thinking, would it be possible to add a joystick threshold setting? I think that could help with gamepad play.

I believe that the video referenced was quite a bit more like ridicule and nitpicking rather than constructive criticism. I think that mostly comes from the person who made the vid simply didn't "get it".

Share this post


Link to post
Brewtal_Legend said:

I was thinking, would it be possible to add a joystick threshold setting? I think that could help with gamepad play.

Perhaps. I still plan at looking at improving the gamepad code. I'll look into it tomorrow.

I believe that the video referenced was quite a bit more like ridicule and nitpicking rather than constructive criticism. I think that mostly comes from the person who made the vid simply didn't "get it".

Exactly.

Share this post


Link to post

One other little option I think would be nice is to change the position of messages. I never liked the messages displaying in the upper left corner much. I often miss them when playing. I always thought it would be nice if they were slightly lower than center print. like right above where the hud would be. Or at the very bottom center when the hud is off/using screen size 8. In my opinion anyway.

Not very important or critical in anyway, but Just a kinda nice little feature I think.

Also, been noticing a couple odd things. Most doors seem to be auto-opening when I approach them. Specifically noticed in Alien Vendetta and The Darkening Ep1.

Monsters not noticing me when I am right next to/in front of them. Sometimes even when firing without hitting them.

I thought setting the screensize to 8 in the config would result in turning off the full hud when starting, but it seems to have no effect.

Share this post


Link to post
bradharding said:

Hi all. In an attempt to be "open" and hopefully create some actual constructive criticism on improving Doom Retro, I thought I'd point out a video I found: https://www.youtube.com/watch?v=3pHgDqIqAqY. This guy spends a whole hour(!) playing Doom Retro, and it is quite the performance. He does encounter a few bugs, (which I've since fixed in v1.6.2 and the yet to be released v1.6.3), but spends the rest of the time ridiculing as many features of DR as he can, based purely on his own narrow personal preferences. The guy actually codes for ZDoom, so you'd think he would be a little less of a c**t about other people's work, but hey, it's interesting nonetheless.

lmao that video was retardedly funny at times. But I could tell what was going to happen from the first seconds when he referred to the source port as "whatever this is"

The low points were nitpicking the WASD controls and whining about performance problems with translucency in a software renderer, not using a launcher like a normal human being and copying wads around :-D

Share this post


Link to post
Brewtal_Legend said:

One other little option I think would be nice is to change the position of messages. I never liked the messages displaying in the upper left corner much. I often miss them when playing. I always thought it would be nice if they were slightly lower than center print. like right above where the hud would be. Or at the very bottom center when the hud is off/using screen size 8. In my opinion anyway.
Not very important or critical in anyway, but Just a kinda nice little feature I think.

I've actually been thinking about allowing the messages to be moved to just above the hud (not the status bar). Having experimented with it, the current font is too bulky and distracting, so I might consider using the character set you can see on DR's splash screen and website, in yellow upper/lowercase text. From memory I believe one or more of the Doom Alphas display messages towards the bottom of the screen in yellow text.


Also, been noticing a couple odd things. Most doors seem to be auto-opening when I approach them. Specifically noticed in Alien Vendetta and The Darkening Ep1.
Monsters not noticing me when I am right next to/in front of them. Sometimes even when firing without hitting them.

Ew, that's no good. Could you possibly give me one or more specific examples of each of these problems please?


I thought setting the screensize to 8 in the config would result in turning off the full hud when starting, but it seems to have no effect.

Since your monitor is not widescreen, it does not display a widescreen mode when you increase the screensize setting (either thru the options menu, using the + key, or changing the "screensize" setting in doomretro.cfg). Instead, the usual 4:3 mode is displayed, as it is shown in Vanilla DOOM (except with the hud, which can be toggled off with an additional press of the + key). The status bar will still always appear in the automap in this case, like Vanilla DOOM.
The "widescreen", "hud" and "screensize" settings shouldn't be changed in doomretro.cfg, they merely keep track of what you set in the game (options menu, +/- keys), and what your monitor is capable of showing.
I'll look at removing the status bar from the automap when screensize is 8 and widescreen is not possible.

Share this post


Link to post

I can't wrap my head around being 'forced' to use the keyboard to play Doom. As opposed to what, mouse-only? People still do that? Somebody's gotta keep the savage traditions alive I guess.

If only there was some kind of external input device you could plug in as an alternative, a 'controller' if you will. But no, the fascist dictator of niche Doom ports imposes his narcissistic WASD ideology upon us beneath his jackbooted heel, woe.

It's almost as if any given source port is a reflection of its author's desires and personal ideosyncracies that you don't have to use if you don't want to.

This injustice will not stand, we'll fight the evil Doom Retro legions on the forums, we'll fight them in the servers, we'll fight them in the IRC rooms, until the only acceptable input device for a Doom game on any platform anywhere is the Microsoft Kinect. And then and only then can we turn to our children and grandchildren and say, "You're welcome."

edit:

"What other Doom port has a splash screen?"


3DGE and Doomsday have splash loading screens, off the top of my head. You could probably count some others depending how loose your definition of splash screen is. Hell I think Doom95 has its own little splash screen. Not to mention every Doom console port.

Share this post


Link to post
SuperflyJohnson said:

I can't wrap my head around being 'forced' to use the keyboard to play Doom. As opposed to what, mouse-only? People still do that? Somebody's gotta keep the savage traditions alive I guess.

If only there was some kind of external input device you could plug in as an alternative, a 'controller' if you will. But no, the fascist dictator of niche Doom ports imposes his narcissistic WASD ideology upon us beneath his jackbooted heel, woe.

To appease the critics, the next version of Doom Retro will support this. And you're welcome...! :P


...3DGE and Doomsday have splash loading screens, off the top of my head. You could probably count some others depending how loose your definition of splash screen is. Hell I think Doom95 has its own little splash screen. Not to mention every Doom console port.

In all seriousness, I tried to make the splash screen as unobtrusive as possible. It's there only briefly, and can be skipped by pressing a key. There's even an undocumented -NOSPLASH cmdline parameter. (Which I guess is no longer undocumented, because I just documented it!) The splash screen is there in an attempt to establish some branding and professionalism, and it also provides some updated copyright information for id Software (such as appears on Doom Classic on iOS for example) and GPL info, which otherwise wouldn't be present since I've done away with the startup console. And more generally, everything I do with Doom Retro, I try to do to make it unique and distinct, and provide something slightly different for those in the DOOM community who like it. I personally don't want every source port out there to be the same, so I really don't get this "wah, but other source ports don't do it that way" mentality.

Brewtal_Legend said:

...Also, been noticing a couple odd things. Most doors seem to be auto-opening when I approach them. Specifically noticed in Alien Vendetta and The Darkening Ep1.

Monsters not noticing me when I am right next to/in front of them. Sometimes even when firing without hitting them...

Just been quickly experimenting with MAP01 in Alien Vendetta: if you're referring to this level, the first couple of zombiemen you encounter won't react until you shoot or move into their periphery. I'm not entirely sure why the imps in the pool in that room don't react, as there appears to be no sound blocking linedef, and they're not deaf, but the same thing occurs in Chocolate Doom. Also, the first door you encounter opens as you approach it due to a line trigger. Are there other examples you can point me to?

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
×