Tremulous: a personal history

by Paweł Redman, published on

Tremulous was a truly fascinating game.

It was a standalone game based on the Quake III: Arena engine. The gameplay was very Q3-flavored, but with two crucial differences:

  1. It wasn’t just people shooting each other. It was humans shooting aliens versus aliens chomping humans.
  2. Buildings. Both teams had to build and maintain critical infrastructure.

As much as I like Q3, it’s an exhausting game. The constant action is very demanding, but also quite repetitive. Tremulous fixed this by turning it into a proper shooter/real-time strategy hybrid. On top of that, playing as aliens was a dramatically different experience to playing as humans. It was actually two games in one in a real sense.

Building also added a whole other dimension to the dynamic and unforgiving combat. There was only one game mode: aliens versus humans. The objective was simple. Destroy the enemy’s spawn points (eggs or telenodes) and kill all the enemies. The game ended when one of the teams could no longer continue. No artificial “score N points to win”, no areas to capture, no little scenarios to play out. It was very elegant, almost like chess.

But I don’t think the game was that fun. What kept me playing for almost two decades was the openness. Tremulous wasn’t a commercial game made by a company. Dark Legion Development was a group of programmers and artists who just decided to make a game in their free time. Source code was licensed under GPL, assets under CC-BY-SA and anyone could host their own server.

It was a very fertile ground for a curious kid like me. I learned everything from sound design, mapping, English and the C programming language all from playing the game and dissecting its internals. It started a chain of events that eventually led me to becoming a professional software engineer.

(The game is still playable, but I write in the past tense because there are no regular players or games anymore.)

1. The beginning

I discovered Tremulous in summer of 2006 through a random Polish forum. Coincidentally, it wasn’t long after its 1.1.0 release, the version that held onto players until the very end. I was immediately hooked.

2. Paint

I very quickly got interested in how the game worked. At the age of 10, I believed I was too dumb to learn programming. I understood nothing about it. I’d open an .exe in Notepad and wonder, “who writes this?!”

Instead, I turned to mapping. Mapping is the art of designing and building the playable area of a video game. In Tremulous this meant arranging 3D shapes in GtkRadiant into walls, floors, doors, obstacles, and so on. You’d then wallpaper the shapes with images (textures), place lights, compile and load the finished file into the game to playtest.

In 2007, I released “Paint.” It was arguably the most polarizing map in the game’s history. It had fierce haters — for obvious reasons — but also many people loved it. I’ll let screenshots speak for themselves.

Figure 1: Paint, main area (October 2007)

The idea for the first Paint wasn’t actually original. I copied an Unreal Tournament map with the same name. I’d credit it, but I can’t find any traces of it on the internet.

I kept iterating and made many more Paints over the years. I quickly outgrew the “flat houses” idea from the UT map, with each Paint getting progressively more ambitious/deranged.

Figure 2: Paint 5, expanded main area (December 2007)

I found an an ancient forum thread of me announcing Paint 7 on tremulous.net. Nothing too interesting, but it’s cool to see how much better my English has gotten since.

Figure 3: Paint 7, tech/fog hall (2008)
Figure 4: Paint 7, bouncy space room

Paint 7 was the most played of the series by a good margin. It had a special, secret control room. If you raced the other team to it and built your base there first, you’d be undefeatable. Also, you’d have a button that played the Benny Hill theme song and shook the entire map. Each game was a trainwreck.

In later Paints, I tried improving playability, removed the control room and essentially ruined the fun. Worse still, I decided Paint 10 should be serious, disabled fullbright and used photorealistic textures. It wasn’t very popular.

Figure 5: Paint 10, main area (2011)
Figure 6: Paint 10, alien outside

In retrospect, Paint 7 was a perfect comedic relief to play in-between serious games and I inadvertently left my niche by trying to make a proper map.

3. Redfusion

Tremfusion was an improved client for Tremulous. To me, the best feature was advanced scripting.

At some point, I learned enough programming to mod the game’s client. I expanded Tremfusion’s scripting language and sent the source to a couple of friends as “Redfusion.” I didn’t know Git back then, so the source code is lost to the sands of time.

4. Cuboid

I spent a lot of time playing on Rotačák’s R Unlimited CZ. He later went on to release Murnatan on Steam, a remake of Tremulous, which sadly flopped.

His mod let players build as many buildings as they wanted (stock Tremulous is very conservative), build them on top of each other, and also added structural buildings like crates. Games got quite sophisticated with both teams building elaborate forts.

I wanted to expand on the idea and created Cuboid in 2013. This was also my first ever Git repository. You can tell I had barely any clue what I was doing from how I would make one commit per release.

Cuboid added scalable buildings to the game. You could build cuboids out of concrete, slime (alien counterpart), glass, and so on. This gave you enough freedom to build rooms, bridges, whatever you could imagine. I also tried redesigning the power system for humans by turning it into a physically-accurate electrical circuit simulator.

It was completely overengineered and didn’t gain much popularity. Still, I have very fond memories of no-lifing the first version in two weeks over a spring break.

5. Unvanquished

Around 2014-2015, I was an active contributor to Unvanquished, the spiritual successor to Tremulous. I implemented beacons, Borderlands-style damage indicators and helped artists import a whole bunch of models into the game.

The project was under very active development until kharnov, the project head, suddenly had to leave due to personal reasons. I lost interest shortly after.

6. New EDGE

New EDGE was a continuation of EDGE, which itself was a continuation of Rotačák’s mod. New buildings, new aliens, new guns, many new original and high-quality assets. It was a lot of fun.

Figure 7: The average ams base (early 2010s)

I eventually became a quite prolific contributor, adding many more new ideas. The repository is still up.

