Quake Engines & Source Ports: A Beginners Guide

What even is a source port anyway?

A source port is a port of the source code for the Quake engine (originally only available for DOS platforms) to other platforms. Often times, these new source code ports will upgrade the capabilities of the game engine, granting mod developers the chance to expand the original game's content and compatibility to what was originally intended.​
In more general terms, a Source Port is just what us people in these retro game communities call a new engine derived from the original.
Since the old engines no longer run on modern systems / weren't ported by the developers to consoles / etc, you'll need to have one of these bad boys to play Quake in all of it's glory on modern hardware.​

Right so I need a Source Port then, any recommendations?

Uh, yeah! Glad you asked. Below, we will go over the generally agreed upon best Source Ports to use when playing Quake, with a focus on compatibility with custom content, along with a short recommendation blurb to sum-up the overall perception of the source ports.


QuakeSpasm by Ozkan, Eric, Sander and Stevenauus.

QuakeSpasm is a multi-platform engine that aims to be an improved successor to the original Quake engine, focused on keeping the classic gameplay and graphics. It it is currently the most used source port within the wider community, and has many forks (engines that use QuakeSpasm as a base) that improve optimization, add new features, and generally have higher compatibility than this base version of QuakeSpasm.​

A Saint Nobody Has Heard Of (udob4.bsp) by Lunaran, showing the crisp and clean visuals of Quakespasm.Features include a large set of graphical refinements that can help hardware rendered Quake look as faithful as it can to the original, emulating many software-only rendering techniques that were sadly left out of the original hardware rendered Quake, and has many modern comforts including support for high-resolutions, ultra-wide resolutions, Xbox controllers and numerous bug-fixes done to the vanilla engine.

+ Current community standard, resulting in high compatibility with modern releases
+ High-quality emulation of software rendering features, resulting in a modern but faithful look and feel (Pictured)
+ Lowest system requirements
+ Supports lightmapped water
- Below average performance
- Framerates above 72 will break physics
- Infrequently updated
- Surpassed by its forks




While still the most popular port used within the community,
this port is not explicitly recommended only due to the
many forks (listed below) that simply improve it.

Quake Re-release / KexQuake by ID Software / Nightdive Studios

Released by ID Software in 2021, this updated Quake engine is included when purchasing Quake on Steam, as well as on consoles (PS5, Xbox Series, Switch). It is a faithful port of the engine using the original code to new platforms, wrapped up in a more presentable package with limits increased to support some modern map and mod projects.
While not using any of the code from QuakeSpasm, it offers a majority of it's features. Including hardware representation of originally software-only graphical features, enhanced dynamic lighting for muzzle flashes and maps that support it, and a suite of UI improvements to make using a controller less jank.​

KexQuake supports up to four players in easy-to-setup cooperative modes.
+ Modern mouse-controlled UI
+ Supports high framerates (>72 without breaking physics)
+ Features a new campaign created by Machine Games
+ Features ID-vetted community content with an easy-to-use in-game download system
+ Easy Multiplayer and Cooperative mode server creation, crossplay with console players
+ Optional high-quality refinements of all enemy and weapon models
+ Native controller support including auto-aim and a weapon wheel
~ A visually touched-up original campaign, with mixed results
- Paid software / Steam DRM
- Slightly inaccurate physics
- Can have poor performance on highly detailed levels
- Installing custom content is a pain
- Requires a GPU with Vulkan support
- Limited community mod/map support
- No CSQC support


While being a good port in it's own right, the community tends to favor
compatibility with QuakeSpasm derivatives over this official port when playing community
releases, as it has many game-breaking bugs when playing custom content and lacks
features that QuakeSpasm has improved over it's long development.



VkQuake by Novum

VkQuake is a QuakeSpasm fork that runs entirely using the Vulkan graphics API instead of OpenGL. It includes many new features derived from Quakespasm Spiked (listed below), aiming to be a soft upgrade for QuakeSpasm, supporting things such as custom particle effects, support for moddable huds, and decoupling physics from framerate.​

