It’s been four weeks again already?
Looks like the yearly xmas craze is about to break loose again soon. Are you already plotting how to best escape it or minimize the impact? You’re not the only one. One way might be to hole up in a dark cellar with a supply of cookies, alcohol and the upcoming RMQ demo. What’s in it?
Looks like it will have the BSP2 toolchain (and code, and documentation), the most recent version of the excellent and beautiful RMQ engine (and code), a bunch of single player levels heavier than Sabbath, clad in the RMQ-standard high resolution textures, and the most recent version of the RMQ mod itself, including various esoteric features (and code).
While the single player levels are going to be the most obvious thing to most players, maybe along with the engine’s eyecandy, the technical parts of the demo are what truly shakes the foundations. The BSP2 format (and the RMQ protocol 999) allow for absolutely huge levels that can be very detailed (think Doom 3 niveau) at the same time. Here’s a small breakdown of what they do:
An extension of the Fitzquake 0.85 protocol 666 that allows for physically large levels. We have maps (not proof-of-concept maps, but production single player maps) that extend further than 8192 units from the origin and are absolutely playable. The tools support this as well – not only can you escape the old Quake limit of 4096 units in all directions, you can also go further than 8192 units (tested and proven, an additional fix was required here).
You also get smooth angles for your rotating entities as well as some other fixes.
An extension of the BSP version 29 format that allows level designers to exceed the old vertex and clipnode limits among others. What this means is that you can have extremely wide open spaces and excessive brush detail at the same time (clipnodes!) as well as a much higher vertex count (say, large amounts of triangle mesh based terrain or simply much, much bigger maps).
The tools support multithreading; the BSP2 version of TxQBSP includes skip support (skip tool); the Light program supports coloured lighting (.lit files). There is also support for proper bmodel rotation and very large maps.
There are currently only Windows versions of the tools, but they are running under Wine without problems and are thus proven to be usable under Linux as well.
RMQ rotating entities
These allow you to create rotating doors etc. much like it is done in more modern games. The only difference is that we use a point entity (info_null) instead of an origin brush. Support is built into the BSP2 tools and the engine, and the protocol enables smooth rotation.
RMQe also contains a fix for the “flickering” of really large bmodels/brush entities. This allows you to have really large (and complex) rotating entities in a level, like huge drawbridges for example.
This method of doing rotation uses less models, is easier to setup, and avoids the “stairstep effect” of the old Hipnotic rotating entities from Quake’s mission pack 1, Scourge of Armagon. The entities support linked doors, shootable doors, key doors, and accelerating/decelerating rotating bmodels.
Still missing is the rotating train – none of us needed it yet, so there was no pressure to implement it.
The main ability of this engine is to run the content. Sounds obvious? Well. Consider that the content required a new protocol and BSP format. It literally broke the old Quake (this was one reason for the failure of the planned June release).
The engine renders wide open areas with high polycounts better than any other Quake engine out there (even if the map is only fastvised). It was custom bred to excel at this task. We’re talking about scenes with epoly counts of over 100,000. It also renders tons of models in such a scene efficiently (the old limit is utterly broken). On top of that, it supports lightstyles on every face of a large scene and dynamic light effects on top. Not to mention pretty lighting, moving sounds and a number of other effects. It runs a very bloated, excessive progs.dat routinely. The overall quality of rendering a singleplayer map is outstanding (the waterwarp is worth mentioning for example).
It supports several Darkplaces extensions and new RMQ ones. It even supports CSQC (client side QuakeC), although this is still in its infancy – it’s there; CSQC creator Spike did the initial implementation himself. It fully supports the IQM (Inter-Quake Model) format, although this, as well, is not really taken advantage of by the mod right now; it will be used in the future and proof of concept IQM models (with skeletal animation) have been running already.
This engine is a magnificent animal. For all the experimental crap it supports (features, schmeatures, I know MH…) it runs the actual content remarkably well. It’s not as much of a “modder engine” as Darkplaces, nor as experimental and groundbreaking as FTE. It was made to run excessive single player content and support the required modding features, with a relatively conservative mindset and geared towards performance.
The QC is what drives the actual game, the player, monsters, map entities etc. As such, it functions as a mapping toolkit comparable to Quoth, and a large part of the features it provides is covered by the RMQ Mapping guide. We have an extended monster lineup, wargear flags and variants of existing foes, added traps, weapons and a lot of mapping related entities (moving water, breakables, pushables, particle emitters, external mapmodel support, rotating entities, you name it) comparable to Quoth, Custents, Extras R4, Scourge of Armagon and the like.
It doesn’t stop there; we also have advanced cutscene support, a customizable NPC system, customizable keyitems, four standard keys instead of two, a system of grappling hook and grapple points in singleplayer, a randomized spawning system, monster roaming, physics, monster groups, visual effects and sound effects entities, expanded monster behaviour, up to 6 targets and 2 killtargets, hordespawns, esoteric conditional and waiting triggers, spawn/deathtargets, a new obituary system, a toolbox weapon system, completely new magic and attack libraries that new monsters can tap into (spellcasting…), and an entire heap of similar features, many of them under the hood.
And we aren’t done yet. Mappers are only just starting to use some of these possibilities, and there are plans for even more interesting stuff. We’re not even tapping into CSQC yet, even.
So much for the technical side; just keep this in mind when you play these excessive singleplayer maps. Also keep in mind there’s more where that came from.
One of my pipe dreams is reviving the Quake Standard Base idea; an outline of features for modern engines to support, demonstrated by a reference implementation against which coders can check their engines, and which can be taken for granted by content creators. People could just say, “this map/mod requires a QSB compliant engine”. Maybe RMQ could serve as the reference implementation. Pretty much the only thing we won’t do anytime soon is dynamic real time lighting. I might be wrong, but that would seem to eat too much performance… and RMQ looks decent already.
The long list of features can make it seem like a hodge-podge, like a collection of feature creep produced by a couple mad inmates. Let me assure you that there is a big picture, though. RMQ is technically a partial conversion, since it still requires the original Quake to run. At the same time, it really isn’t old Quake anymore. It is a modern reinterpretation, made by people spoiled by modern games and possibilities. It’s definitely its own thing, its own game. Hopefully it will advance the technological base and the outlook of Quake-based content creators by at least 10 years. It’s not the 90s anymore. We should take the best memories and just run with them. It has the spirit of Quake (and some would say, a bit of the spirit of DOOM) and that’s OK. Nobody wants a rehash that is afraid to do new things.