Scoot Hard DX – A Post Mortem

NOTICE

This is in no way comprehensive. I left out a bunch of stuff for the sake of brevity. I also in one case hid the name of someone. If you piece together who it is, please keep your nose out of it.

With that said… the Scoot Hard DX Post Mortem

Origins

Scoot Hard DX started out as a Wolfenstein 3-D mod called Scoot Hard SDL. In a sea of mods that took place in the Wolfenstein 3-D mythos – with shooting Nazis, mowing down Hitler in a mecha, and other such stuff. This stuff isn’t bad – but I wanted to create something that stood out more in a sea of Wolfenstein 3-D mods that stuck to the original setting.

Rainbow Factory by Glaze/WoodenToaster

So, being the autistic (no, really) person I am, I decided to draw inspiration from the My Little Pony Community. I had recently discovered Rainbow Factory by WoodenToaster (or better known as Glaze). The song talks about Cloudsdale – a city in the My Little Pony mythos where Pegasi reside, harboring a dark secret in the clouded walls of the Rainbow Factory, and how it ties into Clousdale’s responsibility of weather stability with the use of something called the Pegasus Device. Aurora Dawn, recovering from an illness, wrote the story very quickly after being introduced to the show, the fandom, and the song.

By late 2011, Aurora Dawn’s fanfic, Rainbow Factory, was hot off the presses. The story elaborates on the premise of the song – with Scootaloo, a filly and secondary character in My Little Pony: Friendship is Magic, failing her flight exam, thus meeting the same fate as her friend Orion and another pony, Aurora, did. For this they are sent to exile.

Except… it turns out there’s no exile. Instead failures are ground up into the components to make Rainbows. This infernal machine is called the Pegasus Device. And who’s running the show? Scootaloo’s sister figure – Rainbow Dash!

The themes of extreme nationalism, failing a system rigged against the weak, and wanton and gratuitous violence. For me, this story had it all. Despite how crazy the story was compared to the source material, I related so hard to Scootaloo. I still do to this day. I fucking love this story so goddamn much, flaws and all.

A year after it’s release, and it was still sending chills and controversies through the Brony community. Some loved it, some hated it, and some wanted it banned, claiming kids could see it easily – even though many people, including Aurora, tagged it and hid it behind content warnings. It was made abundantly clear this was not for kids, and was for a mature audience, as well as for horror fans and not… you know… people with a weak stomach.

I started thinking… how cool it would be to actually make a Wolfenstein 3-D mod based off of this concept. By November 2012, Scoot Hard: Rainbow Factory was released… to a bunch of my friends. It unfortunately didn’t get very far, aside someone mentioning it on a Wolf3D forum somewhere.

Boxart of Scoot Hard SDL
Scoot Hard: Rainbow Factory boxart mockup
Screenshot of Scoot Hard SDL
Scoot Hard: Rainbow Factory starting room

Scoot Hard: Rainbow Factory (now called Scoot Hard SDL) was overly ambitious. Breakable glass, touchplates that opened traps, live wires you could turn on and off… and crude attempts at making a flamethrower. It was buggy… and it wasn’t finished. I remember working on adapting an idea I had – making an alternate universe where it was Rainbow Dash’s rival – a character on the show named Lightning Dust. Lightning Dust had motives… she hated Rainbow Dash for getting kicked out of the Wonderbolts Academy. What better way than to punish Scootaloo.

This plot point was being integrated into the codebase, when I decided just to scrap Scoot Hard and start working with the GZDoom engine.

Reinventing The Wheel… Twice

Since it was effectively a deluxe edition of Scoot Hard, I decided to call it Scoot Hard DX… and I dropped the Rainbow Factory to make it clear this was not officially sanctioned nor intended to be canon to Aurora’s story.

Scoot Hard DX Prototype Screenshot
Scoot Hard DX Prototype (Circa August 2013)

