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
Z-fighting 
 
It's certainly easier to do it that way than to edit all the maps (one modified progs.dat as opposed to a bunch of modified maps)....

Depends on your tools. External .ent files doesn't need QuakeC, it's like doing -onlyents map recompile.

In Mark V do this:
1) "copy ents" ... copies the entire map entity string to the clipboard.
2) Save that as c:/quake/id1/maps/e3m3.ent
3) With the map in Mark V, type tool_inspector 1
4) Press 3 for the graphical display to show the edict #.
5) In the console type "edict 55" if the edict # is 55.

You can just find the map entity in the .ent and change numbers.

I'm only pointing out what you can do with tool_inspector in Mark V. 
 
Ah, that is pretty cool. Yeah, tool_inspector is a great feature -- I've found that very useful.

I didn't know about "copy ents," or really ent files in general. That seems like it would be a nice solution for engines that support it... but in practice it doesn't seem to work.

Looks like the ent information doesn't really contain ALL the information for the ent, and I can't seem to change an origin of a door using the ent file, even if I add a line for it. I know setting an origin can be tricky....


Hm, it looks like "copy ent" loads the information directly from the bsp (ignoring any changes I've made from the progs), and the ent file stuff is only applied if there's a difference between it and what's in the original bsp. And that happens after any progs changes have been applied (overriding any changes I make with QuakeC).

Also, having a blank ent file (as I first crated when testing) will prevent you from loading a level, heh, because "Host_Error: SV_ModelIndex: model progs/player.mdl not precached" 
 
An .ent file is just to replace the entity text in a .bsp (without recompiling the .bsp without doing -onlyents, which would replace that text).

Open a .bsp in a text editor, go to very near the bottom, that's the entity information.

It won't exactly match the output of the "edicts" or "edict x" command because some of the edict entity information is filled in at run-time.

An example is modelindex. The .bsp (the map) has no idea what that will be, because a map have idea what progs.dat will be running, etc., etc.

But some fields will be exactly the same much of the time, like "spawnflags". A monster's origin if stationary, door information, etc. 
 
Next will have:
1) Texture gamma option, change it on-the-fly. Uses no cpu/gpu. Should work on gunter's old video card. The no cpu usage/cpu usage thing was the appeal.

2) Gun positioning cvar r_viewmodel_scale. Similar to ezQuake/FuhQuake Can move the gun forward and more prominent.

3) Automatic 2D console/status bar scaling -- Small | Medium | Large or off and use the different FitzQuake cvars.

Change resolution and it will use the best non-jaggies combination of settings based on your preference. 
 
And "ProQuake" centerprint option --- which is just the same place that original Quake did centerprint. scr_winquake 1 to turn it on. Also sets the scoreboard at the top of the screen.

Mostly doing this because next update could be the last one for a very long time. 
 
Might add:

if (scr_center_lines <= 4)
..... y = vid.height * 0.35;
.. else
..... y = 48;

Is the original Quake code. And quite terrible, really.

So if less than 4 lines of text, sort of center it on the screen (sort of). If more than 4 lines, do it way up near the top.

So if the resolution gets really high, that discrepancy in positioning will get very large between the positioning of a 4-line centerprint vs. a 1-liner.

It is what it is.

I basically prefer the FitzQuake way provided the text is ensured to be above the crosshair.

/But then you have compatibility ... and I get that too. Hence, upcoming option I don't entirely like to begin with. 
 
What seems obvious is that the intention of that code is to fit a 320x200 display. Original releases of GLQuake scaled the menus, console, sbar, etc to 320x200 via glOrtho.

What seems deeply fucking odd is that the very same code survived through software Quake, GLQuake, QuakeWorld, Quake 2 and presumably Hexen 2 although I don't have a copy of it's source handy for cross-checking.

I stand by saying that the stated intention of centerprints is for important messages that the player needs to be pay attention to and that obstructing your view is the correct and desired behaviour.

Something like y = (vid.height * 0.35) - (scr_center_lines * 4) seems a better compromise to me. 
 
@mh - Mark V uses a formula not too different than that. 
 
It's really not as terrible as one might first think. It actually provides a great deal of control over the positioning of the centerprint (as I previously mentioned).

Also, it does seem worse when you use standard winquake or glquake (or proquake) in very large resolutions where the text gets teeny tiny, so the positioning is affected quite a bit, BUT this is not a problem with the centerprint positioning -- it's a problem with the text size, and Mark V lets us scale the text size up regardless of screen resolution, so the weirdness of positioning of teeny tiny text is really not an issue -- at least not for anyone who scales the text size up to something more reasonable/standard-looking.

Speaking of teeny-tiny text, I tried out the tool_texturepointer thing, and it does not scale the text up along with my other text, so it remains teeny tiny and hard to read in large resolutions.


Anyway, thanks so much for providing the option to use Quake's standard centerprint positioning. This ensures compatibility so that the text will appear as the modders intended (as they saw it in Quake), with pretty much every Quake mod (and standard Quake itself) -- assuming the user's text size is also scaled to a more "normal-looking" setting for Quake


