“Guard Dog” Fanmade Overwatch Hero Unreal Prototype | Dev Diary 2 - Shifting to Unreal

It’s been a second since I gave an update on my pet (ha!) project. Here’s what’s going on with the Guard Dog.

Last month, I had the privilege of going to the Game Developer Conference, or GDC, out in San Francisco. I had a great time meeting fellow designers and game devs, networking, going to talks and sessions, and so much more. It was a great event, and I really learned a lot about the state of the industry and what it’s gonna take to get my next position. After that, I had a lot more traveling in the weeks till now, attending a friend’s wedding and meeting with family for a birthday-holiday combo, so I haven’t had the fullest chance to continue working on the Guard Dog. With that said…

The most interesting talk I attended at GDC was an introductory crash-course on Unreal Engine 5. The game engine has been taking the industry by storm it seems, and since most of my experience has been in Unity (Liville, Escape Velocity, and most of my college classes were taught in Unity after all), I wanted to check it out to see what I’m missing out on. The talk was given by Matt Oztalay from Epic Games, and it was absolutely eye-opening. Coding in Blueprint, the easy rigging tools for character models, the in-engine animation tools - it all looked super convenient! The game Matt used to show us - a kinda-sorta 3D platformer about gathering a gaggle of robots - was a great showcase to display just how quickly, easily, and painlessly a simple game can be put together. By the end of the talk, I had to go up and ask how easy it would be for a Unity user such as myself to shift gears from one engine to the other; once the video goes up on the vault, I assume anyone watching it will be able to hear me ask my question, as well as one specifically for this project about how easy it would be to auto-rig a non-human character model.

But the real kicker was this: after the talk, while I was mingling with other devs from major studios, I was talking with them about this project. I can’t remember specifically who it was that said so, but when I brought up a question on whether or not I should be making this project in Unity or Unreal, they stopped me and said very definitively to switch to Unreal.

So, here I am. Post-GDC, I purchased a Udemy course much like the Unity course I completed earlier this year to learn Unreal from scratch. Perhaps “from scratch” isn’t the correct phrasing; I do have experience building a game in Unreal from back in the day, a puzzle-horror game called “the Innsmouth Project”, but that was in Unreal 3 or 4, and 5 clearly has some new functionality that I’ll have to refamiliarize myself with. Plus, the sheer level of difference between it and Unity will certainly have some growing pains I’ll have to overcome, but frankly, I relish the challenge.

So far, I’ve put together a pretty simple FPS-style prototype where you can launch cannonballs at some industrial props in a warehouse. The game keeps track of your ammo, and I edited the collision of the assets to more satisfyingly get knocked around. It was all done in Blueprint, something I’m entirely new to using, so I’m happy with the work I’ve done so far. I’m also amazed by just how easy using Blueprint is - it’s super easy to parse, and the functionality of making, well, functions is very convenient. I can foresee myself using it in the future to create the Guard Dog, but I’ll need some more experience with it first, and I have some concerns regarding it.

Particularly, I realize that, despite the course being intended to teach object-oriented programming, the main chunk of my learning has been done in the code graph for the scene itself rather than on a specific object, like the player. While the coding I’ve done works, I’d rather it be a little more Unity-like in that the programs are attached directly to the objects they affect. I might be a little deluded in thinking this though, so I’m not gonna jump to any conclusions just yet.

——————————

So! What have I done to proceed toward completing the Guard Dog itself since last time? Well, since I haven’t been working directly on the hero prototype due to traveling, my progress has been limited to concepts and character design. One thing I am adamant about with this project is to avoid making an exact recreation of the original hoax; I am not actually remaking the Guard Dog, but reinterpreting it. One detail I’m actually keen on losing is the original character’s look itself. This includes the dog’s breed - the original hoax’s model, which you can see a recreation of in this post’s thumbnail, was clearly a German Shepherd, a carryover of Team Fortress 2’s spy movie origins. They’re also pretty well-known species for being given important tasks such as disability assistance, search-and-rescue jobs, and especially police work to the point of canine stereotype. I understand that a German Shepherd can be easily read as a dog with a job, with the serious personality that comes with it, but I want to be a little more unique than that. Therein lies the question - what kind of personality do I want my character to have, and what dog breed goes best with that?

There are a few obvious options. The Saint Bernard is a clear choice, being probably the single most iconic dog when it comes to snow rescue, and they have very iconic faces. There are also Labrador Retrievers, which are used more than I would have assumed for sniffing out drugs and trapped people, as well as smaller hunting breeds like Bloodhounds and even Beagles. In the end, I think my choice is an unorthodox one, but an interesting one that I find compelling for several reasons.

