Before

I began creating Before in 2013 and worked on it at Facepunch Studios for over 4 years, until the project was cancelled in January 2019.

Screenshot from 2017

Beginnings

Before started out as the combination of a caveman that I had drawn and animated in my first attempt at making any sort of pixel art, and an abstract low poly prototype about collecting brightly colored objects which made sounds.

I was just beginning to learn how to use Unity in 2013 and at the same time trying to get to grips with AAA art workflows in ZBrush.

The quick iteration time of low poly art was a welcome change, and as I started getting to grips with post-processing and lighting, the combination made a lot of sense.

The stone age theme fit nicely with the low poly aesthetic, so I kept exploring ideas while learning how to rig and animate basic people and animals. The name “Before” was suggested by someone via Reddit.

Around this time my then girlfriend (now wife!) Jenny Minton, began writing some music.

Jenny continued to write many hours of beautiful atmospheric music for the game, as well as providing voice recordings along with her father Phil Minton.

You can listen to some of the music she made on her SoundCloud.

Facepunch

In early 2014 the project was picked up by Facepunch and that September we started out with a fresh project and actual code, in place of the visual scripting used for my prototype.

Not long after work began, we were invited to show a trailer at the Game Awards in Las Vegas. We made the trailer when the game was essentially non-existent.

I still find it strange thinking about how a few screenshots and the idea of this game was enough to get people so excited, enough to warrant making a trailer for a glitzy awards-show and to fly out to Vegas and embarrassingly introduce it on stage.

Still, I like the trailer and I love the music. Just don’t mention the river flowing the wrong way…

Before’s development was pretty unorthodox, and very much a learning experience for me and others on the team. When we started full-time production I had never written C#, coming from a web design background where I merely dabbled in PHP, JS and the like.

Over the first two years on the project, I would move from working principally as a designer and artist to becoming the lead programmer.

The team never really grew bigger than five, and for the majority of the development time, we had two full-time programmers. We built a custom entity component system as we quickly hit roadblocks with Unity’s MonoBehaviour. We designed everything to be data-driven and extensible. I wrote a lot of tools.

The biggest challenge we faced was the AI. We started out using some well-known Unity plugins, but none really fit our requirements. I wanted things to work like The Sims, so we took it as our inspiration and began building our own Utility AI based on so-called “Smart Objects”.

After many iterations, we wound up with a hybrid design that took elements of Utility AI and combined them with more structured techniques from GOAP (Goal Oriented Action Planning) and HTNs (Hierarchical Task Networks).

Time spent iterating on the AI meant less time spent on core gameplay mechanics, which took a back seat until later on in development. In hindsight, it would have been better to flip that focus and make the basics of building a camp, ordering your people around and combat more engaging earlier on. But, we set out to make a game centred around interacting with complex AI, and so we aimed to get that right first of all.

I had been principally influenced by The Sims and wanted to bring that level of AI complexity to a survival simulation. In The Sims, there’s very little consequence to your failures, beyond having your shiny new TV repossessed (burning to death in a doorless room or drowning in a swimming pool when the ladder mysteriously disappears notwithstanding), and I felt that the same kinds of systems employed in a different setting in which consequences are more serious, could be really interesting. A few other games attempt a similar marriage, Rimworld is a great example, but I don’t think any games handle it with the kind of fidelity and personality that The Sims affords its simulation.

Tool development became something of a passion of mine while working on Before, as you quickly learn that it is impossible to build a game with complex AI and data-driven systems without decent tools.

If anything I regret not seeing this earlier and trying to bring in someone with relevant experience to speed up development. Instead, I used the freedom we had at Facepunch to learn to build tools in Unity.

I built a node based AI data designer, entity interactions editor, building editor, character attachments editor, character rig morph designer, game data browser, and various analytics and visualization tools. This experience feels invaluable and I hope to do more tools development in the future.

Our AI designer

We built a lot of systems. Jobs, needs, beliefs, relationships, diplomacy, reproduction, collaborations, rituals, building, crafting, hunting, conversations, add-ons, upgrades, settlements, machines, traits, effects… the list goes on. All data-driven, all integrated into our tools.

We were certainly guilty of adding complexity too-early, and not being more focused. I think this came down to a lack of experience and a little too much freedom, creative and otherwise, which isn’t always a good thing.

We went through several major iterations of the player controls and camera system, moving from an extremely free and flexible camera akin to Black & White, to a locked follow camera which only let you focus on a single person at a time, and back to a more standard RTS style camera in the end. Unit commands and orders went through multiple iterations, starting out very Sims-like, going super granular and detailed, then being boiled down and simplified to feel more accessible and predictable.

“After”

We often joked that once Before was finished, we’d make a post-apocalyptic sci-fi sequel, called “After”. There’s a thought!

It’s hard to maintain a sense of perspective or objectivity about your work when you’re immersed in a single project for so long, and this was a big issue for me. We spent months working without much in the way of feedback or constructive criticism. Internal playtests were useful up to a point, though eventually, we relied on a handful of testers in the community. I regret not being more open about the development, not getting builds out earlier and more frequently, and not writing more blogs. I was always quite guarded when it came to showing the game because I wanted it to be perfect and to look great.

My vision of what Before could be was too often vague and overly ambitious, and at times I failed to communicate it properly to the team, which I put down to my inexperience. I also believed that the process of exploration and steady iteration that we enjoyed at Facepunch would eventually bear fruit. That last point is not without merit, as towards the end of the project we had solidified our design, planned out the content we’d build for release and were making good progress in implementing it. It was just too little, too late, as it turns out.

It goes without saying that there are a lot of things I would do differently, given how things ended. It has been difficult to move on from Before and to accept that it won’t ever get finished. However, at the very least, I’ve learnt a huge amount about pretty much every aspect of game development, and I’m excited to put that knowledge to use in future projects.

Thank you to everyone who supported the project over the years, I’m sorry we didn’t realise the potential you saw in it.