While it’s too early to do a Post Mortem on Project Absentia, Metal Neon suggested I do a writeup on the history of Scoot Hard SDL, Scoot Hard DX, and Project Absentia for an upcoming event. The development was longer than Daytime Drama’s development, and is still on-going.
Rather than a Post Mortem of SHDX proper, this is more of a technical and graphical analysis of the difference between various milestones.
Scoot Hard DX was admittedly a very… crazy fangame. After it’s completion, several people suggested we go commercial. That’s when Scoot Hard DX was forked to Project Absentia, after some ideas were conceived.
I decided to focus on some of the major differences between the following games:
- Scoot Hard: Rainbow Factory (aka Scoot Hard SDL, Circa 2012-2013, Code fixes in 2020-2021)
- Scoot Hard DX Pre-alpha Build ??? (bundled with an ancient copy of WIGZDoom, dated August 2013)
- Scoot Hard DX December 2020 Build 152 (the last version before Metal Neon came on, bundled with GZDoom 4.5)
- Scoot Hard DX Beta 3.1 Build 798 (the last version of SHDX before the initial 1.0 release, bundled with WIGZDoom 4.6pre)
- Project Absentia Alpha Build 1163 (a recent build of Project Absentia, bundled with WIGZDoom 4.6)
I will mainly be focusing on E1M1/MAP01/E1A1/E1L1 – aka the first level that appeared in all Project Absentia’s history. I will also be focusing on the common enemies through the series of prototypes. However, I will show off the sprites from the various enemies and how they evolved. I also will be doing my best to avoid spoilers for those who don’t want to be spoilers, so some enemies will be skipped, and details about lore that has changed that affects the story will be minimal unless it related to a core gameplay mechanic.
I will also point a bit of minutiae some people might not know about Project Absentia’s codebase.
Scoot Hard: Rainbow Factory/Scoot Hard SDL (November 2012, code patches in 2020-2021)
The genesis of the project was Scoot Hard: Rainbow Factory and was released initially under the Waffle Iron Interactive label before being changed to Waffle Iron Studios in late 2012. For the sake of clarifying it not being canon to AuroraDawn’s fiction in any way, as well as for simplicity’s sake, I refer to this one as Scoot Hard SDL due to it using Wolf4SDL – a Wolfenstein 3-D game engine using the SDL library.
While not connected code-wise to modern GZDoom, the basic plot for what would become Episode 1 of Project Absentia is here. There’s some interesting concepts that would carry through to the end of Scoot Hard DX‘s development – three bosses, a weather based weapon, and some of the enemies are there. The low guard, the Pegapol, the engineer are all present. Mutants/Zombies do exist, but are the weakest enemy in terms of translation from Wolf3D.
One of the levels that existed all the way through to the end of SHDX and Project Absentia, albeit in a basic form… E1L1/E1M1. I will be using this level to demonstrate the evolution of the engine.
Wolf3D’s limited grid-based, tile-based map editor allowed for levels to be designed quickly. However this lead to the impossibility of making set-pieces like the Pegasus Device. An attempt was made. It was not very good. I refuse to show it, that’s how embarrassing it is. Play through the prototype yourself to find it.
The enemies were mostly hitscanners… the weird, Wolf3D type with damage falloff. Surprise used a Rainbower prototype – one you can wield too if you can find it. I hadn’t yet converted the final boss and their posters away from Rainbow Dash’s to Maimbow/Lightning Dust’s…
Oh, and the vending machines. You could buy all sorts of things from them – food and ammo! They are admittedly more useful in this game than in the future iterations.
There were some changes to the map format from Wolf3D’s default map to allow for floor/ceiling textures, tagged tiles that allowed objects, walls and switches to be daisy-chained along. If you’re familiar with how Rise Of The Triad or even Doom does it, it’s very similar to how they tag things.
There were 24 levels. Only 23 of them are accessible because of a bug I cannot for the life of me fix. Oh that wacky Wolf3D engine!
The story is a bit different – mainly because there are three endings. You can lose, you can win but lose Aurora, and you can win and escape with Aurora.
The boss is an asshole who immediately attacks you with little room for maneuverability – I should have given them a delay. However, the idea you could actually just do a pacifist route with the boss.
Dr. Atmosphere’s boss fight is underwhelming. If you fought Dr. Schabbs in Wolf3D, you fought Dr. Atmosphere.
The vending machines were janky but sometimes they worked – and they’d offer you food, ammo and other things.
The story was overall the same, and a bit more complex than I liked it to be. By episode 2 it completely deviates from anything to do with the main Rainbow Factory mythos aside Dr. Atmosphere’s involvement, which would carry through into the finished project.
The final note is I use Aubrey Hodges’ Doom Playstation soundtrack as a placeholder. The opening music is an instrumental for Rainbow Factory. Unfortunately it can get content ID’d on certain platforms, so if I ever stream this it’ll probably be muted.
Scoot Hard DX Pre-Alpha (August 2013 – Build ???)
Scoot Hard DX was my first attempt at making something very bizarre in GZDoom that resembled an old Apogee/3D Realms first person shooter – namely Rise of the Triad – with the intent of showing it to the public at some point.
GZDoom offered more flexibility with DECORATE and ACS and walls that could be anything other than 90 degrees. It also supported 3D floors. Theoretically this concept could work.
…. theoretically. There were tons of problems right out the window. For one, there was no easy way to port the levels… so I was all on my own there. Also no one had written a DECORATE/ACS codebase that could serve as Rise Of The Triad’s weapon system. Not even el zee’s Return of the Triad, which I looked at for reference (mainly the Rainbower and the HUD), used this, just opting for you to have all rocket weapons at once.
This was around the time Rise of the Triad 2013 had come out… and reception was lukewarm at best. I personally liked the ROTT remake, it’s fun to play and inspired me.
However, as much as I like ROTT 2013 (better than the original I dare say?) the motivation was not enough. For one, ZScript was three to four years off, GZDoom was not yet the de facto port to use (you still had ZDoom, which had more features but a more limited renderer, and GZDoom, which had an advanced OpenGL renderer). I was getting frustrated with the limitations… so I gave up at some point with this ambitious idea.
… not before at least a few other prototypes with full rotational enemies and more levels existed. However, I cannot find these and neither can Tom. I guess it was just sheer luck he found this. Unfortunate, it’d be neat to see how those prototypes looked compared to the direction we ended up going.
The very first map still exists, by the way… more basic, but the elements are there.
The one thing that stuck through the longest was the voice acting. I actually commissioned a VA by the name of Alabeanz. They voiced Scootaloo… unfortunately I cannot find where they ended up. They went quiet around the time the COVID-19 outbreak happened. I worry about them to this day. I have attempted to reach out on Tumblr, the only place I knew they were active.
… unfortunately the voice acting is the best part of this prototype (save for one line which Metal quotes a lot… to my grumbling and moaning). The movement is probably the weakest point. I wasn’t aware at this point you could control stuff like air control and all that.
That said there are fundamentals here – gibs, swappable weapons, and a voice acting system. This voice acting routine would become the basis for Daytime Drama’s one liner subsystem… which would eventually be used in future iterations of Scoot Hard DX, thus coming full circle.
Oh, as for the music – there is none. Not even placeholder music.
Some interesting bits – the vending machines are more simple, only dispensing apples or meals based on how much coin you have. The enemies are high-res, but use a different method than what I’d use for DD1 and beyond… and Surprise is implemented a bit similarly to what she did in SHDX’s final version. Dr. Atmosphere is present. A prototype enemy – a portable version of the Pegasus Device, loosely modeled off the NME from ROTT exists in the files, but is generally a bad boss.
There’s many levels that exist, but for the sake of showing evolution, I’m showing off E1M1’s equivalent’s screenshots.
Fun fact: this was the first iteration of WIGZDoom. The icon was from another project at the time that fell through.
Scoot Hard DX was abandoned as it was obvious this was more than I could chew. In order for this to REALLY kick ass, it would need voice acting, a better ability to get into the game logic, thus better movement… and a new coat of paint.
ZScript and Daytime Drama
With the advent of ZScript in early 2017, I ported most of Daytime Drama’s ACS/DECORATE code to ZScript. The gibs, the voice overs, and inventory items. It was buggy still – it had awful sound mixing (to no fault of Sarah and Brad’s voice acting) due to my inexperience with such matters, plus relied heavily on copyrighted sound clips, and it was being worked on at a time where ZScript was definitely shaping up to be the future, but people were reluctant to make examples or port their code to ZScript because of Zandronum – a client-server multiplayer engine based on an old GZDoom branch.
In short… early on, I was on my own. I believe me, Accensus, Marisa Kirisame, and a few others had started adopting ZScript at the time, while others complained due to lack of documentation or incompatibility with Zandronum or ZDoom 2.8.1. Eventually it gained traction, but by then I had ported most of the code to ZScript, save for two ACS libraries – one which still is in use today, albeit much, much slimmer.
Daytime Drama was not the first ZScript project – but it was my first ZScript project. And boy, did it shine. Despite it’s buggy nature, a self insert protagonist that somehow didn’t meet the ire of the masses (I mean, she is a cop after all), and the insane plot… yet people liked it. I still have no idea what people liked about it. I still have people showing interest in this project to this day, 3 years after I stopped major developments on it.
So it was obvious… I needed a followup. And I tried. Many, many times. DD2 was started up FIVE TIMES before I looked at it and went “yeah, this isn’t going to work like it did before”. Lightning doesn’t always strike twice, kids.
So while working on a DD2 iteration, my friend Tom hands me the prototype. Long of the short of it, burnt out from Daytime Drama 2’s development, I cracked my knuckles and got to work.
And boy, did ZScript make an improvement! I could code a weapons system just like ROTT had… or make it even better! I could make more dynamic enemies without using DECORATE or ACS kludges. Plus my level design had… slightly improved.
Plus I knew a ton more people who could do voice acting and level design.
So we got to work on a purely passion project.
Several beta versions were released. Beta 1 was released on Halloween of 2020. However, reception was lukewarm. I think it… honestly was the ponies. Unfortunately, ponies are not accessible to some people.
Scoot Hard DX Build 152 (December 2nd, 2020)
However, it caught the eye of a friend of Rod – my musician at the time. Metal Neon came into the picture and started suggesting ideas. It was good to have someone who understood Boomer Shooters like I did on the team…
Around this time, there were issues with the game – the movement was still bad, the weapons all looked the same (still using the sprites from SHDX’s August 2013 build). It was obvious I needed to work on it some more.
… so we did. Metal came on initially as a beta tester, but he ended up doing more – music, model renders, level design… it was a breath of fresh air when the rest of us were not sure what to do.
And eventually we got the movement down right. More on that later.
Why did I pick the December 2020 build instead of Beta 1, 2 or 2.5? Because this is the true point of when the project began to take shape. I want to show how much this starkly contrasts with what we did next.
That said, let’s go over what this build had – 10 levels, 3 bosses, and most of the weapons are there… still using most of the prototype’s graphics. Some enemies were recreated, namely Dr. Atmosphere and Maimbow – Maimbow’s was necessary as his sprites didn’t exist.
It was around this time I realized that I was going to need to get a new VA for Scootaloo, unfortunately, as Alabeanz was nowhere to be found.
This build has the old SWWM_GZ explosion build code and the armor system is quite jank. Both of these made it really difficult to calculate damages done by enemies.
Several of DD1/DD2’s systems are in place – the titlemap sequence, the RIP Sound Obituary, the one liners, and a way of daisy-chaining sounds together and play subtitles – I call it the Vox Subsytem. No relation to the news site. I think it was an allusion to the Vox system in Half Life 1.
The music is RodScorpion’s, albeit it doesn’t really fit the tone I was going for. It’s a combo of my direction and his style. Again, as I said in the SHDX post mortem, he’s not a bad musician, I just wasn’t feeling it.
However, there were significant changes under the hood. For one, Scoot Hard DX had been upgraded with code from the Daytime Drama 2 prototype – which had been code adapted from Daytime Drama 1, and thus code adapted from Scoot Hard DX’s original codebase. Kind of funky how that works, huh?
We also used OTEX and Ancient Aliens as placeholder textures. These were picked for their vibrant colors compared to stock Doom or FreeDoom.
So while it was rough in appearance and a bit of a rush job, technologically there was so much potential.
Scoot Hard DX Beta 3.1 Build 798 (April 3, 2021)
Aw man, here we go! Scoot Hard DX: Beta 3.1 is the release I have the most fond memories of. It truly showed how much the game had improved. Completely new textures, overhauled maps, and the soundtrack was mostly complete at this point. It was glorious!
Just to show how much work we did in four months – that build number is almost 4x what we had before. To give you an idea, each time we commit a change to Git, it increments the build number by one. Archaic, I know. I prefer this as no one is going to remember a hash the length of Kansas. For a standalone game, this will do.
Scoot Hard DX 3.1 had all the voice acting done for the most part, had all the textures drawn over to be original instead of OTEX/Ancient Aliens/stock Doom/Shadow Warrior/whatever the fuck else I was using. The levels were completely overhauled, and some new levels were added… some were even frankensteined together from levels that sucked to make… a level that frankly I’d sooner forget (the infamous Tchernobog Laboratory).
The enemies were full rotations at this point, as opposed to the always-facing-frontwards enemies from the earlier prototypes.
The weapons were overhauled completely to make them less samey, in both silhouette and in color scheme. Adding brightmaps to the sprites did help. Here’s some examples.
We also gave each weapon an alt-fire and tweaked the primary fires a tad. Scoot Hard DX originally had no alt-fires. Examples of this include the heat seeker’s cluster grenade, the freezer’s fire and alt-fire acting like a rapid-fire weapon and a hail core shotgun respectively, and the tornadozer has been overhauled a bit. Rainbower is pretty much the same, with a devastating alt-fire used as a panic button type situation.
Scootaloo’s movement is tighter and suffers less from what Metal calls “Simon Belmont Syndrome” – basically once you commit to a jump, you gotta finish it. Air control and better glide implementation definitely helps.
The cutscenes are there, albeit not in their final forms. I remember we needed to clear up the past tense/future tense issues.
Metal’s soundtrack is present, and boy is it a major improvement with what we had before. I think most of the tracks are present here.
New enemies were added. The iconic Enforcers… still a bit rough, but they’re there. There’s also better Zombies, SpectraWasps (mechanized death with wings), and the Engineers throw sentries. The bosses have been completely overhauled, with Surprise fighting in an arena that when she’s at 50% health, she drops the floor – literally – causing you to have to traverse a Spectra filled pit. Dr. Atmosphere and Maimbow’s boss fights are now in stages too.
Alabeanz’s voice lines were replaced entirely by Victoria Prater, an acquaintance of Metal’s.
I got rid of SSWM_GZ’s Explosion code at some point between the December 2020 build and this build. The armor system works pretty much as it does in the latest version.
Weapons and some items were starting to be turned into voxels.
All the levels started employing different lighting methods to make them, stand out. E1M1 is a great show of this.
Another thing added was the presence of tutorials in the first few levels of Scoot Hard DX. These were hit or miss. I designed them to introduce things like alt-fire, jumping and gliding, among other things. However people ended up just whizzing by and wondering why they failed XD. I guess unless you stop the action and make people read them before they move on, people aren’t going to pay attention.
The textures were also completely re-drawn using a cartoony pixelated look. We went for that to offer a contrast to the sprites, which are higher res Adobe Animate (Flash) art.
Finally, the biggest change was we revived the old Waffle Iron Studios fork of GZDoom – WIGZDoom!
I know the 1.0 release was the true milestone, but… this release is the release I remember fondly. I even made a special boxart parodying the Windows NT 3.1 boxart.
It was glorious. I like this release. It makes me happy.
Project Absentia Build 1163
We forked Scoot Hard DX right after the 1.2 release after we decided the concept could be commercialized, as long as we separated it from the MLP mythos. I will be only sharing small bits of information and graphics here to not spoil the game. However, as you can see above in the titlepic, several of the enemies have been given a non-pony overhaul
We first had to gut the “RIP Sound Obituary” – a system that mocks you when you die… due to the use of copyrighted meme materials. Sampling is a tricky thing. Metal wants this back with stuff we know we have the rights to such as the Average Joe™
Next was replacing every single sprite and asset with a non-pony version. Right now there’s no pony assets, save for an Easter egg I insist upon keeping.
The biggest change herself? Scootaloo, the relatively clean, no-swearing filly, is now a sadistic angel with a bloodlust and a vulgar mouth – and this angel calls herself Abby.
Victoria Prater didn’t want to come back for the role of Abby, so we went with someone else – one of Metal’s friends, SinsAndSmokes… who’s performance was pretty fucking psychotic… so we went all ham on Abby’s background, including making her quite more vulgar. It’s been fun being in the recording sessions with Metal and Sins. So yeah, that’s the biggest change you’ll notice right away.
With the help of AuroraDawn himself, we came up with some concepts. The Cloudsdale Weather Corporation became the Orkan Corporation, and instead of Pegasi would be angels in Heaven with nefarious motives.
The big difference? This is just Episode 1 of 4. The story has been greatly expanded, and the game will go from Heaven to Hell and beyond! I won’t go into the specifics of what’s going to happen next… you’ll have to see. [chuckles]
Some enemies were dropped for Episode 1 – the zombies have been replaced with robotic canines called “Doggos”, but those won’t appear in the demo we’re presenting. Neither will the changes being made to Dr. Atmosphere or Phoenix (formerly known as Maimbow).
The voxels were replaced with brightmapped models made from voxels. Some 3D models were made from scratch by Metal Neon.
Speaking of boss fights – Asphodel’s arena (formerly Surprise’s arena) has been modified to allow better flow. There’s now teleporters and vents that allow you to “Pac-man” your way through the level.
Some additional changes were made to the weapons’ functionality and their names. Some alt-fires were tweaked or replaced – like the cluster bomb becoming a firebomb, straight out of Rise of the Triad. Namely now the SMG – a Tommy Gun – has infinite ammo, but you have to reload, as opposed to having unlimited ammo with no catches. You can also swap out the default ammo for hollow point ammo. There’s also headshots now, backported from additional code from the DD2 codebase, based on the work by Mikk.
Speaking of the DD2 codebase, Build-like explosion controllers were added from this codebase. I didn’t see much use for them initially in Scoot Hard DX, however one of Metal’s complaints were the explosions in Scoot Hard DX weren’t big enough. So I decided to bring them back. One advantage to this over traditional ACS is the fact you can use these objects without any knowledge of ACS – but if you do know ACS, then you can use them to make even more powerful effects.
We decided to demonstrate this in E1M1 by radically changing the intro to this level.
Those barrels explode. You can jump over them and into the vent shaft below, but why do that? Explosions are cool. Reception to these have been extremely cool overall.
So as you can see, E1M1 has evolved over the years. As it’s beginnings of just a Wolf3D level to it’s Build-esque modern iteration.
Some other minor tweaks include us tweaking the fonts on the menus and HUD to be kosher with commercial usage, as Crewniverse is a Steven Universe thing and Revue just looked ugly.
Interesting bit: Scoot Hard DX Version 1.3 was released in the interim, which includes some silent hotfixes I added to Version 1.2 of Scoot Hard DX, as well as updating WIGZDoom to a newer version. This version was separate from Project Absentia in terms of the source code’s lineage
The boot screen is a reference of Windows NT 3.1, 3.5x, and 4.0’s boot screens. It serves as more than a reference. That build number is updated every commit until we go Gold. For Early Access, we plan on not doing this until the game’s four episodes are done.
As for what a “HAL” is? Another reference to Windows NT – the Hardware Abstraction Layer. Unlike the Windows NT version, this is purely graphical and doesn’t do anything, except if you change Abby’s name to something else it’ll get rid of it. I might get rid of this to avoid confusion, alas.
Trying the builds yourself
I’ve included everything except the Project Absentia build here. You are free to look at these and analyze them, just know I offer no support for these and they are provided on an as-is basis.
I hope this has been an interesting look at E1M1 through the development cycles as well as some interesting bits I felt were worth mentioning about the build’s differences.
As you can see, Scoot Hard DX has evolved from a fangame into Project Absentia, a completely original IP… and boy has the journey been long.
With the experience we had under our belt for Scoot Hard DX, we hope Project Absentia will be even better.
Thanks for sharing a part of the journey with us.
-Sanya, on behalf of Waffle Iron Studios