Unite India is here: https://unity.com/event/unite-india-2019
there is no need to create a vdb, but it works yes
Super taf! ;)
Flight School Studio shared the production details of Creature in the Well, a “pinball with swords” arcade game that is going to be launched on September 6!
Flight School Studio is a mid-sized team that creates a variety of products in the emerging tech and games space. We do both client work and our own original IP and are often working on many projects at once, in small teams. The studio is in total about 30 people, the majority of which are based in Dallas. Adam Volker and I, Bohdon Sayre, are up in Montreal, and we focus on more traditional indie game projects like Creature in the Well. Adam and I have been working together for almost 10 years now (formerly at Moonbot Studios) and while at Flight School we’ve worked on a few client projects and two original VR titles: Manifest 99 and Island Time. Both were pretty different projects, Manifest 99 was a lightly interactive VR short film that was nominated for a daytime Emmy, while Island Time was a comedy survival game featuring the beloved internet sensation Greg Miller as the voice of Carl the crab.
About Creature in the Well
Creature in the Well is the culmination of a lot of things for us. We have a history of making many different types of projects from animated short films to mobile games to “experiences”, and we always try to explore interesting and unique art styles and game mechanics. Adam and I have always wanted to work on a larger and more traditional game for console and PC, and this will be the first title we’ve released that I think officially plays into that space. We’ve heard a lot of people say that Creature in the Well is unlike anything else, which is ironic because this was our attempt to make something more mainstream, to not be afraid to pull references from the games that we love, and to make something that appeals to a wide audience of people who play games.
At the beginning of the last year, we had the goal of making three game-prototypes and then picking our favorite to put into production. One of the ideas was essentially top-down Zelda style controls, but you’re playing air hockey against a friend. Another inspiration for the game was Ballz, that mobile game, which is basically a more passive breakout. So the prototype quickly became a cylinder sliding around with a single Zelda style swing attack that could hit a ball and some breakout-style bricks that would take multiple hits before they changed color.
The goal was to find a way to combine the fun and casualness of unleashing a lot of balls on bricks and watching them do their job, with the skills required to control something other than the player, like a ball in any sport, or in a game like Rocket League. After the initial prototype, we quickly brainstormed cool ideas for other puzzle type objects that could go in the game. In the prototype, a second player could drop in and also hit the ball around, which was fun, but I felt like handling a multiplayer game was out of scope, especially with all the other new things we wanted to try, and while attempting to stick to a 12-18 month schedule.
We started to come up with structures for a single-player game that would be mostly action-oriented with a mix of puzzle elements. Dead Cells was a big inspiration at the time so we were thinking something dungeon-y. Pinball came up a little way down that road because we were adding cylindrical objects in the game which would cause the ball to bounce in different directions and so we threw that in the bag of references to use for puzzle design. We also love Dark Souls, partly because of its unique and interesting world layout, and that inspired a lot of the environment and level design, which is a bit more organic and sprawling than your usual dungeon game. We embraced the idea early on of not using any grid structures or anything for the overall shape of the dungeons.
Adam came up with this cool plot for the story, which was about an old weather machine that had lost power, and needed to be turned on to stop a sandstorm that had trapped the town. After that, I leaned in hard on the idea that the objects you hit and the mechanics for additional objects were about electricity and generating power. I built one core object that could be plugged into other objects like an electrical circuit, each with its own internal circuit breaker, and that became the base for how we built levels and connected objects within those levels. I love to use the story and setting as fuel for new game mechanic ideas because there’s something nice about games that have an invisible parity between the gameplay rules and the narrative.
As for the trailer, Nick Verge from popagenda actually had the idea about doing a rhythm-based trailer using the sounds of the bumpers and other objects to fuel the pacing which we thought would be perfect. We recorded a bunch of footage from the game and were able to use some downtime from Chris Collins, an editor who works out of Dallas at a sister studio (Flight School is associated with a couple of other studios, Reel FX and ATK PLN). Frank Pittenger, who also did sound design for the game, worked on the trailer, and they both crushed it. We’re stoked about how well-received it’s been so far!
At the same time that we had the early prototype, Adam was pulling reference imagery and making some really unique early concept art for the style of the game. The concept art was intentionally very flat, and the goal was to have objects that would seamlessly blend with each other and become one solid shape. For this reason, we weren’t actually planning on having any surface lighting at all, e.g. anything that would make an object lighter on one side and darker on the other, such as cel-shading or “toon” shading.
This was one of the first pieces Adam did, which showed off the overall flatness and balance of shape and linework, as well as the noise and texture we were going for. Some of the key references he used were comic books and more specifically the Hellboy comics done by Mike Mignola. We were also basing some of the style on concept art done by Jake Wyatt. After roughing in some initially just completely flat materials in the game, it quickly became apparent that we needed something else to help the player perceive depth while they were playing and to differentiate between walls and floors in different areas, so we evolved the style gradually over time to accommodate the different gameplay needs.
One of the early asset tests was based on concept art of the well in town. I have a background in 3D art and animation, so Adam and I will often bounce look development tasks back and forth a number of times between concept art, 3D asset tests and techniques, experimentation with those techniques, and then repeating the process.
The first technical test was to figure out how lighting and shadowing could work in the style. The main goal was to try to make sure that the resulting color of any object, whether it was hit by light or self-illuminated, was pretty reliable so that objects of the same color would appropriately match or blend into one another (assuming all lighting in the game had a value of 1). I created some material functions that would allow us to blend between lit and unlit looks on an object while still preserving the overall value, and came up with a pretty hacky method of bending all the normals of an object away from the key light, so that it could be fully flat, while still being involved in lighting and cast shadows, etc.
The second test was tackling how we would texture objects such that they would keep the crisp clean lines present in all the concept art. The approach I took was to use single-channel masks for each color of an object and to sharpen (multiply) them in the material, similar to how distance field fonts or textures work. The effect can actually work better with lower resolution textures (which also meant we could work a little faster and sloppier if necessary) since the filtering of the texture results in smooth gradients that can then be sharpened into clean lines. I made some Substance Painter templates and presets so we could easily preview the fully colored version of an object while we were painting each color channels mask. This technique meant that we had a limited number of colors per object, but also meant that we could easily recolor every object in the game, which effectively saved us a lot of time.
After using this technique to create a lot of assets we tweaked things here and there to support new ideas. I added vertex painting support so we could paint in extra noise, or paint out black lines on objects where we might want less overall detail.
One of the other core materials was basically a world space tiling texture that had ‘layers’ which we could vertex paint to create more or less dense areas of the texture. The idea is that you paint the layers in photoshop each at a fraction of the opacity proportional to how many layers you want, which is just a roundabout way of making a gradient texture, and then you offset that texture before sharpening (multiplying) it based on the vertex color. The effect can be previsualized in photoshop using a brightness and contrast adjustment.
This tiling texture let us use super primitive objects for many of the floors and walls and very quickly create unique looking environments without having to do any additional asset work. Most of the techniques on this project were honestly created out of a desire to not only achieve the art style but also create the tools and workflow necessary for two people to make a lot of content in a short amount of time. After the initial workflows were roughed in, Adam could use them to create a lot of environments and then come up with new desires and ideas for ways to improve them. That iteration process continued throughout production pretty much right up until the end.
What was really nice about these techniques was that it allowed us to dial in the color palettes much more easily as we developed the full game. We knew we wanted to be able to reuse environments in the game, but we also wanted to have several unique areas that all felt different, so we built a color palette for each of them that could dynamically be applied to any room environment we created.
The different color palettes are all vibrant or bold in some way, and we had a lot of fun trying out different ones and playing with the mood of each area.
The rhythm is mostly for the trailer, but there are definitely parts of the game that have timing and repetition. Much like learning the cadence of a Ganon fight where you bounce orbs back and forth, you’ll have to learn the timings of different objects in the game in order to get better. The music in the game was composed by Jim Fowler, and the sound design was done by Frank Pittenger. All the audio for the rhythm trailer was done by Frank since it was definitely more SFX focused rather than melodic. You’ll find that the music in the game works really well alongside those SFX, and there are some really beautiful piano tracks that Jim has created.
Frank has been an Audio Editor at Reel FX for over 20 years, working on commercials, feature and independent films, virtual reality and games. So it didn’t take much for Adam and me to describe the core elements of what we wanted from a sound design perspective, the electricity of the ball and transferral of power, the machinery and servo sounds for objects extending and retracting, the deep rumbles of the machine. Frank and I were both fairly new to FMOD, but we had a blast learning it because of how fast and easy it is to pick up. I’ve messed around casually in apps like Logic Pro and GarageBand over the years and was able to learn everything I needed to in about a week or so. I used the Celeste demo project (thank you @PowerUpAudio and @regameyk!) which was really helpful because you get to see a full real-world project, and I find learning by example to be the most effective method for me. After that, I would basically stub in events for the game and think about any cool parameters we might want to have, like a charge value that could be used to drive the pitch of a bumper being hit. I made frequent builds that I shared with Frank using Steam codes and he could play those builds and create the sounds for every event using FMOD’s live update feature without ever needing to install or open UE4.
Jim has a ton of experience composing music for games in both Wwise and FMOD, and the way he worked and delivered content to us made it really easy to create very dynamic music that reacts to the game and evolves as the player progresses. Our audio budget overall was pretty small, but Jim created so many unique stems and variations that it made it possible for us to mix the tracks together such that we could keep evolving the music as you progress through the game. For instance, the music that plays when you play any of the eight dungeons in the game are all based on the same track but use different mixes of that track’s stems based on how far you’ve progressed.
Core Game Mechanics
The ball movement component was the first thing I implemented, and it just manually handles moving the ball, calculating bounce angles from blocking hits, triggering events on objects that are hit, and making sure that the ball stays locked to a horizontal plane, regardless of the angle of walls or shape of objects hit. The gameplay all takes place at a height of 100cm off the ground (which is about waist height for the character). All the gameplay objects that can be hit with the ball are designed such that you can place them on the ground and their colliders will be centered at 100cm high. The positioning of objects was very forgiving, so if the ball or object placement is off by a few centimeters it doesn’t matter, which was important for us to be able to work quickly.
The core mechanic of the game is that you charge up the ball by hitting it multiple times (say to a power of 75), and then any “chargeable” object that the ball hits, will receive 75 power on each bounce. Any physics object designed to interact with the ball had an interface that allowed them to receive ball hits and get a bunch of info about the ball when it was hit. I used UE4’s GameplayTags system to organize the different types of ball hits and damage and could use those to determine which type of FX to play based on the event. Most of the gameplay objects shared the same base class which was a “powered object.” This allowed them to connect to each other so that one object could activate once another object was fully charged, and gameplay could be chained together. That shared base class provided most of the events any object would need to trigger FX, like when an object receives power and starts functioning, or when it becomes fully charged and starts outputting power to another object. The base classes are all written in C++, and designed to make it very easy to just override the event you want in Blueprint, and add some calls to show specific VFX or play an FMOD event.
Making VFX for this game was a lot of fun. The art style established a paradigm for clean shapes and there was a throughline of electricity in the story, gameplay. and VFX that kept everything tied together. I made a lightning bolt particle material that could be reused following that theme of electricity, and they’re pretty simple. They’re 6-division planes with an eye-shaped texture, vertex offsets to make them wiggle, and a wiping feature that gets animated in the particle system. You can get a lot out of just a few shared effects, this one was scaled, rotated, and colored to fit into probably most of the VFX in-game.
I think the most common technique I used is that hard cutoff effect where you offset, multiply (sharpen), and clamp (saturate) a noisy texture, which can be animated or used as the base for some other effect. It’s a simple technique and I’ll often spend a lot of time just messing with different ways to create textures that it can be used on for different dissolving effects.
A lot of the time, VFX was prioritized and added because of how important it is for gameplay feedback. All the effects in the game that can hurt the player have a strong bright red-orange color (we call them all “anomalies”), and the “EMP Pillar” is a tall red anomaly that damages the player by exploding in a large radius anytime it gets hit by a ball. The EMP Pillar takes 1 second to detonate, and for feedback purposes, it was important that you knew when it was about to detonate, and exactly the area of the explosion so that the player could try to get out quickly. I also wanted it to feel like the VFX was pushing the player towards the safe zone by emanating from the center. I feel like that directional movement makes it easier to pick up the gameplay cue quicker so that the player is more likely to successfully dodge the explosion and then feel great about their sweet skills.
The result was two distinct VFX elements, the initial ring that grows from the center of the pillar (and is white in color, because it’s not harmful to the player yet), followed by the red flash which damages the player if they’re caught inside.
This turned out to be really successful when we played it, so I mirrored the same idea for our “AOE Anomaly Bumpers,” which also have a bit of charge time. They use white lines along the edge of the AOE to push the player outwards, before turning into a dangerous red area with red lighting bolts to emphasize the effect.
We’re on our last stretch right now, finishing up the game for release on September 6. The game will be available on Nintendo Switch, Xbox One, and PC via Xbox Game Pass. We’re excited to get it out there and see what people think!