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

Brutal Doom - General Thread and v22 Development news

Recommended Posts

Looks very good I must say!

 

Even with BDPlatinum 2.0 just chilling in my gzdoom folder with PB3.0 Being my longest played brutal mod on my laptop, I still think that this can very likely get more screen time than bdplatinum sadly might ever. 

Share this post


Link to post

Cheers, I was curious about the any future updates.

 

A part of me wants to create another BD dedicated wad that utilises (but can only function with) the mod's mechanics and features.

 

Besides from a lot of work and re-learning editing, an unexpected update could break my scripting which is a deterrent. But now I have more information.

Share this post


Link to post

YAY! I will gladly welcome a new Official version of Extermination Day! <3

 

My love of that campaign itself brought about the EDay 2019 Vanilla mod and I would not care in the least if an Official version obsoleted one of my most complex projects. <3

Share this post


Link to post
On 4/20/2022 at 7:26 PM, Sergeant_Mark_IV said:

"...completely playable on an average of 20 to 30 fps"


 

Looking forward to this, Mark.

Share this post


Link to post
7 hours ago, Sergeant_Mark_IV said:

Here is a new dev diary showcasing the performance achievements, side by side comparisons with v21, and a bit of teasing of new features.
 

Vanillafication
...

The Weapons System
...

 

Cool I like this direction. Optimisation, vanillafication and less randomisation well help create a more coherent experience. This will also be good for custom wad campaigns built specifically for Brutal Doom.

Share this post


Link to post

I tried this version it's verry nice feels amazing to play and looks great, I think it just needs some polish.

Share this post


Link to post

I also played V22 and... I don't even know how to rate it.

 

On the one hand, the Sprites have become better and the Minigun has become more close to the "Vanilla" Look. Not to mention the Best Optimization of the Mod!

 

But on the Other hand, "Brutal Doom" itself has become... Is it easier? No, seriously, he has become more "Vanilla" that even the Cyberdemon has ceased to be a Strong Threat.

 

But so far we've only played the Test Version, so it's worth waiting for the "Golden Edition" for the final verdict.

Share this post


Link to post

BD22 beta 3, GZDOOM 4.11.3, ultra-violence.

DOOM II MAP06 (The Crusher): the spider demon dies 4..5 second after pressing the crusher switch. Is it OK?

MAP08: demons in the secret rhombus shaped room do not react to sound unless I am in the same exact sector. This happens on other maps as well.
* TNT MAP03 (Wormhole): several monsters (e. g. hellknights) don't react even to SSG shots unless they see me directly.

MAP10: the cyberdemon dies from one point-blank BFG blast. Even in vanilla it requires at least two, typically three.

PSMAP29 (Twilight Descends): both exits lead to MAP14.

MAP15: one of the large yellow doors is displayed with two different textures separated by a vertical line.

A small additional map after MAP20 (Hell Gate): the exit leads to a non-existing map and the game crashes.

A bug with weapons: I often cannot select anything in slots 6 or 7 unless I pick up the same weapon again.

TNT MAP10 (Redemption): monsters do not teleport into the yellow key room.

* The same situation on MAP11 (Storage Facility).

Friendly plasma gun marines often stand still and continuously fire to the same point until I finish the level.

Edited by siealex

Share this post


Link to post

TNT MAP24 and MAP29 (possibly other maps as well). The enhancement system replaces nukage with insta-kill lava, making several secrets impossible to obtain without cheats.

Share this post


Link to post

BUG REPORT:

Splitting the keys into separate visual part and invisible pickupable part *breaks* maps that teleport keys by their TID using Thing_Move() - like EDAY30. Because the teleported key is then invisible and the visual actor vanishes on pick up doing nothing.

 

My ugly hack I used in my build of EDAY:

 

