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

k8vavoom: no good thing ever dies!

Recommended Posts

45 minutes ago, ENEMY!!! said:

Reading your post it looks as if you thought I wanted you to make k8vavoom compatible with Supercharge 2.8.

ah, sorry, it's my bad wording again. i mean, i found an excuse to rant about something, and used it to the full extent. and of course, in the process of writing my rant, i completely forgot what started it. ;-)

 

so no problems, it wasn't directed at you at all. i understand that you're trying to run various things, and reporting your findings. thank you for that! and i tried to explain why i cannot be of much help to you with making mods work with k8vavoom (except if you'll provide me with a small test case which shows off the bug/incompatibility). i'm sorry that my train of thoughs somewhat lost its railway. ;-)

 

but if you have any questions about DECORATE and k8vavoom that i can answer without diving into mod sources, i'd be happy to answer.

Share this post


Link to post

@Remilia Scarlet it looks like painting. actually, all your screenshots looks like paintings. paintings you can walk inside -- magic! ;-)

 

i wonder if 3d platforms will fit this project. the first version is almost finished, and i hope to finish the docs on the next week.

Share this post


Link to post
4 minutes ago, ketmar said:

i wonder if 3d platforms will fit this project. the first version is almost finished, and i hope to finish the docs on the next week.

I just figured out how to use the 3d polyobjects from reading the source and building a recent-ish commit.  The answer, after testing it in one of the production maps, is "definitely".

Share this post


Link to post
31 minutes ago, Remilia Scarlet said:

I just figured out how to use the 3d polyobjects from reading the source and building a recent-ish commit.

so i can skip writing documentation. great! ;-)

 

be careful, tho -- some things may change, and ACS API will definitely change. but the basics should be stable: 2-sided impassable lines, directed outside of pobj (it is important), and "spawn 3d" thing. also, you can cheat and skip putting anchor point -- the game will use something near the center of the object in this case. ;-)

Edited by ketmar

Share this post


Link to post
2 hours ago, ketmar said:

2-sided impassable lines

Do you have the "3D midtexture" flag? ZDoom uses that for its (much more limited) 3D polyobject collisions, and it'd make a little bit more sense than the impassable flag since it implies collision only along the height of the texture, instead of implying infinite vertical collision.

Share this post


Link to post
34 minutes ago, Gez said:

Do you have the "3D midtexture" flag?

yes, but it is processed slightly differently.

 

34 minutes ago, Gez said:

it'd make a little bit more sense than the impassable flag since it implies collision only along the height of the texture, instead of implying infinite vertical collision.

3d pobj is a sector internally. midtex can be used to limit its initial height, but it's the lines and the actual sector height that blocks movement/LOS, not the texture. look at 3d pobj as a "sector turned inside out" (i.e. solid inside). this is how the engine sees it, and this is how its flats are working (base sector ceiling is 3d pobj floor -- the top flat, and base sector floor is 3d pobj ceiling -- the bottom flat). from this PoV, using ML_BLOCKING flag have a perfect sense, i think. (and, coincidentally, this is how the engine interprets the flags too.)

 

p.s.: can i expect "Spawn 3D Polyobject" thing in the next SLADE? ;-) this is the only map editor i can use for UDMF editing (Eureka UDMF support is not finished). i can send you the patch for configs later (currently i simply put it into "ZDoom things" config, dunno if one two additional things worth creating a brand new configuration).

Edited by ketmar

Share this post


Link to post
32 minutes ago, ketmar said:

p.s.: can i expect "Spawn 3D Polyobject" thing in the next SLADE? ;-) this is the only map editor i can use for UDMF editing (Eureka UDMF support is not finished). i can send you the patch for configs later (currently i simply put it into "ZDoom things" config, dunno if one two additional things worth creating a brand new configuration).