Building on the feature set of QuakeSpasm, this port is somewhat of a middle child of
Quakespasm's innacurate waterwarp effect alongside VkQuake's more accurate offering.
regular QuakeSpasm and QuakeSpasm Spiked, and has progressed to the point where it is seen as a straight upgrade to QS for players with a Vulkan-capable graphics card.
Popular among players, it is a well-rounded port that is regularly being updated by its author.

+ Based on QuakeSpasm, offering familiarity
+ Supports high framerates (>72)
+ Very good performance (comparable to Ironwail)
+ Mod selection UI
+ Emulates original game's underwater screen warp effect (Pictured)
+ "Software Emulation" mode uses a palletization filter for more authentic visuals
+ Supports CSQC huds and the Arcane Dimensions particle system
+ Supports lightmapped water
- Requires a GPU with Vulkan support


This port is recommended due to simply being Quakespasm
with clean, tasteful additions, high framerate support,
and improved performance on cards that support Vulkan.


Ironwail by Andrei Drexler

A relative newcomer to the scene, Ironwail is a fork of Quakespasm that overhauls the rendering API, with a focus on high performance instead of broad compatibility.​

Ironwail r_softemu in action (left) and disabled (right)
Capable of handling even the most ridiculously demanding maps at very high framerates, it is a great port for those with more recent (~2009 and onward) GPUs, or integrated graphics that have a hard time running modern graphically-intensive levels at an acceptable framerate. It gains a great deal of frames (anywhere from 50 to 500% more) over regular Quakespasm and its other less-performant forks.

+ Based on QuakeSpasm, offering familiarity
+ Supports high framerates (>72)
+ Very good performance (comparable to vkQuake)
+ Enhanced menu (mouse control, mod/level selection UI)
+ "Software Emulation" mode uses a palletization filter for more authentic visuals (Pictured)
+ Expanded options menu, featuring many console-only options in an easy-to-understand format
- Requires a relatively modern (~2009) GPU to run



As with VkQuake, this port is recommended due to being a
straight upgrade to QuakeSpasm for compatible hardware,
with the added benefit of an expanded options menu and
a classy software emulation mode.
Author's personal choice.


QuakeSpasm Spiked by Spike

QuakeSpasm Spiked is a popular fork of the QuakeSpasm engine that aims to improve the QuakeSpasm engine further, expanding limits and features even past the default QuakeSpasm, and as such has amazing compatibility for modern levels and several mods that utilize CSQC to extend Quake's modding capabilities.​

The portal to Tears of the False God by Bal, showing off the custom particle support of QSS.
Building on the feature set of QuakeSpasm, Spiked has introduced a lot of new features that have become standard across ports (Enhanced Particles, Extended Hud Modding Support) since it's inception.

+ Based on QuakeSpasm, offering familiarity
+ Supports high framerates (>72)
+ Supports CSQC huds and the Arcane Dimensions particle system (Pictured)
- No noticeable performance improvements over QuakeSpasm
- Features occasional game-breaking bugs that other QS forks don't
- Suppresses precache crashes, resulting in unforeseen crashes on other forks if used for map/mod testing.





Offering similar upsides to the other QuakeSpasm derivatives listed here,
it is worth noting that during regular gameplay there may be map breaking
b
ugs that do not exist on other forks of QuakeSpasm.
As such, this port is only explicitly recommended if you want the new particles
and do not have a VkQuake compatible GPU.


JoeQuake by Jozsef Szalontai

Popular within the speedrunning community over at SDA, JoeQuake has seen significant updates that help it stand on it's own as a port for the general Quake userbase.​

A player attacking a vore with a rocket launcher, showing off the new coloured explosive lighting effects in JoeQuake.

While not being a descendant of Quakespasm, JoeQuake still features all of the common modern limit-removing features of the other ports on this list, and stands on it's own as a port for modern releases and old classics alike.

