Image courtesy of Vaulted Sky Games | Coffee Stain Publishing

Hide-and-spook: Building a killer multiplayer experience for Midnight Ghost Hunt with Epic Online Services

October 31, 2022
Are you Team Living or Dead? In Midnight Ghost Hunt, that’s the eternal question. Each side has its own pros and cons, but you better think it through, because once the clock strikes midnight the tables start to turn.

Conceived as a “tongue-in-cheek hide-and-seek,” Midnight Ghost Hunt pits spooky spirits against an intrepid crew of ghost hunters, letting each side duke it out in everything from an abandoned theater to a cursed pirate ship. The Ghosts get supernatural powers and the option of possessing objects, while the Hunters get trackers and spectral cannons. Initially, this benefits the Hunters, but woe to them once we hit midnight and the Ghosts’ most dangerous abilities come out to play.
Image courtesy of Vaulted Sky Games | Coffee Stain Publishing
This flip dynamic is not only novel, it’s netting high marks from players all over the world, who are flocking to the early access in droves. And while the game is definitely fun, it’s also a testament to what an indie developer can do when they turn Epic Online Services’ free tools loose on a 4v4 multiplayer. 

To talk more about this, and a wonderful title in general, we sat down with Samuel Malone, Game Director at Vaulted Sky Games, to hear how everything came together and what he’s learned along the way.

Can you tell us a bit about the studio? How did you start?

Vaulted Sky Games is a very small studio that generally consists of myself, a community team, and some freelancers. In 2019, we partnered with Coffee Stain Publishing, and have since brought on various co-development studios for Midnight Ghost Hunt, including the Swedish developers Ernst & Borg Studio and She Was Such A Good Horse.

My career began in the visual effects industry. I worked in Hollywood for several years before deciding to focus more on games and interactive media. I didn’t have much of a background in programming, though I did take a Unreal Development Kit / Unreal Engine 3 class in community college.

When the idea for Midnight Ghost Hunt manifested in my head, I went to work on a prototype in my free time after work for several months. I learned how to use Blueprint scripting on YouTube and various forum sites. Since I worked in a lot of CG lighting/rendering previously, I tried to make use of an eye for interesting environments and strong lighting when trying to find the visual look for the game. And if I’m being honest, without Blueprint I probably wouldn’t have tried making a game. C++ and “traditional” programming languages were harder for me to fully grasp, coming from an artist background.
Image courtesy of Vaulted Sky Games | Coffee Stain Publishing
So after I finished the prototype, I began looking around for a publishing partner. Crucially, I also applied for an Unreal Dev Grant, the forerunner to Epic MegaGrants, at the same time. A few months later I got it, which was great because I had just quit my day job to work on Midnight Ghost Hunt full time. It was instrumental in giving me a bit of breathing room to find the right publisher, instead of having to rush to get full funding. Thanks, Epic!

What inspired this game?

When I was in college, I was fairly obsessed with playing prop hunt mods for various games. I greatly enjoyed the silly situations you can get caught in. As my visual effects career was winding down, I wanted to see if I could push the basic concept of a prop hunt (transforming hide and seek) a bit further, giving it a strong theme and context (like ghost hunting), and experiment with more action-driven gameplay.
Image courtesy of Vaulted Sky Games | Coffee Stain Publishing
A ghost-hunting theme made the most sense for a game where players were hiding in the furniture. I didn’t want it to go into a traditional horror game style, though. I preferred to strike that balance between sort of silly and a little scary. And while the game looks like it takes itself seriously, sometimes you are just chasing around a killer lamp. I think that’s pretty funny.

Beyond a strong theme, I wanted to make additional changes to the basic prop hunt formula to give it more depth. What if the props could fight back, instead of just running away? What if the props had special abilities and the seekers had a full arsenal of weapons and gadgets to choose from? What if the game doesn’t end when time runs out, but instead goes into a sudden death mode?
 
Image courtesy of Vaulted Sky Games | Coffee Stain Publishing

With these concepts in mind, I started prototyping the game by myself and trying to find a strong publishing partner that understood what I was going for. Once I had a rough playable demo, I quit my job in VFX and partnered up with Coffee Stain Publishing. They were instrumental in helping me hone in on the right vibe and mechanics. I couldn’t have done it without them.

And it’s worked out! I’m very pleased we’ve received a solid “Very Positive” review score so far, given the polarizing nature of competitive PvP games. Winning an Unreal E3 Award in 2019 was pretty cool, too!
What do you think makes Midnight Ghost Hunt unique or engaging?

I think our blend of action and hide-and-seek can be pretty compelling, as well as our emphasis on teamwork. Players are encouraged to coordinate combos with their teammates using various abilities or gadgets.
 
Image courtesy of Vaulted Sky Games | Coffee Stain Publishing

For example, two Ghost players can combine the Poltergeist ability (which causes an object to float and get hurled at nearby Hunters) and the Corruption ability (which causes the object to explode if touched) to create a flying, explosive trap.

Hunters, on the other hand, can combine the Radar (positional Ghost tracking) and the Spectrophone (directional Ghost tracking) gadgets to sort of “triangulate” a Ghost’s position.
Image courtesy of Vaulted Sky Games | Coffee Stain Publishing
What stage of development is the game in now? How has community feedback been so far?

We are still very much in our early-access stage at this point. There’s much work to do before we can call the game a completed product. Since our early-access launch, we’ve had two major updates and several smaller content patches. We’ve added two new maps, a challenge system, many skins and emotes, and improvements to features like matchmaking and anti-cheat.

