I've got some time on my hands, and have been thinking about doing a write-up on a making of Scarab, so I suppose I may as well.
Pre-production:
All the way back in 2018 I was experimenting with may different PD layout styles, including mars base, mayan temple, and of course, egyptian temple. I actually did a substantial amount of development into a mayan temple-based PD map, but ended up not releasing an A1 as I wasn't confident at all with the layout.
Then in 2019, I restarted development, this time going for an egyptian theme. This actually occured twice, once in april, and again for the 72hr Jam. The april version, again, had a decent amount of work put into it, but I was unable to figure out an engaging layout for mid, and abandoned the map. The 72hr jam version had similar issues, this time however the prolem lay within the connectors. I quickly switched from that project to
Theia, completing it in a little over a day.
Then of course, this year comes the 'Pick it up!' Contest. I originally planned to do a invade-ctf map for this, but upon further thought realised this would be the perfect opportunity to once again try to create a egyptian PD map. Obviously, I went with that idea.
I began by making the mid temple interior, which I imagined as being a popular flank, similar to the one in lakeside. Next came center mid, which is actually the very same mid used in my ill-fated PLR map,
Yikes.
I knew that while that map wasn't.. good, it did have good DM in that area. Then came the 'yard' flank, where the arch is located now. I had never intended any of these areas to be, or house, capture zones. Instead, it would be more s
imilar to cursed cove or pit of death, with the capture zone being the underworld. Across mid, doors would open to allow players access upon the timer hitting 0. As for the connectors and spawn, I tried something a bit more expirimental. I had the layout set up so the full layout was essentially a U shape, but with a shortcut form spawn leading directly to the mid temple. I did a quick layer of detail, and published A1.
Alpha:
A1 was.. not very well recieved. The shortcut from spawn straight to mid was the route players took the most, but it was able to be camped very easily and led to a lot of frustration. Players were also confused as to how they deposit points, as there was no communication to say "hey, go to the underworld to score points!". While I could have created that, the underworld itself would have needed a rework as well. It was too large for what it was trying to accomplish, and presented very little risk to those who entered. Speaking of very large, this is what this map was. Rather than big teamfights, most conflicts were usually 1v1's, which weren't especially interesting.
So, I made the decision to switch to the style of PD seen in 14Bit's Waterlog. 2 points at opposite ends of the map that alternate. I already had to suitable positions (temple and yard), so all I had to do was add the points. Obviously, I also had to rework the spawns so I did that as well. This version was recieved much better, and I made a few more layout tweaks over the next couple of versions in order to create more flow between the points, but the hardest challenge was balancing temple. This was not designed to be an area for players to stay in, and no amount of layout tweaks would change that, so I knew it had to go, with the point moved into mid instead. But, if I do that, then there's only one way into mid. If I did this, then it would require me to redo the majority of the layout.
I did it anyway.
And, it worked out (kinda)! For this layout, I decided that I would try to go for a layout similar to koth, since that's basically how the map works now (but with two points). Pretty standard spawn>yard>connector>yard>conector>mid layout. I was pretty confident with the gameplay in the early playtests of this iteration, and just thankful I wouldn't have to remake the layout yet again. So I stuck with this, and tried to refine it as best I could. One thing that had slowly been creeping up on me though were sightlines. The oringal version of Scarab had some sightlines, but nothing too extreme. But as I made more and more layout changes, more and more little gaps started appearing. Then Tekku found a sightline spanning from the spawn connector all the way to the
enemy's mid connector. I tried my absolute best to block this sightline, but there was always another sightline I created to take its place. In the end, the version I submitted to the contest didn't have these sightlines fixed, I simply ran out of time.
Honestly, I seriously considered just leaving the map as it was and moving on to a new project.
But, a month later I returned to the map and fixed the sightline my making a route which had previously been outside... inside. I saw general gameplay improvements immediately, and it was a lot more than I was expecting. At that point, I knew that this map was ready for beta. I would make my last few layout changes, and that would be it.
Beta:
As I prepared to move the map into beta, I was contacted by Diva Dan, who expressed concerns at the detailing I was currently using for the map. I had stylised it based off of
Crypt, one of his own maps. This was detailing I was generally intending to be placeholder, though would retain parts of later on. However he made it clear, and I agreed, that the detailing could not continue using this style. There were too many similarities to be considered just coincidental or inspired, and I knew it needed to look completely different going forward.
So, I started on a complete re-artpass of the map. Freyja's egyptian theme however doesn't allow for too much variation (it is all just stone bricks after all) so it was difficult to create something that looked unique when compared to other maps that used this theme, such as
Crypt or
Oasis. You can see inspiration from both in the finished product.
As I worked on the re-artpass, I attempted to get some help from people in the emporium, though didn't find much success besides a couple of concept artists as I wasn't well known in their community, nor had much to go off of. So instead I turned to people I knew. First was Freyja, since they had created the assets I was already using. They agreed and soon enough I had my first custom model for scarab: A resized pillar.
Before long, I had my first beta release for Scarab in August, and with that I was able to convince more and more people to hop on and help out. Lo-fi helped out with some sign illustrations, Yrrzy made several particles and textures, Yoshimario made a model to house the pickups, and Freyja made the explosive pots. During this time I also tried my best to learn the particle editor, with varying amounts of success.
Release Candidate:
Four months after the initial relase (exactly!), Scarab hit the milestone of Release Candidate. There were however some problems that presented themselves. One that had been recurring for several versions was the bomb sounds being audible globally. Thankfully in this case it was due to my own error, and not a technical issue.
The next, and more pressing issue, was the custom announcer. I had done the script, recording, and editing myself, and felt the lines were acceptable, but could certainly be better. But, feedback I recieved convinced me to reach out to voice actors for better lines. I reached out to both Emnudge and Benjamoose, but ultimately went with Emnudge, who you can hear in the map right now!
Besides those two issues, the map was practically complete. There was some extra polish done in RC2 but at this point i'm not sure what else i'd add!
Technical:
Lastly, i'd like to talk about some of the technical things involved with the making of the map (which is probably what you want to read). Since I just got done talking about the voicelines, let's talk audio.
90% of all technical issues throughout the development were audio-related, because my god, source is not good with audio. It's pretty well known that you often need two ambient_generic entities to make some sounds be audible, but what do you do if you're using a soundscript? Unfortunately the scripts for soundscripts have no function to boost audio levels in the context I was using them, so the only option left is to increase the volume of the raw audio files. If you were to extract the sounds from Scarab and listen to them raw, you would find that they are all loud. Very loud. Because they have to be loud. This caused a lot of problems with my own announcer files, as increasing the volume, with the filters applied, made the lines difficult to understand. Getting a good balance is very difficult and i'm honestly baffled at how Emnudge was able to make the lines as clear as they are with the accent they're using.
Secondly, tf_generic_bomb. If you want to use a custom sound on these, it's busted. It's also busted with some stock sounds, and I don't know why. They're supposed to play the sound in a radius, but for some reason it plays it globally. This wouldn't be too much of an issue if it was only to the player who shot it, but no. It's to everyone. To solve this, you need to have a ambient_generic for each bomb that plays whenever the bomb explodes, and obviously the bomb needs to be silent.
Another thing with audio is that source will just decide it doesn't like certain files sometimes. Some players may, to this day, may have their console filled with errors related to mp3 decoding. But i've yet to find a reason as to why certain players expirience this when the majority doesn't. It's a wild ride, i'll say that much.
Okay, lets get out of the negatives shall we? Lets talk curses.
Scarab features four curses: Skeletons, Crits, Jarate, and Magic. These curses are picked randomly whenever a point closes, but not every time a point closes. It works using the logic_case entity, and the input PickRandomShuffle.
The chance of a curse coming into play is 1/3, but since it's PickRandomShuffle, it will go down the list. If the first point closure results in a curse, then the next two point closures are gauranteed to not result in a curse. Through this logic, it's possible to have 4 point closures in a row without a curse, or two with a curse. It's random, but predictable, keeping chaos balanced.
The same logic is used for the curses themselves, making it likely that each curse will only be seen once per round; and giving them all an equal opportunity to come into play.
The skeletons, crits, and magic curses are all simple, but what about the jarate? How was that done? Well, the simple answer is that I use Yrrzy's custom pickup templates, and just enable/disable the jarate/pickups. That's pretty much it. If you want to know how the pickups themselves work, you should ask Yrrzy since she made them.
If you have any other questions regarding the map, just post them in the thread and i'll answer as best I can!
Conclusion:
I'm very grateful to everyone who has supported me throughout the development of this map, from those who have directly contributed, to those who have simply said 'this is cool', or 'this sucks', because your opinion matters. This map is made using my own failures (literally), and I wouldn't have it any other way.
Is this kinda egotistical? It feels like it.