By mid 2013 I had a rough prototype – I believe this is the one I showed my friend Tom at the time, who was in the Brony community around this time. Tom kept ahold of the prototype. I’m glad he did, because at some point I got frustrated with what I wanted to do with Scootaloo – making her glide – and I decided to drop the project. I have no idea if there was anything else, but I remember the scripting – still relying on DECORATE and ACS kludges – wasn’t quite there yet. At some point these prototypes were lost. Not even screenshots or the asset trees remain. I know it got farther than the prototype Tom showed me later on… a shame no other prototypes exist.

Fast forward to 2020. Daytime Drama was released, has a cult following. I met one of my partners because of it, and I met my other partners because of her. We were thinking of a followup, and I really wanted Scoot Hard’s plot to be relevant, as it technically was a prequel to the Daytime Drama mythos. However, Scoot Hard SDL was still buggy and I lost the Scoot Hard DX prototypes. Oddly, Scoot Hard SDL’s source code was still up there… and I still had a copy of that. I attempted to fix it to no avail. Wolf4SDL’s code is just too jank for me to understand.

While taking a break from what was going to be Daytime Drama 2, Tom hands me an old prototype. It has not only an old WIGZDoom build from the day – but also a prototype PK7 of Scoot Hard DX from 2013. It was a glorious find! I wondered, could I actually get this running in modern GZDoom… and fix the problems with it.

And I did. Slowly but surely, I refactored the code and updated E1M1. We were really excited at this prospect. A team formed around Scoot Hard DX. Development on DD2 stalled for reasons beyond the scope of this post mortem. However, we were having more fun working on Scoot Hard DX, and it was technically a new entry. Thus I decided to rebrand Scoot Hard again – as Scoot Hard DX: Daytime Drama Zero. Ellie and I worked on the levels. Rod was composing an ambient soundtrack. An initial beta was released on October 31, 2020.

This beta of the game… were received lukewarm at best. Massive amounts of hitscanners, bad air control, and other issues plagued the game early on. Plus me and Rod were having creative differences over the soundtrack. Plus… I was not sure if ponies was a good idea. It was getting to the point that I was about ready to slap a 1.0 on it and call it a day and go back to working on DD2… a cursed project on it’s own.

However, one of Rod’s friends – Metal Neon – is brought on the playtest. After some initial silence, he gives his feedback. He also shows off a track he made – a remix of Ecco the Dolphin that has yet to be released (so I won’t demonstrate it here). That said, his ideas on how to make the game better – improve the lighting, make the weapons stand out, make enemies that are meant to challenge the player than just lettting them spam the Fillyseeker (a Heat Seeker). At this point, the project was starting to get some actual feedback from someone who knew the genre as much as me and Ellie did – if not even more. While implementing these ideas, Metal ended up composing a track to go with Dr. Atmosphere’s boss battle. I was impressed with it.

Me and Rod had some admittedly nasty arguments over our creative differences and his tendencies to be a bit difficult to work with… I regret having those arguments and I could have done better. Eventually after some discussion, Rod left the team for personal reasons, and Metal was brought on to replace him. Me and Metal both feel bad about what happened. I do assure people that I have talked to Rod since, and there’s no bad blood between the three of us.

However, Metal’s sudden contributions was starting to affect one of our team members – someone I hired by giving them a laptop as a form of payment – to help with game assets. A risky move I know, more on that later. This person, we’ll call Person A, was starting to cause problems for the team. Metal could be a bit direct at times, and sometimes a bit temperamental. However, he handled it professionally and apologized and made genuine strides to improve… this person wasn’t having it. I should have seen it early on that this was going to be trouble.

Metal also introduced a colleague of his who could help us rig a pony model so I could use it for reference. The guy however, was incompetent at what he did, and constantly failed to save his work. However, worse yet, the guy kept using ethnic and racial slurs and making trans jokes that even I was uncomfortable with. I tried several times to tell him to stop, but he wouldn’t. Ironically a rule change got him to leave, and he Alan Smithee’d the project. Oh well.

New Blood

One of the things Metal thought could use improvement was the weapons. Person A helped redesign the weapons… however their weapon designs were overly complex, requiring me to simplify them at times to fit the art style more. They were as much theirs as mine at this point.

