QCVM: Bite-sized QuakeC VM written in C
github.com
github.com
Unless you were playing the game at the time, it’s impossible to comprehend how important QuakeC was. It lit afire an ecosystem of modifications, some of which became full-fledged independent franchise of their own like Team Fortress. If you ever played with DOOM’s Dehacked, QuakeC is absolutely next-level.
For me personally, it amplified my interest in programming in a way nothing before it had. And that’s not counting the number of people who used QuakeC as a way to develop their own skills and create their own names for themselves in the game development industry.
1996-7 represents a golden period of hacker innovation and exploration.
One project was embedding a Python2 interpeter in QuakeWorld, along with a QuakeC->Python translator. The translator and the resulting Deathmatch and CTF games are here: https://github.com/barryp/qwpython
The other was embedding a JavaVM in Quake2, and instead of trying to translate the C game logic, we recreated the whole thing from scratch in an object-oriented Java fashion: https://github.com/barryp/q2java
Thanks to Carmack for opening up those old engines, that was a real education.
and a great investment:
https://mrelusive.com/oldprojects/obots/ObotDoc/index.htm
https://mrelusive.com/oldprojects/obots/obots.html
https://doomwiki.org/wiki/J.M.P_van_Waveren_(MrElusive)
Van Waveren started doing a map for Doom map pack, but with access to QuakeC build Omicron - the best Quake 1 bot landing him a job at ID architecting core Quake 3 technology. He followed Carmack all the way to Oculus.
So I guess you're right, and a friend's older brother and his friends did some stuff that looked cool but it was one of those "nope" learning experiences for me.
I mean it's a bit tougher to do it all completely from scratch, but remember John Carmack didn’t just sit down one day, open a blank text editor and say “I’m going to make Quake” - he started with game dev years before, built 2D platformers, built Wolf 3D, then Doom. With the tools and docs we have at our disposal nowadays, I reckon most HNers could get quite a lot of the way towards Quake if they could dedicate the time to the task :)
So it's maybe a bit overengineered for Quake the game, but it turned out to be perfect for Quake the ecosystem (and everything that followed) to emerge :)
Also, this wasn't used for the entire game, only for the parts that are moddable.
// QCVM is Copyright (C) 2023-2024 erysdren (it/she)
https://github.com/JaycieErysdren/QCVM/blob/main/qc/main.qc#...
I like it. Maybe I'll start appending "it" to mine.