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

k8vavoom: no good thing ever dies! (2021, Dec 31 build)

Recommended Posts

4 hours ago, Mr.Rocket said:

The above works just fine in 540818, goes into deathmatch mode, has all the keys, spawns in DM starts etc.. ~ even though the jitter is in this one.

oh, yeah, it seems that i accidentaly it quite a long time ago! fixed, thank you!

 

i'll PM you a test build soon, so you will be able to properly test the launcher yet again. ;-)

 

p.s.: it worked with a dedicated server, so i never noticed that "combined" one is broken.

Share this post


Link to post
On 6/18/2020 at 10:39 AM, ketmar said:

there is still code to read nodes lumps, but it isn't even called

 

What! Ignore my node lumps, will you? shakes fist

xD

 

If I recall, original Vavoom would check if GL nodes existed upon loading a wad, and would build them if they did not. Why not go this route?

Share this post


Link to post
4 hours ago, Giomancer said:

If I recall, original Vavoom would check if GL nodes existed upon loading a wad, and would build them if they did not. Why not go this route?

mostly because it has no practical sense. rebuilding nodes even for huge maps is fast, and if it takes more than several seconds, the engine will cache built nodes. internal builder is using floating point (as the rest of the engine), and there is no need to convert its output to fixed point and then back to FP again. the only reason to read external nodes is some BSP trickery, but such tricks will prolly won't work with k8vavoom anyway (and will hurt both stencil shadows, and lightmap tracer).

 

i.e. maps with BSP tricks will be broken anyway, and all other maps will benefit from using internal builder. cache system will take care of long startup times for slower CPUs (yet even my old i3 is fast enough to almost never hit the cache).

 

the same is true for blockmaps. it also helped me to find a bug in blockmap tracer code (inherited from ZDoom), that was sitting there for a decade, which is good for both engines, i believe.

 

and, of coruse, i don't have to maintain node reading/conversion code anymore. which is good, because i am teh old, fat and lazy bastard.

Share this post


Link to post
1 hour ago, Giomancer said:

Well, I suppose that's one less thing for me to worry about when mapping, then!

there is one thing you should know, tho: original (vanilla) code has a subtle... let's call it a "bug" in "point in subsector" code: if a thing is placed exactly on a linedef, vanilla may put it into back sector, and "normal" BSP code will choose front sector instead. k8vavoom tries to emulate this, but mostly for axis-aligned linedefs (i.e. vertical or horizontal). just avoid putting things exactly on linedefs (one unit away is enough). for non-axis-aligned linedefs, move it sligthly more (two-three units), because of rounding in vanilla.

 

tl;dr: always put things two-three units away from linedefs. this way everything will work the same way in every sourceport.

Edited by ketmar

Share this post


Link to post

 In layman's terms, k8vavoom has some really impressive shadows such as a Doom3 type of hard shadowing and sort of Quake smooth shadowing. Not only the common radius shadow that we all see in most source ports, which is of course in k8vavoom too. That said, map geometry likely plays a roll in constructing such things specifically, on top of said shadow lighting, and likely wouldn't be easy to keep track of, for the engine or the developer.

Edited by Mr.Rocket

Share this post


Link to post

@Mr.Rocket yeah, map geometry matters too. yet for lighting, it is more about light radius, and number of visible big lights. like, several huge outdoor light sources to emulate sunlight will slow D3-style shadows to the crawl (there's no way around it), and if that light is somehow flickering or pulsing, it will do the same for Q-style lighting (because such lights cannot be statically precalculated). i'm planning to introduce directional light sources to allow much better and faster outdoor sunlight emulation, tho.

 

but what i was talking about is the bug we had in one of Gunrock's SS:Remastered maps: the turret that was shooting way to high in k8vavoom. with Graf's help, i found the cause: the turrent was standing right on a linedef. front linedef sector was higher than the back sector. Vanilla (and GZDoom, because it emulates Vanilla) put the turret in the back sector, but k8vavoom put it into front one. so in k8vavoom the turret was put higher (due do higher front sector height). i never knew about that Vanilla quirk until Graf pointed me to it.

 

to fully emulate it, GZDoom, for example, keeps original vanilla nodes (not GL ones, those made for vanilla .exe), only to use them in several places where it matters. yet k8vavoom totally ignores vanilla nodes (they aren't useful for GL ports at all), and i didn't felt like keeping them around for exact emulation. so i added a small hack to emulate this quirk, but it works better for axis-aligned linedefs, and somewhat unstable for others (i prolly should rework it, but...).

 

this matters, because some Heretic maps (or Hexen, i don't exactly remember) have such things placed on linedefs, and spawning them in the wrong sector will make unreachable items, stuck monsters, and so on. nothing really fatal, but still...

 

 

i hope that wall of text makes some sense. ;-)

 

p.s.: putting light sources too close to the walls/flats will make the light disappear too. k8vavoom tries to "unstuck" such lights, but it is better to imagine light sources as spheres with 4-units radius, and place them accordingly.

Edited by ketmar

Share this post


Link to post

also, k8vavoom is not dead. no wai! ;-) a new build is just around the corner. nothing really ground-breaking, mostly small bugfixes here and there. but alot of research work is happening behind the scenes. it's not the time to announce anything, but the project is alive and well, and i hope that my research work will eventually land into k8vavoom, bringing you even more half-finished buggy features you can complain about! ;-)

Share this post


Link to post

Is there a proper place to report bugs, or should I just post things here in the forums for now?

I noticed that two options in the Advanced Rendering Options menu aren't getting saved for me: "Shadow Check" and "Optimise Shadow Flats".

Share this post


Link to post
29 minutes ago, Remilia Scarlet said:

Is there a proper place to report bugs, or should I just post things here in the forums for now?

just write it right here, this is Teh Official Place for now. ;-)

 