The way the configs are handled in SLADE, a separate config for K8Vavoom wouldn't be much of a problem. I'd recommend doing one if you start having your own UDMF namespace. Though in the meantime it's okay to put it in the ZDoom config, but I'd suggest putting the port name in parenthesis, e.g. "3D Polyobject Spawn Thing (K8Vavoom)" so that it makes it easier to split the configs later without forgetting things and also to avoid people getting confused why things in the ZDoom config don't work in ZDoom and aren't documented on the ZDoom wiki.

Share this post


Link to post

@Gez got it, thank you.

 

actually, k8vavoom already recognizes "k8vavoom" UDMF namespace, and it will be used later at least for light control ("don't cast shadow with this linedef" and such).

Share this post


Link to post

I've got in touch with DavidN (author of BDLite) at the ZDoom forums and I will indeed be creating my own k8vavoom compatible fork over the coming weeks/months.  My idea is similar to that behind Tango's Supercharge, it will be a base for my own projects but will also be a resource for other modders that will work with k8vavoom as well as GZDoom (and possibly other source ports as well, but it probably won't play well with Eternity Engine for instance).  I'm aware that "real life" can get in the way of these things and it's the first time I've taken on something like this, so I don't know how rapid progress will be, but it's an exciting prospect.

 

A quick question regarding 3D polyobjects, do you know if they'll also work in Ultimate Doom Builder?

Edited by ENEMY!!!

Share this post


Link to post
48 minutes ago, ENEMY!!! said:

I've got in touch with DavidN (author of BDLite) at the ZDoom forums and I will indeed be creating my own k8vavoom compatible fork over the coming weeks/months.

great! good luck with your project! DavidN is a very nice person (we talked several times on ZDoom forums, and he fixed some bugs i found ;-), and i'm ready to answer your questions too.

 

48 minutes ago, ENEMY!!! said:

A quick question regarding 3D polyobjects, do you know if they'll also work in Ultimate Doom Builder?

any editor will do, as long as it can edit maps in hexen and/or UDMF formats. i.e. yes.

 

but there are two new things to use, so you'll have to add them to UDB somehow (i guess there is some config with known thing ids there). i.e. the difference is that instead of the standard "spawn pobj" thing you'll have to use "spawn 3d pobj" thing. and you have to follow some simple rules with your 3d polyobjects. 3d pobj shape doesn't matter, tho (as long as it is a valid sector shape without self-intersections and holes).

 

don't worry, i will publish the documentation later. there is nothing really new you have to learn. well, except new thing, and some new ACS API to move your 3d pobjs vertically. yet standard ACS API for polyobjects will work too -- it just doesn't have a way to change pobj height, but if you don't need to change height, it is ok to use the old API.

 

p.s.: yes, that means that you can create swinging doors as you used to with "normal" polyobjects, and they will work as expected. only they will be fully 3d. ;-)

Edited by ketmar

Share this post


Link to post
33 minutes ago, ketmar said:

but there are two new things to use, so you'll have to add them to UDB somehow (i guess there is some config with known thing ids there). i.e. the difference is that instead of the standard "spawn pobj" thing you'll have to use "spawn 3d pobj" thing. and you have to follow some simple rules with your 3d polyobjects. 3d pobj shape doesn't matter, tho (as long as it is a valid sector shape without self-intersections and holes).

 

That sounds promising.  Yes, in UDB there are various configuration files that allow you to add new thing IDs to the editor, I've used that to create custom coloured keys for example, and polyobjects are covered under "Hexen linedefs" and "ZDoom linedefs" there.

Share this post


Link to post

short status update: don't worry, everything is ok. it is just 3d pobj implementation triggered the rewrite of LOS, light trace, and (partially) coldet code, then i wanted to finish t-junction fixer, and it triggered rewrite of surface manager in renderer, then i wanted to implement some small texture feature, and it triggered texturemapping rewrite...

 

this build will prolly have more internal changes than many other builds combined. it shouldn't be visible to you, but it makes future improvements and fixes easier for me. i cleaned up, partially rewrote and commented parts of the engine i mostly needn't to touch before. the base Vavoom design is still mostly there, but cleaner, faster, and better documented.

 

