News | Forum | People | FAQ | Links | Search | Register | Log in
Fitzquake Mark V
I wasn't planning on doing this mini-project, it started as an effort to address some Fitzquake issues, fix them the right way up to Fitzquake standards (i.e. do it right, once and properly versus continual releases) and donate it back.

FitzQuake Mark V Download:

http://quake-1.com/docs/utils/fitzquake_mark_v.zip

Short version: Eliminated most issues in FitzQuake thread, most issues I can even remember hearing of ever and marked every single one clearly with a very minimal implementation.

It may be the case that only metlslime and Quakespasm and engine coders may find this engine upgrade of interest.

Features: 5 button mouse support, single pass video mode, external mdl textures, alpha textures (like RMQ), record demo at any time, rotation support, video capture (bind "capturevideo toggle"), console to clipboard, screenshot to clipboard, entities to clipboard, tool_texturepointer, tool_inspector (change weapons to see different info), clock fix, contrast support, fov does not affect gun, gun displays onscreen, Quakespasm wrong content protection, external ent support, session-to-session history and .. (see readme).
First | Previous | Next | Last
 
I guess to be fair the only way these sorts of feature requests get any traction is if there's already a bunch of well-made assets ready to go that a lot of people would use.

Making a bunch of quakesque vegetation models has been on my list for a while, so I might as well just start making them and then bully the engine coders into supporting alpha on them afterwards :} 
 
if we could get a bump up on the max number of static entities

It's actually quite silly for an engine to have a fixed-size maximum for these in 2016. Static entities can be just allocated on the hunk until memory runs out; don't need to come from a separate array at all. Likewise with efrags. 
Alpha-tested Models 
hexen2 supports it. There's some model flag you can set that enables it (but tools may not provide you with that option, and might necessitate using some hex-editor).
afaik FTE is the only quake engine that supports it at this point in time, although if you're targetting DP, you can use shaders with some 'alphatest gt128' line or something, along with an external texture (iiuc an external texture alone will enable alpha blending, which will look a little ugly if they overlap).

#define MFH2_HOLEY (1u<<14) // Solid model with color 0
so byte 0x4E should be set to 0x40, assuming I counted correctly.


clientside limits on static entities are kinda silly (and implies wasted memory).
serverside limits on them due to the signon buffer size are harder to remove, although not impossible. 
@Breezeep_ 
Trying deleting your config.cfg. Are you using an old version of Windows like XP or something?

I made a couple of tough choices in very recent version that may affect old, old Windows versions. 
 
@Kinn - I think your ideas are interesting but at least for 2016 ericw/Quakespasm are where your best chances lie.

That being said,

Check this out:

http://www.celephais.net/board/view_thread.php?id=60502

That modified FitzQuake engine already has that feature, it's color 255. 
 
@Kinn: It's the trees with alpha masked textures.

Mod screenshot 
@Kinn - 3 Of 3 
Kinn I guess what I'm saying: If you make a model with alpha masked textures and it works in that FitzKurok engine that I posted (you should be able to play with the model in that engine), ...

My recollection is the modification is not that difficult, but in the engine code for that model, the alpha masked model names are HARDCODED. i.e. look through the game data pak file and find the alpha model name (is it bush.mdl? tree.mdl? but whatever it is, use that name and there may be several).

The key thing is I would obviously not have the model name be hardcoded, so how to indicate a alpha masked texture? The quick and dirty version would be something similar to r_noshadow_list, r_nolerp_list or whatever those cvars are called and make a r_alphamaskedmodels_list or whatever would be a good name. 
Art 
a bunch of well-made assets ready to go that a lot of people would use

Sock has some really nice ones:

http://www.simonoc.com/pages/artwork/tp_plants.htm 
 
Baker - thanks very much for that! Looks interesting, I'll have a play with that :)

adib - sock's foliage assets are great for Q3, but I would want to be making stuff that fits in with quake's established chunky-pixel aesthetic. 
@Baker: I'm Using Windows 7 
I might try deleting the config. 
@kinn 
Checking to see changes involved:

