|Posted by Baker on 2012/06/29 11:38:17|
|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:
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).
Latest build definitely fixes Rapture episode ending texts (and with that most likely also Nehahra or any other addon with the same issue). In some video modes, it requires even the very last line available, but all characters remain visible. I only checked with rainend, but I doubt any text is longer than there.
Currently still on my wishlist (unless I find more):
- Shrak texture issues
- Malice d15 fov crash
Had a quick go at using the install feature.
-'install' then hitting enter is fine, normal command/cvar explanation is printed.
-'install modname', where modname is the name of a mod present on Quaddicted, results in a crash.
or any URL I've tried so far results in a crash.
In fact entering anything after 'install' seems to result in a crash.
-'uninstall' then enter is fine.
-'uninstall modname' seems to work fine.
-'uninstall modname full' removes the mod directory, but not the zip in id1/_library. Since install wasn't working, _library was obviously manually created and a zip manually placed there to test, so perhaps that's an artificial way to test it.
When you are already starting with zipfile stuff, why not also provide support for loading zip/pk3 files in general? For me at least, that would make things easier when adding mods. Always opening Pakscape to group stuff together sucks. And additionally, maybe music files inside PAK/zips could finally be recognized. :P
And I forgot one thing in my "wishlist":
- Music track playing msg when exiting level to be removed
I have to be honest that I don't fully understand that log now but if I closed it I guess it is not a crossplatform solution to lowercase everything.
2) You know the pain of my Quake life... I need a time machine to get back to the 90s, take over idgames2 and have it prosper with my nazi standards.
Do you support HTTPS or are you using the QI user agent as workaround? I'd need to add a comment to my config so I don't lock the engine out once QI gets a new release.
Overengineering Is Fun
a few things regarding this install command:
why not get the engine to directly load the paks etc from the zip file? (especially good when you consider downloads from servers).
(@NightFright: compression within (most) pk3s means that you need to rewrite half the engine to use calls that can either read from a memory buffer or decompress the file on demand. pak files have no compression and are typically opened simply by re-opening the pak and seeking to an offset. I suppose that decompressing to a temporary file that will be automatically deleted would also work. Either way, it isn't a bolt-on feature and can be quite daunting, at least if you want to do it properly.)
how do you update when a new version is available? 'uninstall foo full;install foo'? you'll lose your configs/saves/etc
(this is also incredibly relevant when considering random quake servers running different versions of a mod)
never trust the filename in a url. some examples:
(evil huh, note that nvidia drivers will obligingly attempt to load a whole load of dlls from the working directory)
use the user's home directory instead of the quake dir for the Downloads path. Noone will ever find it there!
stuffcmd(self, "uninstall id1 full\n");
console commands have almost no discoverability. if I don't know the name of a package, I have no way to install it. eg the install command needs a way to list all packages with 'rubicon' or something in the filename or description (apropos style or something).
also, needs a menu so you can easily delete everything.
replacement/generic content like texture packages shouldn't need a -game
map packages will often have a dependancy upon an existing mod, and should be installed in that mod's gamedir instead.
I did consider doing something similar myself, but I ended up overengineering it to be too weird for anything but standalone mods. oh, and I didn't bother with an uninstall option (partly because of the problems with multiple versions of a mod needing to be installed in order to cope with servers running different versions of the mod, as well as mods potentially requiring generic/shared stuff like texture packages).
hence fte's .fmf thing.
@spirit --- I'm using the QI user-agent like you told me about.
utilities.c in the source is loaded with several common sense sanity checks and I mention above having a "todo" where the uninstall only uninstalls via the source zip to see what files came with the mod, leaving user content to the user.
There isn't anything new here, the Quake Injector has done this for ages, here is its xml database
Someone wanting to do things the old fashioned way isn't prevented from doing that.
The "install" command merely intelligently unzips a file the way you or I could without reading the readme.
- If it sees a .pak or a progs.dat it goes to it's own gamedir.
- If it just contains .bsp files, should go in the maps folder.
Installing an unknown zip into place is relable, but the game parameters and other settings remain unknown. Someone may still need to read the readme to get an unknown mod running.
Having the engine read Quaddicted's database will help it with the rest for known mods. And soon enough it will auto-complete from Quaddicted's database.
Unknown mod? Wrong version? You can install by hand the way you do it today.
I agree with the replacement content shouldn't be a -game but some separate layer.
But ... Most important thing is to get another update out after testing on another computer. I suspect I have a dependency in my Windows $PATH that didn't make it into the .zip
@spike part 2
Searching by word. Agree. Quake Injector lets you do this.
Probably an update tomorrow after I test on a few machines and do a revision.
Experimental Build #2
Windows GL | WinQuake
Experimental build #2 with ability to install directly from Quaddicted or a web address.
I've run this on (2) Windows 8 machines as verification in addition to my Windows 7 laptop that the download function works. (No longer uses libcurl for downloading the archives, so no external .dll files needed.)
Also fixed: cd play bug reported by fifth and a couple of things railmccoy pointed out when he simulated installation.
To install something from Quaddicted or a web address, type something like:
] install rapture (Will try quaddicted)
] install http://celephais.net/levels/files/rubicon2.zip (direct from web address)
Also can uninstall and likewise this is experimental.
] uninstall rapture (removes quake/rapture gamedir contents and folder, but leaves rapture.zip available)
] uninstall rapture full (removes the rapture.zip as well)
More refinements need to be done ...
I'm going to figure out a way to make content replacement easy for you.
I don't know the exact method, and it maybe a couple of weeks before I sort that out.
But it would be nice to make conservative classic Quake replacement content available to more people and do it easily.
Level Ending Msg
Take your time with that. Main thing right now is to fix any remaining issues (or those which may still be found).
I am still wondering why that "Current music track" message pops up on the level ending screen, and it's always track03. Even if no music is played, regardless which addon. Weird.
Played around with install a bit more and encountered no bugs, other than a crash that occurs when you input an https URL.
I have a few general feedback points as well. Firstly, while not really a bug, it seems strange that it gives you the impression of downloading something if you feed it the name of a file that doesn't exist; eg 'install sthashahaeg'. Would probably be better if it just informed you that such a file doesn't exist.
It also seems inconsistent that the feature allows you to install certain types of files (eg maps as opposed to mods) but doesn't let you uninstall them, just the archive. Related to this is the absence of autocomplete for the zips. Maybe an uninstall_zip command?
I suppose there are arguments both ways - for keeping the simplicity of confining it to just 2 commands, install and uninstall, and keeping it to just folders rather than all kinds of loose files versus giving more complexity but greater consistency and a fuller feature set.
The other thing I noticed is how much good feedback it gives you, with clear descriptions of the features when using them, and useful notices when you use it incorrectly. It would be nice to see this extended to all cvars and commands in the engine, similar to the level of info DP and FTE give you when using the console.
Also, as Spike says, autocomplete and apropos/find for the Quaddicted archive seem like essentials, and this would then seem an opportune time to extend that kind of discoverability to all cvars and commands.
Quaddicted needs an API. Any programmers here?
Is It Just Me
but it seems FMv has turn the wrong direction.
Why in the world the engine has to install the mods instead of you?
i don't get it. What's next, the engine that playing the game instead of you're?
there's more and more similarities between this engine and DP (no double penetrate confused)
I could add a command line parameter that disables those 2 commands.
The main purpose is to allow the Quake server in a LAN coop game to share the archive to other computers.
Instead of downloading each map, model, sound.
Which doesn't work for single player releases because:
1) Skyboxes. QuakeC doesn't know about these.
2) .lit files. QuakeC doesn't know about them.
3) Other misc files that are part of a single player experience that is a .mdl, .spr, .bsp or .wav
I know most people don't care about coop, but it is a major interest of mine.
This is actually a Very Good feature.
For the likes of you and me it's unnecessary. For the casual player or newcomer to Quake it's absolutely essential. Installing mods, making sure you get the right files into the right directories, setting up dependencies - these are all huge barriers and while you may think they're basic enough, you'd be surprised at how much difficulty the non-technical end user can have in getting them done. Even something as simple as getting the engine executable into the correct directory is something I've personally witnessed people having trouble with.
Install Command Now Seems To Work
Pretty nifty feature, not entirely sure if I will use it really since you have to know what you're looking for beforehand. If there was a way to browse before you install.
Could be worth having a list feature, maybe "install list"? While we're on the subject of lists, I can't remember which engine had the feature but it'd be cool if there was a way of having things in the console have rows/columns rather than say 1 item per line. (like if you remember in DOS you could put /p /w and it would fill the screen so you didn't have to scroll so much).
i'm really sorry for my expression.
For the casual player or newcomer to Quake it's absolutely essential.
Actually i'm not sure the newcomer that never installed the mod in a "proper way", would install the mod via console command using the engine.
A feature that definitely IS for newcomers is the "Levels" menu option. I absolutely love it since it makes level packs that come without start map (e.g. one of the Retro Jam releases) very easy to use. You can choose any map without using the console at all.
The bottom line is: If you really want the feature to be accessible, it may need to work via the game menu.
How many newcomers does Quake 1 get these days?
More than usual, just judging from this thread.
I don't really agree that a menu option is top priority, though.
Kind of interesting to reflect on what you'd want to do to make a perfectly accessible engine for a newcomer to Quake; say someone who took up gaming in the last 5 years and only has experience of Steam.
You'd probably want to ensure that they never have any interaction with the directory structure, the command-line, configs or the console. That's basically how Steam functions, even if you're playing a game with mods. You just launch the game through the Steam UI, and if you want mods, you just double click stuff on the Workshop and it all installs automatically, never leaving the Steam interface.
So for Quake, you'd want the source port to come packaged in an installer (a single exe in a single exe sounds absurd, but as mh said, putting the engine in the right place isn't necessarily obvious to a newcomer to Quake) which the user just double clicks and it detects where Quake is and puts the exe in the right place, then creates a shortcut on the desktop. Maybe it could come packaged with Quake Injector too, as a means of ensuring that downloading and installing mods is all menu driven, rather than fiddling with rars and zips and the directory structure, with the Injector also creating its own desktop shortcut.
Afaik Quake Injector doesn't have any means to set up the correct command-line switches automatically though, so that would be an issue. I know some engines - FodQuake for sure - do away with the command-line entirely, so instead of having -heapsize etc, it just allocates memory correctly on the fly. That would probably solve a large percentage of command-lines required by mods.
Another interesting idea would be to actually get all that on to Steam through Greenlight. There are various old HL and HL2 mods up there now which you download directly through Steam servers, and Valve's long term plan is to allow basically any kind of software on Steam, so it'd be an interesting first to see if a source port could end up on there. =)
That way people who have Quake on Steam would likely find themselves directed through Steam's recommendation system to any custom Quake engine available on Steam, rather than being stuck with broken glQuake or having to trawl round the web searching for engines which they won't know how to install.
If something like that was in place, you could play Quake and any mod without ever touching anything other than desktop shortcuts/Steam UI and in-game menus, which would certainly make Quake future proof and more accessible to a wider audience.
I see that some silence has returned to this thread. :P
Well, just dropped in to say that I am finished with my basic Mk V testing sessions.
I checked these:
- Quake + mission packs
- Abyss of Pandemonium
- Beyond Belief
- Rubicon Rumble Pack
- Soul of Evil
- Soul of Evil: Indian Summer
- In the Shadows
- Retro Jam 1-3
- Func Map Jam 1+2
Good news: No problems with any of these actually - besides the remaining issues with Shrak (white skin textures) and Malice (fov crash in map d15).
I will check some Quoth and Drake missions, but I am confident Mk V will do fine here, too. :)
I'm glad to hear it!
Haven't had much to talk about because I've been working away on the to-do list and items in this thread.
But I'm only about 70% done, so late next week is likely when the next version will be out.
How do I load from the autosave? I press F9 and it loads from the manual quicksave.
This thread has been closed by a moderator.
Website copyright © 2002-2020 John Fitzgibbons. All posts are copyright their respective authors.