A Heavy Enforcer Sprite
An Enforcer sprite
A SpectraWasp
The new and improved Tornadozer. At least in functionality. It looks like a Dr. Seuss looking ass.

Back to Metal’s contributions – he designed an enemy called the Enforcer. It used a shield to deflect explosives, and later on in development, react to certain damagetypes with a volley of grenades. A heavy variant had cluster MIRV grenades and a psychic “whip”. He also suggested balance changes to the Tornadozer – a weapon that gave us so much trouble in development because balancing it was hard.

A One Liner from Scootaloo by Victoria Prater

We also replaced Scootaloo’s VA with Victoria Prater – the sister of a friend of Metal, who did a bangup job. She really captured what I was going for with Scootaloo. The original VA, alabeanz, has not been on their Tumblr since the pandemic hit. I genuinely hope they’re okay.

Much of the original voicework was re-done as well – Ben, Tabby, Cake, redsoilder55… and Metal himself voiced the cast of characters. However, Jenna Pepper voiced the delightfully effeminate fellow known as Maimbow – Lightning Dust’s new identity. Originally Maimbow wasn’t going to be a trans femboy Nazi, but at some point we decided on that

Maimbow Undash – the CEO of the Cloudsdale Weather Corporation in Scoot Hard DX
Screenshot of Scoot Hard DX in it's final stages
Scoot Hard DX in it’s final version

AuroraDawn notices!

At some point during development, I mention on my recently recreated Twitter that we were making a game based on Rainbow Factory. At some point AuroraDawn – who had been away from the fandom last I checked – had responded on Twitter. When Ellie told me about that… I was so overjoyed. He liked the concept.

I started messaging him to see what he thought and if he was okay with it… he was okay with it, as long as I made it clear it was not canon to his works. I agreed. We talk on occasion – more on that some other time, as it’s important to what we do next.

Requiem For A Friend

However, not everything was grand around this time. I hit a wall. My depression was severe. The ZDoom community’s relationship with me was collapsing.

Also trouble with the game’s code. Most of the code was a weird hybrid of Scoot Hard DX’s old code and Daytime Drama 2’s source code – all in ZScript, save for some auxiliary ACS functions for maps. Oh and there was a bit of SWWM_GZ in there. It seems ironic now, but Marisa and I were good friends for the longest time – she was my first friend outside Accensus and WatchDaToast in the community. I still have very mixed feelings about what happened – but it’s mostly not good.

Demo-Chan and Scootaloo
This image, showing Demo-Chan (from SWWM_GZ) and Scootaloo is probably the most painful thing to look at.

Most of the SWWM_GZ code, save for custom subtitles for dialogue and some other functions, was removed – not even because of any bad blood between me and Marisa, but because the code was causing unpredictable issues. The way stackable armor worked was completely re-written to use my own formulas, and we went back to using the default explosion code because SWWM_GZ’s explosion code – which offered spherical, rather than cylindrical, damage, was causing inconsistent results. Direct hits sometimes caused no splash damage – even on enemies that take splash damage, the velocity of enemies thrusted was weird… in general the code was not usable.

I frankly have no idea why I even used this code, looking back. The way I did it works much better. I typically write my own code now. Using other people’s code – even with permissive licenses like MIT – sometimes causes trouble for me.

That said, I still am sad about losing my first friend in the Doom community, as well as being ostracized. This put me in a real bad spot for several months… I still am recovering.

It’s been hell. Many sleepless nights with Metal and Jenna helping me.

The issues with the code causes many frustrating work sessions… again, it seemed like the best thing to do was to write my own and just keep at it. I feel really bad for the stress that caused all of us.

That said… my coding was not the best either. I was often frustrated, especially with adding UI elements. The worst one was reworking the Boss’ Health Bar. Christ that was bad.

Shaking Things Up