29 minutes ago, Remilia Scarlet said:

I noticed that two options in the Advanced Rendering Options menu aren't getting saved for me: "Shadow Check" and "Optimise Shadow Flats".

the first one does nothing at all, i just forgot to remove it. and the second one is fixed. thank you!

Share this post


Link to post
13 minutes ago, ketmar said:

the first one does nothing at all, i just forgot to remove it. and the second one is fixed. thank you!

WOO!  Thank ya.  Rebuilding from git as I type ^_^

Also, random shot of me playing around in the engine 'cause I'm just fangirling all over the place over the Doom 3-style lighting at the moment:
shot0000.png.e71b032c63bf292b0e2564e86b5a0d5e.png

Share this post


Link to post

your maps are looking great, so post more of those, please! people love to see cool screenshots, and i can use those shots to make people think that k8vavoom is really that stylish! ;-)

 

p.s.: i still hope to implement proper shadow maps one day, so we could have those transparent textures to cast shadows too. it would look great, i guess.

Share this post


Link to post

Yeah, that would be neat.

 

Even though not too much, the shadows and lighting in the screenshot look awesome.

Share this post


Link to post

Silent Steel: Remastered Edition v1.3

 

steel1.jpg.cf7e20191777cc958bbdd30e81d6ad81.jpg

steel2.jpg.5e0b71faae90ed0f47c965ce72a9b135.jpg

steel3.jpg.36dc967679745d66a97e09e6c0bf2a8c.jpg

steel4.jpg.9e34ab3bdca35924eb715918954791b0.jpg

-fixed and updated a few scripting lines.

-Updated and changed some architectural and lighting details here and there.

-Added a few more decorate effects.

-Updated and added some sounds.

-Reworked some files in the pk3 file structure.

 

Unfortunately, however, With the latest K8Vavoom build, it will randomly crash Map5 "Hold Out" complaining about "script 12 took too long to execute" 

Also, I dont know if this also is a bug, but right after Map3 "Storage Facility", the game will cut to a ending text screen even though I stated in the mapinfo file not to do so.

 

Thanks as always Ketmar for all your hard work and dedication;)

Edited by Gunrock : Updated download link

Share this post


Link to post

@Gunrock yay! i'll try to find out what is wrong there. thank you for updates, and for your bugreports!

 

p.s.: it's good that i decided to delay a new build a little. ;-)

Share this post


Link to post

@Gunrock ok, the bug with script 12 is in the condition:

while (monstercount[0] + monstercount[1] + monstercount[2] + monstercount[3] + monstercount[4]
       <= monstertotal[0] + monstertotal[1] + monstertotal[2] + monstertotal[3] + monstertotal[4])

here, it should be "<", not "<=". because with "<=" we still entering the loop when all monster counts are saturated, and that second "while" will never find something that is not spawned to the limit. so k8vavoom is completely right here. ;-)

 

(GZDoom aborts this script much sooner, and it's not fatal to abort the script in GZDoom by default, that's why you prolly never seen anything wrong there.)

 

