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

FTE's homepage: http://fte.triptohell.info/

This thread is for the discussion of using FTE's enhanced features, and/or drawbacks, for Quake level design/modding and/or gaming in general.

Discuss...
First | Previous | Next | Last
-lux Light Question 
Ok, I've been testing with this since I started this thread. Here's something I'm curious about.

I have a completely stock install of FTE making sure that these are set in my autoexec.cfg, and are working as intended:

gl_load24bit 1
gl_specular 1
r_glsl_offsetmapping 1
r_deluxemapping 1

Compiling, Light gets this:

-lux -extra4 "$bspdir/$file"

Nothing else, as far as the engine and the mapping, is changed for this test.

I am of course using some replacement textures each with normal maps and one including a specular map(floor).

My issue is, you know how we use "muzzle flash" from the weapons to light up dark areas? Or even just general rocket/grenade usage that lights up areas as well...

That doesn't seem to work for me mapping like this. Or it's inconsistent.

The dark areas most of the time just stay really dark(black/unlit) or... for no reason will light up occasionally and then stop again.

This of course looks strange.

Any thoughts on what I can do to correct this? 
I Tried To Screenshot It... 
... but no matter what window mode I select, FTE writes only a transparent image and my Windows "Print Screen" button seems disabled(?) as well!

Hope the info I provided is enough. 
Screenshotted 
I used OBS to record and grabbed images from video:

https://i.imgur.com/mIOxyaA.jpg 
How Deep The Rabbit Hole Goes ... 
rabbit holes, explore 2 or 3 with an advanced engine ... eventually ... you don't return at all.

Quake is successful because of the limitations (256 colors, etc.) and the many things you cannot do force an author to limit the scope of their project.

With an advanced engine, what starts as a project morphs into exploration drift -- then you find bugs or limitations.

I mention this because it is very uncommon to find a completed project that targeted DarkPlaces or FTE.

The specs of the project increase and increase, exponentially growing the labor hours required for the result --- until the number of labor hours passes the event horizon ... never to return.

A paradox ensues --- offering more capabilities dramatically increases the possibilities but decreases the probabilities.

So planned projects that plan to target the engine capabilities increase, but completed projects that actually do target the engine decrease --- usually to a specific number --> zero.

/Thought of the day 
Yes And No 
Having an engine with more advanced capabilities seems a dubious problem. Evidently there are projects built on UE4, CryEngine, Source, etc that do get completed.

Having the capability to mod the engine is IMO more of a problem. But blaming the engine is only half the story. Mod teams need to exercise discipline and restraint too. 
Limits Didn't Define Quake 
quake defined the limits higher.

dork. 
#29 
This is accurate, in my limited experience. I have since imposed a set of limits on my project so that it will be coherent and actually make it to completion. IMO, setting limits was a great move both logistically and creatively. 
Weapon Bob In FTEQW 
Is it possible to change the weapon bob in FTEQW? Quake's default bob is annoying, the weapon just goes up and down, but it looks like it's stretching or some crap. Is it possible to change it to something like Doom, left and right?

I've noticed that DP has something similar:

cl_bobmodel
cl_bobmodel_up
cl_bobmodel_side
cl_bobmodel_speed 
 
FTE has cl_bob, cl_bobcycle, and cl_bobup. 
Fancy Weapon Movements 
If you're willing to write some CSQC code, you can just set cl_bob 0 and then implement whatever crazy viewmodel movements you want.

All you really need to do is avoid the MASK_VIEWMODELS flag in addentities and to then add an entity yourself using something like:

{
static entity ent;
if (!ent) ent = spawn();
ent.origin=[sin(time)*5,0,0];
setmodelindex(ent,getstatf(STAT_WEAPONMODEL));
ent.frame=getstatf(STAT_WEAPONFRAME);
ent.renderflags=RF_VIEWMODEL|RF_DEPTHHACK;
addentity(ent);
}