The worst part, was Person A was starting to grow even more manipulative. As the project got more recognition, they kept stressing the work they did. They knew my mental state was not the best, and they started gaslighting me. The level that nearly broke us apart was Tchernobog Laboratory. We couldn’t agree on that level. Person A started gaslighting me. This lead to an argument between me and Metal that nearly ripped the project apart. We worked it out – and I’m really sorry now that I listened to my friend of two years. No wonder I’m paranoid as fuck.

Person A kept causing trouble… and at one point we calmly approached them to work out something. What happened next was infuriating – basically deflecting the blame entirely on us for why they were being so awful. Basically a thirty minute tirade. I should have fired them there… why I did I have no clue.

As time went on, Person A’s role became less and less, and I think that’s what started to upset them. More people started coming on – Dane of MovieUnleashers fame came on as the voice of the Engineer. One of the in-jokes with his role is the line “Looks like we caught ourselves a bogie”. I think it comes from a movie, and the line was being used to troll someone in Tower Unite. Oh the fun shit we come up with.

That’s one thing that absolutely makes Metal really cool. I’m not the best with putting myself out there – but Metal is so energetic and puts himself out there where I can’t. He gets us noticed. He also is willing to learn. He started working with voxel editors and Blender to make voxels to give the game even more of a Build-like aesthetic. The voxels in this game are all his.

Because Metal got around – We got noticed by In The Keep’s Motherload. He was interested in our work, despite the connection to pony.

By March the project was reaching the final stretch. Most of the music was done, with a few tracks being worked on. There were some bugs still needing to be done, and Maimbow’s arena had to be completely redone.

April 3, 2021 was the day Scoot Hard DX Beta Version 3.1 came out. I made a boxart based on Windows NT 3.1 to commemorate this release.

Scoot Hard DX Version 3.1 Box, based on Microsoft Windows NT 3.1's boxart
Scoot Hard DX Beta Version 3.1 Boxart

This would be the final beta released to the public. 3.5 was going to happen, complete with a Windows NT 3.5 inspired boxart, but we decided against it as we were so close to release.

Scoot Hard DX 3.5 boxart
The planned 3.5 variant, mimicking the changes of Windows NT 3.5’s boxart

Release Day

Scoot Hard DX Version 1.0 – the first stable release – was released April 16, 2021. You play as Scootaloo, who has been sentenced to death at the Cloudsdale Weather Corporation. She gets away, kills a guard, and works to rescue her friends from the fascist Pegasus Reich.

Scoot Hard DX’s final boxart, inspired by Quake’s gritty, industrial boxart.

Weapons at your disposal? Rocket launchers, a freezer called the Hailer, a gun that shoots ball lightning, a giant gun that fires a wave of rainbows that atomize everything in it’s path, and a gun that generates tornadoes that home in on enemies, or barrages them with gusts of wind. You could also turn into a chicken – which was a two pronged joke. First, the joke is an old fandom gag where, because of one scene, and Scootaloo canonically not being able to fly… made her doomed to be called a chicken even today. I turned the cringe into a powerup! Also the chicken? Graf’s avatar. I have no beef against Graf by the way. People have not picked up on it yet. I’ll probably get in trouble if it’s found out. Oh well.

For those who haven’t played it – Scoot Hard DX is a mix of Shadow Warrior, Rise Of The Triad, and Blood. It has a lot more vertical movement than most Doom projects. Scootaloo can glide and control her descent. This up/down motion makes it play differently than many things. I think the movement stood out to most people. Also you can’t deny playing as a disabled filly fighting against a fascist corporation is kind of a neat, albeit hilarious concept.

Scoot Hard DX screenshot showing off eye candy
Scoot Hard DX’s E1M1 showing off some eye candy – the voxels, the brightmaps on the weapons, the high-res sprites and HUD elements.

Also from a technical standpoint it was cool. Many projects are still using ACS and DECORATE. Scoot Hard DX, like Daytime Drama before it, was entirely written in ZScript – save for some functions in ACS where ZScript would be overkill, like cutscene stuff. The boss routines were entirely ZScript. The Rise Of The Triad weapon system? ZScript. Everything was powered by ZScript. I don’t think Scoot Hard DX could exist without ZScript… well, it could, but it would be very, very jank.