and with map03: by default, all Doom2 maps are belong to clusters 5 and higher. GZDoom resets cluster number on the replacement map, but k8vavoom doesn't do that. so when the player moves from map03 to map04, in k8vavoom it also moves from cluster 5 to cluster 1. and cluster 5 has "infested starport" exit text, so k8vavoom shows it. the easiest way to fix this both for k8vavoom and for GZDoom is to add dummy cluster 5 defition with empty exittext:

clusterdef 5
exittext ""

 

Edited by ketmar

Share this post


Link to post

Thanks!!! I updated the Mapinfo file as well as the script. If anyone finds any glitches, bugs, or suggestions that I missed, please let me know so I can finally upload Silent to the idgames.

Share this post


Link to post
6 hours ago, Gunrock said:

If anyone finds any glitches, bugs, or suggestions that I missed, please let me know so I can finally upload Silent to the idgames.

just give us (me, specifically) several days to play it again first. ;-)

 

3 hours ago, Gunrock said:

Can you take a look at my updated Mapinfo file. Is this correct?

yeah, it looks ok. it was enough to simply append empty clusterdef, tho (i specifically checked that it works). but offseting all cluster numbers works too.  i mean, you could do less work for the same, and avoid converting mapdef to "new" format. don't get me wrong, please, this conversion is a good thing, it is my laziness talking. ;-)

 

p.s.: and upload fixed "map05.wad", please, so we can avoid manually fixing bytecode. ;-)

Edited by ketmar

Share this post


Link to post
10 hours ago, ketmar said:

p.s.: and upload fixed "map05.wad", please, so we can avoid manually fixing bytecode. ;-) 

I will!

Share this post


Link to post

and the new build, as i promised. it might be slightly buggy and unstable due to some major incoming VavoomC changes, but shouldn't really break anything. at least it "works for me", as usual. ;-)

 

brief changelog

Spoiler

* set proper deathmatch mode for combined client/server (thanks, Mr.Rocket)
* added better static light detector (it can detect ObAddon static light decorations, for example)
* render normal skies in skybox sectors (instead of pitch black sky) (experimental)
* allow negative damage factors in DECORATE
* added some dynamic light aliases for better GZDoom compatibility (not alot, tho)
* slightly nicer center messages (those about locked doors, for example) -- added fadeout
* added/removed/changed sector affector will force physics recheck (i.e. things on transporters added by scripts will start moving now)
* relaxed mapinfo parser a little -- allow stray "}" and missing final "}", because some mappers cannot into proper mapinfo syntax
* it is now possible to summon friendly demons (with "summon classname -friendly")
* fixed bug with menu scrolling (it was totally broken), and multiline text rendering (empty lines were ignored)
* some fixes for leave/enter intermission text rendering
* fixed compiling on systems with GLIBC without proper `getrandom()` (thanks, Remilia Scarlet)
* added "GenericCrush" actor state (thanks, id0)
* do not ignore "BloodlessImpact" on puffs (thanks, id0)
* ignore "PlayerLivesLeft" zandronum ACSF (works as expected in single-player)
* allowed setting "Species" and "NameTag" properties from ACS
* implemented `GetActorFloorTerrain()` and `GetActorFloorTexture()` ACSFs (and fixed some bugs in terrain management)
* implemented `StrArg()` and `CheckActorState()` ACSFs
* added "restart renderer" to screen resolution menu (the console command was there for a long time, now it is accessible from the menu)
* do not autoskip intermission on "combined" servers (i.e. stop thinking that local player is a bot ;-) (thanks, Mr.Rocket!)
* removed some menu options nobody should use; added forgotten "persistent" flag to one menu option (thanks, Remilia Scarlet)
* heretic/hexen actor code had two identical `A_TimeBomb()` defined; removed one of them
* added menu option to toggle additive missile explosions (cvar for there for decades, but menu option wasn't present)
* preparations for case insensitivity in VavoomC compiler; there were alot of renames, so some bugs might crept in; sorry

 

@-TDRR- nothing really interesting this time, but still... ;-)

Share this post


Link to post

Just a small bug: if I use the -nomonsters parameter, monsters will still spawn with ACS's SpawnSpot and friends.  Not a major thing, just slightly annoying when testing maps or going through to take screenshots.

Share this post


Link to post

 

4 hours ago, Remilia Scarlet said:

Just a small bug: if I use the -nomonsters parameter, monsters will still spawn with ACS's SpawnSpot and friends.  Not a major thing, just slightly annoying when testing maps or going through to take screenshots.

Try it like this: k8vavoom.exe -doom2 +NoMonsters 1 +map map01

Also note that the ordering of the commands is pretty important, I found this out the hard way heh.

I have not tested while using ACS scripts though.

 

