D4D - v3 Alpha 8.8 Final (11/22/2020)

Projects that have specifically been abandoned or considered "dead" get moved here, so people will quit bumping them. If your project has wound up here and it should not be, contact a moderator to have it moved back to the land of the living.

Credits mode (Again!?)

Keep as is
25
29%
Modify: Doom 2016-esque (see p. 49)
57
66%
Modify: Other (explain please)
0
No votes
Remove
4
5%
 
Total votes: 86

User avatar
Enjay
 
 
Posts: 26517
Joined: Tue Jul 15, 2003 4:58 pm
Location: Scotland
Contact:

Re: D4D - Now On GitHub!

Post by Enjay »

Can I ask where the source for the footsteps ACS module is? I'd like to see how it is done because it seems to be pretty reliable but I can't find the source script file.
User avatar
The Zombie Killer
Posts: 1528
Joined: Thu Jul 14, 2011 12:06 am
Location: Gold Coast, Queensland, Australia

Re: D4D - Now On GitHub!

Post by The Zombie Killer »

Enjay wrote:Can I ask where the source for the footsteps ACS module is? I'd like to see how it is done because it seems to be pretty reliable but I can't find the source script file.
It was written in C by yours truly, intended to be compiled with GDCC. I'm not sure why the source isn't included with the mod.

main.c

Code: Select all

#define ACS_SHORT_NAMES

#include <stdio.h>
#include <stdfix.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
#include <ACS_ZDoom.h>
#include "utility.h"

char *astrtoc(__str s)
{
    static char *buf;
    static size_t alloc;
    size_t len = StrLen(s) + 1;
    if (alloc < len)
        buf = realloc(buf, len);
    for (size_t i = 0; i != len; ++i)
        buf[i] = s[i];
    return buf;
}

[[call("ScriptS"), script("Enter")]]
void Footsteps()
{
    int delay = 0;
    __str sound_default = StrParam("%LS", s"STEP_DEFAULT");
    
    while (true)
    {
        if (GetActorZ(0) - GetActorFloorZ(0) == 0)
        {
            char *flats = astrtoc(StrParam("%LS", s"STEP_FLATS"));
            char *token = strtok(flats, ":");
            
            fixed vx = GetActorVelX(0);
            fixed vy = GetActorVelY(0);
            fixed speed = VectorLength(vx, vy) / 16;
            
            if (speed > 1)
                speed = 1;
            
            delay = 35 - (25 * speed) * GetCVarFixed(s"fs_delay_mul");
            fixed volume = speed * GetCVarFixed(s"fs_volume_mul");
            
            if (volume > 0)
            {
                while (token != NULL)
                {
                    __str token_str = ctoastr(token);
                    if (CheckActorFloorTexture(0, token_str))
                    {
                        __str langdef = StrParam("STEP_%S", token_str);
                        __str sound = StrParam("%LS", langdef);
                        if (!StrICmp(langdef, sound))
                            PlaySound(0, sound_default, CHAN_AUTO, volume);
                        else
                            PlaySound(0, sound, CHAN_AUTO, volume);
                        break;
                    }
                    token = strtok(NULL, ":");
                }
            }
            else
                delay = 35;
        }
        if (delay > 1)
            Delay(delay);
        else
            Delay(1);
    }
}
utility.h (99% of this was written by marrub)

Code: Select all

#ifndef SRC_UTIL_H_
#define SRC_UTIL_H_

#include <ACS_ZDoom.h>
#include <stdio.h>
#include <stdlib.h>

#define HudMessage(flags, id, color, x, y, hold, opt1, opt2, opt3, ...) \
( \
    ACS_BeginHudMessage(), \
    __nprintf(__VA_ARGS__), \
    ACS_MoreHudMessage(), \
    ACS_OptHudMessage(flags, id, color, x, y, hold), \
    ACS_EndHudMessageXXX(opt1, opt2, opt3) \
)

#define PrintBold(...) \
( \
    ACS_BeginPrintBold(), \
    __nprintf(__VA_ARGS__), \
    ACS_EndPrint() \
)

#define Print(...) \
( \
    ACS_BeginPrint(), \
    __nprintf(__VA_ARGS__), \
    ACS_EndPrint() \
)