The maths your mod uses are then entirely up to you.
(RF_VIEWMODEL is responsible for sticking the ent to the view, which avoids the need for matrix stuff, RF_DEPTHHACK messes around with the ent's projection to prevent it from poking through walls.)
(note that the above code lacks interpolation, its .frame2+.lerpfrac for that, but it makes examples messy. use .frame1time and frame2time if you want control over framegroups.)

Shpuld's TurboQuake mod is a good example of the value of csqc controlling viewmodels:
https://www.youtube.com/watch?v=oCqhxekWn5M
That said, its worth noting that using the vanilla content for it is more painful than it otherwise should be - like spinning the SNG barrel (read: spinning the entire model around a point which is not its origin). 
 
Where's FTE irc located at now?
The quakenet one listed at the site is empty, not even a bot in there.
I needed some assistance with FTE cvars and can't reach out it's chat hangout place, bummer. 
 
“also make sure you don't have both vid_conwidth+vid_conheight lingering from other engines - those other engines tend to have screwed aspect ratios. As a general rule you should only use ONE of them, with the other set to 0. “
true if the engine does console sizing correctly it will
autoadjust the height based on the proper
aspect ratio 
@spike 
What's best place to find you for questions or documentation for FTE? Here? The Wiki seems pretty out of date. Is Sourceforge still the best place to report bugs?

5121 Win64 Dell Win10 laptop. I'm having keyboard input issues similar to buttons being held down. I confirmed the physical keys are fine and this behavior doesn't happen in other ports. I had changed some video settings prior to the issue. Restarting app had no effect. 
 
Is there any sane way to animate weapons and models from QC? Without having to tie frames and game logic and without having to declare each and every frame as a var and then as a function? 
 
@dumptruck
Best way to poke me is generally via #qc, if I'm on. Or if you're on discord I got harassed into joining the Quakeworld one.

I don't know what would be up with the keyboard input. you could try toggling in_rawinput (followed by in_restart) which may or may not help, but I've not seen similar issues in the windows builds. I also don't use win10, but hey.

@dfut
framegroups would be the obvious answer there.
however, animating with framegroups from ssqc is kinda messy as there's no way for the server to force a framegroup restart, which makes firing animations de-sync.
csqc has full control over the time into framegroups though, and because that's the answer to everything, you can use it to detect toggles of some bitflag and convert them into restarting whatever framegroup.
and if you're using csqc, you could also use it to position the various bones of eg an iqm via the skeletal objects extension, which allows things to spin independently of whatever animation they're otherwise meant to be playing, for smooth chainguns or whatever. 
 
Where i can find any examples of CSQC framegroups? Do they work normally with MDL and MD2? 
 
md2+md3 do not natively support framegroups, while mdl+iqm do.
csqc is quite explicit when it comes to animation, so there's about 5 fields that need to be updated each frame.
.frame+.frame2 define the two framegroups/animations to lerp between, eg when the animation changes.
.lerpfrac says how much of .frame2 to use (and thus how little of .frame to use). 0 uses excusively .frame, 1 uses exlusively .frame2, other values linearly interpolate.
.frame1time+.frame2time define the time into the two animations.

So, to switch from one animation to a new one, you copy .frame to .frame2 (and .frame1time to .frame2time), set .frame to the new animation (and .frame1time to 0), set .lerpfrac to 1, and then slowly decrement it over time (depending on how smooth you want the animation switch to be, probably lerpfrac=max(0,lerpfrac-frametime*10);
additionally, you need to increment both .frame1time and .frame2time by frametime. You can scale it or whatever if desired.

note that if you want to restart an animation, you will likely want to do it with lerpfrac (and .frame1==.frame2) instead of trivially resetting .frameNtime to 0, as this avoids sudden snaps.

when it comes to viewmodels, they're not really any different from any other entity. Just make sure MASK_VIEWMODELS isn't used, spawn a private entity with renderflags|=RF_VIEWMODEL|RF_DEPTHHACK, setmodelindex it to getstatf(STAT_WEAPONMODEL), and update its frame to getstat(STAT_WEAPONFRAME) as appropriate.
use some bit in the frame stat to signify animation restarts, and have the csqc restart the animation when its toggled by the ssqc or so.

So yeah, quite a bit of code that really needs some proper example code to fully understand. I don't really have easy-to-read code to link though, so I'm sorry about that. 
 
Thanks a lot for the information! I'll try to figure it out. Sounds very complex :D 
 
Does FTE support AD? The site says it doesn't, but I keep seeing people suggesting it... 
Mostly 
Should work for most AD maps. Might not work on sepulchre, swampy, or other megamaps. Spike can correct me, but I don't believe FTE has support for sv_protocol 999 even though it does support bsp2.

Spike could have done some updating though. I highly recommend he does since "can it play AD" seems to be the new standard for whether a Quake engine is "worthy" (initial AD release only specified Quakespasm as supported, leading to a lot of questions on other engines). Orl maps are a concern too since they are very very large as well. 
@idiot And @Qmaster 
use sv_bigcoords 1 for 999 maps (per Spike in a prior post in this thread) 
 
ad_sepulcher: worked okay last time I tried it.
ad_swampy: I really have no idea why anyone would think this map would have a problem.
999: sv_bigcoords 1; if its need isn't autodetected (if for some reason you want 999 specifically, also set cl_loopbackprotocol fitz;cl_nopext 1).

I'm not aware of any limits that are lower in FTE than QS, while I am aware of the reverse (even vs QSS).
That's not to say that there are no issues whatsoever, just that any issues are more likely to be due to qw-by-default player physics, or other such 'minor' incompatibilities that could affect ANY map...
And this is why you never fix what are obviously bugs. :(

But yeah, if I was aware of any issues with any of those maps that were mentioned, then I've either fixed them or just forgotten about them... Feel free to try them and shout at me should they somehow crash and burn. This is not a warranty - if it causes your computer to explode and destroy your entire city, then you probably shouldn't have been playing quake inside a nuclear reactor. or whatever. 
Spike 
Any advancement on the control pad issue that myself and Kinn were experiencing? 
@FifthElephant 
As I said in the other thread, I got PrimalLove to give me a list of changes on that front, which are now implemented in the latest build.
Most of it was just cvar changes, so you'll need to do 'cvarreset joy*' or to wipe that part of your config some other way. 
 
So... this is news for me... i've been playing quake with FTE for 6 months now and never experienced crackling sound :/ but when i play sm181_coce1 and sm181_coce2 i can hear some annoying cracklings... and if i go to "menu/audio options/restart sound" the cracklings stops, but if i load the map again, or just press F9, the crackling returns :(

Why is this happening? And why only in these two maps? :/ 
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.