7. GrangerHub

By 2015 or so, the playerbase had been divided between the old 1.1.0 and the never-finished 1.2.0 for years. The former was much more active with New EDGE being the only populated 1.2 server left.

At some point, GrangerHub developed multiprotocol server software – one Tremulous daemon could serve both 1.1 and 1.2 players. Unfortunately, the community was led by bad actors who kept the server code to themselves. It would only be shared with New EDGE if GrangerHub took control over it. We refused.

Predictably, New EDGE was soon starved of players and we all resentfully switched to GrangerPub, the multiprotocol server running 1.1. I remember spending countless hours arguing on the GrangerHub forum, lamenting how badly against the spirit of open-source their actions were. (They never distributed server binaries, so legally they never had to release the GPL code.)

They kept stalling, saying the code wasn’t ready and that they would release the mythical “1.3.0” soon.

8. An Almango

In 2016, I met MaeJong, a mapper and one of GrangerPub’s top admins. We teamed up to create the only (as far as I know) collaborative map. For this purpose, I created mapcat. We worked on smaller segments of the map in parallel and used the tool to automatically join them all together.

The end result is An Almango (no, not “anal mango”), a very strange map that was never really meant to be played, but rather to be explored. It’s essentially a much more ambitious Paint, made by adults (if you can believe it) with an eccentric sense of humor. It was finished in 2018.

Some areas are genuinely well-made and look nice:

Figure 8: MaeJong’s alien base
Figure 9: Hydraulic press room
Figure 10: Grated catwalks leading to the reactor, modelled in Blender then imported into NetRadiant
Figure 11: The reactor
Figure 12: MaeJong’s plant room above the alien base

However, most of the map is “stream of consciousness” type of nonsense:

Figure 13: Main area
Figure 14: A different view on the main area with a Gaussian surface visible in the distance
Figure 15: The common area, a pun on the common/ texture pack used internally by the game engine
Figure 16: Weird maze with scrolling textures and one-way passages
Figure 17: Dretch Pwner, a minigame where a Dretch (a small alien) would enter the contraption and other players would try to crush them using the red buttons. If the Dretch survives, they get into a Paint-style control room with dumb and obnoxious buttons to press.
Figure 18: I don’t remember why I made this
Figure 19: The first and last time I ever drew anime
Figure 20: MaeJong’s homage to PacificSound3003
Figure 21: “Nevermind, the sausage was fine after all” – a reference to Transit, a classic Tremulous map

The map has been ported to Unvanquished and is still playable there.

9. Zittrig / Der Bunker

It turned out that the source code debate was just one issue. The whole GrangerHub was grossly mismanaged. MaeJong, other top admins and even DevHC — multiprotocol’s author — all defected. Together we created Der Bunker, a new multiprotocol server.

To quickly move players over, we launched Operation 137. MaeJong and DevHC, who still had access to GrangerPub’s server console, set the server framerate so low that the game was barely playable. Players stuttered heavily, the scoreboard bugged out and displayed everyone’s pings as 137 milliseconds, hence the name. GH leads had no idea what was going on, the server depopulated within days and never recovered.

It was a nasty, hostile takeover.

Not long after, I publicly released the multiprotocol server code. I still host a copy of it at zittrig-4 (and AA-QVM for the QVM/gamelogic side).

Der Bunker’s history was mostly uneventful after this drama blew over. I’ll give myself some credit for its stability and longevity. I insisted that, from the very beginning, we’d have:

ZdrytchX uploaded many gameplay videos from this era (and earlier years) to his YouTube channel.

10. Schachtmeister

Speaking of minimal moderation, the flip side was that we went hard on people who purposefully ruined the game for others.

In particular, we had one very special player. Desala would routinely cause serious problems, get banned then quickly evade the ban using a VPN, over and over again. He was by far the most persistent troll I’ve ever encountered. You could ban him 10 times over and he’d still come back, somehow.

So, I went scorched-earth and developed Schachtmeister, together with DevHC who integrated it with Tremulous. The idea was quite simple but surprisingly effective. Schachtmeister looked up every player’s WHOIS and reverse DNS records, and compared them with a known-bad database. This way, we could ban entire VPN providers all at once. Even ISPs with dynamic IPs like UPC (apparently Desala’s home internet provider) wouldn’t save you — Schachtmeister flagged those and gave all admins a heads-up.

The database grew very quickly. Desala either ran out of VPNs, money or patience and started behaving. RIP, bozo.

Fun aside: Schachtmeister is a deliberate misspelling of Schachmeister (German for “chess master”). Yalt, a German mapper/modder, named one of the areas in one of his maps “Ventillationsschacht” (“ventilation shaft”). This comically long name would often appear in team chats and we eventually started using “schacht” as a generic insult, basically meaning “dumbass”. Hence, the “master of dumbasses”.

11. The pandemic

Tremulous saw a resurgence during the pandemic. It wasn’t uncommon to see the server so full that it was barely playable. Like in the good old days.

Around that time, Der Bunker hosted a couple of special events. I have two videos from April Fools’ Day in 2021 when we turned the game into absolute brainrot: glourno_2021 and glourno_2021: Aliens. The Christmas mod in 2020 was even dumber, but I don’t have any clips at hand.

12. The end

I eventually lost interest and handed Kai full control over the server. Around 2025, Der Bunker died a natural death as the last Tremulous server.

As of writing, Kai still hosts Der Bunker in Unvanquished, and I very occasionally contribute to the project.

A grave with a tombstone that reads: Tremulous / 2006 - 2019 / Forever in our hearts. Screenshot from An Almango.
Figure 22: This prediction probably would’ve been accurate had it not been for the pandemic (An Almango, 2018).