For the past year we’ve been working on a new project with a small team at Unknown Worlds. While most of the company has been involved with the underwater adventure Subnautica, Andrew, Brian, Dushan and I have been quietly working on a different type of game. Future Perfect: a game about discovering, creating and playing games online with your friends.

Many games have influenced us, but some of our fondest gaming memories come from playing mods at LAN parties. Future Perfect is about bringing that nostalgic experience into the present. The first part of Future Perfect is a handful of varied game modes based around first person cooperative and competitive gameplay. The second part is an toolset built directly into Future Perfect for creating and sharing your own games.

Today we’re happy to both announce Future Perfect and make it available as “earliest access” through our website. “Earliest access” is our way of saying the game is still rough and not ready for the wide release of Steam Early Access; there are missing features, bugs and pieces that will change completely before a 1.0 release.

Community involvement is an essential component of Future Perfect. We’ve developed the game to the point where we’re ready to get feedback from people who want to start exploring its capabilities and building their own creations.

The game isn’t ready yet for players who just want to play games. Most of our development so far has been creating the technology for the game. We’ve done a few “game jams” with earlier versions of the tools and a basic first person shooter is included with the game, but these are just tests and examples rather than fleshed out game modes.

Future Perfect started from the engine we created for Natural Selection 2, but we’ve upgraded and replaced many of the pieces over the past year.

We created a component based system that allows objects in the world to be flexible and efficient. Game objects can be reconfigured by dropping on new component to access different pieces of functionality. For example, if an entity should have a model you just add a model component to it. If it should have animations, you add an animation component. Game logic is added using a script component that runs Lua code

We’ve redesigned our scripting system around a very efficient LuaJIT interface. Objects in the game world can run scripts in parallel to make maximum use of multiple processors.

We’ve redesigned our scripting system around a very efficient LuaJIT interface. Objects in the game world can run scripts in parallel to make maximum use of multiple processors. We’ve built a new networking system that uses Steam lobbies for playing games with your friends. The game automatically performs NAT traversal to make it easy to connect to your friends without having to open ports in your firewall.

There’s a new asset pipeline that makes it fast and easy to bring new artwork into the game by simply dragging and dropping files onto the game window.

We’ve redesigned the flow for user creations so that its easy to upload files to the Steam Workshop as well as download things other people have created. These creations can be used together to build new types of games or enhance existing ones.

Finally, we’ve been building an editor directly into the game that we’ve designed to be simple for new players and powerful for more experienced ones. The editor uses procedural building blocks to quickly assemble levels, but also lets you drill down and access of the internals.

As part of our ongoing open development, we’re making our internal task tracking system publicly available for both viewing and voting. We update Steam daily with the latest version of the game in a beta branch, and we’ll be pushing out frequent stable releases to the main branch.

I’m really proud of what we’ve created so far, but I’m most excited to see what you’re going to build.

Welcome to Future Perfect.

– Max

The comment system is currently misbehaving. Please click here for the comment thread.