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

Things about Doom you just found out

Recommended Posts

Trying to map vanilla again alerted me to two major things:

 

1. Offsetting an upper texture will offset the lower texture at the same time, which isn't exactly convenient when you're used to UDMP's customization options.

2. You can't offset flats in vanilla either. If you want your flats aligned, your sectors have to conform to the grid. Aggravating? Oh, you betcha.

Share this post


Link to post

Today I learned that in GZDoom's Standard light mode, a sector of 230 brightness or more will fade to light.  A sector of 229 brightness will fade to half light.  And a sector of 228 brightness or less will fade to darkness.

Share this post


Link to post
4 hours ago, Dravencour said:

You can't offset flats in vanilla either. If you want your flats aligned, your sectors have to conform to the grid.

If you relax the vanilla requirement to Boom you can set flat alignment precisely using displacement scrollers (types 245/246). You have a control line / sector for each flat you want realigned, and one more that raises the floor of all your control sectors to ceiling, which needs to be activated somehow (by player or voodoo doll). So although it requires some effort, it is still at least possible outside of advanced formats. They just make it easier (in the same way that many Boom features were possible in vanilla with enough work).

Share this post


Link to post

To offset flats in vanilla, you can make, include and use custom flats that look like the original ones with the offset you want, like this:

 

4wLFCQE.png

 

A flat looking like this in an editor will look normal on a teleport pedestal sector that is offset by a specific value from the 64 unit grid.

Edited by scifista42

Share this post


Link to post
6 hours ago, scifista42 said:

use custom flats

Yeah, I'd call that the nuclear option. For last resort only.

Share this post


Link to post

Using some WAD hacking tricks, you could make a teleport texture be able to be aligned anywhere on an 8-pixel grid using only 60 kilobytes total, compared to the 256 kilobytes it would take to do it naively.

Share this post


Link to post

Two players can thing run against eachother for an insane speedboost across pretty much any gap, such as the start of doom 2 map 29 to get straight onto the stairs at the end. Probably only doable in TAS due to needing the right angles and both players to move together

Share this post


Link to post

I just learned that the -turbo parameter was implemented to help Shawn Green defeat John Romero in deathmatch.

Share this post


Link to post
On 2017/10/17 at 4:14 AM, Linguica said:

Using some WAD hacking tricks, you could make a teleport texture be able to be aligned anywhere on an 8-pixel grid using only 60 kilobytes total, compared to the 256 kilobytes it would take to do it naively.

Go on...

Share this post


Link to post
On 10/16/2017 at 8:39 PM, riderr3 said:

That's where the Final Doom cover came from.
93e8b06d96bcb45f38b2c8e0d8329994.jpg

I always wondered why they'd use a box of inert (dud) cartridges on the cover of a Doom game. Maybe as a subtle hint to gamers?

Share this post


Link to post

It makes sense to use practice rounds for a simulation.

Share this post


Link to post

I just learned that id Software created a shockingly egregious canonical error when they censored all of the blood in Quake 3 Arena to create the T-rated Quake Live version. They ended up removing one of Doomguy's trademark characteristics, brazenly flying in the face of long established Doom canon!

 

gLNjgBh.jpg

Share this post


Link to post
On 10/20/2017 at 3:52 PM, Gez said:

It makes sense to use practice rounds for a simulation.

Only that a "practice" round isn't necessarily the same thing as "inert" or "dummy".

 

On 10/21/2017 at 2:16 AM, Revenant100 said:

I just learned that id Software created a shockingly egregious canonical error when they censored all of the blood in Quake 3 Arena to create the T-rated Quake Live version. They ended up removing one of Doomguy's trademark characteristics, brazenly flying in the face of long established Doom canon!

Well...maybe "Doom" just healed, after all this time. Does he really have to keep open, bleeding wounds for all Eternity? Who is he, Jesus Christ?

 

 

 


924094f6-a25c-4bc1-8b5e-a743e5e9b501.pngshroud2-4_3.jpg

 

...OK, he got us there.
 

 

Edited by Maes

Share this post


Link to post
On 17.10.2017. at 3:14 AM, Linguica said:

Using some WAD hacking tricks, you could make a teleport texture be able to be aligned anywhere on an 8-pixel grid using only 60 kilobytes total, compared to the 256 kilobytes it would take to do it naively.

Do you mean this? Or is it another discovery of yours?

 

Share this post


Link to post
3 minutes ago, bzzrak said:

Do you mean this? Or is it another discovery of yours?

Yes, basically that, but modified a little so flats don't have the one-off seam issue.

Share this post


Link to post

Linguica said in that thread that offsets along just the Y axis are safe from the one-off seam issue, so I guess the "modification" consists of creating 8 copies of the extended flat data, each adjusted to look properly at a given 8-unit offset along the X axis, then define the Y offsets using the trick described in the thread - this way, the total size would be 8-times 8 KB.

 

Taking the idea further, to cover every possible offset along both axes, the size would have to be 64-times 8 KB - 64 copies of the data for each X offset, while the Y offsets remain free.

Edited by scifista42

Share this post


Link to post

Such a basic thing I never noticed. Found out from doom_txt on Twitter.

 

Quote

When you're hit, your face looks in the direction from which the damage came

 

Share this post


Link to post

There seems to be a complicated priority-based behavior for the hud face's state changes:

 

