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

k8vavoom: no good thing ever dies! (2021, Mar 04 build)

Recommended Posts

2 hours ago, ketmar said:

you can't. ;-)

 

the idea is that Vavoom C mods are extending the objects, not replacing the original source. you can inherit from the existing class, and extend it. for bots, you will need to do something like this:

 

class NewBot : replaces(BotPlayer);

 

and override any methods you want (or completely replace `BotTick()` and `OnXXX()` methods with your own).

 

note `BotPlayer` here -- this is actual bot player class that is defined for each game. `BotPlayerBase` provides common AI code, and then each game customising it. you can do the same.

 

also note `replaces(BotPlayer)` -- this does both inheritance, and works mostly like decorate "replaces" for spawning functions.

 

then you should place your replacement code in "progs/mycode", create "classes.vc" file there (this is the file that the engine will load, you should #include your other sources there), and create "loadvcs.txt" file (it is like "loadacs"). see "mods/bdw/bdw.pk3" -- it has VC mod code, and "loadvcs".

 

eh... this explanation sux. i hope you'd be able to figure it out, but feel free to ask more questions. ;-)

Ah, makes more sense that way. I'm going to try that, basically i'm just trying to completely disable the built-in bot ai so i can manipulate it via the TDBots ACS+DECO thinking loop, right now i'm doing okay with it.

 

So, what exactly do i need to replace if i want to achieve that? BotPlayer or BotPlayerBase?

Share this post


Link to post
41 minutes ago, -TDRR- said:

So, what exactly do i need to replace if i want to achieve that? BotPlayer or BotPlayerBase?

yay. you found another bug that will be fixed in the next public build. ;-)

 

for now, here's another update, and "idlebot.pk3" mod. replace old "basepak.pk3" with the new one ("basev/doom"), and then you can use "-file idlebot.pk3" to completely disable bot AI.

 

update+mod

 

Share this post


Link to post
2 hours ago, ketmar said:

yay. you found another bug that will be fixed in the next public build. ;-)

 

for now, here's another update, and "idlebot.pk3" mod. replace old "basepak.pk3" with the new one ("basev/doom"), and then you can use "-file idlebot.pk3" to completely disable bot AI.

 

update+mod

 

Wow i'm a great accidental bug hunter!

 

That's really nice of you to make the mod for me, i had it half working but i hadn't yet tracked down some of the other bot stuff (Sometimes the view jerked a bit, or the bot would jump even though i haven't coded that yet)

 

This seems to work very good, thanks. In fact, it's even better than in Zandro! No pesky aim jerking bug anymore, finally.

Share this post


Link to post
14 minutes ago, -TDRR- said:

Wow i'm a great accidental bug hunter!

yeah. so i will have some bugs fixed, and (hopefully) k8vavoom support in TDBots. two for the price of one, i love it! ;-)

Share this post


Link to post
3 hours ago, ketmar said:

yeah. so i will have some bugs fixed, and (hopefully) k8vavoom support in TDBots. two for the price of one, i love it! ;-)

So yeah, forget what i said about it working very good, i noticed the bots will never move away from where they started. Seems like A_Recoil doesn't work at all.

 

They also crash after killing them, but not 100% of the time.

 

Okay i'm giving you two options: Keep trying to fix this (again, A_Recoil and A_ChangeVelocity don't seem to work at all) and even a couple crashes i catched now,

 

Or

 

I'll rewrite it on Vavoom C, but once it's done i don't think there will be any updates (besides bugfixes) because VC is really tough to me. It won't happen yet but until i'm happy enough with the bot's featureset. (I really wouldn't want K8Vavoom's version to be so far behind the others so that's why)

 

EDIT: Hey, is this page Vavoom C Documentation still usable as a reference for K8Vavoom? That would make this way, way easier.

Edited by -TDRR-

Share this post


Link to post

hm. changing player mobj velocity should work as expected. if it doesn't, this is definitely a bug in k8vavoom that should be fixed. and crashes should be fixed too. i think that it would be better to make "common" version working with k8vavoom, so you'll have less maintenance burden. i am happy to help. you can also contact me with Tox, my Tox ID is

19E9FBD4935E8E5002EE3DB3F49985A04DCB30D13231E643DA41A00B1372271117E6545015A0

 

 

17 minutes ago, -TDRR- said:

Hey, is this page Vavoom C Documentation still usable as a reference for K8Vavoom?

yes, it is mostly usable. there is also this file with more documentation on (changed) language syntax and some added features.

Share this post


Link to post
2 hours ago, ketmar said:

hm. changing player mobj velocity should work as expected. if it doesn't, this is definitely a bug in k8vavoom that should be fixed. and crashes should be fixed too. i think that it would be better to make "common" version working with k8vavoom, so you'll have less maintenance burden. i am happy to help. you can also contact me with Tox, my Tox ID is

19E9FBD4935E8E5002EE3DB3F49985A04DCB30D13231E643DA41A00B1372271117E6545015A0

 

 

yes, it is mostly usable. there is also this file with more documentation on (changed) language syntax and some added features.

Added, right now i can't chat but tomorrow i will send you a message there.

Yeah, maybe i should just use the main version as a base, would be easier to work with.

 

Gave a quick glance at that file and it seems helpful too, will use both as they complement each other.

Share this post


Link to post
13 minutes ago, -TDRR- said:

Added, right now i can't chat but tomorrow i will send you a message there.

ok, i accepted your request there. my sleeping hours are somewhat random, so if you won't get an answer, it means that i am sleeping, and will reply when i'll wake up. ;-)

