D4D - v3 Alpha 8.1 - Sneak Peak p. 44

Projects that alter game functions but do not include new maps belong here.
Forum rules
The Projects forums are ONLY for YOUR PROJECTS! If you are asking questions about a project, either find that project's thread, or start a thread in the General section instead.

Got a cool project idea but nothing else? Put it in the project ideas thread instead!

Projects for any Doom-based engine (especially 3DGE) are perfectly acceptable here too.

Please read the full rules for more details.

Classic monsters

Remove
5
9%
Keep
39
74%
Other (Please comment)
9
17%
 
Total votes : 53

Re: D4D - Now On GitHub!

Postby Enjay » Wed Jan 04, 2017 8:44 pm

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
Enjay
Everyone is a moon, and has a dark side which he never shows to anybody. Twain
 
 
 
Joined: 15 Jul 2003
Location: Scotland

Re: D4D - Now On GitHub!

Postby The Zombie Killer » Wed Jan 04, 2017 8:53 pm

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 allExpand view
#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 allExpand view
#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
The Zombie Killer
King of the Kangaroos
 
Joined: 14 Jul 2011
Location: Gold Coast, Queensland, Australia
Discord: Zombie#1795

Re: D4D - Now On GitHub!

Postby Enjay » Thu Jan 05, 2017 4:41 am

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
Enjay
Everyone is a moon, and has a dark side which he never shows to anybody. Twain
 
 
 
Joined: 15 Jul 2003
Location: Scotland

Re: D4D - Now On GitHub!

Postby Major Cooke » Thu Jan 05, 2017 9:30 am

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
Major Cooke
Slaughterer of Sewers
 
Joined: 28 Jan 2007
Discord: Major Cooke#0846

Re: D4D - Now On GitHub!

Postby DoomKrakken » Thu Jan 05, 2017 4:44 pm

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
DoomKrakken
Avidly Anonymous Suggester. Hardcore Catholic Gamer. Problem? PM me.
 
Joined: 19 Oct 2014
Location: Plahnit Urff
Discord: DoomKrakken#2719

Re: D4D - Now On GitHub!

Postby Caligari87 » Thu Jan 05, 2017 4:48 pm

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

8-)
User avatar
Caligari87
I'm just here for the community
User Accounts Assistant
 
Joined: 26 Feb 2004
Location: Salt Lake City, Utah, USA
Discord: Caligari87#3089

Re: D4D - Now On GitHub!

Postby Major Cooke » Thu Jan 05, 2017 4:50 pm

Yeah I'm not using GDCC. I shun everything to do with ACS except map control.
User avatar
Major Cooke
Slaughterer of Sewers
 
Joined: 28 Jan 2007
Discord: Major Cooke#0846

Re: D4D - Now On GitHub!

Postby BonusChild » Sat Jan 07, 2017 3:45 am

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!
BonusChild
 
Joined: 18 Dec 2014

Re: D4D - Now On GitHub!

Postby Major Cooke » Sat Jan 07, 2017 6:51 am

They're probably relying on Thing_Count. Ask them to change over to using TIDs instead.
User avatar
Major Cooke
Slaughterer of Sewers
 
Joined: 28 Jan 2007
Discord: Major Cooke#0846

Re: D4D - Now On GitHub!

Postby MusicalDucky » Sat Jan 07, 2017 1:28 pm

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!
MusicalDucky
 
Joined: 06 Jan 2017

Re: D4D - Now On GitHub!

Postby Major Cooke » Sat Jan 07, 2017 4:15 pm

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
Major Cooke
Slaughterer of Sewers
 
Joined: 28 Jan 2007
Discord: Major Cooke#0846

Re: D4D - Now On GitHub!

Postby Valherran » Sat Jan 07, 2017 8:40 pm

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
Valherran
 
Joined: 27 Oct 2009

Re: D4D - Now On GitHub!

Postby Major Cooke » Sun Jan 08, 2017 8:29 am

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
Slaughterer of Sewers
 
Joined: 28 Jan 2007
Discord: Major Cooke#0846

Re: D4D - Now On GitHub!

Postby Major Cooke » Sun Jan 08, 2017 10:04 am

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
Major Cooke
Slaughterer of Sewers
 
Joined: 28 Jan 2007
Discord: Major Cooke#0846

Re: D4D - Now On GitHub!

Postby blackfish » Sun Jan 08, 2017 7:34 pm

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
User avatar
blackfish
pew pew
 
Joined: 15 Jul 2003

PreviousNext

Return to Gameplay Mods

Who is online

Users browsing this forum: Ahrefs [Bot], TaporGaming, TerminusEst13 and 9 guests