+ Supports high framerates (>72)
+ Supports lightmapped water
+ Has new optional effects, such as coloured dynamic lighting and new viewmodel options (pictured)
+ Expanded options menu, featuring many console-only options in an easy-to-understand format
+ Enhanced menu (mouse control, mod/level/demo selection UI)
- No CSQC support
- Performance can be an issue in larger, more detailed community levels.





This port is highly recommended to players interested in speedrunning
in the SDA community.
However, it is still a sufficient choice for playing modern releases and is
constantly being updated to fix bugs and improve compatibility.


Other ports
Ports that have significantly different goals to typical community engines, featuring new and interesting ways to play Quake, while not having a focus on broad compatibility with modern releases.​
[QuakeVR] by Vittorio Romeo
A version of Quake with upgraded locomotion and QOL improvements for playing Quake maps in VR. Features a large amount of VR-standard locomotion methods, dual wielding, a grappling hook, positional damage and full room scale. Certainly worth checking out if you have a VR headset.
[Super8] by Qbism
With the goal of bringing 8-bit Software Rendering into the modern era, Super8 allows you to play Quake in a faux-nostalgic gritty software palette while keeping support for modern large-scale maps and hundreds of monsters. Requires a beefy CPU to run properly, and has some mouse input issues, but can run the majority of modern Quake mods with ease.
[RetroQuad] by Mankrip
Self-described by the author as "The most advanced realtime 8-bit color software renderer on Earth." Utilizing many features of modern source ports, RetroQuad is notable mostly for an oddity, being unable to play many modern releases in it's current state. The author goes into more detail as to their methods on pages linked through their [Patreon], which you can also use to aquire the engine- as the latest releases are not free.
[FTE] by Spike
A featurelist powerhouse, FTE is the pet project of QSS creator Spike, and is somewhat of an anomaly within the community. Featuring support for everything under the sun, the port does everything in one way or another, but not anything particularly well. As well as Quake, the port runs Quake2, Quake3, Hexen2 and various FTE-exclusive games. Other than it's broad feature set, the port is also the choice of many indie game developers, featuring a powerful scripting engine that allows you to break the limits of what any given Quake engine on this list can do. Worth a look-see just to marvel at all of the features.
[Darkplaces] by Ladyhavoc
The undisputed king of the HD texture pack, and the choice of many developers who look to build their own game on top of the Quake engine (Wrath: Aeon of Ruin, Doombringer, Xonotic). While the engine has fallen out of favor of the community, many still use it to play the exclusive Quake 1.5 mod, and to utilize HD textures and effects that are otherwise impossible without the engine. Not reccomended, but hey, I'm not stopping you.
Historical Ports
Ports that have fallen out of compatibility with contemporary custom content, or have simply been surpassed by a port and no longer receive updates.​

[MarkV] by Baker​
Once a side-by-side compliment to Quakespasm, this port has been deprecated and is no longer updated.
Poor mouse input, no OGG music compatibility and limited custom content support make this a tough one to recommend over it's peers.​

[FitzQuake] by John Fitzgibbons​
The pioneer of many groundbreaking and current standard features, FQ has been succeeded directly by the QuakeSpasm engine family.​
 
Last edited:
having everyone compete in a level playing field, with the same engine.
Basically that and Joe the creator of JoeQuake has been part of the speedrunning community for a good 20+ years.

Also we have no control of what other devs will do to their engines, for example: changing the pitch angles so you can look straight up or down.
 
