Small thread about WRATH's development to hopefully enlighten you.

WRATH mostly uses Quake 3 tech and runs under Darkplaces. You'd think using updated Quake tech would make development significantly faster since we know it by heart and are good with it, but this isn't the case.
Just for level design alone, some aspects are wildly different. func_detail entities were introduced to Q1 and vastly cut down compile time, but Q3's compilers are completely different are so are detail brushes. In Q1 they cull geometry behind them, in Q3 they don't.
Lighting is done through external lightmaps as opposed to actually being baked into the .bsp. You can modify these lightmaps with PS or any other image software. The downside is that lightstyles are nonexistent unless you use hacky methods.
Culling and lighting are linked, because lightmaps can bleed if non-visible faces aren't made invisible with the caulk texture. This means that EVERY SINGLE hidden face needs to be made caulk in the entire level. Our levels are huge and usually reach tens of thousands of brushes.
You can imagine how long this process is. You need to slice all of your brushes so bits of them that are hidden by geometry are made caulk. That's just one aspect.
In Q3, what you see is what you get as far as faces are concerned, a square face in editor will be a square in game.
As opposed to Q1 where the compiler abritrarily slices them and you have no control over it. It is very nice, but that's something you need to be aware of.
I like to describe Q1's engine as "lenient", in the sense that even if you build your level in a really clumsy fashion, the engine itself will do the heavy lifting. This isn't the case with Q3, you need to be as thorough and help it as much as possible.
A concrete example: VIS (a program that calculates visibility and tells the engine what to render) doesn't like complex structural geometry (as opposed to detail which is ignored by it), so you need to make like 90% of your level detail.
Other this is a strain on the engine. However you also need to create compartments in your level so not everything gets rendered. Structurally, our levels are boxes linked to other boxes by corridors, but you never actually see it in the game.
So what I'm getting at is that your structural brushes need to be as simple as possible, but they also should not be too large because the lighting compiler uses a 3D lightgrid that computes lighting everywhere there is space available. See where I'm going?
At this point comes the dilemma of making your box more complex so it lights faster, or let it stay as it is but it lights slower. And the lighting compiler is slow. We're talking between 1 hour to 2 or even 3 for the bigger levels. This process eats 100% of the CPU by default.
One thing I say to people on Discord at times is that the tech we use is very specific and people who know its intricacies are very rare (compared to Unity, Unreal or even Q1). If personnel becomes unavailable as it happened with us, you're left in the dark.
Just one little thing that happened recently, we were compiling our last level for Early Access and, I kid you not, it took 17 hours to compile. We were flabbergasted. Turns out we weren't aware the compiler was modified and required a command to light as fast as before.
One of us was aware of that, but they got sick and weren't available, so we didn't know. And again I'm only talking level design here. Many of the aspects of WRATH that are otherwise quick and easy in Unity or Unreal require knowledge and a lot more patience and effort.
What I'm getting at is that WRATH's development is slow due to the nature of the tools and tech we're using. It's antiquated, requires very specific knowledge and it's a slow process. If key personnel becomes unavailable, they can't be easily replaced.
Using the engine was a big draw and is both a blessing and a curse. We love working with it, we know (most of) it and when things work, it really works. But at the same time it can be INSANELY frustrating to work with and getting good results can be a huge challenge.
I have no doubt in my mind that had we chosen UE4, the game would already be released. I mean, Graven uses Unreal with a cool pipeline so many of the assets and geometry are made using Q1 editors and the pre-alpha demo milestone didn't take long to reach in comparison to WRATH.
Another thing I see from time to time is that it doesn't take that long to make a map for Quake and we made many of them, so surely WRATH shouldn't take as long. Ignoring the tech aspect, making a game from the ground up really isn't the same as simply making a map.
You need art, you need specific code for monsters, weapons, systems and so on. You need sound effects, you need music, you need thorough documentation because you're not the only one working on the project. You need to hire people, etc. The comparison doesn't hold.
If making a full game was as simple as making a level for an already existing game with existing assets, everyone would be making games. The reality is that game development is long, tough and mostly uneventful. Most of the magic happens near the end of development.
Did we do some things wrong with WRATH? Absolutely. With hindsight, we should've done some things differently. Nobody's perfect and the more mistakes happen the more people are working together on a project. 2020 also has been a rough year overall, as you are all well aware.
Still, I'm very proud of the game and I work with fantastic people. We all want WRATH to be great and fun. It takes a while and the road is hard and perilous, but it'll get there.
You can follow @skacky.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled:

By continuing to use the site, you are consenting to the use of cookies as explained in our Cookie Policy to improve your experience.