anyway, all those things combined caused some delays. sorry. it's not some hard 3d polyobject problems i am desperately trying to solve, just a normal maintenance routine. we'll back soon, do not adjust your sets! ;-)

Edited by ketmar : typos

Share this post


Link to post
On 4/6/2021 at 5:13 PM, ketmar said:

p.s.: still no dedicated k8vavoom doomwiki page? i disappoint.

*ahem*

 

Also check your PM ;)

Share this post


Link to post

@Redneckerz thank you alot! but i think i should be more careful with my jokes next time. some genie may grant me my wish in a less kind form. ;-)

Share this post


Link to post
3 hours ago, ketmar said:

@Redneckerz thank you alot! but i think i should be more careful with my jokes next time. some genie may grant me my wish in a less kind form. ;-)

It isn't a joke when your port differs significantly from its spirit animal, has several mappers play ball with it, and you graft completely unique features of its own into it. If anything else, it was overdue. ;)

 

The only thing i have not added in yet is a history of the port itself, primarily because thats a ton of research i simply had no time for. My apologies.

 

PS: Ill address your PM later on.

Share this post


Link to post
1 hour ago, Redneckerz said:

The only thing i have not added in yet is a history of the port itself

it is basically like this: i always loved Vavoom, and i thought that it is The Best. Janis stopped working on Vavoom. i waited, and waited, and waited, and then decided to make my little (and private) fork. and then i read the topic on DW, "which sourceport you want to see resurrected" (or something like this), and somebody said "Vavoom" there. then i decided to finally register at DW, and make k8vavoom public.

 

some more history follows.

Spoiler

 

at first i had no way to build it for windows, but then i tried MXE crosscompiler, and it worked. that's how the first windows public build appeared.

 

most of the work at "private times" was done on extending VavoomC compiler (because i love to write compilers). when i went public, i started to improve DECORATE support, and added parsing of some [G]ZDoom textual lumps.

 

i also made stenciled renderer actually playable (from ~40 FPS at E1M1 to 80+). added proper tracing to lightmapped dynamic lights (so they start casting shadows too; it was too slow 15 years ago, but now it is working with acceptable speed). added updating of lightmaps when some static light has moved (most Doom decoration lighting converted to static lights, for example, so the engine will be able to precalculate lightmaps for those). added lightmap cache, so it won't be necessary to relight the map on game load.

 