I have no beef with people who use ACS or DECORATE still. But many things are requiring ZScript now – such as getting the date, cross-mod services without hard-coded dependencies, overriding how items work, fine turning damage control… many things ZScript can do but DECORATE alone and ACS can’t. I see so many people on the ZDF ask how to do something. It’s easy to do in ZScript… but they insist upon supporting Zandronum or sticking with ZDoom 2.8.1. It’s annoying to say the least.

Coverage

So Scoot Hard DX wasn’t featured on Icaruslives yet. I don’t think it got much recognition from the ZDoom regulars… except one who happened to see the Doomworld thread…

It got covered by DavidXNewton, who does Doom related videos. He says Scoot Hard DX was the most violent thing he ever featured and added a disclaimer at the beginning, lest YouTube Kids accidentally picked it up and showed it to kids.

David Does Doom – Scoot Hard DX. David claims this is the most violent thing he’s featured on his channel.

I was honored by David covering it and saying that.

As an aside – I really wish YouTube allowed for more than just “for kids” and “not for kids” and more than just “age restricted”. I prefer the old RSAC advisory myself – based on content and not just age. I also wish they’d not force their bots to decide that. Let us decide for ourselves.

The video shows off most of the campaign. We fixed the Enforcers to be more fun to fight.

Also BryaStar covered it in a Twitch stream. I was there for two of the three streams. She seemed to enjoy it, especially after the many bugfixes and balance changes.

Part one of BryaStar’s LP
Part two of BryaStar’s LP – age restricted because of an Easter egg she found
Part 3. I wasn’t here for this unfortunately.

The movement took some time for BryaStar to master. It was this and feedback from other people that made it so we introduced a run/walk speed modifier – which defaults to shift. Q became the quick kick.

Version 1.2 fixed the enforcers. Several mini-hotfixes were pushed to the 1.2 release to fix bugs that I felt didn’t warrant a major release, such as a bug with the titlemap that caused a print formatting error and caused ZScript to abort.

We were featured on In The Keep’s podcast. Me, Metal and Jenna were there talking with The Motherload about Scoot Hard DX and the history behind it.

I didn’t discuss some of the things discussed on this page because I wasn’t quite ready to – mainly some of the specific things with the ZDoom community. I’m now at the point I feel I can be honest about that shit to the public. I do talk candidly about some of the issues I faced growing up too, as well as my experience with the LGBTQ+ community not being the best, despite me being trans and all that jazz.

And it was here we announced… this was not the end. Scoot Hard DX was a decent enough of a hit we were going to adapt it into a commercial project – and that AuroraDawn was helping with some of the concepts to get us started.

… but that’s another story for another time. Around this time, Scoot Hard DX forked into Project Absentia, but we still maintain bugfixes for Scoot Hard DX. 1.3 was released, updating WIGZDoom to a 4.6 version of the GZDoom engine, as well as addressing an issue with newer devbuilds.

It was around this time that two major things happened. First, Person A and I had a falling out because I had enough of their bullshit. I let them go as gracefully as I could. They started spreading rumors that I didn’t pay them (despite me doing so) and dragging my friends into the dispute. I was angry to say the least.

On top of that… Jenna, my girfriend, and one of my best friends, fell ill. For those who don’t know, Jenna is blind, and has been since 2017. She had hearing loss and severe vertigo. This put her into a bad mental spot that terrified me. I was worried I was going to lose her. It took her about a month to get back to normal. It nearly broke our relationship apart because she was acting so nasty at times, taking out her anger on us. I felt like a horrible partner.

However, love prevailed in the end and we’re stronger than ever. And she wants to come back for Project Absentia. And we’re excited. The strife and turmoil made us stronger… and we’re going to make this even better than Scoot Hard DX.

I want to talk about Project Absentia so bad. But you are all going to have to wait another day.

