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

k8vavoom: no good thing ever dies!

Recommended Posts

by the way i added built-in support for chex (original wads, and chex3; not heavily tested, though), and for hexen deathkings of this-name-is-too-long. sure, you were always able to run hexdd by simply adding it to a command line, but now it has an official option (-hexendd), and the game will know that it should look for hexdd.wad where other iwads live.

 

otherwise, nothing interesting happens: i am still cleaning up and rewriting the code, so i had to resort to a cheap trick of implementing some one-line decorate actions just to fill the changelog.

 

p.s.: also, "games.txt" (the file that is used to describe various games -- iwads, filters, etc.) has a new format now. because it is fun to break things, of course. and because old format sux. and new format can be parsed by any external utility without figuring out all the commands, because it has consistent syntax, and non-optional command terminators.

Edited by ketmar

Share this post


Link to post

@ketmar I have a small issue with one of my mods: Randomized Roguelike map generates the map just fine, but it's completely devoid of monsters. Monsters spawn just fine in the whole ZDoom family so it seems i haven't done anything wrong.

 

What's weird, is that MAP02 spawns everything just fine, but MAP01 doesn't. Any chance you can fix this or tell me what's wrong?

 

As for the TDBots, i have updated my K8V version but the A_LookEx bug persists. The good news is that it's the last thing left to get the TDBots (v14 at least) fully working in K8Vavoom, as everything else works just fine.

Share this post


Link to post

@-TDRR- i'll take a look. i still didn't looked into `A_LookEx()` issue too. i remember that RRM was working fine some time ago, so it looks like i broke something...

Share this post


Link to post

@ketmaris there a tutorial on making custom enemies with VavoomC? Also are you able to add vavoomc enemies as separate wads or do you need to write them into the main game code and compile it as a separate "game" like you have to do with quake?

 

edii: oh also do you know of any good k8vavoom vavoomc tutorials

Share this post


Link to post

@therektafire no, there are no tutorials yet -- i still have to write them. ;-)

 

sure, you can create wads with new VavoomC code. creating new actors is not really different from creating other VC customisations. this is basically a normal "server VC mod". also, the whole VC code is compiled by the engine when you run it, so you don't have to run a separate compiler, a-la ACS.

 

but to write something that is not possible with decorate, you have to know how the game works, and be familiar with it's internal API. it is not that easy, because there are some quirks, and things like "you have to do it in this way only, even if it looks like you can do it in another way".

 

i am planning to write some tutorials, but tbh, it is not a high priority task. i'd prefer people to use decorate anyway, to keep things compatible with other sourceports. that is, you have to be absolutely sure that you only want to target k8vavoom if you'll go VavoomC route. ;-)

 

of course, one can try it out of sheer curiousity. but for now, you're on your own with this. you can take a look at bdw/gore mods to see how they're added their VavoomC code, and look into progs/ to learn other things. alas, this is all we have now.

 

p.s.: VavoomC itself is quite similar to other C-like languages, though. it is also statically typed (like ASC), and its basic syntax is mostly compatible with C. there is also this text that briefly describes some VC syntax.

Share this post


Link to post
56 minutes ago, ketmar said:

but to write something that is not possible with decorate, you have to know how the game works, and be familiar with it's internal API

And i'm assuming that on top of no tutorials there's no API documentation either (other than looking at the source code of course))?

Share this post


Link to post
6 minutes ago, therektafire said:

And i'm assuming that on top of no tutorials there's no API documentation either (other than looking at the source code of course))?

even more that that: the API is not guaranteed to be stable across builds. enjoy and have fun! ;-)

Share this post


Link to post

Ok Ketty, I am back for some more testing. I have downloaded the latest version and have done some hexen testing again.

 

I have attached the conlog files for the Frostshard (Mage's 2nd weapon) and Bloodscourge (Mage's 4th weapon) crashes.

frostshard conlog.zip

bloodscourge conlog.zip

 

Also I have noticed that whenever I minimize k8vavoom, it closes after a few seconds without any warning.

Share this post


Link to post

oh, i see. statusbar didn't expected "no weapon in hand" case. to be more precise, it wants to draw mana levels, but has nothing to get them from. will be fixed in the next build. thank you!

 

1 hour ago, ReaperAA said:

whenever I minimize k8vavoom, it closes after a few seconds without any warning

and nothing in logs too? (minimising/alt-tabbing on windows always was a problem for some reason; works like a charm on GNU/Linux and in wine, so i can only guess...)

Share this post


Link to post

no, it writes config only on exit (or if you explicitly asked it to do so via menu/console command). there is some logic to deactivate possible mouse capture and clear some internal variables when the window loses focus, tho. of course, i believe that it cannot cause any unexpected behaviour (which usually means that it can ;-).

Share this post


Link to post

hmm get this, when I try to alt-tab,  it simply ...

 

EDIT!

Alt-Enter:

My mistake! I was pressing alt-enter, nvl, (when pressing alt-enter nothing happens) heh.

This action is usually to toggle from full screen to window mode, and back.

Is there no default binding?

 

Alt-Tab:

Alt-tab however does minimize k8 though, which seems ok to me as alt-tab is to switch between windows in Windows o/s.

Hitting alt-tab doesn't make k8 close or anything for me, it just minimizes, which to me, still seems fine.

 

Application Window Minimize Button:

If I minimize the k8vavoom window via the window minimize button when running in windowed mode, k8 just minimizes, but still runs normally on this end. ~ it's running minimized in the background while typing this. ~ unlike the issue that ReaperAA was getting.

 

In the meantime I've tested these actions several times with the same result. 

 

 

Edited by Mr.Rocket : I really fucked up this post and had to re-write it lol

Share this post


Link to post

Hi ketmar,
We have tested our boom compatible mapset Czechbox also in K8Vavoom and we had issue with one Boom generalized action (17088).

The error message says:

"Slice index -1 is out of range (14346)"

It happens when you trigger the line with target "Shortest Lower Texture". Other targets works ok, so I've just changed the design of the trap little bit and used "Lowest Adjacent Ceiling" and it works, but maybe there is some bug with the other trigger.

Share this post


Link to post

@damned thanks for testing with k8vavoom! it is quite possible that there is a bug in the engine, or the engine is too strict following the rules. ;-) if you can provide a small sample that triggers the bug, i'll try to find out what is wrong. tbh, that boom support code is quite a mess, and it looks like at least some parts of it were copy-pasted for different actions. on top of that, i tried to clean it up without real understanding of what it does, which doesn't help too. so if you'll be able to produce a minimalistic sample, it would be of great help. thanks for dropping a note anyway.

Share this post


Link to post
On 9/12/2019 at 9:50 AM, -TDRR- said:

What's weird, is that MAP02 spawns everything just fine, but MAP01 doesn't. Any chance you can fix this or tell me what's wrong?

ah, that was fun! ;-)

 

your map spots aren't marked to spawn on UV skill. and k8vavoom's default skill is "UV", not "HMP". so no map spots were spawned, and no monsters were placed. run it with UV skill in any other sourceport, and you'll see the same effect (or on HMP in k8vavoom, and the monsters will appear).

Edited by ketmar

Share this post


Link to post
2 hours ago, ketmar said:

ah, that was fun! ;-)

 

your map spots aren't marked to spawn on UV skill. and k8vavoom's default skill is "UV", not "HMP". so no map spots were spawned, and no monsters were placed. run it with UV skill in any other sourceport, and you'll see the same effect (or on HMP in k8vavoom, and the monsters will appear).

Oh, i'm stoopid! Well sorry for that waste of time :) Thanks anyway.

Share this post


Link to post
1 hour ago, -TDRR- said:

Well sorry for that waste of time

ah, it was fun! you almost made me believe that there is a Very Strange Bug in ACS engine! i even opened the map in the editor... and still didn't noticed the missing flag. gimme more such bugs! ;-)

Share this post


Link to post
23 hours ago, ketmar said:

if you can provide a small sample that triggers the bug, i'll try to find out what is wrong.

 

Well... I tried to cut and paste just part of the map, where the line action didn't work. And suddenly after copy pasting, the same line works perfectly...

Share this post


Link to post
53 minutes ago, damned said:

Well... I tried to cut and paste just part of the map, where the line action didn't work. And suddenly after copy pasting, the same line works perfectly...

it usually means that your map has something missing. like "oops, there is no adjacent "shortest texture" sector for one of the tags", or something. Vavoom (and k8vavoom still) is very sensitive to the missing things other engines tend to tolerate. i.e. it expects a "perfect" map, without any error, even a slightest one. especially for extended actions, like boom's. this is something i usually fix when i hit it, but i need a map to see what exactly is wrong. if you can PM me a map (don't bother with additional monsters/textures/etc. if they're not required to trigger the bug), and give me "mypos" output, so i can teleport to the bad place and trigger the bug, this will be enough, i think.

Share this post


Link to post

I'm getting visual anomalies on weapons and enemies using gzd_brightmaps15.pk3, as well as visual anomalies on weapons and enemies on brightmaps_plus16.pk3, I don't notice anything odd with textures yet with either. Initial testing with latest build.

Edited by Lila Feuer

Share this post


Link to post

what kind of? i am playing with brightmaps myself (yet not some standard pack, but collected from several sources, and some handcrafted by id0 and me), and it seems to work ok. so some screenshots (with possible BIG RED CIRCLES and explanations, if it is not obvious -- and rememeber, i'm dumb!) will help alot.

Share this post


Link to post

I'll get around to it today sometime with the suggestions you've made!

E: Wow I completely forgot, I'll try and get screens ASAP.

Edited by Lila Feuer

Share this post


Link to post

Hey Ketmar!

Great work as always. This might be a sound bug related question, but polydoor sounds doesn't play in the new K8Vavoom version. I tested only with Dark Wispers: Remastered.

 

 Here is a test wad:

Test.zip

Share this post


Link to post
6 hours ago, Gunrock said:

polydoor sounds doesn't play in the new K8Vavoom version

yay, nice catch! when i implemented "multiple polyobjects in subsector", i forgot to actually remember in which exactly subsector the polyobject itself resides. that is, pobj is correctly added to subsectors' pobj list, but the engine forgot to remember that subsector in pobj itself. and therefore k8vavoom cannot play sound, because for sound system, pobj is placed "nowhere". ;-)

 

thank you, will be fixed in the next build.

Share this post


Link to post

Not really noticing anything blatantly jarring about the textures in the world, minus an exception I'll get to shortly, but the Lost Soul looks messed up from several angles (using D1SPFX19.wad and D2SPFX19.wad, from the minor sprite fixing project), the guns are most heavily affected with overlapping frames during operation, there's 'rings' around some things like the BFG's brightmaps, enemy's eyes, and operable switches in the world. SSG doesn't *seem* to overlap but it looks kinda squiggly during its initial firing frame? Oh, and a weird map error I discovered on Entryway. Regardless if it's brightmaps_plus16 or gzd_brightmaps15 I get identical results here.

shot0000.png

shot0002.png

shot0003.png

shot0006.png

shot0007.png

shot0012.png

shot0013.png

shot0014.png

Share this post


Link to post

hm. i am still struggling to see what exactly is wrong. i didn't joking when i asked you for circles and arrows to explain, because i am dumb. ;-)

 

15 hours ago, Lila Feuer said:

here's 'rings' around some things

ah, if you're talking about this (it really took me several tries until i got what you mean -- i am that dumb these days), this is intentional -- those pixels are supposed to glow, after all. you can turn it off with "options -> video -> filter brightmaps". somehow, i hate filtering on any other graphics, but brightmaps looks more natural for me this way (maybe i should implement bloom filter after all ;-).

 

and for that strange white floor: this is actually vanilla bug. ;-) that texture was always there, but hidden with vanilla floodfill bug. GZDoom tries hard to emulate that bug, for example, therefore that thing is not visible there. k8vavoom only emulates the very basic cases, enough to make most "sudden deep monster traps" aka "instafloors" work, so that thing is visible in all its glory.

 

emulating that bug in a full is a real nightmare (ask Graf! ;-), so i opted to do "just enough" to make most maps with "instarising floor" playable. another example of such thing are windows in MAP04, for example: there are missing textures, but you cannot see it due to floodfill bug. only OpenGL does not do floodfills to render flats, so we basically have to guess and render temporary fake floors in such cases. and guess/fix all possible cases is insanely hard. sorry. maybe one day i'll add more cases to render, but tbh, i don't even understand what floodfill fixing code does (althrough i wrote it myself from scratch). ;-)

Share this post


Link to post

Rosh Hashana International Coffee Day build!

i am still working on cleaning up the code, so i had to name small decorate fixes separately to make this changelog longer. expect even slower development in next monthes. but don't expect the project to die: i am far from finished with k8vavoom!

 

enjoy.

 

 

* WARNING! networking code is completely broken for now. i know it, and i will try to restore it later.

* it is now possible to do some "hard" class replacement in VavoomC code (so you can replace `EntityEx`, and override some virtual methods with VavoomC mod, for example; no docs yet, but you can ask me how ;-)
* there's no need to declare decorate actions/constants separately anymore (and VavoomC mods can extend decorate without performing extra steps)
* no more virtual decorate actions, and restored "forced self" VavoomC syntax (Janis was right, and i was wrong)
* got rid of liblzma dependency (switched to lzmasdk decoder code)
* replaced zlib with miniz
* added experimental in-engine support for Chex Quest (previously it was done with a mod)
* implemented "inventory.transfer" and "dontcorpse" decorate flags
* implemented `A_TransferPointer()` decorate action
* implemented `A_ResetHealth()` decorate action
* implemented `A_Remove()` decorate action
* implemented `A_SetDamageType()` decorate action
* implemented `A_CheckSightOrRange()` decorate action
* implemented `A_JumpIfTarget<Inside|Outside>MeleeRange()` decorate action
* implemented `A_CopyFriendliness()` decorate action
* fixed `A_LookEx()` crash bug (thanks, id0!)
* new format for "games.txt" (more flexible, more extensible, incompatible with the old format)
* added support for "Hexen: Deathkings of the Dark Citadel" ("-hexendd" CLI arg)
* reset "noclip" and "freeze" cheat flags on player respawn (this fixes invalid cheat flags on map change)
* slightly more flexible VavoomC `foreach` parser (both `ref auto` and `auto ref` are allowed now)
* nobody cares, but libvavoomc is free of ifdefs now, and is shared unchanged between the engine, vcc, and vccrun
* fixed several missing checks for empty `ReadyWeapon` (thanks, ReaperAA)
* IMGZ loader works again
* replaced IJL jpeg loader with stb_image one
* slightly better OpenAL error messages
* forgot to remember pobj subsector in pobj itself, so no sound for that pobj can be played, for example (thanks, GunRock!)

Share this post


Link to post

@Voltcom thank you! Janis built great foundation (original Vavoom) for me! and i am glad that you liked what we both did/doing.

 

i still have alot to do with network support (i broke it, but for a reason, and it will be restored; i just need some more time). and i am far from finished with engine improvements (not only in graphics department; but expect both renderers be faster and with more features too! ;-).

 

stay with us, we'll eventually have a cake (that one that is not a lie)! ;-)

 

 

p.s.: my internal todo list is huge, and i love working on k8vavoom, and i won't allow Vavoom to fade out again. at least i'll do my best on it. and it is really great to see that people like it. thank you again for giving it a try!

Edited by ketmar

Share this post


Link to post

to keep you all informed: project is alive and ok, i simply took a little vacation. something about a month or two, i guess. it's cold here, and hard to do anything anyway. ;-)

Share this post


Link to post

K8Vavoom is my favorite engine to use! It has really made me come back to mapping. Speaking of mapping, here are some more pics of Dissolution: Remastered Edition. Pic 1 is the Sacrificial Grounds, the rest are unnamed. This remaster should be done soon and is built for both K8Vavoom and GZDoom.

 

 

pic4.jpg

pic3.jpg

pic2.jpg

pic1.jpg

Share this post


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