Community feedback has been fantastic and extremely helpful in figuring out what is fun in the game currently and what aspects need some more work. We’ve been listening closely to try to address some of the key pain points. We’re close to shipping features like host migration and dedicated server support, which have been hotly requested in the community. We were hoping to launch into early access with these features, though they ended up being more complex than anticipated. But that’s game development!

We’ve also got a lovely official Discord community where our community managers can interact with players, gather feedback, and catalog bugs and issues. During development, we’ve found a lot of success posting various GIFs of gameplay on Reddit, going viral a few times with millions of views for each GIF. That helped us see that we had something at least visually compelling going on.

In terms of the development process, was this your first time using Unreal Engine on a game? How did you find it?

It was! That said, I had experimented with UE in the past for visual effects, since you can quickly get high-quality renders out of it and export passes to compositing software like Nuke and Fusion. I remember thinking how nice it was to not have to wait hours for a frame to render anymore! I was also impressed with how powerful the Material Editor and lighting systems were right out of the box.

I don’t think it’s an exaggeration to say that without Blueprint scripting, Midnight Ghost Hunt probably wouldn’t exist. Since I started primarily as a 3D artist, the ability to rapidly prototype gameplay mechanics without needing to learn specific coding syntax was the biggest game changer for me.
Image courtesy of Vaulted Sky Games | Coffee Stain Publishing
As the project progressed, we refactored several things into C++, but ultimately the game still has most of its core logic in Blueprint. It’s an incredibly powerful tool to create logic without necessarily needing traditional programming knowledge to get started.

Did you create anything novel that affects the gameplay?

One thing that comes to mind is how Ghosts are able to “throw their voice” and speak to the enemy team using positional and spatialized Epic Online Services voice data. This voice data is even treated with all the environmental echo and reverb to give it that spooky vibe. You can haunt or even mislead the enemy Hunters, which is pretty funny to watch unfold with the right players in a lobby!

Speaking of Epic Online Services, what made you consider it for this project?

I was interested in EOS for a number of reasons, but primarily the features and crossplay possibilities.

Ideally, I was looking for a multiplayer backend service that could be used by multiple platforms, without needing to reinvent everything if we decided to ship on multiple platforms. In this way, we can utilize crossplay and ensure we are not splitting our player base at all. As of now, we are only on one platform, but in the interest of future-proofing the project, it made sense to go this route.

One important feature that we wanted was the voice chat system. Being a team-driven game and somewhat of a competitive shooter, it was critical that we had a solid in-game voice chat for each team. Upon implementing EOS Voice Chat, we were impressed with the voice quality and flexibility we found, especially when compared to other platforms we were experimenting with. And it has been rock solid during early access! We really like having access to three audio channels per session, and a positional spatialized audio channel to help players “throw their voice” when they want to distract or haunt the enemy team. It really adds something to the game.

Also, since Midnight Ghost Hunt is a competitive PvP game at its core, anti-cheat was another  key feature we needed. The ability to utilize Easy Anti-Cheat—for free—has been extremely beneficial for the game. And once we had it fully implemented, cheating not only dropped off substantially, but became much easier to detect, in general.

Did you use any other EOS tools?

We are currently using a lot of them, including lobbies, sessions, anti-cheat, voice, player moderation/reports, and more.

The best part about EOS is it essentially offers us a one-stop shop for most of our backend needs, without requiring us to implement and maintain a lot of different services to get the features we need to run a multiplayer game. And it’s free, which is huge for indie developers, since many of these features could be prohibitively expensive for a small studio just starting out, and deter them from trying multiplayer at all. It’s all really easy to implement, as well, from beginning to end.

In practice, EOS’s lobby system helps us to assemble players in the main menu without needing to load into a session right away. That has helped us create a smoother transition between queuing for a match and playing in a full match cleanly.

We are also making use of the P2P/NAT functionality to avoid players having to deal with manual port forwarding. These sessions are listed in a server browser, making it easy to join games that way if you don’t want to use the matchmaker.
 
We also utilize the player moderation/sanctions system to handle reports and bans for toxic players. Using a unified system like this has been much cleaner than trying to deal with reports on our own website.

Finally, switching to the official EOS Online Subsystem Plugin was super useful in solving some bugs we encountered during various alpha multiplayer tests. In practice, it helped us use many of the generic online subsystem calls from our previous backends, and both simplified and sped up the entire implementation process. It was a huge relief.

What’s next for Midnight Ghost Hunt?

We'll be hard at work adding more content and replayability as we head towards the full 1.0 release. We also are looking to experiment further with different game modes to add some variety and explore new ways to play the game.
Image courtesy of Vaulted Sky Games | Coffee Stain Publishing
For our Halloween event, we're adding a new game mode called "Darkness" that is a bit slower paced, and visually more dark and spooky. With this engaged, it’ll take longer for the Midnight sudden-death phase to start. The Hunters will also have limited ammo and reduced movement speed. It will be a bit more of a drawn-out experience versus our current main-game mode that is fairly action-packed and arcade-y at times.

We also hope to try out new experimental modes with the community going forward to see what works best and what should explore further. In general, we are looking towards the future; we have some pretty big plans in the works for significant new content. Stay tuned for more details on that!

To play Midnight Ghost Hunt, check it out on Steam.

    Ready to get started?

    Epic Online Services exist to help developers scale their games across platforms and stores with a universal set of services that keep all friends connected.

    Learn more about Epic Online Services and download the SDK.