So… here we are. The end of Scoot Hard DX’s development. This development cycle was… all over the place.

… but it was worth it. We got a project out the door. It got us noticed in a sea of boomer shooters. I am happy about that.

We’ve made safeguards to make sure the drama that plagued the development is no longer going to be a problem. We’ve grown as a team, and as individuals, and as friends. And for that, I am grateful.

In Conclusion

Scoot Hard DX was my first big project as a team. I thank everyone involved. There’s so much other stuff I want to mention – like Korzodin helping us out a bit, Zan telling us how to change the air control, my conversations with AuroraDawn, the fact we got to meet General Mumble and Koa, two MLP fan musicians, and the bunch of injokes we accumulated during development. And of course, the Atmosphere family – Cake’s pride and joy. There’s even more than that.

Alas, I don’t want to ramble too much.

As tough as it was – I feel like I’m a better person now, and I strive to keep improving.

I feel with Project Absentia, I hope to accomplish my dream of going commercial… and making my grandparents proud.

Love ya Grandma Sue and Grandpa Bob. ❤️

Toby Accessibility Mod

Note: This is not one of our projects, but I wanted to share this all the same.

Alando1 over at the ZDoom Forums has made a mod called Toby Accessibility Mod which aims to offer accessibility options and features for people who are blind.

Inspired by Toby Ott, a blind gamer featured in the Gaming Through New Eyes documentary, ZDoom Forums user Alando1, has been working on making a mod that incorporates some neat features – like a dropoff detection system (to detect if you’re approaching a ledge that’ll cause you to dive off a cliff head first), as well as incorporating Jarewills’s health and ammo readouts and an audio feedback compass script. The health and ammo readouts works based on an ammo’s percentages, and the dropoff detection emits a high pitched beep when close to an edge with a significant dropoff. The thread has videos that demonstrate it. Most of these commands are accessed by keys on the keyboard.

There’s a few other things I noticed in the videos – there’s audible footsteps in time with the player’s movement, detection when colliding with walls or objects. The mappack seems to also have positional ambient noises to help navigate the player. The compass uses pre-recorded cardinal directions (even diagonal ones) to indicate what direction the player is facing. There’s a few other things, such as indications if enemies, health, armor, and ammo are nearby. There also seems to be unique pickup sounds for each item class. There’s also audio indicators for if a door is locked and requires a key. There’s also another neat feature I really like – if a switch or interactive panel is in front of you, it will emit a sound for that as well. These all have unique sounds that make it very clear what is going on. This is just a few of the things implemented. If you or someone you know has trouble seeing – no matter the degree, this might help make playing Doom a much better experience.

A ton of effort went into this project, and it shows. I appreciate this, as someone who is dating a blind person.

As an aside, Jenna and I have discussed how such accessibility would be implemented in GZDoom, given a recent heated topic on the ZDoom Forums, and she said there’s many approaches – all with their pros and cons. I hope technology and modding – or replacement/augmented vision technology – gets to the point Jenna and people like her can enjoy her hobby again.

Accessibility mods are something I really like to see – especially in an engine where accessibility is hard to integrate. Doom was unfortunately never designed with visually impaired people in mind – even colorblindness is something that hasn’t been addressed easily, either by mods or engine-side. It’s not an easy task to integrate accessibility into a visual, tactile experience, but It’s nice to see something that works within the framework of the engine to make it as accessible as possible.

The only thing it seems to lack which I think would be good, is audio cues on what GZDoom menu element is being highlighted and what menu is currently active. With ZScript it’s certainly possible, however menus are admittedly my weakest point in coding with ZScript so I could offer little advice except to say it’s in the realm of possibility.

Also some people have reported improvements can be made to the dropoff detection.

However, I have faith this person, or another contributor, can figure it out.

That said, if you need something like this – load it with your copy of GZDoom. It includes a mappack as well. If you just need the mappack or the accessibility project standalone, you can get that too.

Check out Toby Accessibility Mod below!

https://forum.zdoom.org/viewtopic.php?f=4&t=71349