Give It Up for Day *checks* 44
- Posted by mariteaux on August 7th, 2020 filed in Modding
- Comment now »
I’ve kinda lost track with this level, honestly. There’s a lot of stuff going on as I spiral further into laser focus, trying to have this thing not eat up even more of my August. (Poor Pennyverse.) Here’s a bit of a highlights reel since the last time I wrote an update post for it.
Sizing up
Reorienting the hub did nothing, it just made the Y axis the unacceptably long one instead. This one has to be two levels regardless. That was fun, another day or two I spent fixing glitches instead of building more level stuff. All sorted now, thankfully, and I have enough space to complete what I’m going for.
I’m kinda fond of the levels even when they’re split; I have the player swimming towards the pipe to end “Arrogant Erratum”, while the player spawns in the pipe for “The Kuras Stronghold”. There’s a Half-Life style overlap between the levels where I intentionally kept some of the geometry of both levels to keep them feeling like a contiguous space, and I’m really rather pleased with it. Simple effect, but an effective one for Quake, which is usually very segmented.
Potemkin arenas
So, regarding the ending, it throws the concept of the level into question a bit. The crux of the level is that the player can technically access the end arena right away, if they’re feeling particularly cocky. They’d then proceed to get their ass handed to them, but it is technically accessible. If this all stayed one level, it’d be simple: teleport the player into the end arena. As they’re two levels now, this gets a bit more complicated.
This is where my little Half-Life worship smacks headfirst into the limits of the engine. Half-Life, as the levels are meant to be contiguous spaces, doesn’t require the player to spawn explicitly at an info_player_start
. When the player hits a level transition trigger, it looks for a common info_landmark
entity between both the receiving and sending levels and offsets the spawning player based on that landmark. This is easy if the levels share common geometry, a room or two is good enough. You simply have the landmark in the common room and the engine can orient the player correctly between them.
Quake has no such functionality. Any time a player transitions to a new level, they will always spawn at the first info_player_start
in the entity list. There’s no way with the traditional progs to have the player enter a level in another spot. (This is plenty possible in the engine with custom progs, you’d simply need to be able to specify the specific start point to spawn the player at, but neither id1
nor the Blue progs provide such functionality.) Thus, there’s only two ways to achieve this effect:
- Duplicate the arena and stuff it in the first map
- Duplicate the arena and stuff it in its own map
- Split the arena off into a third level entirely and have an awkward level transition between “The Kuras Stronghold” and it
The first approach is slightly cleaner, but its major drawback is that all the extra monsters lying in wait now prevent the player from getting 100% kills. This is a complete non-starter for me. NewHouse suggested the third, paired with the suggestion of splitting the start area from the first half of “Arrogant Erratum” into the same level as the fake arena and thus having the player returning to that map. While not a terrible solution, I just haven’t built the level in that manner. I’d have to jam a level transition into the elevator that takes you upwards in the start area, thus stopping gameplay there, it would kill the flow of Blue entirely with another start map, I have no clue if these other level transitions would trigger the end of episode text, and I just think going from map one to map two to map three back to map one is inelegant.
I went back and forth in my head trying to work around the first one’s limits (maybe if there was a way to change the info_teleport_destination
for a teleporting monster so they at least gib one another e1m7
style?) until I came to the conclusion that I just needed to duplicate the extra, “fake” arena into its own level and set the hard hallway to a level transition trigger rather than a teleport trigger. This does take three levels like the third option, but this third level is entirely optional, merely a trap level that has no bearing on the rest of how the maps play. No level transition triggers where they’re not needed, just level into level with the actual end arena part of the second map.
So in short: the player can try to access the end arena early. This isn’t quite possible now that they’re two maps. My solution is to duplicate the end arena into a third, optional trick map where the only thing to do is die. (The one potential drawback with this option is that the player will respawn in the fake arena after death, but I think I can work around that by putting an extra transition teleporter back to “Arrogant Erratum” so the player can return to the level proper after they’ve realized their mistake.)
Visit the snack bar while you wait
Remembered that info_intermission
exists. It’s easy to forget about some of Quake‘s more decorative entities (air_bubbles
and the ambient sound entities especially, I’ve been trying to make really good use of those this level), but they’re just as important as far as polish goes. info_intermission
sets the points at which the end stats screen camera will potentially spawn, picked at random from up to four. Some of the angles you can get with these look fucking awesome.
The process of using them is a little tricky; they take three values, the camera’s yaw, pitch, and roll, and while TrenchBroom will point a line at the yaw and pitch, it’s hard to gauge the roll of the camera until you test it out for yourself. Thus, you can accidentally end up with an upside down camera, despite not having set a roll value. Or potentially, even when you do set a roll value, it’ll still be upside down. Not sure what I’m doing wrong there, but they’re set up now.
Better yet, since the intermission camera is just the player teleported to it and made invincible, if not all the enemies are dead in that section of the level, they’ll actually start attacking the camera. This makes for some,,,rather interesting visuals when you’re testing.
A dip into the noisy past
On a whim, I decided to go back and play through “Temple of the Strange”, the first level I ever built for Quake, and you know what? I still love it. It takes me right back to 2017 when I was just totally isolated and hadn’t even discovered that there was still a Quake scene. I just saw the base game, a level editor, a bunch of textures, and built something. Absolute purity. People can call this mediocre, a mixtex mess, what have you, and that’s fine. Some of it is absolutely arbitrary, clueless, the scale’s funny, and I didn’t know anything about Quake practically, but I wanted to build a level I liked and I succeeded on all counts.
I can safely say I’ve returned to this level of not giving a fuck at this point. It’s so easy to get caught up in the nerves and having your envy overshadow your ideas and desires, but all it does is sully your work. I know better than I did, but I’m back to producing stuff I like just like I did here. As long as you like what you’re making, no one else gets a say. That’s the most powerful goddamn position to be in as a creator.
Clip show
On a parting note, I’ve been gathering up the “masters” (read: not the transcodes you’ve been seeing on the blog) for all the clips I’ve captured to demonstrate parts of this level as I’ve been building them. Gonna be making a little video out of all of them when it’s all said and done, something to commemorate the long build process and date exactly when I came up with certain ideas. Given that I didn’t make a WIP video for this one like I did for “The Drop” or “Temple of the Strange”, it seemed appropriate.
Back to making this level. See you when I bitch about Stereolab in a few days!