README update, a couple other things, and more partial progress on the Visual Thinker migration.
This commit is contained in:
parent
5ac55058b4
commit
fb835a478f
7 changed files with 68 additions and 85 deletions
10
README.md
10
README.md
|
|
@ -54,21 +54,25 @@ Recommended settings are as follows:
|
|||
- **Textures:** Filtering set to either "`None`" or "`None (Trilinear)`". Textures are meant to be chunky.
|
||||
- **Post-processing:**
|
||||
- Bloom is recommended at minimum, FXAA should be fine as well.
|
||||
- Only enable SSAO if you have beefy hardware, it's expensive *(though it doesn't look that great)*.
|
||||
- Only enable SSAO if you have *REALLY* beefy hardware, it's expensive *(though it doesn't look that great)*.
|
||||
- It is not advised to use VKDoom's tonemap filters, as they can cause glitches with some visual effects.
|
||||
- For other post-processing, use [MariFX](https://git.marisa.pw/OrdinaryMagician/marifx_m) *(shameless self-plug)*.
|
||||
- **Lighting:**
|
||||
- Dynamic lights must be enabled, or you'll be missing out on a lot.
|
||||
- It's advised to use "`Classic`" sector lighting, as other modes may over-brighten weapon models.
|
||||
- If affordable by the hardware, raytraced shadows are recommended *(don't use the "precise" options unless you have a 30xx series card or higher)*.
|
||||
- With RT shadows, keeping the shadow quality at "`Nearest`" is recommended. That setting has a much higher performance hit when not using regular shadow mapping.
|
||||
- "`GPU (Per-pixel)`" sprite lighting is also recommended on high-end hardware, though do note that this may cause performance issues on slaughtermaps *(I mean, that's kind of expected)*.
|
||||
- **Audio:**
|
||||
- Increasing sound channels to their maximum limit is advised.
|
||||
- HRTF is not recommended, it may result in excessive CPU usage.
|
||||
- HRTF is not recommended, it may result in excessive CPU usage and lower quality full-stereo SFX.
|
||||
|
||||
This was verified to run smoothly on the Steam Deck *(rarely if ever dips below 60 FPS in combat unless playing geometrically dense maps)*. Still, it is not really possible to bind *ALL* controls beyond the bare essentials, *(this might be addressed in the future)*, and setting up VKDoom itself on the Deck is complicated as well, but the devs are working on that, [last I checked](https://bsky.app/profile/vkdoom.bsky.social/post/3lgarbh5phs2s).
|
||||
This was verified to run smoothly on the Steam Deck *(rarely if ever dips below 60 FPS in combat unless playing geometrically dense maps)*. Still, it is not really possible to bind *ALL* controls beyond the bare essentials, *(this might be addressed in the future)*, note that for the time being, VKDoom has to be installed on the Deck through an [unofficial flatpak repo](https://github.com/fpiesche/flatpak-builds).
|
||||
|
||||
*(Testers are welcome for narrowing down more precise hardware requirements)*
|
||||
|
||||
*(If you're going to be playing slaughtermaps with this, these specs and settings may not be enough, duh)*
|
||||
|
||||
---
|
||||
|
||||
## The Demolitionist
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
[default]
|
||||
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r1211 \cu(vie 04 abr 2025 20:51:37 CEST)\c-";
|
||||
SWWM_SHORTVER="\cw1.3pre r1211 \cu(2025-04-04 20:51:37)\c-";
|
||||
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r1212 \cu(lun 28 abr 2025 10:08:05 CEST)\c-";
|
||||
SWWM_SHORTVER="\cw1.3pre r1212 \cu(2025-04-28 10:08:05)\c-";
|
||||
|
|
|
|||
|
|
@ -15,23 +15,23 @@ Weapon models:
|
|||
Ammo models:
|
||||
x Plasma Ammo
|
||||
- SMW.05 Ammo
|
||||
- Single
|
||||
- Beta speedloader
|
||||
- Gamma mag
|
||||
- 1/2/3 Round(s)
|
||||
- Beta Speedloader
|
||||
- Gamma Mag
|
||||
x Sheen Ammo
|
||||
x 1/2/3 Rounds
|
||||
x 1/2/3 Round(s)
|
||||
x 10 Pack
|
||||
x 50 Box
|
||||
x Quadravol Ammo
|
||||
½ Sparkster Ammo
|
||||
½ Kinylum Round
|
||||
½ Nokron Round
|
||||
½ 1/2/3 Kinylum Round(s)
|
||||
½ 1/2/3 Nokron Round(s)
|
||||
x Mortal Rifle Ammo
|
||||
x Round
|
||||
x 1/2/3/5 Round(s)
|
||||
x Mag
|
||||
x Grenade
|
||||
- Ray-Khom Ammo
|
||||
- Single
|
||||
- 1/2/5 Round(s)
|
||||
- Mag
|
||||
- Rafan-Kos Ammo
|
||||
- Pod
|
||||
|
|
@ -42,10 +42,10 @@ Collectible models:
|
|||
|
||||
# Misc
|
||||
|
||||
Gib models:
|
||||
- Meat chunk [0/3]
|
||||
- Meat chunk w/ bone [0/3]
|
||||
- Nondescript organ [0/2]
|
||||
Less generic gib models:
|
||||
- Meat Chunk [0/3]
|
||||
- Meat Chunk w/ Bone [0/3]
|
||||
- Heart/Liver/Stomach [0/3]
|
||||
|
||||
Gag gib models:
|
||||
x Steak
|
||||
|
|
@ -68,8 +68,11 @@ New stuff:
|
|||
- Battle-Boi Sentry
|
||||
|
||||
Extra models:
|
||||
- Hexen keys
|
||||
- Hexen puzzle items
|
||||
- Hexen keys [0/11]
|
||||
- Hexen puzzle items [0/9]
|
||||
|
||||
Collectible models:
|
||||
- Blåhaj
|
||||
|
||||
Character models:
|
||||
- White Lady
|
||||
|
|
|
|||
14
zmapinfo.txt
14
zmapinfo.txt
|
|
@ -124,22 +124,26 @@ GameInfo
|
|||
"graphics/M_DEMOCHAN_QUADRAVOL.png",
|
||||
"graphics/M_DEMOCHAN_MISTER.png",
|
||||
// preload canvas textures for some weapons
|
||||
"models/PlasmaLED_L.png",
|
||||
"models/PlasmaLED_R.png",
|
||||
"models/canvas/NukuriFnt.png",
|
||||
"models/canvas/PlasmaLED_L.png",
|
||||
"models/canvas/PlasmaLED_R.png",
|
||||
"models/canvas/SheenLEDBar.png",
|
||||
"models/SheenLED.png",
|
||||
"models/canvas/SheenLEDBase.png",
|
||||
"models/canvas/SheenLEDBar.png",
|
||||
"models/canvas/SheenLEDNums.png",
|
||||
"models/canvas/SheenLEDSpeed.png",
|
||||
"models/QuadLED.png",
|
||||
"models/canvas/QuadLEDBase.png",
|
||||
"models/canvas/QuadLEDCharge.png",
|
||||
"models/canvas/QuadLEDRound.png",
|
||||
"models/canvas/RayZap.png",
|
||||
"models/MortalLED.png",
|
||||
"models/canvas/MortalBG.png",
|
||||
"models/canvas/MortalFireIcons.png",
|
||||
"models/canvas/MortalFlatChars.png",
|
||||
"models/canvas/MortalFrameTex.png",
|
||||
"models/canvas/MortalFireIcons.png",
|
||||
"models/canvas/MortalGrenadeIcons.png",
|
||||
"models/MortalLED2.png",
|
||||
"models/canvas/MortalFlatChars.png",
|
||||
// preload a few random materials to ensure shaders are compiled
|
||||
// CanvasProxy.fp, NewLogoAnimated.fp and TexFilterHack.fp
|
||||
// should already be handled by previous textures in the list
|
||||
|
|
|
|||
|
|
@ -286,11 +286,7 @@ Class KirinPlushGesture : SWWMItemGesture
|
|||
SWWMHandler.DoFlash(self,Color(24,255,128,128),30);
|
||||
int numpt = Random[ExploS](6,9);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let s = Spawn('LoveHeartSparkle',Vec3Offset(FRandom[ExploS](-.8,.8)*radius,FRandom[ExploS](-.8,.8)*radius,FRandom[ExploS](.1,.9)*height));
|
||||
s.angle = FRandom[ExploS](0,360);
|
||||
s.pitch = FRandom[ExploS](-90,90);
|
||||
}
|
||||
SWWMStaticSprite.SpawnAt('LoveHeartSparkle',Vec3Offset(FRandom[ExploS](-.8,.8)*radius,FRandom[ExploS](-.8,.8)*radius,FRandom[ExploS](.1,.9)*height));
|
||||
int givehp = (Health<=25)?25:(Health<=50)?15:(Health<=100)?10:5;
|
||||
if ( GiveBody(givehp,200) ) SWWMHandler.DoFlash(self,Color(32,224,128,255),10);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -208,11 +208,7 @@ Class SWWMGesture : SWWMWeapon
|
|||
Vector3 dir = SWWMUtility.Vec3FromAngles(angle,pitch);
|
||||
Vector3 patpos = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz-4),dir*30.);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let s = Spawn('LoveHeartSparkle',patpos);
|
||||
s.angle = FRandom[ExploS](0,360);
|
||||
s.pitch = FRandom[ExploS](-90,90);
|
||||
}
|
||||
SWWMStaticSprite.SpawnAt('LoveHeartSparkle',patpos);
|
||||
if ( pt.target && pt.target.bSHOOTABLE )
|
||||
{
|
||||
int healamt = 10;
|
||||
|
|
|
|||
|
|
@ -1,56 +1,45 @@
|
|||
// gesture effects
|
||||
|
||||
Class LoveHeartTrail : SWWMNonInteractiveActor
|
||||
Class LoveHeartTrail : SWWMStaticSprite
|
||||
{
|
||||
Default
|
||||
override void SetupSprite()
|
||||
{
|
||||
RenderStyle 'Add';
|
||||
Alpha .1;
|
||||
+FORCEXYBILLBOARD;
|
||||
Super.SetupSprite();
|
||||
texture = TexMan.CheckForTexture("DOKIA0");
|
||||
SetRenderStyle(STYLE_Add);
|
||||
Alpha = .1;
|
||||
}
|
||||
override void Tick()
|
||||
override void OnTick()
|
||||
{
|
||||
if ( freezetics > 0 )
|
||||
{
|
||||
freezetics--;
|
||||
return;
|
||||
}
|
||||
if ( isFrozen() ) return;
|
||||
A_FadeOut(.01);
|
||||
scale *= .95;
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
DOKI A -1 Bright;
|
||||
Stop;
|
||||
Alpha = max(0.,Alpha-.01);
|
||||
if ( Alpha <= 0. )
|
||||
Destroy();
|
||||
}
|
||||
}
|
||||
|
||||
Class LoveHeartSparkle : SWWMNonInteractiveActor
|
||||
Class LoveHeartSparkle : SWWMStaticSprite
|
||||
{
|
||||
Default
|
||||
double scalestep, fadestep;
|
||||
|
||||
override void SetupSprite()
|
||||
{
|
||||
Scale .03;
|
||||
+FORCEXYBILLBOARD;
|
||||
Super.SetupSprite();
|
||||
texture = TexMan.CheckForTexture("DOKIA0");
|
||||
Scale = (.03,.03);
|
||||
Alpha = .5;
|
||||
}
|
||||
override void PostBeginPlay()
|
||||
{
|
||||
Scale *= FRandom[ExploS](.75,1.5);
|
||||
specialf1 = FRandom[ExploS](.95,.98);
|
||||
specialf2 = FRandom[ExploS](.01,.03);
|
||||
vel = SWWMUtility.Vec3FromAngles(angle,pitch)*FRandom[ExploS](2,8);
|
||||
scalestep = FRandom[ExploS](.95,.98);
|
||||
fadestep = FRandom[ExploS](.01,.03);
|
||||
double ang = FRandom[ExploS](0,360);
|
||||
double pt = FRandom[ExploS](-90,90);
|
||||
vel = SWWMUtility.Vec3FromAngles(ang,pt)*FRandom[ExploS](2,8);
|
||||
}
|
||||
override void Tick()
|
||||
override void OnTick()
|
||||
{
|
||||
if ( freezetics > 0 )
|
||||
{
|
||||
freezetics--;
|
||||
return;
|
||||
}
|
||||
if ( isFrozen() ) return;
|
||||
A_SetScale(scale.x*specialf1);
|
||||
A_FadeOut(specialf2);
|
||||
Vector3 dir = vel;
|
||||
double magvel = dir.length();
|
||||
magvel *= .99;
|
||||
|
|
@ -60,13 +49,10 @@ Class LoveHeartSparkle : SWWMNonInteractiveActor
|
|||
dir += .2*SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90));
|
||||
vel = dir.unit()*magvel;
|
||||
}
|
||||
SetOrigin(level.Vec3Offset(pos,vel),true);
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
DOKI A -1 Bright;
|
||||
Stop;
|
||||
Scale *= scalestep;
|
||||
Alpha = max(0.,Alpha-fadestep);
|
||||
if ( Alpha <= 0. )
|
||||
Destroy();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -188,16 +174,12 @@ Class LoveHeart : Actor
|
|||
for ( int i=2; i<6; i++ )
|
||||
{
|
||||
Vector3 dir2 = vel.unit();
|
||||
let t = Spawn('LoveHeartTrail',level.Vec3Offset(pos,-dir2*steppy*i));
|
||||
let t = SWWMStaticSprite.SpawnAt('LoveHeartTrail',level.Vec3Offset(pos,-dir2*steppy*i));
|
||||
t.scale = scale;
|
||||
}
|
||||
int numpt = Random[ExploS](1,3);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let s = Spawn('LoveHeartSparkle',pos);
|
||||
s.angle = FRandom[ExploS](0,360);
|
||||
s.pitch = FRandom[ExploS](-90,90);
|
||||
}
|
||||
SWWMStaticSprite.SpawnAt('LoveHeartSparkle',pos);
|
||||
if ( !tracer || (tracer.Health <= 0) ) return;
|
||||
double mag = vel.length();
|
||||
vel = mag*(level.Vec3Diff(pos,tracer.Vec3Offset(0,0,tracer.height/2)).unit()*mag*6./GameTicRate+vel).unit();
|
||||
|
|
@ -472,9 +454,7 @@ Class LoveHeart : Actor
|
|||
numpt = Random[ExploS](40,50);
|
||||
for ( int i=0; i<numpt; i++ )
|
||||
{
|
||||
let s = Spawn('LoveHeartSparkle',pos);
|
||||
s.angle = FRandom[ExploS](0,360);
|
||||
s.pitch = FRandom[ExploS](-90,90);
|
||||
let s = SWWMStaticSprite.SpawnAt('LoveHeartSparkle',pos);
|
||||
s.scale *= RandomPick[ExploS](1,3);
|
||||
s.alpha *= 2;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue