ketmar Posted October 13, 2018 ok, now we have a perfect topic title: with a brand name, with a quote, and completely uninformative. exactly as it should be in the current year. actually, this topic is about my fork of excellent DooM sourceport Vavoom (original site). officiall Fossil repository is here. git mirror is here. (logo idea by @wrkq, artwork by ar888) FUCK ALL WARS! if you really want to know why you may want to try k8vavoom, it is becase of its unique lighting systems. k8vavoom has three renderers, one does lighting with lightmaps (think of Quake here), another does lighting with the same algorithm DooM3 is using, and third is using shadowmaps (so sprites can cast shadows too). try them all, you may like the emperor's new clothes. ;-) go to this post to see some screenshots of k8vavoom realtime lighting, and to download a demo map. yeah, no extra steps needed, the lighting simply works out of the box! by the way, Janis knows about k8vavoom, and he is happy that Vavoom is not dead. he even mentioned us on the official Vavoom site! OFFICIAL IRC CHANNEL #k8vavoom on OFTC IRC. you can use WebChat interface to connect to OFTC if you don't have IRC client. Officially Blessed k8vavoom launcher by @Mr.Rocket. it is written especially for k8vavoom, and knows k8vavoom specific options. give it a try, you may like it! and feel free to write your opinions/bugreports/requests in that thread! thank you, @Mr.Rocket! SOME K8VAVOOM CONTENT YOU MAY LIKE: Spoiler The Unending -- great map from @Remilia Scarlet. the map looks fantastic, and plays fantastic too! maps by @Gunrock Silent Steel: Remastered Dissolution: Remastered Zan: Journey to Another Dimension -- gameplay mod. PLEASE NOTE that public builds are not "stable releases". while i am pushing out new builds when i consider everything "working good enough", and not by random, the builds are still developement versions. so expect occasional bugs here and there. sorry. also, please note that k8vavoom is NOT Vavoom! i am trying to keep the spirit alive, and stick close to the original Janis' intents (as i understand it), but k8vavoom and Vavoom are not interchangeable! thanks to my high INT stats, i found a way to edit posts, and to attach files. so you can find 32-bit windows build right here! in case you wonder, it is in this post. just scroll down a little, and you will eventually find it. FOR THOSE LOST POOR SOULS WITHOUT MUSIC: you can get DooM music packs here. just download .zip archive, and use CLI argument like "-file doom2_sc55_ogg_v1.2.zip", it should Just Work. MUSIC WARNING: if you want to play original MUS files, or custom pwad music, you will need a good soundfont. default windows soundfont doesn't work good with k8vavoom. you can download SC-55 soundfont from duke4. all you need to do is unpack archive in the directory with k8vavoom.exe. the engine will automatically load .SF2 file, and your ears should be safe. sorry for inconveniences. if that is too big for you, you can try a new Miracle soundfont from @Distortion Dog. it is much smaller, and sounds good too (at least for me ;-). some interesting command line arguments for k8vavoom open spoiler to see two simple images of two k8vavoom lighting modes. please note that i deliberately chose a dull area, usually you will see much more eye candy! (see 3rd screenshot in the list) Spoiler stenciled lighting: the same scene, lightmapped lighting: Spoiler let's start with a brief overview of project goals. k8vavoom is basically my personal playground. i am not trying to chase featurefull sourceports like GZDoom, i just want something i can hack, and something i can use to play some random PWADs. yet original Vavoom supports alot of things (including two kinds of dynamic lighthing and shadowing), and it aged surprisingly well. basically, Vavoom is missing some new ACS opcodes, and some Decorate actions, but otherwise it is mostly on par with today source ports. so i am slowly adding missing things, fixing bugs, and improving (read: breaking) everything else. i must admit that i am not trying to make k8vavoom compatible with as many pwads as possible. that is, compatibility is "good enough" to play many different pwads, but AI, LOS checking, collisions and such are not set in stone. so if some map rely on exact engine behavior, it may, or may not work, and i may, or may not fix it. there are enough ports for "purists", and i prefer to keep k8vavoom open to various experiments. yet don't be afraid: i am using it to play pwads (of course!), and i am still playing at least one-two maps a day, so i won't suddenly break everything just because i can. ;-) IMPORTANT NOTE! PLEASE READ! i really-really-really-really need at least one more developer. one that knows decorate (and don't afraid to read GZDoom source to decipher what decorate action really does; but i can help here, and it is not frequently required). 'cmon, people! Vavoom C is very much like C, only better and easier! don't be afraid, i am always here to answer your questions (that is, if i know the answer myself ;-). improving decorate is fun -- you can immediately see results of your work, feedback cycle is very short (you may don't know that, but k8vavoom compiles the whole Vavoom C codebase at startup, almost 3 MB of source code! it is THAT fast!), and seeing previously broken mods working is a joy. i want to concentrate my efforts on low-level engine parts (improving Vavoom C compiler, adding JIT, rewriting renderer, writing faster GC, and such), and i really need someone to take decorate duties. if only somebody will step in, you will soon see features you've never ever seen in other engines! i have some secret plans on my table, but i am short of time -- there are too many things to do. JOIN THE DARK SIDE, WE HAVE VAVOOM C! now, a small and incomplete changelog. first things first: what i removed, for The Great Justice. Spoiler * support for non-gcc compilers is gone. * DirectX renderer is gone. * OpenGL 1 renderer is gone: k8vavoom requires at least OpenGL 2.1 with GLSL 120. * non-OpenAL sound backends are gone, and EAX support is gone (to be replaced with EFX). as for Heretic/Hexen/Strife (and other DooM-based games): i am not playing those games, so their code is mostly untested. that is, everything should work, but sometimes internal engine changes can break things, and i may not notice that for a long time. please, report broken things here or via PM: i have no plans to drop support for those games, but i need your help to keep 'em working. and some new things, in random order: Spoiler * gcc6-gcc11 compatibility. the code should be warning-less. * removed almost all windows-specific code. engine is using SDL2 for video now, OpenGL for rendering, and OpenAL for sound. no choice here. CD and MIDI backends are gone (CD in 2018? i don't think so ;-), and i am planning to add WildMidi and FluidSynth backends for MIDI playback later. note that this doesn't mean that windows support is gone! * streaming audio is decoded in separate thread now. OpenAL is thread-safe, so it was easy. it is using lightweight cross-platform thread and mutex library, with support for POSIX and windows backends. * advanced Vavoom C compiler. more optimizations, different kinds of foreach loops (with counter, over an array, and even VC-based iterators with finalizers are possible!). * support for inline delegates in Vavoom C (but they aren't closures, so they cannot access outer locals). * UFCS and paren-less call support. i.e. `42.func` is possible now, and compiler will rewrite it to `func(42)`; also, `func()` can be written simply as `func` (and this made properties obsolete, yet i kept 'em). * various syntax changes and improvements to Vavoom C, including built-in properties for Vavoom C types (float.nan is valid now, for example), and full support for string slicing. * support for `auto` in Vavoom C (works like c++14 `auto`). * in Vavoom C, `.` (dot) can be used instead of `->`; compiler is able to determine what you really want. * optional `out` arguments in Vavoom C. * on error, Vavoom C VM now prints full backtrace, with function names and even with line numbers! * and much more Vavoom C improvements! (i am a compiler guy after all!) * improved PNG codec (based on GZDoom code). * LZMA compression support for pk3 archives (not .7z!), and pk3 packed into zip (some idarchive entries are done this way) is supported now. * alot of fixes to mapinfo parser, including parsing "new-style" mapinfos, so many newer pwads are working. * also, fixes to other textual lumps (sndinfo, etc.). * cvars are kept in hash table now, so it is cheap to check cvars in Vavoom C code, no need to cache their values anymore. * various bugfixes here and there (mostly segfaults, out-of-bounds access in Vavoom C scripts, missing checks for `nullptr` objects here and there in Vavoom C scripts, etc.) * UI improvements (menus remember cursor position, scrollable menus, etc.) * autosaving on entering new level; quicksave and quickload; saved games now contans timestamp, and that timestamp is displayed in UI; all saves are in "~/.vavoom/saves/" now, but different set of mods has different save slots (i.e. each save is stamped with a list of loaded pk3 files). * wall and floor decals support! ;-) * (incomplete) "deep water trick" renderer (need more work, it doesn't do all the cases yet). but at least TNT MAP02 has a properly-looking backpack, half-merged into water pool. * UDMF fixes, so calling ACS scripts by name is (mostly) working now. * DECORATE improvements (more actions, more flags, support for random ticks...). * fixed long-standing bug inherited from vanilla: things near blockmap cells were impossible to hit with hitscan attacks. * many small bugs fixed (like missiles not hitting shootable, but non-solid objects -- you got the idea). * lightmap-based dynamic lights are properly traced now. it means that you won't see armor shining though a secret wall anymore, and flying fireball casts proper shadows from columns, for example (yet it is hard to notice ;-). * replaced glBSP built-in node builder with ajbsp. * and prolly more cool things i forgot! some future plans: Spoiler * new rendering code! i have some more ideas i want to try. (estimate release date is year 2352) * JIT compiler for Vavoom C. * adding more DECORATE features, so more PWADs will "just work". * properly documenting Vavoom C class hierarchy, and writing some modding tutorials (ha! just joking! nobody needs it anyway ;-). * other small things, like MD3 support (done), more MIDI backends (we have three now), etc. known renderer/coldet bugs: Spoiler * renderer cannot into all rendering tricks mappers put into their creations, especially into "flat leaking exploit". simple underfloor monster alcoves are mostly working, but that's basically all. * sometimes you can stuck on "sloped spikes" (yellow key pedestal in KDiZD Z1M1, for example) should be fixed now. * some "new-style" water pools are rendered incomplete/wrong. ok, i am not a best writer on the planet, and this is prolly the best i can do to introduce k8vavoom. feel free to ask me any questions. as for binary builds: windows builds can prolly be done with MSYS2 and MinGW, but the only environment i tested is MXE cross-compiling toolchain. i have no dedicated web site for a project (and no windows system at all), so windows binary attached to this post was tested only with wine. i will be updating binary from time to time. there is a small README in the archive to make your life slightly easier. put your iwad files to "iwads" directory and run "k8vavoom.exe", or check README if you don't want to copy wads. enjoy. ZDL launcher should work too. MY FAVORITE MOD IS NOT RUNNING, K8VAVOOM.EXE JUST CLOSED! WUTTA?!!! engine's decorate/acs/mapinfo support is not complete. you probably hit something unimplemented. there is "conlog.log" file with console log and error messages. you will probably find some (many) errors there. for curious: decorate scripting is not fully implemented yet. but we are working on it. just for fun: Spelunky Classic remake with k8vavoom technology! ;-) spelpub_531102.7z Android build please, consider making a bitcoin donation: bc1qwrt5t2vnhqnkzmtl725l4h8lnf9n0ed0uwa4mj why would you want to donate? open spoiler to know my reasons! ;-) Spoiler i barely have money to buy food, so your donations will allow me to eat regularily, so my brain cells will work better. it may sound fun, but it is still a literal truth. it is not for buying better GPU or something, so i can run modern AAA titles. ;-) i don't have bank account, so BTC is the only available way to accept donations for me. if you have some free money ;-), and think that my work on k8vavoom worth it -- please, make a donation. also, please note that this is not a demand of any kind. i won't stop working on k8vavoom if nobody will donate (or if donates won't hit some number, or...), i am working on k8vavoom because i love it. if you don't want to donate -- it is completely ok: play the game and don't worry! ;-) if you want to make a donation and be mentioned in project credits -- drop me a PM, and we'll find a way. ;-) thank you for reading this, and have fun with k8vavoom! 70 Share this post Link to post
andrewj Posted October 13, 2018 That is an impressive list of changes :) Function calls without parentheses seems a bit iffy to me, I remember QuakeC had some support for first-class functions (e.g. the th_pain stuff) so you need to differentiate a reference to a function from a function call. Anyway, happy hacking! 0 Share this post Link to post
ketmar Posted October 13, 2018 (edited) and, here is win32 build (see top post instead), so people can try it out! how to run: vavoom.exe -iwaddir <path-to-where-my-doom.wad-is> -doom i.e. use "-iwaddir" to specify a path to your iwads, and "-<gamename>" to select a game (-doom, -doom2, etc.) On 10/13/2018 at 11:26 AM, andrewj said: That is an impressive list of changes :) Function calls without parentheses seems a bit iffy to me, I remember QuakeC had some support for first-class functions (e.g. the th_pain stuff) so you need to differentiate a reference to a function from a function call. Anyway, happy hacking! thank you for your kind words, and thank you even more for ajbsp! and, while i am here, for eureka. ;-) as for paren-less calls and function references, it is easy: "&function" is a reference, "function" is a call. VaVoom C has support for pointers, so "&" to get function address is quite natural, i think. Edited October 14, 2018 by ketmar 0 Share this post Link to post
ketmar Posted October 14, 2018 (edited) do you know why i absolutely love to make public announces or releases? 'cause exactly after you did it, and uploaded a binary build, you'll catch the bug which makes you cry. this time it is a bug in dehacked processing: when i added optional arguments to decorate actions, i completely forgot to fix VM calls (dehacked is a "special decorate" internally). it is fixed in git, and for windows binary -- just don't load dehacked patches. for example, don't play such wads. or use "-skipdehacked" command line argument i attached fixed binary to the first post. if you're interested, there are also "-skipsounds" and "-skipsprites" arguments. i must confess that i HAET custom sounds (especially in '90 wads), so i added these. by the way, if you'll drop wads from Doom 2 Minor Sprite Fixing Project to "basev/doom/autoload", they will Just Work. as a bonus, you'll get a silent SSG in DooM 1 ("gimme" console command will do). Edited July 30, 2019 by ketmar 4 Share this post Link to post
ketmar Posted October 14, 2018 sorry for bumping the thread, i just wanted to notify people that i updated windows build, and will be updating it from time to time. so if (for some strange reason i won't even try to guess) you are interested in trying k8VaVoom on windows, you can check the first post once in a while to see if i put something fresh there. 0 Share this post Link to post
VGA Posted October 14, 2018 (edited) Works kinda fine for me at 1680x1050. That widescreen option should be moved into the Resolution menu. I had some problems with the UI not being centered but I think a restart fixed it, cause it's fine now. But how can I turn off those blood effects? It looks crap and it also makes an annoying liquid noise! Personally I REALLY think you should have some of these additions off by default or totally eliminated. If someone wants stuff like these, they will load an appropriate mod. The particles also look bad, those barrel explosions suck. The music sounds laughable but I think this will be fixed when you implement a proper MIDI library. Also I think it would be worth the effort of having the usual cmdline options to make this work with a launcher like ZDL. The -iwad parameter for example? When the allow mouse in menu option is Off, you should hide the cursor. My final suggestion is to look for redundant menu options and remove them, advanced users can set them with the console, right? Some of them just look useless for the 99.9% of users. I think your effort has potential, I will be testing future versions! EDIT: Wtf are these Elven Gifts? Edited October 14, 2018 by 𝕍𝔾𝔸 0 Share this post Link to post
ketmar Posted October 15, 2018 6 hours ago, 𝕍𝔾𝔸 said: That widescreen option should be moved into the Resolution menu. yeah, the UI is a mess. it wasn't the best one in the original, and i turned it in total chaos. i'm planning to clean it up when i'll do a new UI code. but widescreen can be moved right now, you are right. tnx! as for why current UI should be rewritten, small example: almost all menu options are directly connected to cvars, and each cvar has help text, yet currently there is no way to show that help. grrrrr! 6 hours ago, 𝕍𝔾𝔸 said: But how can I turn off those blood effects? "-nogore". i mentioned it in readme, but failed to mention what is that "ketchup mod", and that it is active by default. mea culpa. both users of k8VaVoom (yeah, we are many! no, really, exactly two, including myself) likes it that way, so it is default. i prolly will change it to opt-in for next public releases, tnx. 6 hours ago, 𝕍𝔾𝔸 said: The particles also look bad do you mean rendering, or effects themselves? anyway, particle system is the same as in the original VaVoom: i never payed much attention to it. "it works, it renders those funny dots, so be it." so if you have any ideas -- please, share. 6 hours ago, 𝕍𝔾𝔸 said: The music sounds laughable so you did managed to properly configure timidity? O_O something i still don't know how to do, lol. it "just works" on my GNU/Linux box, and never worked in wine. tbh, "add other MIDI backends" sits somewhere at the bottom of my TODO list, as i am ok with timidity sound, but if k8VaVoom (i should invent some abbrevation for that name!) will get some more users, and they will ask for it, priorities can be reviewed. 6 hours ago, 𝕍𝔾𝔸 said: When the allow mouse in menu option is Off, you should hide the cursor. do you mean game's cursor? yeah, turning it on/off on the fly is buggy. i never did it from the menu, and missed that part. tnx! as for system mouse cursor -- it is working as intended. i am usually playing in window, and that cursor is there to remind me that the game is not capturing it anymore. i prolly should hide it in fullscreen mode, though. tnx! 6 hours ago, 𝕍𝔾𝔸 said: My final suggestion is to look for redundant menu options and remove them, advanced users can set them with the console, right? Some of them just look useless for the 99.9% of users. in new UI most of them will have some help text. but you are right, most of the options are like "ok, i don't think that you will need to play with this", so they can be hidden in a far-away "super-arcane-advanced-config" menu. i won't remove them, though, 'cause those options are the only way for me to remember that i have some feature already implemented. ;-) 6 hours ago, 𝕍𝔾𝔸 said: Also I think it would be worth the effort of having the usual cmdline options to make this work with a launcher like ZDL. The -iwad parameter for example? i am not using launchers, so i just never realized that. you are absolutely right, there are zero reasons to not support those. will check what other ports and launchers have. maybe there is some description of "common cli arguments for sourceport"? or this is usual non-codified common knowledge? ;-) 6 hours ago, 𝕍𝔾𝔸 said: Wtf are these Elven Gifts? wow. almost forgot about that. this is various "cheat mode" switches. "ammo king" bumps ammo limits (to 200 shells and 400 bullets, w/o backpack). "elven gift" is to use with "-bdw". it gives you assault rifle, shotgun, and some ammo on "new game". 'cause i think that our space marine should have some real weapons, not a stupid pistol. without "-bdw" you'll get some ammo and a shotgun. pretty useless. "pain elemental attacks" is exactly what label says. i HAET lost souls, and i HAET PE. so with this option you can turn PE into harmless flying balls of pathos (the effect is the same as if lost soul limit reached in vanilla). now call me cheater, yeah! ;-) and that reminds me that i'd better turn all those gameplay-related options "off" by default (except, maybe, headshots ;-). thank you alot for your feedback! and if some of my text looks like i am trying to dismiss your criticism, that is totally not what i meant -- i just tried to explain why it was done that way. English is hard, especially when you learned it via IRC chats. ;-) all your points are noted, and changes will be made. please, give me even more criticism! ;-) 0 Share this post Link to post
VGA Posted October 15, 2018 https://zdoom.org/wiki/Command_line_parameters From all of these you should support iwad, file, warp, deh, nomonsters. Then it should work with ZDL and other launchers. Music worked out of the box but sounded very timid. I went to the options, it said it was using Timidity, well that makes sense I thought. I didn't fiddle with the music options sadly. Can I set it to use the system midi device? I am not in front of my PC. I have Coolsoft Virtualsynth installed, that should take care of all problems if I can set it to System. Also, Doom has cheat codes, no need for elfs and their shit! The cheats work in Vavoom, right? 0 Share this post Link to post
ketmar Posted October 15, 2018 13 minutes ago, 𝕍𝔾𝔸 said: From all of these you should support iwad, file, warp, deh, nomonsters. Then it should work with ZDL and other launchers. thank you! basically, only "-iwad" and "-warp" is missing, other things are there (albeit in slightly different form). 15 minutes ago, 𝕍𝔾𝔸 said: Can I set it to use the system midi device? sorry, but nope. GNU/Linux doesn't have that, and i don't have windows, so it was WAY easier for me to eliminate all traces of non-pcm audio output. so only built-in synthesizers are working, and currently i have only one -- timidity. not that i have something against using system devices, it is only about time and proper implementation. if k8VaVoom will ever get any real windows developer, we'll add that feature back. 22 minutes ago, 𝕍𝔾𝔸 said: Also, Doom has cheat codes, no need for elfs and their shit! The cheats work in Vavoom, right? built-in cheats doesn't do exactly what i want. ;-) anyway, those elven cheats actually started my fork: i didn't intended to work on VaVoom as much as i am working on it now. i only wanted to add those three cheats, and headshots hack (i originally did that hack for GZDoom, in ACS, with added ACS callback in lineattack code). but then i just couldn't stop. so it is of historical value. and putting those switches in options menu was like: "look, i can do it!" ;-) anyway, i'll move it all to well-hidden submenu when the time for UI comes. tbh, i rarely even see UI (i have set of scripts which mostly does what launchers do, so most of the time i don't have to enter menu at all), so UI sux even more than other parts of the code. 0 Share this post Link to post
ketmar Posted October 15, 2018 updated windows binary. brief changelog: * widescreen option moved to "screen resolution" menu * gameplay-breaking changes (including ketchup) are off by default in windows build * if there is only one iwad in iwads directory, it will be autoselected * if there are several iwads in iwads dir, engine will pefer DooM II iwad, then DooM iwad, then others (this can be changed with "-<game> cli arg") * %DOOMWADDIR% envvar will be used as iwad directory, if no cli option given * k8VaVoom will try to look for iwads in current directory, in binary file directory, and in various other places * added support for some standard cli args ("-warp", "-iwad", "-skill", "-nomonsters"), so ZDL (and other launchers) should be happy * when "-iwad" cli arg is given, engine will try to guess the game * you can use both full path and only wad name in "-iwad" 2 Share this post Link to post
therektafire Posted October 15, 2018 (edited) Hm, so on Windows 10 it doesn't seem like it scales to fullscreen properly if you try to run at a resolution lower than native, my laptop is really low spec so I like to run the game at a lower resolution to get better FPS but when I try to run this port at 640x480 which is my normally used resolution for both doom and quake I just get the window docked at the lower left corner with the normal windowed mode size with the rest of the screen just being completely black, this should probably be fixed in the next update if possible edit: another bug, the chainsaw "firing" sound doesn't stop properly when you do things like switch weapons or stop using it, it waits until the sound has completely played first Edited October 15, 2018 by therektafire 0 Share this post Link to post
ketmar Posted October 15, 2018 (edited) ah. i guess i know what gone wrong there, but it need some more work to check (and rewrite some small parts of video code). i'll try to fix it in next update (which should come on weekend; or sooner if i'll find some time and inspiration ;-). thank you for your report. > the chainsaw "firing" sound doesn't stop properly when you do things like switch weapons or stop using it, it waits until the sound has completely played first yeah, a known bug. i didn't put it into known bugs list, 'cause i'm planning to fix it soon, but it looks like i am too optimistic here. anyway, thanks for reporting. (honest explanation: i absolutely don't know why it is broken, lol) Edited October 15, 2018 by ketmar 0 Share this post Link to post
fabian Posted October 15, 2018 Before we kicked it out of Debian, we applied some patches to the vavoom sources. Maybe you have some use for them: https://salsa.debian.org/games-team/attic/vavoom/tree/master/debian/patches 0 Share this post Link to post
ketmar Posted October 15, 2018 thank you! from a brief inspection it looks like i fixed most of those things, and more (except misspellings -- i prolly added even more of mine). yet FreeDoom mapinfo looks like something i'll steal, 'cause i just added definitions for FreeDoom wads, but never bothered to put in proper mapinfos. it works, of course, but it isn't... "nice". ;-) 0 Share this post Link to post
VGA Posted October 15, 2018 I just played five maps of Doom 2, runs pretty well. One thing I noticed is that Imp fireballs seem to always explode above the point they hit. I know it happens sometimes because of Doom's clunky collision code, right? But even in Chocolate Doom if you go to the courtyard with the 5 imps in MAP01 and let the fireballs hit the building, in Vavoom the fireballs explode above where they should but in Chocolate Doom they explode properly. Also, when a user tests your port and loads up E1M1, then presses Space to open the first door and instead he jumps(!) ... this isn't a good look. Then soon later he will see some random "CRITICAL 10X" message on screen... Personally I think you should gather ALL gameplay changing options under 1 sub-menu and have them Off by default. Dynamic lighting is not gameplay changing and I would keep it On by default because it is the best feature of the port so far. I haven't encountered a Pain Elemental so far but I see its elven gift is On. Does that mean that Pain Elementals are nerfed by default in your port? :D Also, I tried cheat codes like IDKFA, IDFA and I tried executing "give all" in the console and ... nothing. The original games and all ports have these cheats available, the player expects to type IDCLEV19 and warp to MAP19 for example. 0 Share this post Link to post
ketmar Posted October 15, 2018 2 hours ago, 𝕍𝔾𝔸 said: One thing I noticed is that Imp fireballs seem to always explode above the point they hit i'm not sure that i got it right. sounds more like a visual glitch. but i'll compare it with other sourceports, it may be that i just used to k8VaVoom way (it looks like something i broke, not inherited from the original codebase) of doing it wrong, and thus never noticed. tnx. 2 hours ago, 𝕍𝔾𝔸 said: then presses Space to open the first door and instead he jumps(!) ... this isn't a good look ah, default settings... i am especially good at choosing good defaults, as you probably already noticed. ;-) basically, my defaults are "everybody is ketmar, lol". what defaults will you suggest instead? space to open, and... ??? to jump? or, maybe, nothing at all, so user will not accidentally jump? 2 hours ago, 𝕍𝔾𝔸 said: Then soon later he will see some random "CRITICAL 10X" message on screen... but... but i am so proud of that feature! i just cannot turn it off by default! ;-) yeah, i prolly should turn all "enhancements" off. my idea was to show people that the engine is something more than "just another doom sourceport", but now i think that i took a wrong turn here. 2 hours ago, 𝕍𝔾𝔸 said: I haven't encountered a Pain Elemental so far but I see its elven gift is On. Does that mean that Pain Elementals are nerfed by default in your port? :D "on" there means "PE attacks as it should". confusing, as all other options should be turned off to... well, actually turn 'em off. another example of my superior skills at UI design. will make it consistent with other options in one of next builds. 2 hours ago, 𝕍𝔾𝔸 said: Also, I tried cheat codes like IDKFA, IDFA and I tried executing "give all" in the console and ... nothing. The original games and all ports have these cheats available, the player expects to type IDCLEV19 and warp to MAP19 for example. console command to give things is "gimme". this, and imfunctional vanilla cheats are inherited from the original VaVoom code. i usually just type "gi" in console and press "tab", and then "gimme" appears, so i never thought that somebody mught be confused, or will have to guess a command. that's why i have love/hate attitude to public testing: knowing people expectations is interesting thing, but actually implementing 'em... is suddenly not so interesting. ;-) thank you, points taken. will try to fix it. yet i prolly won't reinstantiate vanilla keyboard cheats, and will leave "gimme" instead of "give", just to Be Different (and because vanilla cheats is PITA to implement without hardwiring 'em into C++ code; i'll think about making VaVoom C hooks for such things). 0 Share this post Link to post
VGA Posted October 15, 2018 (edited) Thanks for taking my suggestions into consideration. I am the 33% of the userbase after all. GZDoom by default has the Jump control set to "PAD_Y", obviously a gamepad button, so I guess you should leave it blank, if someone really wants to, they can set it to a key. Jumping breaks 100% of official maps and 99% of unofficial maps. Only a miniscule percentage of maps are created with jumping in mind. Since cheats don't work please consider implementing at least some of them as console commands/aliases, like idkfa, idfa, idclevxx, that should be easier than getting them from the player's input during gameplay. I tried loading Back To Saturn X Episode 1 and Vavoom just closes, I even ran it from a cmdline and there was no error message there! Also, what happened to the wipes at the start and end of levels? And what does the Renderer option do? Also which bit depth should I use? Does it help if you take a look at Chocolate Doom's "Native MIDI" support? Is it a lot of work to support that on Windows? Edited October 15, 2018 by 𝕍𝔾𝔸 1 Share this post Link to post
ketmar Posted October 15, 2018 (edited) 54 minutes ago, 𝕍𝔾𝔸 said: Thanks for taking my suggestions into consideration. I am the 33% of the userbase after all. yeah. how it feels to be a someone with VIP support account? ;-) 54 minutes ago, 𝕍𝔾𝔸 said: so I guess you should leave it blank that's what i thought too. as you said, jumping is not something that used alot in DooM world. that wheelchair has no jump springs. 54 minutes ago, 𝕍𝔾𝔸 said: consider implementing at least some of them as console commands/aliases, like idkfa, idfa, idclevxx nice idea. will do. 54 minutes ago, 𝕍𝔾𝔸 said: I tried loading Back To Saturn X Episode 1 and Vavoom just closes, I even ran it from a cmdline and there was no error message there! it actually reports an error in "mapinfo", and in Wine it reports it to my terminal, but it seems that on real windows it cannot say anything. this is small parser bug, i'll fix it for the next release. if there is nothing more "unnatural" in BTSX, it will work. if you're interested, parser is confused by the comma in "sky1 SKY1TALL, 0". VaVoom mapinfo parser is really outdated, and i never bothered to properly fix it, only added some hacks to parse mapinfos from some random wads i tried. somehow, i never tried BTSX with k8VaVoom. 54 minutes ago, 𝕍𝔾𝔸 said: Also, what happened to the wipes at the start and end of levels? they were absent in the original VaVoom OpenGL code, and i didn't wrote 'em too. one day i'll implement them -- now i have FBO with rendered picture, so it isn't that hard. 54 minutes ago, 𝕍𝔾𝔸 said: And what does the Renderer option do? VaVoom (and k8VaVoom) has two renderers: one with lightmapped lighting ("regular" one), and one with DooM3-style stenciled lighting ("advanced" one). you have to restart a level (or reload a save) to switch to a new renderer after changing the menu option. yet "advanced" renderer is REALLY slow (it can drop to 30-40 FPS even on E1M1), so i don't recommend it. besides, i think that lightmaps looks better (and lightmapped dynamic lights even casts shadows from level geometry -- it is hard to notice, but it is there). i am planning to write a new rendering backend, which should be much faster with both "regular" and "advanced" renderer. but while it is not there, you'd better stick to "regular" renderer. "regular" will get some major speedup with dynamic lights (now shadow casting may seriously affect FPS if there are alot of Lost Souls, or barrels on screen) soon (i hope ;-). the worst thing with "regular" renderer in the original VaVoom was that armor/health powerups were shining thru secret walls, thus making many secrets obvious. in k8VaVoom, if you turn options->video options->advanced->properly clip dynlights ON, dynamic lights will be properly clipped by secret walls (at least that is how it should work ;-). as for bit depth, it doesn't matter much. i think that you're using 32-bit videomode anyway, so 32-bit will do. i don't even remember if it matters at all. stick with 32-bit depth, and i'll take a look at it, and will set a reasonable default for next builds. 54 minutes ago, 𝕍𝔾𝔸 said: Does it help if you take a look at Chocolate Doom's "Native MIDI" support? Is it a lot of work to support that on Windows? sadly, that prolly won't help. currently, k8VaVoom doesn't like the idea of passing midis (or any other sound data) to external drivers. it wants to synthesize PCM sound by itself, with its own synthesizers. i.e. the whole sound subsystem expects to get PCM data it can process and play with OpenAL-soft. and sound backend should be thread-safe too (OpenAL is thread-safe by design). original code had some support for other MIDI devices, but i didn't had enough resources to make sense of it, so i removed it, and simplified sound backend alot. i will try to look at how it is done in Choco, but don't hold your breath. p.s.: yeah, after two hackfixes in mapinfo parser, BTSX seems to work. at least it loads, and i can run around the first level. Edited October 15, 2018 by ketmar 0 Share this post Link to post
VGA Posted October 15, 2018 Then the Renderer options should be named: "Lightmapped lighting (recommended)" and "Stencil lighting" Regular and Advanced are more confusing. 16-bit depth seems redundant, you should consider killing it, this is 2018! Next binary you post, I will start a playthrough of the current DWmegawad Club target, which is Doom 404, which has nice small maps. Why doesn't it print to the windows console? I see it is compiled as a Windows GUI executable, not as a console application. I think in this case you need to manually allocate a console. Or at least MessageBox fatal errors/exceptions? 0 Share this post Link to post
ketmar Posted October 15, 2018 so, BTSX works now. there are some rendering glitches here and there (looks like "flat floodfill exploits", not much), but i made a quick run for first two maps, and it seems to be playable. 12 minutes ago, 𝕍𝔾𝔸 said: Then the Renderer options should be named: "Lightmapped lighting (recommended)" and "Stencil lighting" Regular and Advanced are more confusing. yeah. it was named this way in the original, and... see a note about my UI skills. will do. 12 minutes ago, 𝕍𝔾𝔸 said: 16-bit depth seems redundant, you should consider killing it, this is 2018! actually, this whole thing seems to be redunant these days. even intel wannabe-GPUs can do 32 bits. 13 minutes ago, 𝕍𝔾𝔸 said: which is Doom 404 it looks like it is a nice mapset, yet it is uploaded to googledrive, so no-no for me (i am not using file hosting services where i cannot get a direct download link without javascript, for religious reasons). 18 minutes ago, 𝕍𝔾𝔸 said: Why doesn't it print to the windows console? 'cause i don't have windows, and in wine it prints to terminal. i.e. i never knew that it doesn't work. ;-) i will prolly dump it to text file for windows target. 20 minutes ago, 𝕍𝔾𝔸 said: Or at least MessageBox fatal errors/exceptions? yeah, standalone script runner does this, but i forgot to backport that code. tnx, will do. thanks for all the testing and suggestions. 0 Share this post Link to post
chungy Posted October 15, 2018 14 hours ago, ketmar said: thank you! from a brief inspection it looks like i fixed most of those things, and more (except misspellings -- i prolly added even more of mine). yet FreeDoom mapinfo looks like something i'll steal, 'cause i just added definitions for FreeDoom wads, but never bothered to put in proper mapinfos. it works, of course, but it isn't... "nice". ;-) If you do add it, please make sure to spell Freedoom correctly :) Capital F, lowercase d. 0 Share this post Link to post
andrewj Posted October 16, 2018 12 hours ago, VGA said: Why doesn't it print to the windows console? I see it is compiled as a Windows GUI executable, not as a console application. I can answer that. In Windows, a program is either a console program or a GUI program. Console programs can print to the console, and GUI programs cannot. It is a really stupid system, but that is how it is. 1 Share this post Link to post
ketmar Posted October 16, 2018 5 hours ago, VGA said: GUI programs can AllocConsole just fine. yet there is no way to hide it. if i'll create standard windows console, it will stay there until .exe dies. definitely not something i want. 0 Share this post Link to post
ketmar Posted October 16, 2018 13 hours ago, chungy said: If you do add it, please make sure to spell Freedoom correctly :) Capital F, lowercase d. k8VaVoom already has Freedoom support. and yes, it spelled wrong. ;-) 0 Share this post Link to post
HavoX Posted October 16, 2018 To quote the guy from Sonic Colours: "AMAZING!" VaVoom would've been a great port, had it not have many flaws preventing me from running it correctly. 0 Share this post Link to post
VGA Posted October 16, 2018 I remembered that Windows allows you to redirect console output to a file, so I appended ">> log.txt" to the end of my commandline and saw the actual log. No need to paste it here since you solved that mapinfo parsing error. For Windows users, here is an example: vavoom -iwad "C:\pathto\doom2.wad" -file "C:\pathto\btsx_e1a.wad" -file "C:\pathto\btsx_e1b.wad" -deh "C:\pathto\btsx_e1.deh" >> log.txt 0 Share this post Link to post
Danfun64 Posted October 16, 2018 Tried this out. The built-in Timidity worked for me as well as any other SDL Doom source port. My biggest complaint is that the game is unplayable without freelook turned on, as there is no auto-aim for non rockets/plasma nor does there appear to be an option for it. 0 Share this post Link to post
andrewj Posted October 17, 2018 (edited) 18 hours ago, VGA said: GUI programs can AllocConsole just fine. Ah I never knew about that function. 0 Share this post Link to post
ketmar Posted October 17, 2018 12 hours ago, Danfun64 said: My biggest complaint is that the game is unplayable without freelook turned on, as there is no auto-aim for non rockets/plasma nor does there appear to be an option for it. yeah, it was easier to turn it off in weapon definition than to make it dynamically switchable. that is, i wasn't very familiar with VaVoom code at the time, and then just forgot about that change. will make it switchable from options menu for the next build. tnx for reminding. 15 hours ago, HavoX said: VaVoom would've been a great port, had it not have many flaws preventing me from running it correctly. then you may try my fork. it has alot (well... more than one) of crash bugs fixed (including scripting bugs), and better VM crash diagnostics (i have a full backtrace with line numbers -- dunno how Janis managed to debug VC code without this!). too bad that full VaVoom power is well-hidden, as nobody really tried to learn VaVoom C (except, probably, guys from Korax RPG project). but i can't really blame people here: it is not really fun to do it without proper documentation. 2 Share this post Link to post