News | Forum | People | FAQ | Links | Search | Register | Log in
Spiked Quakespasm Modding/Coding Help Thread
Thread for figuring out all the new particle and modding features in the "Spiked" version of Quakespasm.
-----

Actual QSS engine download:
http://triptohell.info/moodles/qss/

-----

Tutorial on how to enable rain and snow on the Quake start map:

1. Video of snow: https://youtu.be/DvqxsJChXH0
2. Video of rain: https://youtu.be/NRud8T88tDc

Steps:

1. Put this start.ent download in c:/Quake/id1/maps folder. Tells it what textures emit snow and rain.

2. Put this weather.cfg download in c:/Quake/id1/particles folder. Indicates spawn information on particles and how they behave.

3. Enter r_particledesc "weather classic"; map start in the console. I assume "weather" is the name of cfg. Also seems to work with just r_particledesc "weather".

Stuff:

Q: How do you find out the name of textures?

With Quakespasm I don't know that you can, but in Mark V just type "tool_texturepointer 1" in the console and look at a surface and it displays the name of any texture you look at on-screen. screenshot

Q: How is the external ent file made and what does it need?

Open up Mark V and type "map start". Now just type "copy ents" and the entities for the entire map is on the clipboard. Open a text editor and paste. Save it as c:/Quake/id1/maps/start.ent

The first few lines of the file look like this, add the 2 bolded lines that tell the particle system that the texture names are "sky1" for snow and "wizwood1_8" for rain.

{
"sounds" "4"
"classname" "worldspawn"
"wad" "gfx/start.wad"
"_texpart_sky1" "weather.tex_skysnow"
"_texpart_wizwood1_8" "weather.tex_skyrain
"message" "Introduction"
"worldtype" "0"
}


A devkit is also available HERE http://fte.triptohell.info/moodles/qss/QSS_DevKit.zip with source code examples of how to create your own custom HUD using CSQC. The examples show CSQC recreations of the classic HUD as well as variations for the missionpacks and should serve as a good starting point for your own creations. There's a few other goodies in there too (e.g. particle stuff), so check the readme inside the devkit.

Discord
There's now an official Discord for FTE and QSS, find it here: https://discord.gg/E6fTcgB3ev
First | Previous | Next | Last
 
Two oneliner fixes for demo playback:
fix for a crash
static ents not appearing in demos

