Jump to content

k8vavoom: no good thing ever dies!


ketmar

Recommended Posts

56 minutes ago, TheMightyHeracross said:

I'm a big Strife fan and Strife-supporting ports are few and far between (I think the original Vavoom was the first?), so I'll definitely be glad to test it out more in this port.

yeah, Doom wiki (i think it was it) says that Vavoom was the first sourceport with full Strife support. and thank you! i'd like to make sure that all supported games are working as intended, and any help is appreciated. i see k8vavoom as a continuation of Vavoom, so gameplay-wise it should do everything Vavoom did, and more. ;-)

 

29 minutes ago, Remilia Scarlet said:

GZDoom accepts it and it works as expected, so I'm guessing it's legal.

GZDoom accepts all kinds of... strange things. sometimes it is good, sometimes it isn't, and sometimes it is just plainly wrong from my PoV. and usually there is no proper history of changes to track all its extensions. that's why i usually want to see several maps before implementing some [G]ZDoom thing -- just to make sure that it's not some obscure bug that simply slipped through the cracks and/or stuck.

 

but in this case there is nothing wrong in supporting long texture names there -- actually, it was the plan from the very beginning, i just forgot to fix "sky2" parser.

 

29 minutes ago, Remilia Scarlet said:

wanted to make sure it worked with k8.

thank you! and feel free to report anything that is wrong/doesn't work. as you can see, most of the time it is something i forgot to fix/implement, or simply didn't thought about it. it is quite hard to chase 10+ years of ZDoom development, and i bet even Graf don't remember various small details now. ;-) the more [G]ZDoom extensions we'll be able to implement, the more choice people will have. maybe it will even bring DECORATE back on the table as cross-port modding tool. ;-)

Edited by ketmar

Share this post


Link to post

Yep, the whole project seems to work now after a quick informal test I did tonight.  There's a few rendering issues (fog is different, which I think we spoke about before in another context; and a single underwater sector in my map looked a bit off, partially due to the texture I used), and SPC music doesn't play back... but overall it's perfectly playable ^_^

The map I made looks great with the shadow volumes as well, despite having not been made with them in mind at all.  Normally I have shadowmaps turned off in GZDoom because their limitations don't mesh well with my way of mapping.

shot0000.png.b5e6b97ef20ab08786108da201ab3842.png

Share this post


Link to post
58 minutes ago, Remilia Scarlet said:

Yep, the whole project seems to work now after a quick informal test I did tonight.

yay, that's great!

 

58 minutes ago, Remilia Scarlet said:

fog is different, which I think we spoke about before in another context

yeah.

 

58 minutes ago, Remilia Scarlet said:

a single underwater sector in my map looked a bit off, partially due to the texture I used

yeah, underwater rendering is slightly buggy, and overall doesn't really match what GZDoom does. i'm not sure yet what to do with it.

 

58 minutes ago, Remilia Scarlet said:

The map I made looks great with the shadow volumes as well, despite having not been made with them in mind at all.

yeah, that was the idea. ;-) usually shadows doesn't look too bad (at least on maps where alot of dynamic lights aren't used as substitutes for ambient light). of course, it is always possible to say "r_shadows 0" to get "old-style" lighting.

 

and your screenshot looks very stylish! i couldn't even imagine that somebody could do such beauty with "placeholder textures"!

 

p.s.: i really hope to add in-engine light editor in 2021. i think it will be of great help when setting up lighting for shadow volumes/shadowmaps. and i will prolly extend "k8vavoom" UDMF namespace with "no shadow" flags, to allow finer control over lighting.

Edited by ketmar

Share this post


Link to post

also, just4fun i ported "Universal Entropy" GZDoom mod to k8vavoom (yet without pitch shifting, because k8vavoom simply doesn't have per-actor pitch control, and i am too lazy to implement it just for that mod). i will prolly upload it when new build will be ready -- just to show people that GZDoom is not The Only Engine That Can Do Advanced Scripting. yeah, basically, Vavoom was able to do it more than 10 years ago -- i only added a way to load VavoomC mods from .pk3, and VavoomC API to control color translations.

 

yeah, this is not GZDoom! ;-)

