News | Forum | People | FAQ | Links | Search | Register | Log in
Quakespasm Engine
This engine needs its own thread.

Feedback: I like the OS X version, but I have to start it from the terminal for it to work and can't just double-click it like a traditional OS X app. I'm sure you guys already know this, either way great engine.

http://quakespasm.sourceforge.net/
First | Previous | Next | Last
Getting Stuck On Buttons 
64-bit builds (tested on windows, probably linux/mac also) have a bug where the player gets stuck on buttons that move at an angle:
https://sourceforge.net/p/quakespasm/bugs/26/

I don't have a fix yet, but it's 99% likely the same as past 64-bit bugs (code assuming x87 math with 80-bit temporaries for floats) and should be quick to fix.

We'll do a 0.93.1 bugfix release sometime soon with this, a fog bug fix - https://sourceforge.net/p/quakespasm/bugs/24/ , and the death32c.bsp crash (vis data overflow). 
Does That Allow For Alpha Values Below 0.666 On {fence Brushes? 
 
Qmaster 
Do you know if any engines with fence textures implement it?
I'm assuming it would just need to use (0.666 * entity_alpha) as the alpha mask cutoff, instead of always using 0.666? 
Not That I Know Of, Twould Be Great For Ground Fog 
Currently you can have a func_illusionary using a fence texture and set the alpha to any value between 0.666 and 1.0, but below that it just dissappears.

I think it is just an arbitrary hardcoded threshhold. If it is necessary to have a threshhold, having it at 0.09 would be preferable. I haven't done an engine comparison for it.

Could be the thresshold has something to do with support for alpha channels (e.g. on png) instead of just the pink palette value 255, but not really sure on that point. 
 
My understanding is, the 0.666 threshold only comes into play when you use texture filtering - the actual pixels of the fence texture only have alpha of 0 or 1, the texture filtering interpolates between these, and then the fragment shader converts the interpolated value back to 0 or 1, depending on whether it's less than the threshold or not. So the specific threshold will control how big the fringe is around spites / fences.

The "(0.666 * entity_alpha)" sounds right to me, it's just something that should have a test map + screenshots, maybe with 0.25, 0.5, 0.75, 1.0 entity alpha on a fence texture. 
 
Lower alpha values will cause edges of fences to become faded, blurry or hazy, which is a very undesirable artefact. If you want to achieve a specific effect it's better to open a discussion about it, rather than trying to overload an existing effect in unintended ways. 
Quakespasm Gamepad Problem With Menu 
I am trying QuakeSpasm with a Dualshock 4v2 connected to Steam Link (so it appears as an xinput device to the game, afaik). The controller works, but there is a very odd problem: there is seeminly no way to "enter" any menu. I can enter/exit the main menu, navigate it, but not actually enter any of the menu options with any gamepad buttons.

And a feature request if I may: would it be possible to add an in-game mod and map browser/launcher? 
 
https://github.com/bangstk/Quakespasm

Suggestion:implement Quakeworld style HUD option from this branch. 
HUD Request 
I enthusiastically second this idea. Even if it's just a console cmd and not in the menu I prefer this HUD to NQ version. 
Transparent {fence Textures 
Please see this: http://www.quaketastic.com/files/misc/testing/test_trans.jpeg

I had the idea one day to mix alpha and {fence to make ground fog. It looks neat in the editor, but it doesn't work in-game. It would be really cool to mix this type of effect with some non-solid func_train's, func_bob's, etc.

I still don't understand why it doesn't work below 0.666.

Cross Engine Testing:
FTE: Does not support alpha on {fence textured faces. Side note: fence rendering has weird ugly black edges.
Mark V: Same as QS. Side note: the Pixelated/Rough mode looks best for fence edges (not related to the alpha). Not sure if this is just disabling mipmapping or what.
DarkPlaces: The old version I have doesn't support either {fence or alpha.
All other engine versions are the most current. 
Jago 
I can enter/exit the main menu, navigate it, but not actually enter any of the menu options with any gamepad buttons.

The A and B buttons are hardcoded to select menu items / go back a screen. If A/B are not working, it means something failed at a lower level than Quakespasm (probably SDL2's controller mapping).

Does it help if you download this file and put it in your quake directory?
https://github.com/gabomdq/SDL_GameControllerDB/raw/master/gamecontrollerdb.txt
It should enable more controllers.

re: mod menu and bangstk's changes, both things I have been meaning to get to 
 
I still don't understand why it doesn't work below 0.666.

Because GLQuake sets this at startup:

<p>glAlphaFunc(GL_GREATER, 0.666);</p>

Meaning that when the alpha test stage is enabled, anything with an alpha of less than 0.666 is discarded.

Fences are drawn with alpha test enabled, so that's why it doesn't work. 
 
Is there still use for the SDL1 version? Just curious about why that variant is still included in the package. 
 
Not much significant - audio CD support, win 9x support. 
502 Bad Gateway? 
Hey Eric. I periodically update through your nightly builds page found here:

(http://quakespasm.ericwa.com/job/quakespasm-sdl2/)

but the page has been giving a 502 error. Just thought I'd let you know in case you were unaware. :) 
Thanks HipnoticRogue, Fixed 
 
Screen Refresh/FPS Question 
If I set the game (in-menu) to 60 or 120 the game runs smooth as butter. If I use the built-in FPS counter the game reports 60 fps. All well and good.

If I set the game to 144 (my monitors refresh rate) the game hitches ever so slightly every few frames. When I check the FPS counter it only reports 71 fps. I have Host_maxfps set to 72. Shouldn't the game report 72 fps?

Regardless of what I do I get screen tearing unless vsync is on. At 60 fps there's a very noticeable lag in movement (I use a controller). The lag's not so bad at 71 fps but, like I say, there's that slight hitch which drives me insane!

I've tried using gl_triplebuffer set to "0" and "1" but neither seems to make any difference regardless of whether vsync is on or not.

Is there an issue with 72 fps or do I just have to live with the slight stutter?

I haven't reported it as a bug because nobody else has mentioned this 'issue' and I'm not sure if it's user error or an engine limitation... 
 
You're not the only one. A lot of people experience the same thing at 72. Even at 250 it feels like shit. Chew it down son. It's the recommended quake experience. 
 
You're not the only one. A lot of people experience the same thing at 72. Even at 250 it feels like shit. Chew it down son. It's the recommended quake experience. 
 
can u fix the double click thing? 
@Hipnotic Rogue 
I think QS's vsync implementation is broken, in that it doesn't disable the regular frame throttling code so sometimes you will get stutters. I would recommend avoiding vsync right now.

It sounds like you get hitching with vsync off as well, at 144Hz?

One hack you can try is "sys_throttle 0" - this will make QS use 100% CPU instead of sleeping (the default is 0.02).

If there's stuff we can do to make this better I am interested. I'm hoping to get a 144Hz monitor some time this spring as well. :-) 
@Hipnotic Rogue 
I think QS's vsync implementation is broken, in that it doesn't disable the regular frame throttling code so sometimes you will get stutters. I would recommend avoiding vsync right now.

It sounds like you get hitching with vsync off as well, at 144Hz?

One hack you can try is "sys_throttle 0" - this will make QS use 100% CPU instead of sleeping (the default is 0.02).

If there's stuff we can do to make this better I am interested. I'm hoping to get a 144Hz monitor some time this spring as well. :-) 
@ericw 
I've set sys_throttle to 0 but there's no change that I can discern.

It's not hitching as such at 144 Hz with vsync off. The 'hitched' frame (for want of a better term) tears instead. It's regular as clockwork just as the hitched frame would be with vsync on.

Is there anything else I could try for you or any more info you need just now? 
 
sounds like you want SDL_GL_SetSwapInterval 2 instead of 1, or ideally -2 (to enable swap_tear when timings slip a little).
The interval in question is measured in terms of buffer swaps, so 2 means that it'll run at 72fps on a screen running at 144hz.

Regarding host_maxfps timings - quakespasm uses milliseconds for timing - and rounding down means it needs to wait a little longer before the next frame.
This alternative will give more accurate host_maxfps:
double Sys_DoubleTime (void)
{
return SDL_GetPerformanceCounter() / (long double)SDL_GetPerformanceFrequency();
}
But do note that it might misbehave on certain/old dual core machines that lack drivers to resync cpu timers.
And ideally you'd rebase the counter to 0 to reduce fpu precision problems, but they.

Regarding nvidia, (at least for me) vsync is broken in their opengl drivers when the program (otherwise) runs at about 1000fps. Crossing that boundary (relative to the previous frame) results in a noticeable stutter. Enabling something wasteful like bloom seems to help, thanks to it no longer drawing frames in 0ms...

tl;dr version: timers suck. 
 
host_maxfps has lots of subtle little interactions beyond just wonky physics and killer elevators.

Particle trails have been touched on before; here's another one that many people might not be aware of.

Record a demo of you running around in a map for a minute or so at host_maxfps 72.

Record another demo of you doing the same run-around in the same map at host_maxfps 1000.

Compare the file sizes.

Interesting, isn't it? 
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.