Last edited:
it does fix the issues with mouse input it seems (*feels* like 125hz polling but i didn't set that on my end?), but yeah the featureset has been scaled back even compared to what could have been done with mark v winquake. that would make sense in an environment where striving for creating "vanilla compatible" content is as valid a goal and challenge as it is in the dooms, but it seems not to be much of a concern with quake, which is totally fine! i have loved seeing the level of detail in brushwork increase throughout the ages.

TyrQuake might be another potential option for those seeking a software renderer for whatever reasons, aesthetic or practical, which seems to be in somewhat active development. it has winquake and glquake exes, for both netquake and quakeworld! i will be giving it a good run at some point in the next week.

i feel like a goal with quake going forward should be "keep Quake Now running on as many machines as possible, past and present", an ethos similar to how folks do what they can to run the dooms on whatever they can. the abandonement and ignoration of software rendered, winquake engines en masse is directly antithetical to keeping quake running on as many machines as possible. i promise that i'm not trying to be annoying by continuing to go off on true software rendering in quake, and i am sorry if that has ended up being the case. i am but a longtime quake player and neophyte brush layer who just happens to be an owner and enjoyer of a computer with intel hd3000 graphics under windows 10. i could probably run crysis (not well) on that laptop, but not arcane dimensions? that is something that just makes me profoundly sad. with regards to technology in particular, the current idea of "obsolescence" is what needs to be deprecated. a machine that can still perform its expected tasks, especially one that is wholly dependent on human input, is not obsolete until it is no longer functioning in any manner, and even then repair can mitigate that. my thinkpad sure as shit aint gonna wind up in a landfill, and i will do everything in my power to keep that machine going at least another 10 years, i hope more.
I agree with this totally. Nearly all ports derive from GLQuake and aim to make them either 'fancy' or upgrade the GL version requirements so not everyone can play it.

I'll probably fork the old SDLQuake from Sam (the SDL dude) and port it to SDL2. It is the only Software port that won't require ancient DX versions or that horrible 32bit only library that the original WinQuake had. Limits and additions would be needed though too.

Software mode really shouldn't be such a taboo, it looks amazing and nice and chunky!
 
  • Like
Reactions: Izhido
changing the pitch angles so you can look straight up or down.
Hadn't even considered this yet it seems so obvious.
JoeQuake's physics are the truest to the original Quake exe. Some exploits like power bunny hopping can only be done in it.
This pretty much answers my question if accurate. My interest in the speedrunning aspect is secondary. Granted I was basically speedrunning back before it had a name and I still remember the first qdq blowing my mind so it certainly still is an interest. However the accuracy of other ports was my main curiosity. I'm honestly a bit bummed that accurate engine behavior would be limited to one source port if this is true. I would think that, along with things like software rendering, as is being discussed parallel to this would be of bigger interest. I'm a bit ocd so using something that alters things, even if it's virtually indistinguishable will bother me. I'll have to check out JoeQuake again since I'ts been a long time.
 
  • Like
Reactions: Esrael
what would be my best option for a computer without a dedicated gpu and a very poor performance cpu?
i have a computer with intel core 2 duo e4400 and only 2.5GiB of RAM?
I remember trying out various quakespasm forks and none of them ran too well which is kinda surprising...
 
Don't be surprised. Quake, the original game (and their MPs) are, um, "simple" games with low geometry, low budget on special effects, that could run in a Pentium with some effort. Quake mods, on the other hand (and especially from the last 5 or 6 years), are waaaay more flashy, more detailed, with more functionality, that you simply cannot run without a decent GPU - it's what is expected to happen.

Q: Did you try running the actual Quakespasm (the original one, not any of the forks) in your machine?
 
Yes, try Quakespasm. I've mostly played Quake on a [assumedly better] iGPU only laptop. Quakespasm is what has the best performance that will run without issues. To be fair, the newest release of QSS runs better, but then it breaks triggers and makes maps unfinishable. If the laptop supports D3D 9 then try Mark V as well. Graphics are usually nicer than Quakespasm, but performance usually isn't as good on large maps.
 
Last edited:
TyrQuake might be another potential option for those seeking a software renderer for whatever reasons, aesthetic or practical, which seems to be in somewhat active development. it has winquake and glquake exes, for both netquake and quakeworld! i will be giving it a good run at some point in the next week.

I've played a bit with TyrQuake and while its GL version is nothing special (although adequate if you want a simple updated GL client relatively close to vanilla), it is awesome for its software renderer that can play the modern stuff.
So you can play the most modern maps, pretending you're still in the late 90's ! Software rendering truly has its own feel, charm and nostalgia.
The ability for scaling the software renderer output by a factor of 2 or 4 is handy for good performance while rendering at a higher resolution (without having a use a lower in-game resolution that your monitor may or may not support and have the monitor scale it badly with bilinear interpolation).
While experimenting with it, you may need to alter hudscale and r_particle_scale so the HUD/console are readable and the particles are at the correct size.
For at least Arcane Dimensions, you need -mem 512.
 
Last edited:
I've played a bit with TyrQuake and while its GL version is nothing special (although adequate if you want a simple updated GL client relatively close to vanilla), it is awesome for its software renderer that can play the modern stuff.
So you can play the most modern maps, pretending you're still in the late 90's ! Software rendering truly has its own feel, charm and nostalgia.
The ability for scaling the software renderer output by a factor of 2 or 4 is handy for good performance while rendering at a higher resolution (without having a use a lower in-game resolution that your monitor may or may not support and have the monitor scale it badly with bilinear interpolation).
While experimenting with it, you may need to alter hudscale and r_particle_scale so the HUD/console are readable and the particles are at the correct size.
For at least Arcane Dimensions, you need -mem 512.
thank you for this! when i was messing with it a few weeks back, i found TyrQuake to have similar issues with mouse input (negative accel at >125hz polling rate, erratic input registering) that is present in mark v. it definitely seems like a much more comprehensive option for older systems/ones with dropped opengl support, especially compared to chadquake. anything in the vein of "chocolate quake/crispy quake" is worth bringing light to.
 
  • Like
Reactions: Esrael
Yup, this article could use a slight rewording but it's still good for now. Will update accordingly when it gets truly outdated. RIP vkQ.
 
Speaking of VkQuake, its section says it has good performance while Ironwail has "best performance by far". Is this even true? I couldn't reproduce such a difference on my end.
 
Speaking of VkQuake, its section says it has good performance while Ironwail has "best performance by far". Is this even true? I couldn't reproduce such a difference on my end.
Not sure honestly. I personally get better performance on IW but YMMV, probably not worth having that there at all honestly, I'll change it up.
 
Speaking of VkQuake, its section says it has good performance while Ironwail has "best performance by far". Is this even true? I couldn't reproduce such a difference on my end.
I think vkQuake has had some optimisations since that was written but on my machine IW is still decidedly better in terms of FPS count. They're both so fast though that it doesn't really matter on most hardware anyway, so it shouldn't be a deciding factor for most people
 
Probably the main reason I prefer IronWail nowadays - which isn't mentioned in this post - is that it has much less colour banding, which is especially visible on maps with heavy fog. Once you notice the difference it's hard to go back.
 

Attachments

  • vkquake0001.png
    vkquake0001.png
    1.5 MB · Views: 75
  • saint_2023-12-27_23-47-01.png
    saint_2023-12-27_23-47-01.png
    1.8 MB · Views: 74
  • vkquake0003.png
    vkquake0003.png
    1.6 MB · Views: 77
  • saint_2023-12-27_23-57-01.png
    saint_2023-12-27_23-57-01.png
    1.7 MB · Views: 74
That's probably the reason I don't use Ironwail often. Cause the better gradients are accomplished with dithering, which I think is why I see patterns of lines in areas of solid colour and just about every skybox in maps.
 
I still prefer vkquake for Arcane Dimension maps or any map/mod with fte particles. IMO that is the ONE BIG feature that Ironwail is missing.
I just recentl;y started switching to ironwail for new maps/mods w/o FTE particles. The dithering in Ironwail is barery visible.

Hope someone will continue with vkQuake development, though.
 
Last edited:
This guide seems useful, also QuakeSpasm looks like a good sourceport, so i will prefer that one.