Spoiler

pgty35.png

 

Edited by ketmar

Share this post


Link to post
5 minutes ago, Mr.Rocket said:

see if you can get Doomero's Mortal Kombat Doom to work in k8vavoom?

sorry, but nope. the mod code is totally broken, and it should be fixed by the authors. it only worked because ZDoom sux at syntax and type checking. k8vavoom tries to "guess and fix" some common wrong decorate, but there is only so much you can do before it will completely break.

Share this post


Link to post

also, some advertising time! ;-) i was always interested to see how well Zan from Hedon will perform in Doom world. so i took her out, and created "Zan mod". and i got official permission to redistribute it! it may not be The Real Doom anymore, but playing as Zan is fun. expect the mod to be published after new k8vavoom build (coming soon! ;-).

 

also, if you didn't play Hedon yet, give it a try! it totally worth it. (one day i hope to support Hedon in k8vavoom out of the box).

Share this post


Link to post
On 1/4/2021 at 5:07 AM, TheMightyHeracross said:

The poison crossbow seems to use the same logic as the dagger when determining whether nearby acolytes see you hit

thank you! yes, this is exactly what poison bolts did, and it seems that they shouldn't alert monsters at all (as per VE and GZDoom source). fixed.

Share this post


Link to post
On 1/5/2021 at 6:54 PM, Remilia Scarlet said:

Yep, the whole project seems to work now after a quick informal test I did tonight.  There's a few rendering issues (fog is different, which I think we spoke about before in another context; and a single underwater sector in my map looked a bit off, partially due to the texture I used), and SPC music doesn't play back... but overall it's perfectly playable ^_^

The map I made looks great with the shadow volumes as well, despite having not been made with them in mind at all.  Normally I have shadowmaps turned off in GZDoom because their limitations don't mesh well with my way of mapping.

Finally. We have a good fucking competitor to GZDoom.

Share this post


Link to post
49 minutes ago, EpicTyphlosion said:

Finally. We have a good fucking competitor to GZDoom.

not quite. ;-) i mean, i'm not going to compete with GZDoom in feature set -- i have my own vision for k8vavoom. i.e. don't expect materials/pbr, for example, and no GZDoom portals. no ZScript, of course (it is technically impossible). but ACS/DECORATE/UDMF/MAPINFO/etc. are already supported, and with each new release i'm trying to improve it, and add more missing features. you already can play alot of DECORATE mods with k8vavoom, and many "GZDoom-only" maps works too. but i prefer to look at k8vavoom project as "a way to give people more choice", not as competition.

Edited by ketmar

Share this post


Link to post
1 hour ago, Gunrock said:

K8Vavoom has the better lighting;)

thanks! ;-)

 

and next public build is just around the corner. with official 3rd lighting model -- shadowmaps. i wanted to publish the build much sooner, but stuck testing shadowmaps. like, "oh, i need to play more maps with 'em... oh, and implement this unrelated feature too... crap! now i have to test it all again!" and so on. ;-) so the changelog is quite big.

Share this post


Link to post

Here are my thoughts. I love that there is an option to have DOOM 3's lighting. However, it is a bit... underwhelming. It doesn't have that nice shadowy atmosphere I was expecting. What I could suggest is "Fake Wall Shadows" (Sprite and 3D enemies make shadows on walls), and "BumpMaps" (Seperate textures that make a certain texture look 3D). You don't have to, it just would make the DOOM 3 Lighting option WAY more cooler. Other then that, there really isn't a problem with anything. Except for one thing... The music. It does not work for me. I don't know if it is just me or if it is a normal thing, but I think the main thing that ruins all of K8 Vavoom's potential, along with any other source port, is the music not working. That, or the music, and sounds, sounding WAY too meaty like it is an ad on a satellite TV. Yes, this does include GZDoom.

Share this post


Link to post
21 minutes ago, YeOldeFellerNoob said:

Here are my thoughts. I love that there is an option to have DOOM 3's lighting. However, it is a bit... underwhelming. It doesn't have that nice shadowy atmosphere I was expecting. What I could suggest is "Fake Wall Shadows" (Sprite and 3D enemies make shadows on walls), and "BumpMaps" (Seperate textures that make a certain texture look 3D). You don't have to, it just would make the DOOM 3 Lighting option WAY more cooler. Other then that, there really isn't a problem with anything. Except for one thing... The music. It does not work for me. I don't know if it is just me or if it is a normal thing, but I think the main thing that ruins all of K8 Vavoom's potential, along with any other source port, is the music not working. That, or the music, and sounds, sounding WAY too meaty like it is an ad on a satellite TV. Yes, this does include GZDoom.

Update: So, after sticking my dick into the ReadMe.TXT for a way to get the SoundFont working, it turns out that it doesn't contain its own SoundFont. After learning that, now it is a really good source port. Now we need ZScript and hell, some Skulltag support. Also, I would advise you tweak the DM bots a bit. All they do is jump around and shoot. I would say just remove the jumping and all that special stuff that the bots do.

Share this post


Link to post
39 minutes ago, YeOldeFellerNoob said:

What I could suggest is "Fake Wall Shadows" (Sprite and 3D enemies make shadows on walls)

it is technically impossible with shadow volumes: you need a valid closed (i.e. without holes and self-intersections) 3d model to cast shadows. you can turn a simple rectangle into such model, but not something that is not strictly rectangular. that's why there are no shadows from sprites, or walls with masked textures. also, many MD2/MD3 models are simply not valid -- there are small holes and degenerate triangles there. it doesn't harm normal rendering, but it is impossible to build shadow volume from such model. the engine detects that, and turns off shadows for those models.

 

but! that's why i recently implemented 3rd lighting mode: shadowmaps. with shadowmaps, there are shadows from sprites, and from masked walls, and there are no limitations on 3d models anymore. it will be available in the next public build.

 

52 minutes ago, YeOldeFellerNoob said:

and "BumpMaps" (Seperate textures that make a certain texture look 3D)

sorry, but this is one of the features i won't implement. i think that it doesn't look good with Doom low-res textures. sure, k8vavoom has support for hires textures, but it is there only because original Vavoom already had it implemented. yet for bumpmaps, PBR, and other advanced gfx features i'd recommend to use GZDoom. i appreciate your interest in k8vavoom, and i believe that you want k8vavoom to look better, but it simply doesn't fit into my "project vision". sorry.

 

14 minutes ago, YeOldeFellerNoob said:

it turns out that it doesn't contain its own SoundFont

yep, as we don't have any official site to upload releases, i decided to not include soundfount into the archive.

 

15 minutes ago, YeOldeFellerNoob said:

After learning that, now it is a really good source port

thank you!

 

15 minutes ago, YeOldeFellerNoob said:

Now we need ZScript

no way, sorry. it is technically impossible. to implement ZScript, k8vavoom have to become GZDoom fork (and Vavoom/k8vavoom is not, it wasn't even started as a ZDoom fork). actually, VavoomC (the internal language which is used to implement most of Vavoom -- even including physics) is slightly more powerful than ZScript, but i don't really want people to use it. while most of DECORATE can be implemented in most sourceports (even hacked into Vanilla, see ACE), ZScript/VavoomC cannot be implemented outside of the respective sourceports. and i strongly believe that cross-port mod compatibility should be the primary focus for sourceport devs. DECORATE is far from the best language out there, but it does its job, and it can be implemented in wide range of sourceports. so DECORATE is the way to go. sourceports can extend DECORATE, of course (k8vavoom already did that), and other sourceports can implement those extensions too.

 

17 minutes ago, YeOldeFellerNoob said:

I would advise you tweak the DM bots a bit

DM bots are WIP. i'm not really playing DM/Coop games, so bots aren't a priority. still, i have plans to improve bots AI (better planning, maybe even GOAP-style, like in F.E.A.R.), better map learning, and so on. i still need to implement several internal things to support that, tho.

 

internally, bots are way smarter than it seems, they just very bad at map navigation yet, and quickly giving up doing anything sane.

 

also, jumping can be turned off with "bot_no_jump" cvar (yet it is not persistent, i.e. won't be saved in config).

 

Skulltag support is planned, tho. sooner or later i will implement those parts that fits k8vavoom, just wait a little. ;-) there are only two devs behind k8vavoom, and there are alot of things we want to implement (including rich set of in-engine tools to help map creators). stay with us! ;-)

 