It would be nice if k8vavoom used the more common simple method eg: -nomonsters without the included 0-1 switch in the parameter, which is seen in pretty much every engine including Doom.exe its self. 

Though I have not asked for ketmar to change this to the current standard, as he usually has more important things on his plate.

 

If I could make a request besides this, it would be to have mouse UI enabled by default, this way the mouse buttons could be set without needing to enable the UI mouse control first.

 

 

Edited by Mr.Rocket

Share this post


Link to post
5 hours ago, Remilia Scarlet said:

Just a small bug: if I use the -nomonsters parameter, monsters will still spawn with ACS's SpawnSpot and friends.  Not a major thing, just slightly annoying when testing maps or going through to take screenshots.

Same with ZDoom-based ports. I remember for ZDCMP2 we went through all the scripts to make sure they were nomonster-compatible by putting in a lot of GetCVAR("sv_nomonsters") checks everywhere (scripts that spawn monsters don't spawn monsters; scripts that wait for monsters to be killed just run instantly, this kind of things).

Share this post


Link to post
56 minutes ago, Gez said:

Same with ZDoom-based ports.

Hmm, I seem to remember this not being the case in GZDoom.  Though I almost always use the -nomonsters command line, not the cvar.  That might be the difference.

Or I'm mistaking it for Quake, and misremembering GZDoom, where I also have O bound to kill all monsters.

Share this post


Link to post
18 hours ago, Remilia Scarlet said:

Just a small bug: if I use the -nomonsters parameter, monsters will still spawn with ACS's SpawnSpot and friends.

i always thought that this is how it should work. but i can change it, no big deal. then the function will simply return `false`, even forced spawn one. i haven't done that because it may break some scripts, and generally, "-nomosters" should prevent spawning map things, but don't touch others. and i somehow don't feel like putting another config option for this is good -- we already have too many options, i think. ;-)

 

dunno, i can change it, and we'll see. i have to think about it. as @Gez wrote, you may still have to fix the scripts, because some things may not spawn even if you forced that. it may break boss sequences and such. in the end of the day it may do more harm than good. also, in k8vavoom cvar is named simply "NoMonsters".

 

for now, i added the check and pushed it to the repo. we'll see it if will stay, tho.

 

 

14 hours ago, Mr.Rocket said:

It would be nice if k8vavoom used the more common simple method eg: -nomonsters without the included 0-1 switch in the parameter

but that's exactly how it should work. the difference is that setting cvar (+nomonsters) is "local change" (i.e. you can play single-player game, and then set "nomonsters" and create a server), but "-nomonsters" in command line affects everything right from the start, including sp games.

Share this post


Link to post
15 hours ago, Mr.Rocket said:

If I could make a request besides this, it would be to have mouse UI enabled by default, this way the mouse buttons could be set without needing to enable the UI mouse control first.

it should work regardless of that option (and it worked some time ago). this is definitely the bug that should be fixed, thank you!

Share this post


Link to post
5 hours ago, ketmar said:

but that's exactly how it should work. the difference is that setting cvar (+nomonsters) is "local change" (i.e. you can play single-player game, and then set "nomonsters" and create a server), but "-nomonsters" in command line affects everything right from the start, including sp games.

Ah this must have been fixed, I was thinking this wasn't working in a previous version but apparently it is!

/me goes an tests again..

~ yeah it's working.. -deathmatch 1 or 2, or +Deathmatch 1 or 2 doesn't do anything for in-game host however.

Works fine for k8vavoom-dedicated though.

 

5 hours ago, ketmar said:

it should work regardless of that option (and it worked some time ago). this is definitely the bug that should be fixed, thank you!

Oh ok, nice! np. 

Edited by Mr.Rocket

Share this post


Link to post

shadowmapping experiments.

 

Spoiler

t75r14.png

 

don't expect it to get into the engine, tho. at least not soon. there are still alot of problems, including messed up cubemap -- this one works only because the light is at (0,0) (and the orientation is still not right). and something that is much worse: moire and peterpanning. while i may try to combat moire with dynamic comparison bias, peterpanning is much, much harder (if possible at all) to get rid of.

 

peterpanning is that light bleed you can see behind the vines. the problem is that our geometry is paper-thin, and shadow maps really hates such geometry. i guess that it is possible to do something with it, but i don't have any ideas yet.

 

anyway, even if i won't be able to make this thing work right, it was worth trying. i'm not really a gfx guy, and i'm still learning. so failed attempt is fine too -- there is no learning without failing. ;-)

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
×