Share this post


Link to post

heh. writing timing code is hard. like... you know... hard! i managed to epically screw it, so at 40 FPS the game felt slower than at 20 FPS. ok, ok, the original was ever worser, but this is a weak excuse.

 

also, i added interpolation of mobj angles (so 3d monster models won't turn around instantly). it also interpolating angles for sprites, and it looks... fun. like, Hell Knight first raising his hand, and then he's turning to you with his hand raised, and only then he attacks. i can't stop laughing.

 

sure, it can be solved by changing sprite frame after interpolation complete, but meh. totally doesn't worth it, i think. maybe later.

 

the sad thing is that interpolations won't help 3d models at all. because without animation blending, it all still looks like shit. (with blending it will look like blended shit.)

Edited by ketmar

Share this post


Link to post
23 hours ago, ketmar said:

the sad thing is that interpolations won't help 3d models at all. because without animation blending, it all still looks like shit. (with blending it will look like blended shit.)

It hugely benefits models animated at 35fps, so IMO it would be nice to have if you can do it. But don't listen to me, i'm a terrible coder on everything i touch :P

Share this post


Link to post

@-TDRR- vavoom already interpolates animation frames (but i guess that all engines does this), and you can assign several model frames to one sprite frame/state using fractional timing. but yeah, when model changes animation from walking to shooting, for example, it looks... not perfect. ;-) yet i am not sure if blending will help much. and i am not using monster models too, and i HAET doing gfx, and i sux at writing shaders, and... and i really need a profiling subsystem. that thing is so boring to code that i fixed alot of small bugs i knew about (and was too lazy to hunt for) for a long time instead. ;-)

Share this post


Link to post
40 minutes ago, ketmar said:

@-TDRR- vavoom already interpolates animation frames (but i guess that all engines does this), and you can assign several model frames to one sprite frame/state using fractional timing. but yeah, when model changes animation from walking to shooting, for example, it looks... not perfect. ;-) yet i am not sure if blending will help much. and i am not using monster models too, and i HAET doing gfx, and i sux at writing shaders, and... and i really need a profiling subsystem. that thing is so boring to code that i fixed alot of small bugs i knew about (and was too lazy to hunt for) for a long time instead. ;-)

It's fine, Vavoom's most highlighted feature is the lighting anyways! Models aren't really good to use in Doom but i meant it could be useful for game dev using Vavoom.

Share this post


Link to post
41 minutes ago, -TDRR- said:

Models aren't really good to use in Doom

but models for pickups and some decorations looks ok, at least for me. i am playing with models for most pickups, trees, pillars, lamps, etc. they also cast shadows in stenciled lighting mode.

 

also, i am thinking about implementing shadow mapping someday. not that i really want to do it, but it will be interesting to get proper shadows from masked midtextures. and it will be possible to use sprites to cast shadows too (but i think that it will look like shit; yet i really want to try it ;-).

Share this post


Link to post
30 minutes ago, ketmar said:

also, i am thinking about implementing shadow mapping someday. not that i really want to do it, but it will be interesting to get proper shadows from masked midtextures. and it will be possible to use sprites to cast shadows too (but i think that it will look like shit; yet i really want to try it ;-).

If it helps, Sonic Robo Blast 2 already tried adding sprite shadows, and yes they look horrible. I don't have pictures but i can assure you it didn't look pleasant at all

 

The midtextures casting proper shadows are what sounds really cool though, can't wait to see that.

Share this post


Link to post

i thought about sprite shadows, and yes, it won't look good. but with shadow mapping, sprites are just another kind of masked midtexture, so no special handling required. it may look acceptable.

 

actually, i can implement proper raycasting for static lightmaps (i.e. static light sources can cast shadows from midtextures) in the existing code. maybe i'll add such experimental mode in one of the next public builds.

 

i am also thinking about increasing lightmap resolution too (or even make it variable, so moving dynamic lights can use lower resolution, for example). but this means rewriting shaders and lightmap cache implementation, and i need to experiment with various designs for this.

Share this post


Link to post
On 6/22/2019 at 8:44 AM, ketmar said:

i thought about sprite shadows, and yes, it won't look good. but with shadow mapping, sprites are just another kind of masked midtexture, so no special handling required. it may look acceptable.

 

actually, i can implement proper raycasting for static lightmaps (i.e. static light sources can cast shadows from midtextures) in the existing code. maybe i'll add such experimental mode in one of the next public builds.

 

i am also thinking about increasing lightmap resolution too (or even make it variable, so moving dynamic lights can use lower resolution, for example). but this means rewriting shaders and lightmap cache implementation, and i need to experiment with various designs for this.

 

Higher res lightmap would be amazing. The sprites casting shadows would be pretty damn cool aswell. Would you not be able to apply some sort of blue effect from the effected shadow cast from the sprite?.

Share this post


Link to post

@furyweb sorry, it is too early to talk about what exactly will be possible. i mean, i didn't even started implementing shadow maps, so i don't want to give any promises. i don't even know if i'll be able to implement shadow mapping at all yet (i am not a gfx guy! ;-). so now i think that it will be The Best Shadow Map Implementation The World Ever Seen, and i will be able to do everything. don't believe me. ;-)

 

9 hours ago, furyweb said:

Higher res lightmap would be amazing.

actually, currently lightmap resolution is derived from texture resolution. if you will turn hires textures on, and load e1m1 with HDTP, for example, you'll see hires lightmaps from lamps (and alot of bugs with dynamic lightmaps). this is a bug (and that's why i declared hires texture support buggy -- this is the main bug i have to fix), it trashes lightmap cache like crazy, fails to correctly apply lightmaps on big surfaces, and so on. tbh, i don't uderstand lightmap cache code yet (i blindly fixed some bugs there, and never touched it anymore). it looks like dynamic lightmap manager taken from Quake, but i am not familiar with that parts of Quake code too.

 

so i think that when i'll get to that code, i'll prolly redesign it, and this will be a perfect time to make lightmap resolution user-selectable. the code's already half-there, so why not? ;-)

Share this post


Link to post

also, some fun things you can do with console:

bind "i" "toggle r_allow_ambient"

now, by pressing "i" you will turn on/off map lighting. as k8vavoom has built-in flashlight (you can bind flashlight toggle key in controls menu), you can have "dark doom" mod without using any mods!

 

Spoiler

ybbpsg.png

 

Share this post


Link to post

i decided to check what's wrong with the music on windows, and... oh, shit! default windows gm.dls is so incredibly crappy, that i am almost convinced to simply turn off timidity on windows if there is no user-supplied sound font given. now i understand all your complaints about music -- this is... i have no words.

 

README.txt for the next public build will contain a link to much better sound font. i also made k8vavoom to automatically load sf2/dls file dropped alongside the exe, so all you need to do is to copy good SF2 to k8vavoom directory.

Share this post


Link to post
20 hours ago, ketmar said:

i decided to check what's wrong with the music on windows, and... oh, shit! default windows gm.dls is so incredibly crappy, that i am almost convinced to simply turn off timidity on windows if there is no user-supplied sound font given. now i understand all your complaints about music -- this is... i have no words.

 

README.txt for the next public build will contain a link to much better sound font. i also made k8vavoom to automatically load sf2/dls file dropped alongside the exe, so all you need to do is to copy good SF2 to k8vavoom directory.

i dont think gm.dls is the problem....

 

attached in the zip file are recordings of the music ingame (sorry couldnt resist shooting stuff) and playing the midi files with windows's midi player which uses gm.dls (MYEARS.ogg is ingame, msgs.ogg is windows)

Music.zip

Share this post


Link to post

this is exactly what bad soundfont does. afaik, modern windows midi players aren't using old wavetable synth with gm.dls anymore. anyway, this is it -- with sc-55 soundfont from duke4 everything sounds like your "good example", and with gm.dls it is exactly like your ear-killing example.

 

tbh, being it flaw in timidity or not doesn't really matter, as k8vavoom has only timidity as midi backend anyway. and on windows it can use only guaranteed gm.dls. as timidity seems to work ok with other dls banks, i think that something is wrong with gm.dls. but the only realistic way to fix it is to download some good soundfont, as i am unable to fix timidity, and fluidsynth API is incomprehensible for me.

 

i just didn't knew that it sounds so bad (as i have no windows system at all). sorry. for now, the only way i can help is to point to some good soundfont to download -- the one that seems to work for me, at least. as most good soundfonts are quite big, i can't include them in the distribution. and i made loading sound fonts automatic, so users can just copy the file, and run the game. i put the link into README, and i'll update the first post with the next public build too.

Share this post


Link to post
6 minutes ago, ketmar said:

this is exactly what bad soundfont does. afaik, modern windows midi players aren't using old wavetable synth with gm.dls anymore. anyway, this is it -- with sc-55 soundfont from duke4 everything sounds like your "good example", and with gm.dls it is exactly like your ear-killing example.

 

tbh, being it flaw in timidity or not doesn't really matter, as k8vavoom has only timidity as midi backend anyway. and on windows it can use only guaranteed gm.dls. as timidity seems to work ok with other dls banks, i think that something is wrong with gm.dls. but the only realistic way to fix it is to download some good soundfont, as i am unable to fix timidity, and fluidsynth API is incomprehensible for me.

 

i just didn't knew that it sounds so bad (as i have no windows system at all). sorry. for now, the only way i can help is to point to some good soundfont to download -- the one that seems to work for me, at least. as most good soundfonts are quite big, i can't include them in the distribution. and i made loading sound fonts automatic, so users can just copy the file, and run the game. i put the link into README, and i'll update the first post with the next public build too. 

im sure its not a problem with gm.dls - msgs.ogg uses windows internal midi player which uses gm.dls as a "soundfont"

 

and i have NEVER heard midis sounding as bad as that since i dropped my sound card into a bucket of water

Share this post


Link to post

unless somebody will send a patch for k8vavoom timidity, it doesn't really matter where exactly the problem is. with gm.dls the music is fucked. with most other soundfonts it is ok. so the problem is gm.dls -- either directly, or indirectly via timidity bug. it may be wrong instrument mapping in timidity -- but the core problem is gm.dls, with its cutted instrument samples.

 

p.s.: if you like it, you can say that the problem is timidity incorrectly processing gm.dls. it won't change anything -- the problem won't go away. ;-)

Share this post


Link to post

fresh friday builds! fresh friday builds! don't miss the oportunity, the number is limited!

 

i added link to SC-55 soundfont from duke4 to the first post. that soundfont is big (>50 MB), but the music should be ok with it. or you can use your favorite SF2, it may work too. if you have nothing, at least try gzdoom.sf2 from GZDoom distributives, it still sounds much better than default windows dls.

 

it looks like timidity either has some bugs in dls loading, or dls standard is underspecified (i don't know). patches are welcome. until then, you have to use custom soundfont to keep your ears safe. sorry.

 

brief changelog, as usual:

* slightly better frame timing code (the game should feel smoother)
* fixed some scripting bugs (tnx, -TDRR-!)
* fixed polyobject rendering bug (invalid subsector was used for bounds checking)
* fixed some mobj movement interpolation bugs; added angle interpolation for 3D models (you can optionally turn on angle interpolation for sprites too)
* load "zmapinfo" lump if it is present (let's hope that k8vavoom knows enough about it to do something sane here; use "-nozmapinfo" to disable)
* fixed clipping of 3dmidtex walls
* integrated 3dmidtex code into 3D floors CSG implementation, so you can have, for example, a bridge with 3dmidtex railings
* skip rendering several initial game frames, so ACS scripts with fadeins won't cause sudden blinks
* fixed missing speed limit while hovering on water
* it is now possible to swim without bunny-hopping
* implemented some missing ACSF opcodes
* initialize joystick by default (use "-joyN" to select joystick; numbering is zero-based; use "-nojoystick" to skip initialisation)
* WARNING: joystick code is totally untested!
* do not hang on loading small looped flacs as audio samples
* fixed lightmap overbrights with huge light sources
* when "better sight for monsters" is on, hitscanners (like Chaingun Guys) won't blindly shoot into walls anymore
* default fist will alert monsters only if some monster was hit, and wasn't killed (yay, stealth kills! ;-)
* fixed long-time caching bug (it wasn't immediately noticeable, but may cause infinite loops in the engine)
* cheating automap (am_cheating 2) will draw different types of things with different colors
* added color coding of ammo amount in fullscreen statusbar
* k8vavoom will automatically load SF2 sound fonts from .exe directory
 

Edited by ketmar

Share this post


Link to post

Just downloaded the latest K8Vavoom. Great progress Ketmar!!!! K8Vavoom is my favorite port to use! Also just one small thing I been doing in my continual series of remasters . I been reworking "Dark Wispers" to work better with K8Vavoom (GZDoom too). Should be done early next month.

 

Pics:

wispers2.jpg

wispers1.jpg

Share this post


Link to post

@Gunrock yay! great!

 

and it is a shame that i didn't wrote neither directional light implementation, nor in-game lighting editor yet. sadly, there is only so much hours in a day... and i am still working on profiling system (yeah, you can see how i like to work on profiler from a changelog, lol).

 

thank you for you work. and maybe you'll create even more amazing mapsets when i'll finally deliver in-engine modding tools. ;-)

Share this post


Link to post
19 hours ago, ketmar said:

* fixed some scripting bugs (tnx, -TDRR-!)

By the way, when not doing a @ mention, just put TDRR because i already had an account called "TDRR" but i lost the password to it, more or less i had to put the - but they aren't really part of the name.

 

19 hours ago, ketmar said:

* slightly better frame timing code (the game should feel smoother)

* fixed some scripting bugs (tnx, -TDRR-!)
* fixed some mobj movement interpolation bugs; added angle interpolation for 3D models (you can optionally turn on angle interpolation for sprites too)
* load "zmapinfo" lump if it is present (let's hope that k8vavoom knows enough about it to do something sane here; use "-nozmapinfo" to disable)
* fixed clipping of 3dmidtex walls
* integrated 3dmidtex code into 3D floors CSG implementation, so you can have, for example, a bridge with 3dmidtex railings
* skip rendering several initial game frames, so ACS scripts with fadeins won't cause sudden blinks
* when "better sight for monsters" is on, hitscanners (like Chaingun Guys) won't blindly shoot into walls anymore
* default fist will alert monsters only if some monster was hit, and wasn't killed (yay, stealth kills! ;-)
* added color coding of ammo amount in fullscreen statusbar
* k8vavoom will automatically load SF2 sound fonts from .exe directory
 

I appreciate all the changes, and these are my favorite ones of this update. I really like the stealth kills one, it was very stupid to punch, not make a sound at all but you wake up the entire map :P

 

By the way, i might have a few more scripting bugs to report, i'm a bit busy with some projects right now but when i get done i will tell you about all of them.

Share this post


Link to post
6 hours ago, -TDRR- said:

By the way, when not doing a @ mention, just put TDRR because i already had an account called "TDRR" but i lost the password to it, more or less i had to put the - but they aren't really part of the name.

acknowledge. ;-)

 

6 hours ago, -TDRR- said:

I really like the stealth kills one, it was very stupid to punch, not make a sound at all but you wake up the entire map :P

yeah. my idea is that monsters are used to various handfight sounds, so they don't care. what they're doing when the player punching them is screaming "HELP! HELP! I AM UNDER ATTACK!" with ultrasound or something. ;-) so if the player managed to kill the monster with one punch, the monster didn't made that call, so nobody's alarmed. it seems quite logical for me, and most of the time it doesn't change gameplay at all. but it is possible now to design levels with berserk packs and monsters looking away from player to encourage stealth tactics.

 

i am not sure if chainsaw should do the same, but it prolly should. after all, the chainsaw engine is working even in idle mode, and producing a sound. monsters are ignoring that sound, so i see no reason for them to alert on slightly louder engine sound too.

 

6 hours ago, -TDRR- said:

By the way, i might have a few more scripting bugs to report, i'm a bit busy with some projects right now but when i get done i will tell you about all of them.

sure, you're welcome.

Share this post


Link to post

do you know what feature i really hate in Doom? automap marks!

 

this feature can be incredibly useful, but the way it is implemented makes it almost useless. while i am too lazy to completely redesign it, i made some changes:

 

it is now possible to manage map marks
'n' key will hightlight next map mark.
'shift+c' key will remove either the highlighted mark, or all marks if nothing was highlighted.
i changed 'c' to 'shift+c', so you won't accidentally delete a mark.
if you deleted a highlighted mark, and then pressed 'm' without pressing 'n', deleted mark slot will be reused.

 

when i'll resume working on navigation system, i'll make a simple "compass" that will guide you to the highlighted map mark. it will not simply point in mark direction, but will try to build a sane map route.

 

let's make automap marks great again!

Share this post


Link to post
On 6/27/2019 at 4:27 PM, ketmar said:

afaik, modern windows midi players aren't using old wavetable synth with gm.dls anymore.

didnt read this before somehow

 

believe it or not, windows 10 is using the same wavetable synth used since windows 98

only update was in xp which upped the number of channels that could be playing iirc

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
×