thank you again for trying k8vavoom, and i am really happy that you liked it. no good thing ever dies, and there is no end in sight for k8vavoom development! ;-)

Share this post


Link to post
1 hour ago, YeOldeFellerNoob said:

What I could suggest is "Fake Wall Shadows" (Sprite and 3D enemies make shadows on walls)

this is what we'll have in the new build: post with the picture. ;-)

Share this post


Link to post
17 hours ago, ketmar said:

this is what we'll have in the new build: post with the picture. ;-)

So THAT was what it was called! I thought they were simply called Sprite or Model shadows! I cannot wait to absolutely and utterly destroy my PC when this comes out!

Share this post


Link to post

ketmar actually lives in the future so he'll be able to create a patch to keep that from happening before he creates the patch. ;)

Or something like that, I'm still trying to catch up.

Edited by Mr.Rocket

Share this post


Link to post
6 hours ago, YeOldeFellerNoob said:

So THAT was what it was called! I thought they were simply called Sprite or Model shadows!

and you are right. it's simply impossible to render them with shadow volumes algorithm, so i implemented 3rd renderer, based on shadow maps algorithm. shadow maps using rendered picture to perform very simple raycasting, so anything that can be rendered can cast a shadow. the downside is visible texels on shadow edges. you can see that even in many modern games; it's highly blured, but it is often still possible to see "shadow texels". and i cannot blur it alot, because i still want the whole thing to work on OpenGL 2.1 (and weaker GPUs). anyway, i implemeted very simple bilinear filter, it looks quite nice, and is not dog-slow.

 

the whole thing is still slightly buggy, but i think it is "good enough for release". ;-) i'm just trying to spend several days without coding anything, only playtesting the build. and it's hard to not code. ;-)

Edited by ketmar
some typos

Share this post


Link to post

WARNING! my Wine install somehow got broken, and OpenAL cannot find any sound devices anymore. i don't know why, and i hope that you will have sound working. please, report here if it isn't.

 

i can keep adding "Yet Another Small Feature" for eternity, so let's Just Do It Now: here's the new build!

 