#define StrParam(...) \
( \
    ACS_BeginStrParam(), \
    __nprintf(__VA_ARGS__), \
    ACS_EndStrParam() \
)

#define PrintSprite(spr, id, x, y, delay) \
( \
    ACS_SetFont(spr), \
    HudMessage(HUDMSG_PLAIN, id, CR_UNTRANSLATED, x, y, delay, 0.0, 0.0, 0.0, "A") \
)

#define ClearMessage(id) \
( \
    HudMessage(HUDMSG_PLAIN, id, CR_UNTRANSLATED, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, "") \
)

#define Log(...) \
( \
    ACS_BeginLog(), \
    __nprintf(__VA_ARGS__), \
    ACS_EndLog() \
)

#define PrintName(n) \
( \
    ACS_BeginPrint(), \
    ACS_PrintName(n), \
    ACS_EndStrParam() \
)

#define StrParamL(...) \
( \
    StrParam("%LS", StrParam(__VA_ARGS__)) \
)

#define ctoastr(cstr) \
( \
    ACS_BeginStrParam(), \
    __nprintf(cstr), \
    ACS_EndStrParam() \
)

#endif // SRC_UTIL_H_
It could probably be done in a much nicer way with ZScript now anyways.
User avatar
Enjay
 
 
Posts: 26517
Joined: Tue Jul 15, 2003 4:58 pm
Location: Scotland
Contact:

Re: D4D - Now On GitHub!

Post by Enjay »

Thanks for that. So it's not actually ACS? I didn't realise doing something like that was even possible. Got to say that it works very nicely.
User avatar
Major Cooke
Posts: 8170
Joined: Sun Jan 28, 2007 3:55 pm
Preferred Pronouns: He/Him
Location: QZDoom Maintenance Team

Re: D4D - Now On GitHub!

Post by Major Cooke »

It's even doable in Decorate thanks to overlays, but yes. I'll be taking it off of ACS and moving it into the player, along with many other scripts.

This will allow for maximum compatibility with save game files.
User avatar
DoomKrakken
Posts: 3482
Joined: Sun Oct 19, 2014 6:45 pm
Location: Plahnit Urff
Contact:

Re: D4D - Now On GitHub!

Post by DoomKrakken »

Oh cool, a new thread!

WHAAAAAT?! We can use compiled C programs directly for Doom projects?! HOLY FREAKIN' SHIZ, that's perfect! I just passed a C Programming Platform class this past semester... I wonder what I can do with that... :D

Also... what's this new project that DBT is working on now?
User avatar
Caligari87
Admin
Posts: 6174
Joined: Thu Feb 26, 2004 3:02 pm
Preferred Pronouns: He/Him
Contact:

Re: D4D - Now On GitHub!

Post by Caligari87 »

Wonder no more with the magic that is GDCC! Although ZScript may help supersede the need for this, won't it?

8-)
User avatar
Major Cooke
Posts: 8170
Joined: Sun Jan 28, 2007 3:55 pm
Preferred Pronouns: He/Him
Location: QZDoom Maintenance Team

Re: D4D - Now On GitHub!

Post by Major Cooke »

Yeah I'm not using GDCC. I shun everything to do with ACS except map control.
BonusChild
Posts: 26
Joined: Thu Dec 18, 2014 12:30 pm

Re: D4D - Now On GitHub!

Post by BonusChild »

I hope it's not too annoying that I ask this here. First up a little sucking up, I absolutely love this project, it is just unreal how refined it feels with the amount of stuff added to it. There is some true talent behind this. Anyway, I really want to play this with the old-ish Doom One wad here: http://www.moddb.com/mods/doomone/downloads/doomone-v04
The problem I'm having is Ep 2 and 3 skip the whole sequence and just end the level. Looking at the comments on there, others had the same problem, so it may not be just D4D. Anyway, I was hoping if someone could point me in the right direction and see if there's a way I can fix this. I think D4D with the Doom One maps would be amazing, I mean, Ep 1 and 4 that I can play are. I'm sorry to be "that idiot", but would appreciate any help! Thanks!
User avatar
Major Cooke
Posts: 8170
Joined: Sun Jan 28, 2007 3:55 pm
Preferred Pronouns: He/Him
Location: QZDoom Maintenance Team