Ya know, I don't think id designed Quake to only run in 320 x 200 -- that's just the minimum supported resolution. And text size is pretty unwieldy at that resolution (not to mention the console is too large); you can hardly tell the difference in the position of 4 or 5 line centerprints when in 320x200. I highly doubt they never tested it in the higher resolutions; they didn't just accidentally position the centerprints the way they did because they neglected to test in anything but 320x200.... 
 
I'm pretty certain that it wasn't exclusively designed around 320x200... Although conback.lmp is 320x200 so you sure can't make assumptions.....

Nonetheless, I'm also pretty sure that there are huge chunks of the engine that were designed around hardware constraints of the time. The whole zone/cache/hunk thing in the memory manager, for example, is so obviously designed around "must run in 8mb memory". 
 
Just found this on my hard drive. Dated 2 minutes ago. It is an interesting screen shot.

4-player split screen

.... 
Holy Snaps 
Need tbh. Gonna play some DM with my buddies!

Will it have multi pad support somehow? 
 
I don't at the moment have a plan for input, that's the hitch.

Maybe within the next week or two after thinking things over, I can come up with a plan for input. 
 
Boring stuff: next version will clear any aliases send via stuffcmd to the client upon disconnect.

Posting a 2nd screen shot of 4-player:

4-Player Shot #2 
Baker 
cool stuff! did it require a lot of code changes? 
Input 
You could do like Blaster Disaster and support two people on the keyboard, one person on a multi-button mouse, and one person on a joystick/gamepad.

Downsides: keyboard players would be stuck with oldschool no mouselook. All players would probably only be able to change weapons via cycling up or down except for maybe one of the keyboard players. Mouse player might need to steel a couple keys for strafing (laptop users would definitely be crowded). 
 
Boring stuff: sv_gameplayfix_setmodelrealbox for Quake Rally or other old mods that need original Quake bugged setmodel.
------------

I've got a video of the four-player uploading now. Sadly, the video is 1 GB and it says 1 hour, 17 minutes remaining on the YouTube upload.

@ericw -- I went full retard. Never go full retard. I literally posted the screenshot 2 minutes after I got the prototype working.

------------
With any luck, the new version will out today or tomorrow. 
Actually 
Just opened up ol Blaster Disaster and it let you have up to 8 players:3 keyboard, 1 mouse, 4 joysticks. 
Video 
@qmaster - I'll solve the input solution with some thought. Spike, R00k and myself have had numerous conversation about FTE split-screen in the past. 
 
Wow, that's pretty cool.

I think you will definitely need joystick/gamepad support for that to be usable.

Perhaps the simplest thing to get it working at first, may just be to have one joystick configuration (button 1 = jump, button 2 = fire, etc., however the user sets it up), and just copy that behavior for gamepad 1, 2, 3, and 4, with each gamepad sending its input to player 1, 2, 3, 4.

Otherwise each gamepad will need to be configured separately. Which would probably be ideal in the long run, but just having one configuration for joystick input may be easier just to get it working.

Keyboard input should probably always be for player 1 (the one in control of the computer, which would often be the "server," in effect). Hm, but I hope it be able to connect all the extra players to an online server too....


But I'm already imagining hooking my netbook to the large TV screen and playing couch-coop splitscreen Quake! I have plenty of PS3 gamepads (which are basically just USB gamepads in Windows). 
@gunter 
There's a video I posted in the General Abuse thread. Read the names of the players in the scoreboard. 
 
Hah, neat. Reposting that on the fvf forum....



Thinking more about gamepad input, due to the limited number of buttons on a gamepad as compared to a keyboard, you may need to implement a "shift" key functionality.

Example:
Pressing Button 1 alone causes you to attack.
Pressing Button 2 does nothing by itself, -- it's a "shift" key.
Pressing Button 1 while holding Button 2 causes some alternate action, like changing your gun.

That's how they did the Playstation port of Diablo.


This could be added into Mark V as a standard feature -- not just for gamepads.


Perhaps something like:

bind ctrl +attack
bind alt @shift
bind @ctrl +jump

Now the ctrl key can be used to attack, or to jump if you are holding down alt at the same time.

Yeah, it doesn't seem as useful when you could just use alt to jump, since there are plenty of other keys on the keyboard, but you could bind lots of other keys or mouse buttons to shift their behavior too, like:

bind mouse2 +moveup
bind @mouse2 +movedown
bind mouse3 (next weapon impulse)
bind @mouse3 (previous weapon impulse)


etc....

It would give more options, which would be more useful for a gamepad.

I suppose you could even add more than one "shift" key, so ctrl could be @shift and alt could be #shift or something.

Then you have even more overly-complcated things to bind!

bind ctrl @shift
bind alt #shift
bind mouse1 +attack
bind @mouse1 +jump
bind #mouse1 "say I can do 3 confusing things all with one mouse button!" 
Joypad Support In Quakespasm 
Is pretty damn near perfect btw. 
Also 
I have all the major console controllers to test with 
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.