positional constraints over time as a space-time optimization problem in the tangent space of the curves driving the animation controls. Their method has the key properties that it allows for the manipulation of positions and orientations over time. https://www.lost-identification.com
Nathaniel Berens shared the details behind the development of his newly-released game Sagebrush made in Unity 2017 that was reviewed positively by the players. A one-man project with lo-fi aesthetics, Sagebrush combines an intriguing and sinister storyline with utterly nostalgic feeling. The plot revolves around a cult in the remote New Mexico desert which members committed mass suicide.
My name is Nathaniel Berens, and I’m from Ann Arbor, MI. I’m the developer of the newly-released Sagebrush, which is my first commercial project and the first title produced by my one-man studio, Redact Games.
Sagebrush is a first-person narrative adventure game about exploring a cult formation which members committed mass suicide. It’s about piecing together their stories and finding out what motivated them in life and death. It’s like Gone Home but creepier and with cults.
By day I work as a video producer for a college, with Redact Games being a nights-and-weekends passion project. My educational background and work experience don’t really have much to do with games, so even though I’ve been passionate about games and game dev since literally first grade, it’s only been in the last few years that I’ve managed to get my technical skills to a place where I feel semi-competent. Prior to Sagebrush, I worked on a number of smaller, free jam games, but Sagebrush is my first major game project.
Sagebrush: Start of the Project
The genesis of Sagebrush came from two places. In early 2017 I canceled a much larger, overly ambitious stealth game project. I figured my first big project would probably fail, so better to fail faster. I scaled down to something much more manageable for a solo developer, something that focused on what I was good at (writing and environment design) and played down my weaknesses (complex systems design, animation, and high-poly modeling).
Around that same time, I had been reading voraciously about cults after reading the Scientology book Going Clear. I’ve always been very interested in how and why people build strong belief systems, and cults take that to a very extreme place that is terrifying and fascinating. I wanted to explore that while depicting cults in a more realistic fashion that most games do. No demon-summoning brainwashed gun fodder (as much fun as those can be). My cult would be based on an amalgamation of real-world examples, and its members would be depicted as complex humans.
The lo-fi aesthetics was actually a continuation of my canceled stealth project. It combined my love of the look of the late 90s, early 3D games like Quake and Silent Hill with the practical reality that I was working alone and that I’m… kind of crap at art.
People have been joking for a while that as the next generation of gamers got older, nostalgia would shift from 8/16-bit pixel art to 32/64-bit early 3D. I don’t think pixel art is going anywhere, but there has definitely been a wave of games in this lo-fi 3D style recently. When I began production on Sagebrush, I only knew of a couple, but now there are quite a few: Dusk, OK/Normal, Paratopic, etc.
The core of the look boils down to low-poly models and low-resolution textures with no filtering for that crunchy, pixelated look. Beyond that, there’s a spectrum of adherence to the limitations of the platforms of the era. Some people go the extra step and display the game at a lower resolution (either as the game’s actual resolution or as a post-processing effect). Some go even further and apply shaders that approximate the affine texture mapping and fixed point UV maps of the original PlayStation. Some games only use vertex lighting models, and so on.
I opted to evoke the look of the era rather than stick slavishly to the rules, so I use lots of tech that you wouldn’t have seen in a PlayStation-era game: height-mapped terrain with dense foliage, real-time lighting, and shadows, etc.
Like any other style, the lo-fi aesthetics can look terrible or it can be downright beautiful depending on how it’s applied. When it works, low-res, low-poly art really engages the player’s imagination in a different way from photoreal or higher-poly stuff. It requires the player to fill in some gaps rather than just relying on the visual information that’s presented to them. Especially in horror games, if you can cue them to fill those gaps in with bad stuff, it can help build a really unsettling, ambiguous atmosphere.
Building the Layout
Sagebrush was built in Unity 2017.
As you may have noticed, there’s no loading once you’ve started the game. That’s because, outside of the main menu and end credits, it all takes place in a single Unity scene. It was extremely important to me that Black Sage Ranch feel expansive and open. I didn’t want the player to be wandering through constrained, linear spaces. It had to feel like expansive, like a real ranch. Thankfully, the performance never suffered much due to this choice. Even though it’s a large space, there are relatively few entities in it and those that do exist aren’t doing a whole lot.
The layout was one of the first things I nailed down before I had a solid idea of how the story would play out. I sketched a simple, ugly map by hand, then I blocked out the exteriors of all of the buildings to make sure the distances and scales felt right. And then finally went about grayboxing the interiors.
Once grayboxing was done on a building, I could jump right to texturing the graybox geometry, adding only a few details as I went since the level of fidelity was already close to the look I was going for.
Early on, I had considered forcing a transition between interior and exterior spaces like many survival horror games did (possibly even aping the famous Resident Evil door transition). But I liked the seamless transitions and the ability to look out a window and see clear across the ranch too much, and since performance was holding up fine, I never had to resort to loading screens.
Creating 3D assets was one of the biggest challenges for me. I’d previously only worked in 2D or with assets provided by a dedicated artist. Working alone meant I had to learn all of it pretty much from scratch. I had messed around in UnrealEd and Hammer in the early 2000s, but other than that, I was approaching this as a complete newbie. Every step was a learning process.
I won’t pretend to have much good advice to offer here. I’m still a beginner when it comes to 3D art production. Luckily, I chose an art style that allowed me to hide or excuse a lot of mistakes and sloppiness that wouldn’t fly in other contexts. I needed to be able to produce a lot of art quickly despite having little experience, so being able to build almost everything by simply extruding rectangular faces or 8-sided cylinders was incredibly helpful.
As for my actual workflow, environment geometry was mostly built using Probuilder inside the Unity Editor, while props and some environmental details were modeled and textured in Blender.
When I began texturing objects in Sagebrush, my initial approach was to paint the textures from scratch. However, as I said, I’m kind of a crap artist and not only was this approach slowing me down a lot, the end results weren’t great either. Some of the final textures are still done this way, usually for tiny objects like books and plates. In these cases, I started with a small, 32×32 or 64×64 texture and painted them in Photoshop, pixel by pixel.
For most objects in the game though I ended up redoing them using photos as a base. I’d find a public domain or Creative Commons-licensed image, tweak it in photoshop, and then resized it down to 256×256 or lower. Most of the environments are pretty simple flat walls at 90-degree angles, so I would just apply tiling textures directly to them in Probuilder.
Well, for more complex objects I never really learned to UV properly, so I’d color code the faces on the UV map and then do this horrible copy and paste job from the source photo to the texture map. The resulting maps are genuinely embarrassing but, hey, it worked out in the final product.
Importing a low-resolution texture into Unity and disabling texture filtering instantly gives you the early-3D software renderer look with these big chunky pixels. Since the era I’m evoking didn’t have normal mapping or really anything but a single base texture, I generally only used the diffuse map or diffuse + alpha cutouts.
A lot of the aesthetic has to do with leaving features out rather than adding anything.
Due to my video production background, lighting was something I was a lot more comfortable with up front than the rest of the art production. It’s not exactly the same as lighting a film set but there’s a lot of overlap. I saw an opportunity to go for impactful lighting choices that could really elevate the simple environment art.
Initially, the game was going to be more explicitly horror-focused and was going to be set entirely at night. But I decided to experiment with sunset lighting and immediately fell in love with what rich colors and long shadows did for the ranch. That one change shifted the mood of the game from outright horror to something more melancholy, which ended up having a strong impact on the development of the narrative.
Real-time shadows and lighting were a top priority for me since the game would use a flashlight and the time of day would slowly change as players progressed. I also had a strange obsession with making sure every light switch in the game functioned. I opted for all real-time lighting (there’s no baking whatsoever), turned off any ambient occlusion, and set all of the lights to cast hard shadows. Early on, during sunset, the lighting is softer in many interiors because I faked some bounce lighting with some soft point lights scattered around, but as the night progresses those get turned off and the lighting becomes much harsher.
I used Unity’s deferred lighting renderer to achieve the look since I wasn’t using any baked lighting, and essentially all of the game’s lights were within a single Unity scene. Being able to stabilize performance and ensure that any number of lights could be active at once in the frame was essential.
One other important element was a post-processing shader that crushed the bit depth of the image down to 256 colors. One effect of lower bit depth I’ve always loved is the way that the noise it adds makes shadowy areas seem to squirm as pixels get clamped one way or the other. It adds this wonderful sense that the world is less static than it really is.
I’m a big fan of games that require the player to actually put in some effort to figure things out. I’ve always loved the maps in the Thief games, for example, where you aren’t shown your exact position and have to work out the spatial relationships for yourself. There’s a much more intimate relationship with space when the player has to actually pay attention to it rather than just follow waypoints.
The Ranch was also designed so that you can see at least one major landmark from anywhere in the game. The chapel was placed in a central, elevated position in order to anchor the whole map. You basically always know where you are in relation to the chapel.
It did mean the possibility of players wandering lost occasionally but I decided that that was worth the payoff of letting them feel like they were really learning the layout on their own.
From the very beginning, the concept was always to explore a cult compound after the cultists had committed mass suicide, though the details continually evolved throughout the development.
Initially, the idea was to have the player discover the mass suicide at the climax of the game as some sort of shocking plot twist. But I realized quickly that literally, everyone would see that coming a mile away, so I chose to lean into it rather than hide it. The game literally begins by telling you that everyone here killed themselves, which ends up casting this really haunting shadow over the game.
The game looks like a horror game, and it often feels like one, but it wasn’t written with the goal of scaring people. First and foremost, the goal was always to portray a variety of characters and their various motivations and hopes for joining the cult. I knew that in terms of budget and scope, I would only be able to get a few voice actors, so I centered all of the voice recordings around the perspective of a single character.
The biggest challenge in writing the game was deciding how linear the narrative should be. Like the navigation, I wanted the story to be something that the player had to put some thought into. They had to piece things together and come to their own conclusions. I considered making it very nonlinear but as more puzzles were added to the game that shifted. In the end, it is actually told in a very linear way but the player still has to fill in gaps with their own conclusions and imagination.
I also struggled with finding the line between realism and exploitation, but whenever I would wonder if a part of the story went too far or felt unrealistic, I would find numerous real world examples of similar situations in real-world cults. In the end, there’s basically nothing in the game that doesn’t have some historical analog.
Sagebrush took almost exactly a year and a half from start to finish, squeezing development into free nights and weekends.
The biggest challenge was absolutely working alone. It was a real trial by fire, I was constantly running into technical issues or concepts I had never had to deal with before. I had never written a save/load system before. I’d never written a shader before. I’d never UV mapped a model before. But banging my head against those issues until they worked did end up being massively rewarding in the end. So far the reception from players has been hugely positive, which was absolutely wonderful to hear. I’ve learned so much from this process, and I’m excited to take that into my next project… whatever that ends up being.
If you found this article interesting, below we are listing a couple of related Unity Store Assets that may be useful for you.