File Name Case Sensitivity

Posted by Max at 14-01-2015

One of the annoyances when writing software for multiple platforms is the differences in case sensitivity of the files systems. If you’re not familiar with the term “case sensitive” it simply means that the capitalization in the file name is important. On Windows the capitalization is not important, but Linux and Mac are both case sensitive.

When we ported Natural Selection 2 to Linux we ran into the case sensitivity issue. Knowing this would be an issue, we were reasonably careful during development to keep the case of file names consistent, but there were a few instances where assets used the wrong case to refer to another file. We decided the best option was to make our Linux version work the same as Windows since there were already a number of popular mods and we didn’t want to break them by enforcing case sensitivity on any platforms.…


Future Perfect Update 6

Posted by Max at 13-01-2015

We’re back after our holiday break with a new Future Perfect update. We’ve switched to releasing updates to the main Steam build on Monday, but you can get daily updates by switching to the beta branch.

Heist Game


We’re continuing work on the Heist game mode that we started a few weeks ago during our game jam. The core of the game is about manipulating electronic systems, so we’ve been working on expanding the set of building blocks for making interesting levels.

Some of the new pieces are a “security cage” which can be used to prevent sockets from being hacked and a lock which requires a specific key to activate. We’ve also implemented a timer component which you can see here:



Future Perfect Update 5

Posted by Max at 26-12-2014

It’s the holiday season, which means Future Perfect development has slowed a little bit. Despite the end of year festivities, the team is still keeping progress ticking over. Here’s a look at some of the things that have been done recently. A few days ago, a new Steam update was released. If you own Architect Edition (Get it here), you will have received the update automatically.

This might come as a surprise, but here at Unknown Worlds we do occasionally make errors while scripting. While we’re sure none of you will ever make script errors, Future Perfect has a new feature to make dealing with them easier, just in case. Script errors will now show up in the world, with a little warning icon.…


Future Perfect Update 4

Posted by Max at 20-12-2014
Future Perfect

Elegant complexity can be born of the combination of simple systems in unexpected and creative ways. In Future Perfect, the provision of simple, but potentially very powerful systems, is at the core. That’s my deep and meaningful thought before looking at some of the development progress from this week.

Naturally, this post can’t hope to cover everything that the Future Perfect team worked on this week. For that, you should check out the Future Perfect Trello board.

Max has spent a lot of time tinkering with systems that allow electronic set ups. Check out this crazy machine, that drops a doodad into a pit of doom:


It seems that Max is basically the king of dev YouTube videos now.…


Future Perfect Update 3?

Posted by Max at 13-12-2014

This week we’ve been “eating our own dog food”; we’ve taken time away from adding new features and fixing bugs to make a game in Future Perfect. This is really helpful for figuring out the pain points are and charting our next steps. These game jams are also a great way to experiment with gameplay that we might include the final game modes.

Truth-be-told, we’ve still spent a good amount of time on features and bugs, but we’re not going to put out a new update this Friday. The daily build is still updating to the Steam “beta” branch, so you can still check that out if you’re itching to see what we’ve been up to (or take a look at Trello).…


Anatomy of a Feature

Posted by Max at 10-12-2014

One of the decisions we made early on in development was that we weren’t going to treat the view of the body from first person differently than from third person.

In Natural Selection 2 (and most first person games) when you see your arms and hands from first person, you’re looking at a special model that’s designed specifically for that view. When another person looks at you, they’re looking at a different model that includes the full body and most likely less detail. Different animations are used for each view and the first person mode can even use additional tricks like drawing the hands with a different field-of-view than the world to make it look as good as possible.

As you can imagine, this doubles the work involved with creating artwork for the player.…


The Weekly Plan #1

Posted by Max at 08-12-2014

We are going to post a quick update at the start of each week to discuss what is being worked on. This week is exciting because it is…

Game Jam Week!


Future Perfect is a very technical game. We spend a lot of time in the deep end of the engine code wrangling up stray bits and debating the merits of using a quaternion representation for rotations to avoid gimble lock. Every once and while we feel the need to eat our own dog food and make something.

Our first jam week resulted in Rocket Science. A high stakes game of base defense and mutually assured destruction.



For our next jam week, we decided to split up and work on 3 separate games.…


Future Perfect Update 2

Posted by Max at 06-12-2014

Future Perfect Update 2 is now up on Steam! As usual, we’ve been updating the “beta” branch with a new build every day. On Friday we move the stable build over to the main branch. Here’s a look at the most exciting changes this week.

Multiplayer Hot Loading


One of the really nice features of Future Perfect is that all assets “hot load”; this means if they are changed on disk, the game detects that and reloads it. This is especially nice with script files since it allows you to try new things while the game is running. Now we’ve taken it a step further and if a file is updated in a multi-player session it will hot load on all of the connected machines.…


Scripting Tutorial

Posted by Max at 29-11-2014

For the last 73 years, Dushan and I have been locked in a small cage, slaving over a scripting tutorial for Future Perfect. Mostly Dushan.


This comprehensive tutorial will get you started scripting in Lua in Future Perfect. It’s chock full of code snippets, videos, and pictures to help you go from zero to Minesweeper-fiend in about… Thirty minutes.


Next on the agenda, art import, physics, and other topics. But for now, we’re off to eat & drink something other than bread and water.

View the tutorial here:

The comment system is currently broken. Here is a direct link to the comment thread.


Future Perfect Update 1

Posted by Max at 28-11-2014

This has been a short week for development due to the Tuesday release and the Thanksgiving holiday in the US. We still have some good things for you though!

Most importantly we’ve been working on fixing a handful of critical bugs. Fortunately we were able to catch them quickly and put out fixes the same day. We’re in “earliest access” so there will be bugs, but we’ll try as hard as we can to make sure they don’t interfere with anyone’s enjoyment.

Our plan is to update Steam with a new stable version of the game every week. However, if you’re willing to put up with a few extra bugs, you can get daily updates from the Steam “beta” branch. To switch to using the beta branch, all you have to do is right click on Future Perfect in Steam, select Properties and then choose it on the Betas tab.…