Quake Strogganoff

Q. What is this?

Quake Strogganoff is a development blog for an open Quake mod as I learn programming, with a specific focus on gameplay code although this can include some systems programming. I was originally going to do this like a tutorial series but that might be too strong of a term. These are more like here’s what I did and it seemed to work spotlights (so consider yourself warned - also if you blow up your computer I’m not responsible).

For the most part any lessons will be aimed at complete beginners who are either just starting to learn how to program or programmers who are new to QuakeC. Although hopefully this isn’t a blind leading the blind sort of situation but just bear in mind that I also have a long journey ahead of me. Hopefully some of this proves useful regardless. Check out the list of Quake Strogganoff posts for more.

Q. What is the mod?

The end goal of the mod is an implementation of Quake 2 in QuakeC in engines that support Quake 2’s content like FTE but more specifically DarkPlaces. The goal is to create an SDK of sorts for anyone with more talent than myself (throw a rock) at making levels or doing something cool with it. But it is ultimately a personal learning project and if all goes well will hopefully serve as a base for future projects.

Another goal is to have a SSQC, CSQC and MENU QC all included. Although since I’m not a complete masochist, the CSQC and/or MENU will be based on existing frameworks (update: Menu based on Metal-Lib by Subject9x and CSQC + HUD from (Nahuel and Dresk), so thanks for a great head start along with some juicy extras like the rtlight editor1 which just brightens up my day.

Q. Why not just mod Quake 2?

This won’t be a direct 1:1 port (so don’t expect to be able to play through Q2 with this) but rather will take a more Quake 1 approach along with extra features some of which might not fit Quake but a project I want to work on in the future would resemble something more akin to games from the BUILD engine (Duke, Blood and Shadow Warrior) with world interactivity, lots of destruction and a smack talking protagonist.

In the end though just picture Quake 1 but with Quake 2 stuff (enemies, items and weapons). Deathmatch levels will should still work.

Q. How about a list of planned features?

Here’s a partial list off the top at the time of this writing:

  • Material system for footsteps and impacts using Q3BSP.
  • Destruction system for breakables similar in style to Half-Life.
  • Use key for interactivity.
  • Utility functions for an easy to expand weapon system.
  • Smack talking (currently disabled).
  • Possibly Bot-like path finding to help AI navigation.
  • Screen/visor effects.

Q. Why DarkPlaces?

Familiarity with the engine for one thing and the wide range of file formats it supports that are specific to this mod. Also, I was planning on exploring some Wrath modding.

Q. I want to add Q2 enemies to my own mod, how?

Being GPL, you’re of course free to use any code from this in your own projects (be sure to share your changes) however just keep in mind that you’ll have to add the framer macros from compiler.qc (if you’re not using NumberSix’s recoded progs) or you’ll get a lot of errors. Other than that, most of it should be pretty straight forward.

Q. There’s already a Quake 2 weapons mod! What about the Quake 2 weapons mod that came out a long time ago?

You mean this one? Yes, I would have loved to see the source code and how it was implemented in QC. Might have even been cool if possible to build on top of it but that would feel like cheating. Still though the Hyperblaster has been a pain in the ass and… Anyway, job well done! EDIT: there’s also this one which appears to have source code as well. Haven’t played too much but so far it’s pretty awesome, love the character selection as well, nice job!

Q. Paril added QuakeC support to Quake 2, so you’re a big doodoo head and your project is pointless.

Well, first, that’s not a question. Second, that individual is operating at a level few others have managed to reach and while we all aspire to join them in the ranks of the Q continuum, I have a long way to go before even coming close to that level of ascension (if ever). So for now I’m happy mucking around in gameplay code and learning as I go with things that don’t melt my mere mortal brain.

Q. Justin Marshall (icecoldduke) wrote a QuakeC to C converter… doodoo head etc…

See previous answer.

Q. [insert name here] wrote a [insert awesome project here]… doodoo head etc…

See previous answer!

Yes please!

Happy modding!


  1. Will do a spotlight (no pun intended) on this at some point. ↩︎