brief changelog: (there are more changes, i just got tired of putting 'em there ;-)

Spoiler

* I'M REALLY SORRY, BUT YOUR OLD SAVES ARE TOTALLY BROKEN. it's a good thing that we don't have a huge userbase, i guess.
* (except checkpoints at the start of a map, they may still work)

* experimental shadowmaping lighting model (should work with OpenGL 2.1)
* do not spawn monsters from ACS with "-nomonsters" (Remilia Scarlet requiest)
* fixed a long-standing bug with occasional texture flipping (it was really hard to notice, tho ;-)
* some optimisations in texture queries
* various rendering optimisations (less state switches, less BSP walks, etc.)
* added hack to better limit number of decals on one wall segment, to avoid massive slowdowns with maximum gore
* limited maximum number of gore blood spots (proximity check), to avoid spawnin zillions of them (this was causing massive engine slowdowns)
* draw crosshair on top of everything (control with "crosshair_topmpost" bool cvar)
* fixed bug in `BSPTraceLine()` return args
* added `SXF_MUZZLE_TRACE` flag to `A_SpawnItemEx()` to use with muzzle entities (so they won't spawn inside or behind a wall)
* fixed some small bugs in model rendering (mostly harmless)
* added option to use S3TC texture compression (mostly useless, but why not?) by default, hires textures will be compressed
* added option to control adaptive VSync (cvar was there for years, but no menu option)
* slightly faster dynamic light management (i hope ;-)
* fixed some bugs in parsing compat flags in old mapinfo format
* turned off "transparent door floor fix" (it tried to fix some vanilla rendering hacks, but it is wrong alot of times; will rewrite it later)
* skip vanilla render fixes for extended UDMF maps
* allow zero tags in Boom "Static_Init" (this fixes Boom sky change in many maps)
* fixed several small bugs (and memory leak) in UDMF height-based slope creation
* fixed some bugs with translucent surface rendering (invalid surface/sprite rendering order)
* fixed binding of mouse buttons in UI (thanks, Mr.Rocket and Remilia Scarlet)
* added some sanity checks to maploader (put here to make the changelog bigger)
* added `A_CallSpecial()` (k8vavoom has its own `A_ExecActionSpecial()` for that, but let's be compatible)
* some fixes in portal rendering (better portal frustum transfer; yet mirrors are still partially broken)
* clip geometry with mirror plane (this should fix rendering of mirrors without "big back sector")
* convert `SectorPointLight` and company to static lights, if possible (lightmapped renderer will not update 'em with new sector lightlevels, tho)
* player sound definitions should be case-insensitive
* added `Player.SoundGender` decorate player property
* added `Player.GruntSpeed` decorate player property
* added support for `Player.DamageScreenColor` for custom damage types
* added `GetCrouchFactor()` decorate API
* implemented getters/setters for `APROP_MaxStepHeight`, `APROP_MaxDropOffHeight`, `APROP_DamageType` properties
* reworked state change logic a little, some broken mods (especially weapon ones) should work slightly better
* made `A_WeaponReady()` more compatible with ZDoom implementation
* implemented "+MirrorReflect" and "+AimReflect" decorate flags
* added VavoomC API to create new color translations (it is now possible to port "UniversalEntropy" GZDoom mod to k8vavoom, except sound pitch change)
* added "options->misc->flip corpses" option to randomly flip monster corpses
* allowed long texture names in "sky2" (thanks, Remilia Scarlet)
* fixes to bouncing code (bouncing missiles should stuck much less now)
* fixed sound propagation bug (closed sectors weren't blocking)
* fixed IDIOTIC bug with dir -> angles conversion (straight vertical dirs had inverted pitch angles)
* fixed bug in internal blockmap builder (it was using 16-bit ints for linedef numbers, so blockmaps for huge maps were all wrong)
* Strife poison bolts should not alert monsters (thanks, TheMightyHeracross)
* Backpack will not give ammo for another games, nor some "invalid" ammo anymore
* fixed `A_Warp()` (it was completely wrong)

 

@-TDRR- ping, as requested. ;-)

 

p.s.: promised mods (Zan and randomizer) will be published slightly later.

Edited by ketmar

Share this post


Link to post

also, i'm trying on hack to make huge maps playable. like, there is Memorial, for example, with 4000 monsters, and it runs in single-digit FPS with k8vavoom. and with this hack, it runs at 45-60 FPS now (on my core2duo 3GHz). the hack is simple: don't run physics for "sleeping" objects. there are alot of objects that rests on the floor, and they don't need any physics processing (this includes inactive monsters). the engine tries to detect that, and bypass most of the VM code for them. this is quite hard to implement right, though, because Vavoom physics code does alot more things than simple velocity changes (it has some game logic processing too), so it may break with some mods, or maps with conveyors/sector effects, or such. still, the rough implementation is there, and Memorial is quite playable.

 

but don't expect this to allow you to play all slaughterwads out there. ;-) in slaughterwads, there are usually alot of active monsters, and they have to use full-featured physics code. still, exploration-style maps with several thousands monsters, most of which are inactive (and being killed when you'll meet them) should be playable. i.e. nuts.wad will still work with zero FPS, but you'll be able to enjoy Memorial, or Openworld Doom.

Edited by ketmar

Share this post


Link to post

Hi, while the shadows look freaking amazing, fucking awesome! especially when the player jumps down in cubie holes and what not. ;)

 

However, currently, in my map, which you have a copy of, the teleports/slip gates (should have an animation), but they don't for some reason. 

They are purely 3dfloors and translucent lines. ~ I used the "warp" animation so, animdefs.txt, so that would be where to look.

warp2 flat imagename int variable.

 ~ the animation worked in all previous versions. although, hmm it doesn't seem to be working in the last test build.

Unless they're disabled via menu somewhere and I don't know it yet.

 

 

Thanks

Edited by Mr.Rocket

Share this post


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

the teleports/slip gates (should have an animation), but they don't for some reason. 

oops. i forgot to set one flag, and the animation broke. there is nothing wrong with your map, it's my fault. fixed, thank you! will work again in the next build.

 

5 hours ago, Mr.Rocket said:

Hi, while the shadows look freaking amazing, fucking awesome! especially when the player jumps down in cubie holes and what not. ;)

thank you! yeah, i like playing with shadowmaps too. sprite shadows DO make a huge difference, actually. ;-)

 