Engine modification requires:
1) Creating a color table for alpha masked textures (probably already exists since QS/Mark V both support this for the .bsp)
2) A method for specifying if a model's texture should be an alpha masked. (Sadly, since some rare models do use color 255 in them ...). Options cvar list var, external file, model name, somehow adding more model flags to a .mdl (like blood trail). Default option is probably creating a cvar with model names like the existing r_nolerp_list.
3) Checking such a model's texture for actual palette index 255 alpha masking, and if not disabling it.
4) Turning on alpha test during draw for specified models, then turning it off. Since GLQuake model lighting and FitzQuake overbrighting is just a color modification, no other drawing consequences.
5) Permitting external textures to have an alpha channel for models where alpha masking is indicated. 
Baker 
Cheers, sounds reasonably doable ;}

2) I guess a list cvar fits in with the existing list stuff. To ensure that everyone gets the list in my mod even if quake.rc doesn't run (e.g. if someone loads the mod from the console), would it work if I did a stuffcmd from the QuakeC? 
 
I'd rather Spike suggest a better solution than the cvar list thing. ;-)

I hate the cvar list thing. Consider it an ugly placeholder until someone comes up with a better idea or a standard.

So consider the cvar list as a temporary placeholder until someone comes up with a great idea. 
 
Spike says something about a model flag that Hexen 2 uses above. Hmmm. 
 
I'd personally be down for using a new flag (like blood trail).

However that requires tools that would support it. It personally doesn't bother me in the slightest as I bang out .mdls from blender using a script that I can easily edit. 
 
For existing tools (QME) to conveniently work, I would personally opt for checking BOTH a rocket trail and grenade trail (selecting multiple trails is non-sensical in the engine, it only uses the first trail flag).

In model.c in model load, engine authors can just add a

if (model->flags & (EF_ROCKET | EF_GRENADE) == EF_ROCKET | EF_GRENADE ) model->flags ~= EF_ROCKET | EF_GRENADE, model->flags |= EF_ALPHA_MASKED;

A non-supported engine it's going to render horribly wrong anyway with pink everywhere.

This would allow QME to be able to edit the flag, instead of putting terrible burdens on mappers.

/One thought ... Spike said only FTE has a mechanism currently. 
However... 
QME lets you set any flag I think, not just the ones in use...

http://i.imgur.com/w3MTNZt.png

So, using an unused flag might be ok, even for people who for some masochistic reason use QME to make mdls. 
 
Awesome, did not know that!

Methinks Spike may not have known that, I didn't like the "must use Hex Editor idea". 
Looking Through Spike's Source Code 
and reading his above comment,

looks like 0x4000 (16384 decimal) is the flag that would be most compatible with FTE. 
 
Sometime in the next 24 hours I'll grab bush1.mdl and palmleav.mdl (a palm tree) from Kurok, edit the model flag in QME and post a Windows OpenGL .exe Mark V with the implementation. 
Holy Mother Of 
I'd better get my modelling trousers on 
 
Another possible way to specify that the model should be alpha masked is making the skin name start with "{". Hexen2's TEX_HOLEY model flag (16384) seems OK though. Are hexen 2 and quake mdl's the same format, aside from extra flags used by h2?

I was reading the uhexen2 source, it looks like both palette index 0 and 255 are transparent for TEX_HOLEY, at least in uhexen2. But we would just use 255 since that's what is used elsewhere in quake.

Last thing: it might be worth comparing this with a different approach: trying obj2map's new UV/texturing import feature, and then either compile the foliage maps to bsp (disadvantage: lighting would be static) or even try using itendswithtens's new map instance inserter tool to automate pasting prefabs in your map (?). My light tool can even raytrace through the fence textures properly, giving natural shadows under trees. This route is likely more of a pain to set up, but it would have the advantage of working in all the engines that already support "{" textures. 
 
Quake loads up a hexen2 .mdl fine. Other than that, I don't know how the formats differ.

I'm thinking of making the foliage move in some cases, so bsp wouldn't be great for that.

Also I just don't think bsp feels right for the sort of geometry I have in mind.

Also: plant monsters. 
Heh 
killer hedges / vines.. looking forward to seeing this! 
 
Alphamasked MDL texture support has existed in Makaqu for ages, and Super8 inherited it.

I've also implemented it in the x86 ASM version of the MDL drawing code, for fast performance. 
First | Previous | Next | Last
This thread has been closed by a moderator.
Website copyright © 2002-2024 John Fitzgibbons. All posts are copyright their respective authors.