Re: D4D - Now On GitHub!

Post by Major Cooke »

They're probably relying on Thing_Count. Ask them to change over to using TIDs instead.
MusicalDucky
Posts: 1
Joined: Fri Jan 06, 2017 11:21 pm

Re: D4D - Now On GitHub!

Post by MusicalDucky »

Hi All,

This is my first post on here, woohoo!

I have just completed a play-through of Plutonia with D4D 2.0.3 on GZDoom 2.2 on Ultra Nightmare difficulty. What a blast! My sincerest thanks to the mod authors for creating this amazing mod. I have played Doom 2016 and while it is a great game it still does not quite match the speed an ferocity of classic Doom. Especially not classic Doom with D4D!

I have some feedback for future versions. I hope it is interesting or useful otherwise feel free to tell me to shut the hell up :)

1) The chaingunner replacement's lightning gun needs a bit of change. The delayed beam certainly makes for interesting game play in terms of planning your movement but the effect and the stationary model come off a little odd at times. Especially at long ranges. Perhaps something a little more traditional would be better suited. Maybe the chaingunner can fire projectiles at rate of fire that increases over time. Like the player's chaingun.

2) Holo grenades are a little OP. It seems odd that the monsters ignore you even if you shoot them when the hologram is active. I think once you have shot a monster it should ignore the hologram and attack you.

3) The supercharge powerup feels like it needs to be re-purposed. The siphon grenade and the health drops make this powerup almost redundant.

4) I have seen a request to make the weapon upgrades a configuration option. The request is to have the upgrades as normal, completely off or available immediately.

That is all for now. I can provide examples of the above if required. If anyone is interested the full play-though can be viewed here: https://www.youtube.com/playlist?list=P ... mE2t0mhRCF

Thanks again!
User avatar
Major Cooke
Posts: 8170
Joined: Sun Jan 28, 2007 3:55 pm
Preferred Pronouns: He/Him
Location: QZDoom Maintenance Team

Re: D4D - Now On GitHub!

Post by Major Cooke »

1. You can change the laser beams in the option menu for another.
2. Works as intended. If we nerf it anymore it's no good for escaping, especially in tight spaces.
3. Upgrade your HP and you'll find it has another purpose too. But I do plan on giving it more.
4. Only we turned that one 'upgrade' on the super shotgun into an actual option. It was a bad idea to introduce double trouble as an upgrade from the getgo honestly.
User avatar
Valherran
Posts: 1405
Joined: Tue Oct 27, 2009 12:58 pm

Re: D4D - Now On GitHub!

Post by Valherran »

4. Only we turned that one 'upgrade' on the super shotgun into an actual option. It was a bad idea to introduce double trouble as an upgrade from the getgo honestly.
Why is that?
User avatar
Major Cooke
Posts: 8170
Joined: Sun Jan 28, 2007 3:55 pm
Preferred Pronouns: He/Him
Location: QZDoom Maintenance Team

Re: D4D - Now On GitHub!

Post by Major Cooke »

Because in Doom 16, each barrel shot had the exact same damage as firing both barrels at once. In D4D, that's not the case. It does half the damage of firing both barrels at once -- as it should be. So there's no advantage gained.

Thus it doesn't make sense to keep it as an 'upgrade'.
User avatar
Major Cooke
Posts: 8170
Joined: Sun Jan 28, 2007 3:55 pm
Preferred Pronouns: He/Him
Location: QZDoom Maintenance Team

Re: D4D - Now On GitHub!

Post by Major Cooke »

Also, with the recently announced 'death' of zdoom, I hereby declare D4D is SQeeGeeZDoom only (That's QZDoom and GZDoom). While I will not be removing the old code for software rendering (ZDoom), expect none of the effects to see further enhancements unless contributed by someone else.
User avatar
SyntherAugustus
Posts: 970
Joined: Tue Jul 15, 2003 5:43 pm

Re: D4D - Now On GitHub!

Post by SyntherAugustus »

Since both engines support truecolor, will the sprites be converted to unpalleted PNG in the future? Currently playing with certain megawads that change the palletes creates anomalies with the colors.

http://imgur.com/a/pq7ad
Locked

Return to “Abandoned/Dead Projects”