i also added Teh Official Way to load VavoomC mods, converted most menu definitions to text files, and did alot of other cleanups. also, fixed some long-standing Vavoom bugs, like things using cylinders for hitscan detection, not boxes (and hitscan attacks didn't check the adjacent blockmap cells). implemented support for GZDoom-style 3d floors.

 

btw, k8vavoom supports sound in Opus format. also, it doesn't support sounds in MP3 format, only music (i disabled MP3 sound support due to problems with proper detection of MP3 files).

 

this might be enough for small history section at wiki. feel free to ask more questions if you need.

 

and thank you again for creating the article!

 

 

Share this post


Link to post
13 hours ago, ketmar said:

i disabled MP3 sound support due to problems with proper detection of MP3 files

Ha, yes it's quite an annoying format to quickly validate or invalidate.

Share this post


Link to post

@Gez, oh, while you're here. i created k8vavoom configuration and UDMF namespace in SLADE 3.1.12 (by copying and renaming ZDoom configs). everything is working perfectly except one thing: there is no light in 3d preview. i mean, regardless of sector light level, everything is pitch black. it works with ZDoom config, tho. of course, i don't expect you to remote debug it for me, but maybe i simply missed some obvious thing?

 

i literally copied "zdoom.cfg" to "k8vavoom.cfg", and changed "port", "name" property, "udmf_namespace" property, and added some new UDMF property definitions. ah, yes, i copied "props_zdoom.cfg" to "props_k8vavoom.cfg" too (and included it in main config).

Share this post


Link to post
2 hours ago, Gez said:

Most probably because of the hardcoded namespace check here:

oh, i see. thank you! not that i can rebuild the sources, tho, so i think i'll simply hack zdoom part for now.

Share this post


Link to post

and some more news: the new build will come with experimental game controller support. no force feedback yet, tho, sorry. it is also possible to set up to 4 bindings via options menu now. controller hotplugging should work, but if you have more than one controller attached, you cannot select which one you want to use yet (at least not with hotplug ;-). you can choose which analog stick you want to use for movement, and which one for turning/vertical look, and controller buttons can be bound in the binding configuration menu.

 

as i absolutely don't understand how people are playing Doom (or anything else ;-) with controllers, i will expect your feedback -- i don't really know what you want to be configurable, and how.

Share this post


Link to post
On 4/13/2021 at 7:17 PM, ketmar said:

it is basically like this: i always loved Vavoom, and i thought that it is The Best. Janis stopped working on Vavoom. i waited, and waited, and waited, and then decided to make my little (and private) fork. and then i read the topic on DW, "which sourceport you want to see resurrected" (or something like this), and somebody said "Vavoom" there. then i decided to finally register at DW, and make k8vavoom public.

Well, Vavoom is certainly an interesting port from the get go as it turns to Doom from a completely different angle than most ports do.

On 4/13/2021 at 7:17 PM, ketmar said:

 

some more history follows.

  Reveal hidden contents

 

at first i had no way to build it for windows, but then i tried MXE crosscompiler, and it worked. that's how the first windows public build appeared.

 

most of the work at "private times" was done on extending VavoomC compiler (because i love to write compilers). when i went public, i started to improve DECORATE support, and added parsing of some [G]ZDoom textual lumps.

 

i also made stenciled renderer actually playable (from ~40 FPS at E1M1 to 80+). added proper tracing to lightmapped dynamic lights (so they start casting shadows too; it was too slow 15 years ago, but now it is working with acceptable speed). added updating of lightmaps when some static light has moved (most Doom decoration lighting converted to static lights, for example, so the engine will be able to precalculate lightmaps for those). added lightmap cache, so it won't be necessary to relight the map on game load.

 

i also added Teh Official Way to load VavoomC mods, converted most menu definitions to text files, and did alot of other cleanups. also, fixed some long-standing Vavoom bugs, like things using cylinders for hitscan detection, not boxes (and hitscan attacks didn't check the adjacent blockmap cells). implemented support for GZDoom-style 3d floors.

 

btw, k8vavoom supports sound in Opus format. also, it doesn't support sounds in MP3 format, only music (i disabled MP3 sound support due to problems with proper detection of MP3 files).

 

this might be enough for small history section at wiki. feel free to ask more questions if you need.

 

and thank you again for creating the article!

 

 

I like your idea of history as its completely different from mines :) Thanks. I grabbed some details and updated the wiki entry accordingly on this.

On 4/14/2021 at 7:09 PM, BlooDaBeast_OG said:

how do you set this thing up?

Depends. What are you using? Windows? Or Linux?

 

For Arch Linux, there is a guide available.

10 hours ago, ketmar said:

as i absolutely don't understand how people are playing Doom (or anything else ;-) with controllers, i will expect your feedback -- i don't really know what you want to be configurable, and how.

You also aren't familiar with the Xbox 360 standard controller scheme that most shooters on the platform use?

 

Will get you your PM later :)

Share this post


Link to post
2 hours ago, Redneckerz said:

You also aren't familiar with the Xbox 360 standard controller scheme that most shooters on the platform use?

for me, any scheme with a controller is simply unplayable. also, it is usually very easy to see if some shooter video was made with a controller: camera movement patterns are very... distinctive (and limited).

 

of course, in the usual [k8]vavoom style, almost everything will be configurable. but yeah, i'd like to add some common scheme, so most people could simply plug their controller and play. i'll be very grateful for some standard schemes people are using to play Doom.

 