That should be all that's interesting in my git branch.. the other changes are tweaks to get it to compile on my jenkins box, and merging in QS svn.
QS svn has a rewritten Host_Loadgame_f where I eliminated that fixed size buffer, which was overflowing on the DP/QSS extended savegame comments in big maps. 
Quoth / Map Jam 9 Bug 
Barnak reported this in the map jam 9 thread and I was able to reproduce:
- install map jam 9 and quoth
- launch QSS r7 with -game func_mapjam9 -quoth
- launch start.bsp and walk straight ahead through 2 teleporters.
- the loading plaque comes up, (it's loading jam9_kell) then you're kicked to the console with "Host_Error: Illegible server message 110, previous was svc_serverinfo" 
QuakeSpasm-admod Don't Have The Issue 
I'm very curious to know what is happening, since about half the maps are looading without troubles from the start map, while others don't. You can still load them all from the console. 
While We're On The Subject Of Bugs... 
in qss-admod, on some maps when I try to save, the game crashes instantly. I've noticed this in the forthcoming episode jam's start map and some of Qmaster's old maps, and it happens both with quick and hard saves. It doesn’t seem to happen with regular QS. 
Pr_edict.c 
901c901
< /*ent->v.modelindex = */SV_Precache_Model(com_token);
---
> /*ent->v.modelindex = */SV_Precache_Model(PR_GetString(ED_NewString(com_token)));

The above fix has been in the 'prer8.diff' file on triptohell for a while now.
QS isn't as mallocey as FTE, which results in precaches being empty strings, which the client interprets as terminating the precache list when the server thought it was just another string. The idea behind the change from QS being so that eg vanilla's func_illusionary could use any model it wants, but I fucked up, and then kinda gave up.
There's also new bugs in 'pre-r8' which I'd need to fix before another actual release, but I can't find the motivation to actually spend time on it. 
 
I've been poking around with weather effects in QSS for the past couple days, and it's going pretty well so far. I've got a nice little map-specific, texture-emitted effect worked up for what I hope to be an entry to the Xmas Jam, but I'm having a little trouble with something: is there any way to get what I can only call "preroll" on a particle effect with the FTE/QSS system? Currently the particles start spawning when the map starts, and the player can see the effect getting up to speed. I'd love some way to have it already warmed up when the player first spawns, but as far as I can tell from this thread and what documentation I've found, there's no such option.

Does anyone know how I might accomplish something like what I'm after, or am I stuck trying to trap people for a few seconds on map start so the illusion isn't broken? 
 
Unfortunately there's no way to do that right now. The best I can suggest is to write some QC that spawns those particles for you, however this may run foul of any future 'preroll' feature.

I guess the easiest thing to do is to start the player in a room with a closed door, with any windows being high up, thus giving your snow particles time to drop.
As well as low skies... 
Black Box It 
You could atart the player in a small box func_togglewall textured with BLACK and then target it...er wait, killtarget a func_wall box I mean, after a short delay. This would give the impression of loading. 
 
If you wanted to experiment with horrific evil, you might set host_frame 9999 on map load and then set it back to 0.

Depending on what mod you are using, there may be a way to execute commands.

Something like cl_forwardspeed 0; host_framerate 9999; wait;wait;wait;wait;wait;wait;wait;wait;wait;wait;wait;wait;wait;wait;wait;wait;wait;wait;wait;wait; host_framerate 0; cl_forwardspeed 400 
Thanks! 
Ha, Spike knows immediately it's a snow effect, well yes, the jam is Christmas themed, I couldn't resist. The existing AD snow effect (or FTE? Not sure of its origins) was a little too jittery for my taste, and didn't have the lifetime I wanted, so I made my own.

I'll have my sky as low as possible, and maybe give people a simple button pushing task to complete while everything gets going. I'd also considered some sort of centerprint backstory about arriving just as the weather was getting worse, but then in engines that don't support these particles it'd sound weird. But maybe that's a writing challenge more than anything.

I appreciate the info and ideas (especially Baker, that's exactly my type of clever, sadistic cvar abuse); thanks for the help! 
FTE Software-like Rendering 
Is there any chance of including the "software" style rendering that FTE has?

I just had a look at this in FTE and it's exactly what I'm after :D 
 
if you want to use fte's features then use fte.
if you don't do so then you're showing that it doesn't mean much to you. and if you do switch then rewriting it would have been pointless.

so no, no chance.
if someone implements it into QS then it'll get merged eventually (and I won't have to deal with extra merge conflicts). otherwise its not something that I'm going to waste my time with.

the point of QSS is to make something that the 'community' might accept that doesn't leave the people creating stuff with their hands tied behind their backs.
that's why it has qc extensions, md3s, removed limits, and better network compatibility.
note that even the particle system is aimed at mods like ad rather than the end-user.

and its actually kinda rude for people to keep asking for only a fraction of my stuff.
Its also a joke that people keep on insisting on using quakespasm because its somehow 'faithful' while being less faithful than the engines that they apparently shun.
Its not just software banding either, and I'm actually getting pissed off about it.
The entire thing is a massive counter-productive joke.
The point of QSS is to try to reduce the stagnation, its there so that people can create without being held back, rather than for the end-user themselves, that's why it does nothing as little as possible to change the feel of the engine, and yet so much for potential creators.

Adding user-centric features like ugly banding is simply not part of that goal.

So no, I won't port the code. I've no problems with merging it from Quakespasm if someone else wants to port it, but I'm not going to spend my time writing all that stuff myself. 
 
Ok, point taken.

The reason I'm requesting a "software rendered" look in QS isn't because I'm trying to add extra spangles and shininess and bloat to QS; it's quite the opposite.

I think of QS as the ultimate "faithful" quake engine, and I think adding an emulation of the glorious (not "ugly", it's beautiful and glorious) software look is something that fits the "faithful" quake spirit perfectly.

Hell, I'd play everything in an actual software engine in a heartbeat, if one of them could run a modern ad-style megamap at a decent framerate, but alas that's not possible, so emulating the software look in hardware is the way to go.

Anyway, I'm not gonna push it any more, I'l just keep quietly wearing ericw down I guess until he submits :) 
 
Why not use FTE, really?

Spike is going to burst a vessel one of these days, maybe we can head that off by bullet-listing a few things that are blocking FTE adoption. 
 
It might be a case of momentum. I mean, AD comes with a recommendation (and link) to use Quakespasm and since AD is basically default Quake now ... 
 
Why not use FTE, really?

FTE is close, and r_softwarebanding is sublime, but there's a few things that bother me and make QS still my go-to engine:

- In FTE, even in "classic" particle mode, particles are too bright (so are sprites)
- Models are shaded differently and are generally too dark - this looks especially problematic with things like the AD health pickup items.
- I don't know how to turn off coloured rocket, explosion etc. coloured lighting (can I?)
- Underwater sound is all different (is there an option to control this?)
- No controller support (yeah, yeah, I know)

There's lots of other little niggles and nitpicks that I don't really want to bang on about, like the exact details of how the menus and fonts look etc. etc, but you get the idea - point is I'm a purist and I will always tend towards the engine that looks the most accurate in my opinion. 
Just To Clarify 
I am NOT asking spike to implement any of that stuff just to please me (lesson, learned oh boy), I'm just answering Johnny Law's question. 
@Kinn, #116 
I suspect I ought to post this in the FTE thread instead, but I guess its a comparison between engines, so whereever...

sprite lighting differences - these are just drawn fullbright, so I don't see how there can be any difference. that goes for particles too, but to a lesser extent obviously. overbrights are not normally used on either of these, so no idea. comparing screenshots show the sprites at the same lighting level. maybe its just your imagination on account of dlight colours?
note that square particles have more coverage - and the result is more like software's rendering than QS as far as I can tell.

models - software banding applies to models too.
personally I think its QS's modes that are too bright - they're almost unshaded. but yeah, fte's models end up too dark in one direction and fine from the others. ironically fte follows ezquake in qw deathmatch and they all get fullbright... ho hum.
/me does a four-way comparison between various engines... quakespasm has double-brightness models (seriuosly, I check relative to glquake)! what happened to the lighting vectors? no shadows, no sense of depth, urgh.
imho of the three non-sw engines, fte was the closest to software rendering's model light levels - and quakespasm the worst.
so that's another thing to fling at the community when they claim quakespasm is somehow more faithful.

dlight colours - use r_dynamic 2. this should already be part of the appropriate presets. it still seems a little darker than software rendering, but so does qs so that's just an old config that predates the setting being added to the presets I guess.
(note: fte has some code to avoid over-saturation and loss of colour tone, which is kinda significant with eg q2 or bright blue quad glows, so darker is at least justifiable from that perspective)

underwater sound - switch audio driver to alsa or directsound, or anything other than openal (the menus should give many driver+device options). openal's reverb effects are nice and all (which is how come I got harassed into setting it by default), but yeah, openal sounds different from vanilla.

controller support - wut? fte has controller support. on windows set in_xinput 1;in_restart. its actually the default (now, since a few months ago, hurrah for lingering config settings). splitscreen without controller support would be awkward.

menus - not clunky enough? too small? or what? mouse support! zomg! or just so cluttered that noone has a clue what's actually in there... if it helps I hate designing UIs. Users always have different impressions of how its meant to be used... hence presets, so they don't have much of a choice. mwahahaha. But yeah, I admit that the options menu is a little hard to navigate on account of all the somewhat random options, and yes I personally tend to just use the console instead of trying to find whatever option it is... the apropos (aka: find, yes baker.) command is often faster, at least if you know part of the name... and yes I do unfortunately have to admit to grepping the sourcecode to find cvar names sometimes. :(

fonts - try r_font_linear 0;vid_reload, probably. personally I think that's ugly (especially with high res fonts, but whatever, if its what you're used to then its what you're used to, but I guess if you're trying to mimic sw there too then remember that software had clean scaling [while QS's defaults are not] so no half pixel weirdness[which linear sampling helps to hide]). it'd be nice if people would use truetype fonts so this stuff becomes (mostly) irrelevant, but oh well. linear filtering is at least the safer bet still, and legibility beats all else when it comes to text. 
 
Yeah I don't think you should worry about "banging on" :-) ... I did ask, and I think it's worth getting particulars out in the open if people (not just Spike) are going to keep saying that FTE should be used as the go-to engine for SP. And there's some people (not Spike) who rant about a conspiracy or at least a circlejerk keeping everyone holding onto Quakespasm, but I'm pretty sure that's not the whole story. 
 
(#119 was for Kinn obv) 
FTE 
sprite lighting differences - these are just drawn fullbright, so I don't see how there can be any difference. that goes for particles too, but to a lesser extent obviously. overbrights are not normally used on either of these, so no idea. comparing screenshots show the sprites at the same lighting level. maybe its just your imagination on account of dlight colours?

These shots show what I mean - all particles are brighter and sprites get their colours blown out.

https://i.imgur.com/XFRHlYv.png
https://i.imgur.com/JJOlj7m.png
https://i.imgur.com/qqJKqAm.png

quakespasm has double-brightness models (seriuosly, I check relative to glquake)

glquake has dull models. FitzQuake (and descendents) changed the model lighting to resemble the original software quake. However.....

https://i.imgur.com/LYXwYIH.png

The above is really interesting - it shows QS is pretty close to vanilla software quake (but is actually a little bit too bright), but FTE is a bit too dark in comparison and the models do disappear into the scenery. I don't mind it too much, but some custom models that are designed with QS in mind (like some of the AD models, e.g. pickup items) tend to disappear a bit sometimes.

But what about from the back?

https://i.imgur.com/dE5NhAm.png

FTE is very close now (in accordance to what you said about the models only being too dark from certain angles). QS is like the front shot - close but actually a little bit too bright.

I'll answer the rest of your points tomorrow (I have to go bed now) but I still can't get the dynamic lights non-orange, or the controller to work (which I'm sure is more my fault than yours) 
Historic Note. 
http://celephais.net/board/view_thread.php?id=60133&start=35&end=43

It would appear that Fitzquake, and therefore Quakespasm, (in its emulation of the original Winquake), ended up making overbright models slightly too bright than intended. 
 
WinQuake uses a variable amount of ambient lighting, plus a fixed amount of directional lighting.

The amount of directional lighting is very small, just enough to give the model some depth without evidencing the direction of the light. They made it this subtle because since the lightmaps doesn't store any angles, there was no quick way to rotate the directional lighting of the models towards the origin of the lights.

Plus, WinQuake also ensures a minimum ambient light value of 20 to viewmodels only. I don't remember if this minimum value is clamped or added, though. 
Spike 
There's something on the FTE website that my ISP doesn't like. I have to use a proxy to even visit. It gets flagged as dangerous from Virgin. 
 
dlight colours - use r_dynamic 2

Doesn't seem to make any difference - it's still orange. All I'm talking about is an option of reverting to the white light of vanilla quake. Minor quibble, but the orange just feels a bit out of place in classic maps.

underwater sound - switch audio driver to alsa or directsound, or anything other than openal

Thanks - setting it to directsound via the menu seemed to fix that. Is there a command I can put in my config file for that?

in_xinput 1;in_restart

Didn't know about that, but in any case I can't get it to work with my XBox 360 controller. All that does is make the screen vibrate crazily and lock my view to the floor.

menu / fonts - I may talk about that another time, it's not terribly important. 
First | Previous | Next | Last
You must be logged in to post in this thread.
Website copyright © 2002-2024 John Fitzgibbons. All posts are copyright their respective authors.