ACTOR FixBlueCard: GLBlueCard replaces GLBlueCard {
	States
	{
	Spawn:
		BKEY A 0
		TNT1 A 0 ACS_NamedExecuteAlways("IllusoryKeyFollowRealKey")
		TNT1 A 35
		BKEY A 0 A_SpawnItemEx("EvidenceCheckerBlueKey", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
		BKEY A 0 A_SpawnItemEx("BlueCard", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION|SXF_CLEARCALLERTID|SXF_TRANSFERSCALE, 0, TID)
		BKEY A 0 A_SetScale(1.0, 1.0)
		BKEY A 0 ACS_NamedExecuteAlways("NoRandomSprites")
		BKEY A 2
		BKEY A 0 A_Jump(128,2)
		BKEY A 0 A_SetScale(-scalex,scaley)
	NoRandom:
		BKEY A 10
		BKEY B 10 Bright
		Loop
	}
}

 

Script "IllusoryKeyFollowRealKey" (void) {
	int x, y, z, newx, newy, newz, mytid;
	mytid = ActivatorTID();
	if (!mytid) {
		mytid = UniqueTID();
		Thing_ChangeTID(0, mytid); 
	}
	x = GetActorX(mytid);
	y = GetActorY(mytid);
	z = GetActorZ(mytid);	
	delay(70); // DECORATE does its black magic, spawns a pickable with mytid and clears tid on the caller
	while(TRUE) {
		newx = GetActorX(mytid);
		newy = GetActorY(mytid);
		newz = GetActorZ(mytid);
		if (x != newx || y != newy || z != newz) {
			x = newx;
			y = newy;
			z = newz;
			SetActorPosition(0, x, y, z, 0);
		}
		delay(10);
	}
}

 

Share this post


Link to post

BUG REPORT:

*ALL* slaughterswaps WRECK map scripting because these swaps ERASE both monster's TID and special!

You killed the cyberdemon and something should happen in the map? LOL gg, toobad, the map is broken now. Go cry in the corner.

Because the replacement cyberdemon does not remember he should have done that important thing on death. Scripts break too: they detect he is dead as soon as the swap happens so the door opens prematurely.

And so on and so forth.

 

TNT1 A 0 A_SpawnItemEx ("ABloodyCyberdemon2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG ,0)

should be

TNT1 A 0 A_SpawnItemEx ("ABloodyCyberdemon2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERSPECIAL | SXF_TRANSFERPOINTERS | SXF_CLEARCALLERTID ,0, TID)

for *all* monsters that perform such swap!

 

Preferrably, also SXF_TRANSFERTRANSLATION and SXF_TRANSFERSCALE in case someone builds a megawad relying on BD and creates descendant classes (like I use palette-shifted Cyberdemon Runts as bosses' minions in my EDAY23)

Share this post


Link to post

BUG REPORT:

Actor BarrelKaboom spawns 4 instances of ExplosionSpawner

Actor ExplosionSpawner spawns 4 instances of SpawnedExplosion

Actor SpawnedExplosion uses A_PlaySound("FAREXPL").

It is super effective: the sound card curls up in pain going into protective shutdown from 16 instances of FAREXPL playing simultaneously at maximum volume -- resulting in several seconds of total silence.

Confirmed with the Realtek sound card on my old laptop and the HDMI-to-VGA+analog stereo attached to my new laptop.

Share this post


Link to post

BUG REPORT:

Sounds TANKF and TANKMG do not have a roloff defined, which results in zombie machinegun turrets and enemy tanks firing in complete silence because the distances you encounter them at (at least in EDAY) is greater than the max default roloff distance.

Share this post


Link to post

BUG REPORT (forgot to report this long ago!):

SuperBlurSphere dropped by spectres still has +COUNTITEM, which potentially ruins someone's maxing run if that spectre manages to die out of player's reach, in a deadly pit or something like that. Because then you won't get 100% items and Zandronum saying "PERFECT!"

 

Proposed solution:

ACTOR SuperBlurSphereNoCount: SuperBlurSphere {
	-COUNTITEM
}

actor SpectreBlurSphere: BasicWeaponPickup2
{
    States
    {
	Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("NODemonBlur")
		TNT1 A 4
	Spawn2:
		//TNT1 A 1 A_SpawnItemEx ("SuperBlurSphere",3,0,5,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG ,0)
		TNT1 A 1 A_SpawnItemEx ("SuperBlurSphereNoCount",3,0,5,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG ,0)
		Stop
	Cancels:
		TNT1 A 0
		Stop
	}
}

:

 

Share this post


Link to post
Posted (edited)

Slaughterswaps are hacky, prone to bugs and COMPLETELY UNNECESSARY!

The optimization could easily be done on the blood's side!

 

Prototyped it, tested it, works like a charm!

 

actor Brutal_Blood Replaces Blood
{
	...

	// Blood's Target is set to the monster bleeding - 
	//    allows using A_JumpIfInTargetInventory("SlaughterCounter", ...
	+PUFFGETSOWNER
	
	...
	States
	{
	  Spawn:
			BSPR A 0
			// THIS!!! instead of complicated slaughterswaps
			TNT1 A 0 A_JumpIfInTargetInventory("SlaughterCounter", 30, "LowBlood")

For R&D I analyzed the source code of Zandronum:

 

void P_SpawnBlood (fixed_t x, fixed_t y, fixed_t z, angle_t dir, int damage, AActor *originator)
{
	// [BB] Initialize with NULL.
	AActor *th = NULL;
	PalEntry bloodcolor = originator->GetBloodColor();
	const PClass *bloodcls = originator->GetBloodType();
	
	int bloodtype = cl_bloodtype;
	
	if (bloodcls != NULL && !(GetDefaultByType(bloodcls)->flags4 & MF4_ALLOWPARTICLES))
		bloodtype = 0;

	if (bloodcls != NULL)
	{
		z += pr_spawnblood.Random2 () << 10;
		th = Spawn (bloodcls, x, y, z, NO_REPLACE); // GetBloodType already performed the replacement
		th->velz = FRACUNIT*2;
		th->angle = dir;
		// [NG] Applying PUFFGETSOWNER to the blood will make it target the owner
		if (th->flags5 & MF5_PUFFGETSOWNER) th->target = originator; 

 

 

P.S. Anyone able to contact Sergeant Mark IV, poke him with a stick. This one is important, would allow saving a lot of his effort and increase BD22's robustness.

Edited by chebmaster

Share this post


Link to post

BUG REPORT:
RevenantPiece and LSPart1 call
TNT1 A 0 Thing_ChangeTID(0,394)
for unknown reason (this number is never encountered in any ACS scripts or elsewhere in DECORATE scripts)
, which WILL interfere with scripts relying on UniqueTID() (say, allocated 394 for something really important before any revenant or lost soul bled)
and MAY interfere with scripted maps reserving this TID for themselves

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

×