Nightmare

Year: 2021
Time to create: 10 months
Collaboration: Divinefury,  ZeRoY 
Software: Radiant Black Radiant Black, Maya Maya, Trello Trello, Visual Studio Code Visual Studio Code
Steam Workshop: Visit here!
Source: Available on request

Introduction


This all started when me and Divinefury were playing some custom maps that had some “horror” elements in it. Because of this we started discussing / brainstorming a bit about how we would do it ourselves, and that’s how this project started.

I also wanted to move away from the traditional round-based maps and create an objective-based one instead, this ment we had to come up with different ways of how the map would play.

About a few weeks later we asked ZeRoY to help with the the project, as we really could use the extra help.

Features


These are a few of the features i have worked on, i picked the ones i found the most interesting.

Padlock

I already had this idea before we even started this project, and really wanted to implement this. I figured out how to rotate models with the mouse / controller while being in a xcam, and thought it would be perfect to rotate a padlock.

I made a menu overlay with 3 invisible elements in it, they were all placed over the padlock wheels. This way i could detect over which wheel the mouse was hovering and select the correct wheel to rotate.

While everything was working fine, it was very hard to control the rotation as when moving the mouse more up or down it would rapidly increase the speed. So i ended up adding buttons above and below each wheel which you could click on to rotate the wheel.

PADLOCK EARLY PROTOTYPE

PADLOCK FINAL

Nightmare Vision

This idea started when we began playtesting with others for the first time, it showed things were not clear enough for the players. I began thinking about a way of showing waypoints to the player, as i did not want them on the screen all the time. That’s how i came up with the idea of going into some sort of different state, similar to Afterlife from Mob of the Dead or Beast Mode from Shadows of Evil.

Upon entering this state you would see the current objective location, and it would show all interactable items ( except for hidden EE stuff ). It also gave the player invicibility and being able to walk through zombies, so they could escape if they were in a tight spot.

Checkpoints

I had to come up with an idea how to implement checkpoints, as we did not want the player to start all over if they died. This ment i had to keep track of almost everything that happened while playing.

For this i used the “world” variable, which allows us to store it as long the game is running.

The Doctor

This was one of the most fun AI i have made so far, i wanted to make something where the players were not able to fight back and had to sneak around in order to survive. It was not possible to damage the Doctor with normal weapons, you would need a special RC-XD in order to kill it.

It walked around the map searching for players, if a player was in sight it would leap teleport to them trying to close the distance. If you were to close it would grab you and electrocute you. If you made any noise with sprinting or shooting it would teleport nearby and started chasing again.

While it was walking it would also place electric traps on the ground, so it would make it more difficult for the player to move around. It also had a range attack where it would shoot an electro ball at the player.

DOC TESTING

RC-XD

This was used together with the Doctor step, the player would need to find the remote first to control the RC-XD. Once the remote was found and they started driving, it would show an indicator where they should be heading to.

All the other players would see a small screen on their HUD showing the camera feed of  the RC-XD. While driving around the level you had to be careful of the Doctor or his placed traps, this could damage the RC-XD and would need repairs. Repairing could be done by walking up to it and holding down your button while a progressbar was filling up.

The goal was to collect 3 parts which would complete the “special” bomb, all the parts were behind a vent. In order to get past the vent you had to shoot it. Once you collected all the parts you had to drive up to the Doctor and detonate it.

Alligator

This started as a joke when ZeRoY just added a flooded laundry room. I thought it would be funny to add an Alligator in it, which would attack the players who were in the water.

So a few days later we did a playtest again with Divinefury and it scared the crap out of him when he got attacked. Later we made it so the player could jump on objects in the room, preventing them being in the water and getting chased.

Ray-K

This weapon was added as a small EE, which you could retrieve by burning the blue bunny. This would unlock the red door, which you could only enter with Nightmare Vision. At the end of the hallway was a dufflebag with the Ray-K in it, only one player was allowed to pick up this weapon.

I did not want to make it work exactly the same as it did in Cold War. Instead of the vortex grenade launcher, i replaced it with some sort of dark swarm. It would search and attack nearby zombies.

The hard part of this weapon was how the ammo worked. The normal and alt fire mode shared both the same ammo pool, but the alt mode used 10 “bullets” at once. This was something not supported by the Black Ops 3 engine, so i had to come up with a way to fake this.

I created an extra custom ammo overlay for this weapon and would display the ammo count manually. With each alt fire i had to subtract 10 “bullets” from the ammo clip. If you had not enough remaining bullets i would need to disable the weapon fire.

Unfortunately the default engine functions i needed did not work. So i had to come up with another solution. I enabled the weapon lock option, this ment it would need a lock on a target before it could fire. So this way i could prevent the player from firing the weapon if they did not have enough ammo for the alt mode.

RAY-K TESTING

Zombie Grab

Under certain conditions the zombie could grab the player and then would have to quickly press a button multiple times in order to escape.

For this i had to add a lot of checks to make sure the player could not be grabbed through a wall for example. And that there was nothing in between, or enough space to prevent clipping the view animation through the walls.

I also had to make sure the animations would stop if another player would kill the zombie.

ZOMBIE GRAB

Cut content


Everything that didn’t make it in the final version but is still is worth mentioning. This was either because not everyone liked the idea or it just didn’t fit the map.

Splitting zombies

This was supposed to be a special type of zombie that would multiply on receiving damage lower than their full health.

While i thought this was a good idea, when testing it with a horde coming at you. There would be too much chaos because they could multiply like crazy, and was simply too much.

I could always have tweaked it, but then i would feel like it was not worth it. Due to there being a lot of chaos with a horde and it would not really be seen by the players. It could work for other projects, but not for this one in my opinion.

ZOMBIE MULTIPLICATION

Custom Menu

MAIN MENU

Near the end of the project, i wanted to make a custom menu. I spent about a week on finding / changing the lua files. It was mostly removing elements or replacing/adding images, in the end it was pretty much a reskin that would fit our theme.

I also spent quite a while finding a suitable “frontend room”, as for each gamemode / specialist a room was built to show in the main menu. I finally found a fully black room, where i spawned in a chair with a light above it. The player would be strapped in the chair, same as the start of our level. But due needing a mod for this we decided against it.

Pennywise

For the pennywise reference we had multiple ideas, where once you shot the balloon and entered the showers. The doors would close and the room would start to flood with blood, and you quickly had to solve the riddle before it was too late.

The other idea was a slender type EE, where you would need to find 8 balloons spread acrross the level to finish it.

DO YOU WANT A BALLOON?

The rat

CHUCK

This started when i wanted some event happening after our cinematic door opening in the asylum when shooting the chain off.

Once you would push the door open, a pack of rats would spawn running in the direction of the player. I only did not want to use AI for this, as we are limited on that. So i ended up with making a simple FX for it instead, but we still had this animated rat.

There were some small ideas about giving it some cheese and it would give you something in return, either a part or entering an area the player could not access. But we never came up with anything concrete so it was removed and forgotten about.

Little things


Final words


This has been one of the most fun and challenging project i have worked on. Mostly because we have moved away from the regular round-based mode and tried to make something different.

I think we did a pretty decent job on everything, there are a few things i would have done different looking back at it. But it’s always easier looking back at things and see how it could have been done better.

In the end this project has blown away all my expectations and i would have never thought it would be as popular as this.

FLYBY PROGRESS

Gameplay