I’ve decided the dog will be a Belgian Malinois. They’re a type of Belgian Shepherd, a breed with a long history of being working dogs on par with German Shepherds, to the point that the two share a common ancestor. They look distinct from German Shepherds enough - shorter fur, a more angular face, but overall similar build and shape - allowing me to construct this character as an homage to the original hoax without being a simple copy/paste. I also noticed amidst some research that there are no Belgian characters in Overwatch. The game has always tried shooting for a worldly vibe, with a wide net of international characters to pick from and often celebrating their heritage in a way that feels more than just tokenism (for the most part). So, by picking this dog breed, I can create a character that fills a niche in Overwatch’s international cast. Naturally, with skins like the sorts Overwatch gives their characters, this breed can be changed to fit different costumes, but their main design will be a Belgian Malinois.

I’ve also put more thought into the character’s overall abilities, allowing me to create a sort of design gameplan moving forward. If I have an idea of all the abilities the character will have going in to the Unreal prototype, then I’ll have an easier time creating them. Here’s what I have so far, broken up in the way a normal Overwatch character’s moveset would be:

  • Role: Support

    • Reduces the time before passive health regeneration starts from 5 to 2.5 seconds after taking damage.

  • LMB: Mounted Guns (Primary Fire)

    • The dog’s guns fire from mechanical arms attached to the mount on their back. These guns fire two shots per click - one from each gun, with a slight delay between them. These shots will be fast-moving projectiles as opposed to raycasted hitscan attacks. The button can be held for fully-automatic firing.

  • RMB: Mounted Guns (Secondary Fire)

    • The dog’s guns fire from mechanical arms attached to the mount on their back. Unlike the primary fire, these attacks are fully automatic with very little delay between shots, akin to a minigun. These attacks are hitscan, and do not damage enemies - instead, they heal allies. The dog’s tethered partner also gains some healing when this move is used to heal others.

    • This move will have a cooldown, but the cooldown can be reduced and the healing can be improved slightly by picking up a health kit. This way, a part of the original hoax can be retained - delivering pickups to allies - without making it too intrusive to the character’s gameplay.

    • This move’s intended use is for healing allies that are out of range of your tether in an absolute emergency, when you do not want to leave your current tether partner, or for healing allies that are perpetually out of your range, such as a flying Pharah. It’s still just one concept, and probably the part of the moveset most open to change as I progress in this project.

  • E: Emergency Relief Tether

    • A device by the dog’s neck opens up, projecting a tether to a nearby targeted ally. On use, the ally gains a sudden burst of healing, followed by gradual healing over time so long as both the dog and their partner stay within range and line of sight. Otherwise, the healing provided by the tether is entirely passive.

    • This move has no cooldown, and is the character’s main iconic ability, the centerpiece of their kit. I may play with the idea of other small buffs it can give, such as a slight movement speed increase.

  • Shift: Jump Jets

    • Jets on the dog’s back mount fire, sending them rocketing through the air in the direction they are looking. If the dog has a tethered partner, they are both launched when this ability is used.

    • This ability is inspired by the Pyro’s Thermal Thrusters in TF2. I may consider adding a short hop before the rockets fire, like the aforementioned weapon, but the dog will value expediency above all else, so I’d hate to delay their one movement tool.

  • Ultimate: Invulnerability Tether

    • The dog attaches a tether to a partner, much like their E ability, but this tether grants the dog and their partner full invincibility. This tether can be transferred to other allies while it is active by using the dog’s E ability, essentially replacing it for the duration of the ult.

    • This move is obviously inspired by Ubercharge, the Medic’s iconic ability in TF2. I believe giving a similar ability to this dog completes its status as a TF2 homage in Overwatch, while complimenting its role as an off-healer by giving it a more utility-oriented ult rather than massive healing.

So, now that I have a general blueprint for this character, I can start proceeding properly in Unreal once I feel confident in my skills. There will be a first-person shooter segment of the classes I’m taking, so I’m hoping to carry over knowledge from there to create this prototype - something that will be much more directly useful than the Unreal certification I took. Look forward to another progress update soon as I learn more about Unreal!

Previous
Previous

Player Fantasies: Batman Is Not A Healer

Next
Next

Horror Games Don’t Exist, Video Games Are Lying To You