p.s.: also, Vavoom is the only freestep Doom sourceport out there, afaik. other sourceports run playsim in 1/35 steps, and then interpolate everything. yet Vavoom interpolates only "forced" monster movement (which comes from state machine actions). everything that is controlled by velocities is running with the actual framerate, so falling things, lifts, doors, etc. are moving exactly by the amount they should move between frames. i.e. "free smooth movement". ;-) this is what Quake does, and Janis converted the whole Doom playsim to this logic.

 

this is also the reason i hardcapped FPS to around 200. with higher FPS floating point errors starts accumulating, and with VERY big FPS values the whole physics simulation can totally break.

Edited by ketmar

Share this post


Link to post
On 4/16/2021 at 1:48 AM, ketmar said:

ll be very grateful for some standard schemes people are using to play Doom.

The standard scheme i think should be

 

Left analog = movement

Right analog = looking

X (bottom button on your right hand) = Use

Triangle (top button on your right hand) = Automap

L1 (left shoulder) = previous weapon

R1 (right shoulder) = next weapon

L2 (left trigger) = run

R2 (right trigger) = fire

Start (right button above analog stick) = pause

Select (left button above analog stick) = open menu

 

 

 

I think that's pretty much how it is on the Unity port. Leaves some of the buttons free to do whatever with.

 

Also don't forget force feedback ;)

 

 

Share this post


Link to post
1 hour ago, Muusi said:

The standard scheme i think should be

thank you! yeah, that may be good defaults. they're still "too vanilla", tho -- dunno if it is a big problem or not. i mean, even built-in BDW mod is using "reload" action, and many mods are using "alt-fire" too (Zan, for example).

 

1 hour ago, Muusi said:

Also don't forget force feedback

it is quite problematic to implement logic-wise. see this discussion on zdoom forums, for example. there is simply no way to make it work reliably without manually checking/modifying each mod in existance. more "vanilla-ish" ports can get away with this, because their modability is limited, but even there dehacked can confuse the engine quite alot.

 

i'm not yet sure if i want to write alot of code to have a broken/half-working implementation as a result. so this feature is put on hold until i (or somebody else) will come up with some acceptable solution. sorry.

Share this post


Link to post

added yet another feature to 3d polyobjects: top texture can be used as railing. (thanks id0 for the crazy idea ;-)

Spoiler

fnzux3.png

 

here, the lower platform has top textures set to MIDGRATE. linedef "clip midtex" flag is abused as "top texture is blocking" (that flag is useless with hw rendering anyway). there is currently no way to specify top texture height, so it will always be fullheight. this may be changed in the future (technically it is not hard, i just don't have a good place for that arg). also, such textures currently don't block projectiles/hitscans.

 

of course, you can add some decorations as bottom textures too. like vines, or hanging wires. bottom texture is not blocking in any case, it is purely decorative.

Edited by ketmar

Share this post


Link to post

hi. hope all is well on your side of the world.


small requests for consideration:
* could you add a chevron/caret as one of the crosshairs? i made one below using an app called [ms paint]. sorry, i am not good in IT stuff.

Spoiler

vHcicik.png

* could the center for the overlayed automap be toggle to have a mini version? the mini version of the automap could be moved anywhere on the screen (via coordinates in k8vavoom options) and the display area of the automap be customised (via size parameters in k8vavoom options) like the mini-automap in the screenshot below? the mini automap could also be zoomed. 

Spoiler

s01radR.png

 

some ideas for consideration:
apart from dazzling lighting effects, perhaps k8vavoom could distinguish itself more from other source ports? like...
* capable of running the biggest most complex map for classic doom. for example, a true to scale 20x20 miles (400 square miles) open-world map (read "open-hell" map) on a low end computer. the likes of game [just cause 3], etc.
* the maps could have weather cycles, wind effects (have debris flying, moving fog, etc).
* advanced physics like glass shattering, rocks breaking, water ripples, etc.
 

a big thank you for the awesome work done on k8vavoom and in advance for future works on this awesome source port.

Edited by saibog

Share this post


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