2 hours ago, YeOldeFellerNoob said:

Tried out the Shadowmaps and I am literally pissing my pants from the detail, even though my PC was running it at 12 or 5 FPS.

glad you like it! thank you!

 

it's sad that your GPU cannot do it in realtime, tho. i think you already tried it, but just in case: setting "shadowmap blur" to "none" may give you a noticeable FPS boost. bluring is quite expensive even for newer GPUs, and may be a total killer for older ones (shader code contains alot of conditional branches, and older GPUs are not very good at such code).

 

sadly, this is prolly as much as i can do to make it faster. the shader is already a freakin' mess of almost unmanageable inlined copypasta. also, shadowmaps are quite demanding to GPU memory bandwidth too. there's almost no thing i could do with that while staying OpenGL2.1-compatible. and i don't want to bump OpenGL requirements yet.

Share this post


Link to post
9 hours ago, ketmar said:

oops. i forgot to set one flag, and the animation broke. there is nothing wrong with your map, it's my fault. fixed, thank you! will work again in the next build.

Ah ok, cool!

 

In other news, I found out I'm going to have to update the launcher a bit once again. I never finished the map selections per IWAD. eg the amount of maps that should be displayed when a given IWAD is selected. (most are fine though on iwad selection)

I'd also like to have it so it would auto populate with some default settings (on first run), at some point. ~ which would require detected exe and iwad without user input. It's a small launcher but there's needs to be more going on there than one would expect.

Hopefully it will be ready sometime after next build. ;)

 

Edited by Mr.Rocket

Share this post


Link to post
21 hours ago, ketmar said:

it's sad that your GPU cannot do it in realtime, tho. i think you already tried it, but just in case: setting "shadowmap blur" to "none" may give you a noticeable FPS boost. bluring is quite expensive even for newer GPUs, and may be a total killer for older ones (shader code contains alot of conditional branches, and older GPUs are not very good at such code).

 

sadly, this is prolly as much as i can do to make it faster. the shader is already a freakin' mess of almost unmanageable inlined copypasta. also, shadowmaps are quite demanding to GPU memory bandwidth too. there's almost no thing i could do with that while staying OpenGL2.1-compatible. and i don't want to bump OpenGL requirements yet.

Luckily, I didn't have to! It was because of the map pack I was using. And, out of curiosity, I ran Heretic and that, not only ran fine with Shadowmaps, getting little declines to about 40 or 45, with the most I could get was about a 50 or 55, or probably 60, which is great in my books, but also looks awesome. I would say gorgeous, but there are not a lot of dynalights. However, the lighting from the wand and the torches illuminating the world, unlike DOOM, makes it the best and only way to see if Shadowmap runs on your PC.

Share this post


Link to post

without bilinear bluring it should be solid 60, i believe. yet i'm playing with bluring too, because little slowdowns are almost unnoticeable.

 

1 hour ago, YeOldeFellerNoob said:

I would say gorgeous, but there are not a lot of dynalights. However, the lighting from the wand and the torches illuminating the world, unlike DOOM, makes it the best and only way to see if Shadowmap runs on your PC.

yeah, Hexen and Heretic augmented with strategically placed dynlights should look awesome. that fantasy medieval setting begs to be lit by various flickering lights, and for scary shadows. ;-) maybe someday somebody will do that. maybe after i'll implement in-engine tools to edit lighting in real-time.

 

p.s.: also, if you really want to play some GZDoom mappack with alot of dynlights, you can turn off shadows with "r_shadows 0" console command. sure, there is little sense in doing that, and it's prolly better to simply use GZDoom for such maps, but just in case you want to... (there is menu option for that somewhere too, but i forgot where it is. ;-)

Edited by ketmar

Share this post


Link to post
Guest
This topic is now closed to further replies.
×
×
  • Create New...