By Henry Tofts, Nov 28 2019 04:42PM
Welcome to the first making of!
Gears of War, if you did not know, has a long and illustrious tradition of adding easter eggs to their levels. At Splash Damage we have had the pleasure of being a part of three of these. Design and art support for Glory, creators of the organ puzzle in Mercy and what this article will be about, the dance floor for Fuel Depot!
So how do these crazy ideas begin you ask?
Like the majority of content made in a large AAA game, it starts with a seemingly innocent asset. For Fuel Depot, the artists were working on the reinforcement of the theme. Part of this was a concept that appeared for a weighing station. Trucks would drive onto this in front of the depot building itself. The Coalition suggested it would be cool to have it be a functional feature in the map.
Naturally this got my design brain bubbling... Having seen the excellent detective work the Gears community employs when searching for easter eggs, I was keen to create something that would mimic this collaborative effort, but in-game.
After a shower (my go to thinking place), I thought it would be pretty cool to have an easter egg that needed all 10 players (the max number of players supported in Gears 4 for versus). Of course a completely left field thought came along to give this context, and what would serve as part of my pitch e-mail for the idea to The Coalition.
I really didn't send much more than this, besides a few high level step by steps. The Coalition and Splash Damage have built an excellent partnership over the years, so they trusted us to take it somewhere fun!
So you have an approved pitch, how do you go about proving it out?
Prototyping and understanding the player stories involved are key for pretty much any discipline. Since this was an Easter Egg, I knew that they were called that for a reason. If we had just built the idea around the weight station, it would have been too easy to find. There was always the potential that it could be triggered by accident if all 10 players met up in the middle of the map.
The steps below have always helped me provide structure to ideas both normal and the bizarre!
Ask questions on behalf of the player. The core of any design in games should be about how it serves the player. This will help to raise some early problems, but it also plays a part in dictating the scope of a feature. Production will want to know this.
e.g - This would not be a very fun Easter Egg if it got found by accident. This told me that we needed to add more steps to unlocking the dance floor.
Understand the work involved for other disciplines and get their buy in early. Games at this level and size are not built by one person. Have a meeting to discuss the work needed.
e.g - I could not have achieved this by myself. I also needed the same excitement and investment by the team to get it through a very busy schedule. Easter Eggs are not typically planned for in a roadmap. They often take a lot of work, and are done in addition to fixing bugs and usual dev time in bringing out a map.
Make it fun. The steps to unlock an Easter Egg should not feel too grindy, but they should at the very least incorporate the mechanics already present in the game i.e. shooting, co-op, audio etc.
The Easter Egg - Breakdown
Below is every step (with pics :D) of how the Easter Egg came to be. I will also be joined by our Lead Vfx artist - Sergi Salvador and our Senior Tech Artist - Jon Langford - Splash Damage
1)The Gas Station
For the Gears of War 1 or 'Ultimate Edition' connoisseurs amongst you, you will remember that Fuel Depot had a gas station you could blow up. In recreating Fuel Depot for Gears of War 4, this was a task on my plate to deliver with the team. It had some interesting rules, in that it was only explosive weapons that would set it off in a large ball of flames and smoke. It also did a small amount of damage to any players caught in its radius.
This map feature would end up being the storyteller for the events that would lead players to the weight station in front of the depot, and more importantly be a boolean for activating the next step of the Easter Egg.
Remember Step 1? Look production we can do this and still be in scope :D.
Modern AAA games have come a long way when it comes to visual fidelity and world design. A small trigger volume in the centre here wouldn't really cut it for Gears of War 4. I needed to push the idea at a more granular level. This would involve setting the gas pumps themselves as the target triggers for listening for radial based damage.
'Fire, smoke, explosions!' Welcome Sergi Salvador (Lead Vfx Artist - Splash Damage)
What kind of approach do you take when starting out on a feature like this?
The first thing we keep in mind is the impact on the actual players and how difficult we are going to make it for them to accomplish.
In this particular map Fuel Depot, the explosive gas station was a remastered effect from a previous Gears map, so we had to maintain visual consistency in the big picture but also add an extra AAA touch using cool tech.
What kind of impact is there to your work with a 60fps target?
That was the real challenge, trying to improve visuals while still keeping it at a steady 60 FPS. We run new explosion simulations using Houdini FX to improve the quality of the key explosion element, and ended up using only 2 particles for the main explosion and doing most of the magic/beauty at a shader level like custom time frame blending allowing us to run the effect at almost slow motion.
Keeping the explosion under budget gave us the benefit of adding more secondary effects to reinforce the power of the Easter Egg : Smokey spikes, sparks, debris and secondary destruction elements played an important role in this effect.
'Delete button presser, Dynamic Light Remover, Culling Master' Welcome Jon Langford (Senior Tech Artist - Splash Damage)
Why cant we have nice things Jon? + How did you recreate the flash of the explosion without a dynamic light?
As much as I would love to give you all the toys Henry, unfortunately, we had strict performance targets on the Gears 4 versus maps.
Our budgets only include room for one stationary directional light. Any additional dynamic or stationary lights would tip us over our lighting budget, preventing us from hitting our target 60 fps on the base Xbox One console.
So, to fake the bright flash from the explosion, I decided to be cheeky and use a Post Process material. This was done by taking the direction of the light source to the world position of each pixel, then doing a dot product with the world normal. This gave an approximation of self-shadowing that we then applied a general sphere mask to.
Turns out, this was orders of magnitude faster than using a dynamic light, though at the cost of inaccurate shadows, as well as not being PBR. However, because the effect only lasted a second or two, we thought it was the best solution.
I recall we were going to use morph targets to blend the fuel pump from a normal state to a destroyed state?
It comes down to our tight budgets again. We could only afford for ten skeletal meshes within a stationary directional light, any more would push us under the 60 fps target.
If we were to use morph targets, then the fuel pumps would have had to be additional skeletal meshes. This meant we would’ve had fourteen skeletal meshes in the map, causing a major performance impact.
We also experimented using vertex offset animations baked into textures. This would’ve allowed us to deform the mesh via their shaders. However, they proved too memory heavy in VRAM as the textures had to be uncompressed.
We finalized on a simple mesh swap as this proved the more cost-effective solution. Especially as the effect only lasts a couple of seconds and is hidden by a bright flash.
The change from this method to needing a binary non-destroyed > destroyed mesh meant a different approach for Sergi. We would need more explosions! .. to cover the swap on pump meshes. We also had to factor in that the gas station could be seen from multiple angles.
Make QA lives easier
Coming from a testing background myself, I knew the kind of passes they needed to do everyday across a vast amount of content. To ensure the expected result always occurred I created some images with annotations for the QA team at The Coalition and at Splash Damage.
By doing this you will get more detailed and specific bug write ups. The team can target the specific problem pretty easily and squash the bug on the road to polish.
2) Weight Station Display
Cool so you blew up the Gas Station. What happens next?
In its idle state the weight station display is inactive:
In order to get all disciplines aligned when creating features, I made sure to keep the team up to date, and to make any meshing requests as early as possible. The weight station platform was already in the map, so there was talk I tapped into for the display that would accompany it.
It seemed feasible that blowing up the gas station would cause a fault on the weight station itself. The two locations were also next to one another.
Nothing grabs your attention like a big red error sign. Easter Eggs are a funny thing to design, you want to keep them hidden, but at the same time you want a player to discover it. Silly right?
The weight station display would be the storytelling device we would use to alert players to a possible Easter Egg. Keeping devices off until triggered are the best way to grab players curiosity. They may not be noticed for a while, but scripted events like this are childs play for the Gears Easter Egg community!
The computer inside the depot was the next breadcrumb.
This computer would be the only manual interaction trigger placed in the script sequence. Adding a 'Press me' is the 'Yes I am an Easter Egg but is this all?' We could have had the player interact with the computer and restart the faulty weight station, played some disco music and called it quits! But where is the fun in that?
Now for the big tease. I know we can be mean sometimes.
1. Blown up the Fuel Depot with an explosive weapon - Check!
2. Ooo why is the weight station on with an Error?
3. Ah ha! I am an Easter Egg detective genius! Look a computer to reboot the machine!
I wonder what happens if I step onto the weight plate now?
What the. How rude! I do not weigh 631657.10. Hey other Swarm guy you step on it, what does it say? The same number?!! my how mysterious...
Ahem. Now comes the fun part, or it would have been if I didn't have to solve replication issues every step of the way.
If you mention replication to any developer making a multiplayer game, they bumble out strange words like Multicast, repNotify, Authority. Replication is the act of sending information over a network. For example, if the server is in charge of toggling the visibility of assets at runtime, but you haven't told the clients. What will happen is when you load into your map on a server as a client, the assets will remain visible. Oops! On Gears we also have to account for players being able to leave or join a match in progress.
This was the biggest timesink on this particular Easter Egg due to the multiple steps, state changes of meshes and counting up or down players as they crossed over the weight platform (using the green volume seen above as the overlap trigger).
To solve this I created rep notification states and stored each of the steps within that. This was something The Coalition found worked reliably when working on Security and Avalanche maps. I am but a simple level designer, but the challenge was a good one to work though and break my way to success!
3) The Dance Floor!
How did you make the dance floor and confetti?
The dance floor was one tricky effect to get into a good quality but also performant.
Memory was one of the things we did not want to impact so the dance floor did not use any bitmaps. Instead we worked out all masks using maths like the grid visuals with a round glow inside.
For the animation of the floor we decided to use sine functions + random values to flicker between the different squares. We also used perpendicular meshes to reinforce the bounce light and give some volume/depth to the entire effect.
Confetti was the fun part to play with: a basic mesh rotation animation baked into a subuv Texture(flipbook) with a shiny colored material . The emitter was placed on top of the players to give them the party feel.
So you can see it in all its glory I am triggering the final step here via a custom event in dev. Once players had completed steps 1 and 2, the only way the dance floor would come online is if all 10 players stepped onto the weight platform. It did not have to be at the same time, but they had to stay on the platform.
Due to needing 10 players, and 5 of those players were your sworn enemy. This kept this part of the Easter Egg hidden for sometime.
In order to solve this, players would have to come together, like they always do on forums, and work together despite being on opposing sides. Aww.
With this, it wrapped up the Easter Egg and my final goal of encouraging collaboration :).
Hope you enjoyed this insight into the kind of work involved in making an Easter Egg for Gears of War.
Thanks to the talented teams at The Coalition and Splash Damage for their work in creating and supporting the Disco Dance Floor on Fuel Depot.
Credit to the players who discovered the Easter Egg first:
(Credit to: Embry Starred, Crobragon, LPtommy, Mudduck287, Dumpycakes1980, TheGearsProdigy, ForceReconMDK, thtsyou2, GRANT CORE, master chimp 12)