Spoiler

//
// This is a not-very-pretty routine which handles
//  the face states and their timing.
// the precedence of expressions is:
//  dead > evil grin > turned head > straight ahead
//
void ST_updateFaceWidget(void)
{
    int		i;
    angle_t	badguyangle;
    angle_t	diffang;
    static int	lastattackdown = -1;
    static int	priority = 0;
    boolean	doevilgrin;

    if (priority < 10)
    {
	// dead
	if (!plyr->health)
	{
	    priority = 9;
	    st_faceindex = ST_DEADFACE;
	    st_facecount = 1;
	}
    }

    if (priority < 9)
    {
	if (plyr->bonuscount)
	{
	    // picking up bonus
	    doevilgrin = false;

	    for (i=0;i<NUMWEAPONS;i++)
	    {
		if (oldweaponsowned[i] != plyr->weaponowned[i])
		{
		    doevilgrin = true;
		    oldweaponsowned[i] = plyr->weaponowned[i];
		}
	    }
	    if (doevilgrin) 
	    {
		// evil grin if just picked up weapon
		priority = 8;
		st_facecount = ST_EVILGRINCOUNT;
		st_faceindex = ST_calcPainOffset() + ST_EVILGRINOFFSET;
	    }
	}

    }
  
    if (priority < 8)
    {
	if (plyr->damagecount
	    && plyr->attacker
	    && plyr->attacker != plyr->mo)
	{
	    // being attacked
	    priority = 7;
	    
	    if (plyr->health - st_oldhealth > ST_MUCHPAIN)
	    {
		st_facecount = ST_TURNCOUNT;
		st_faceindex = ST_calcPainOffset() + ST_OUCHOFFSET;
	    }
	    else
	    {
		badguyangle = R_PointToAngle2(plyr->mo->x,
					      plyr->mo->y,
					      plyr->attacker->x,
					      plyr->attacker->y);
		
		if (badguyangle > plyr->mo->angle)
		{
		    // whether right or left
		    diffang = badguyangle - plyr->mo->angle;
		    i = diffang > ANG180; 
		}
		else
		{
		    // whether left or right
		    diffang = plyr->mo->angle - badguyangle;
		    i = diffang <= ANG180; 
		} // confusing, aint it?

		
		st_facecount = ST_TURNCOUNT;
		st_faceindex = ST_calcPainOffset();
		
		if (diffang < ANG45)
		{
		    // head-on    
		    st_faceindex += ST_RAMPAGEOFFSET;
		}
		else if (i)
		{
		    // turn face right
		    st_faceindex += ST_TURNOFFSET;
		}
		else
		{
		    // turn face left
		    st_faceindex += ST_TURNOFFSET+1;
		}
	    }
	}
    }
  
    if (priority < 7)
    {
	// getting hurt because of your own damn stupidity
	if (plyr->damagecount)
	{
	    if (plyr->health - st_oldhealth > ST_MUCHPAIN)
	    {
		priority = 7;
		st_facecount = ST_TURNCOUNT;
		st_faceindex = ST_calcPainOffset() + ST_OUCHOFFSET;
	    }
	    else
	    {
		priority = 6;
		st_facecount = ST_TURNCOUNT;
		st_faceindex = ST_calcPainOffset() + ST_RAMPAGEOFFSET;
	    }

	}

    }
  
    if (priority < 6)
    {
	// rapid firing
	if (plyr->attackdown)
	{
	    if (lastattackdown==-1)
		lastattackdown = ST_RAMPAGEDELAY;
	    else if (!--lastattackdown)
	    {
		priority = 5;
		st_faceindex = ST_calcPainOffset() + ST_RAMPAGEOFFSET;
		st_facecount = 1;
		lastattackdown = 1;
	    }
	}
	else
	    lastattackdown = -1;

    }
  
    if (priority < 5)
    {
	// invulnerability
	if ((plyr->cheats & CF_GODMODE)
	    || plyr->powers[pw_invulnerability])
	{
	    priority = 4;

	    st_faceindex = ST_GODFACE;
	    st_facecount = 1;

	}

    }

    // look left or look right if the facecount has timed out
    if (!st_facecount)
    {
	st_faceindex = ST_calcPainOffset() + (st_randomnumber % 3);
	st_facecount = ST_STRAIGHTFACECOUNT;
	priority = 0;
    }

    st_facecount--;

}

 

Share this post


Link to post

The exit door on MAP06 is not the correctly-sized SPCDOOR2, instead it's an unfitting left half of BIGDOOR2. But my brain always perceives it as SPCDOOR2 anyway, so it doesn't matter.

Share this post


Link to post
On 9/24/2017 at 11:33 AM, DoomguyB said:

I didn't know that the design of the Cacodemon was inspired (quite heavily, by the looks of it!) by the Astral Dreadnought creature from Dungeons & Dragons.

 

Astral.jpg

Also the Beholder (somewhat)

Share this post


Link to post
On 10/20/2017 at 4:16 PM, Revenant100 said:

I just learned that id Software created a shockingly egregious canonical error when they censored all of the blood in Quake 3 Arena to create the T-rated Quake Live version. They ended up removing one of Doomguy's trademark characteristics, brazenly flying in the face of long established Doom canon!

 

gLNjgBh.jpg

Someone add this to the Wiki.

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
×