On Monday June 18th, we marked the last version of 0.16 as stable. There were no major problems, so now we are almost exclusively working on 0.17. Work on 0.17 is progressing well:
Regarding the new campaign, we are already internally playing a rough version of the new player experience.
We are still trying to figure out the exact and final style and concepts for the improved GUI, but we have some GUI windows implemented in game already, plus many base widgets. We use those to get a feel of what works and what doesn't.
The new graphics back-end rewrite is nearing finalization. A closed-beta branch was sent to a few players to test that rendering works correctly across different hardware. The rendering is faster and no major issues were reported so far. But there is still much to do, such as improvements to VRAM usage and many experiments with shaders.
Since from the graphics department Albert is working on the GUI and V453000 is working on the new campaign, only Ernestas is left working exclusively on the entity graphics. He is reworking some more entities for high-resolution, so expect some teasers in the future.
There are of course other small projects that are ongoing, such as improved pipe-fluid physics and improved map generation, but more on those when they are fleshed out.
With every major version of Factorio, we work on improving the Lua API and modding support. In 0.17 I've been looking at cleaning up my back-log of things that I've wanted to implement for quite some time but never got around to. Things such as:
Sync mods with a server you want to join.
Having multiple versions of a mod installed and being able to switch between them.
Letting mods set entities to not require power.
Adding support to clone entities/areas of the map from one location to another.
And in general looking at "hacks" that mods are currently doing and seeing if it's reasonable to make the game support what the mod was trying to do in a non-hacky way. Bilka and I have been going over the Mod Interface Requests section of the forums and cleaning it up; implementing things that make sense and taking care of outdated or won't-implement requests. Time and time again Bilka will ask "why can't I do X with a mod?" and the answer is almost always "because nobody asked for it so nobody added support for it". So with that said: if you're a mod developer and think the mod API is lacking something feel free to stop by the forums and ask for it.
Fan Mail
A few weeks ago Demod was showing us some 3D printed belt keychains he made, and mentioned he wanted to send some to us. I showed it in our team slack channel and many us wanted them. A lot of 3D printing later, he sent us a nice package with gifts for most of us.
Hate Mail
You can't receive fan mail without receiving some hate mail. We also received an anonymous package telling us to "eat a bag of d*cks", along with a bag of tasty gummy d*cks. The truth is I know who sent it and it was just a small practical joke. They were trying to show their frustration with the matching server in a friendly-funny way. We thoroughly enjoyed shoving them down our throat.
As always, let us know what you think on our forum.
Earlier this week I received an unusual number of support emails, some players were having trouble redeeming their Steam keys on our website. In each case, the key they purchased was not a key eligible for a Steam key. Our order/account system isn't the most intuitive, so let me explain the ways in which people can buy the game, and how it relates to our website:
Our website - You buy from our website, and you get a key from the Humble checkout. You use this key to upgrade an account, and you can redeem a Steam key.
Steam - You buy on Steam, which adds it to your Steam account. You then link your Steam on our website, which upgrades your account.
Humble Store - You buy a Steam key, which you activate on Steam, and then follow the steps above.
GOG - You buy the game on GOG, which lets you download the DRM free version. You can also redeem a retail key, to upgrade your account.
So in the cases above, the only way to get a Steam key from our website, is by buying directly on our website. The players in question managed to get their hands on 3rd party retail keys. These retail keys aren't distributed for reselling anywhere, so the fact I was seeing a lot of emails coming in about these keys, was an indication something fishy was going on.
The source of these keys is GOG, I double checked this my comparing some of the keys these people purchased with the list of keys we generated for GOG, and they matched. My first suspicion was someone cheesing the GOG return policy, buying the game, redeeming the key, and then refunding it. I emailed our contact and there were only 21 refunds in the last 3 months, so it was not the case.
The second suspicion was that the GOG server was breached somehow. They reported no incident, but we disabled all the unredeemed keys anyway just to be sure. I checked with the list again, and none of the keys that we deactivated were used by any account. This led to the conclusion, at the very least, these keys were purchased legitimately.
So people are legitimately buying keys, GOG confirmed sales had shot up in the last week. Then the question, where are the sales coming from? One last email to GOG and we had our answer: Russian Federation. The reason? We have regional pricing on GOG at parity with Steam, which means someone buying from Russia could buy the game for ~$8.30. Once they buy on GOG, they can redeem the retail key, and sell it for about $20 on a 3rd party site. So one clever guy saw this opportunity, and started buying the game hundreds of times on GOG. The immediate solution is to remove the regional pricing, and in the long term we may be able to implement some 'GOG linking' similar to the current system for Steam users.
It is strange that it was only taken advantage of recently, as we have had regional pricing since our launch on GOG 2 years ago. It may be related to the recent price increase.
Price change reception
At the end of March, around when 0.16 was first made stable, we announced the price change from $20 -> $30. I thought it would be interesting to see what affect it had on sales, and as showing it better than telling, here is a graph of units sold between February and June:
It is quite clear there is a huge spike when we announced the change, and again just before we implemented it, but more interesting is the comparison from before and after. You can see that there is a noticeable decrease in sales before and after, but overall it is still quite strong and consistent. This reflects most of the player reaction to the announcement too, many people were commenting that they support the price increase, and believe the game is still worth the asking price (if not more).
Regardless of the recent changes, we have had consistent week-on-week sales of the game since our Steam launch, and we are fast approaching 1,500,000 copies sold. I think in part, this is due to our no sales policy, but that is a discussion for another day.
Satisfactory game
We were all excited early this week, when we saw the reveal of another title in the automation and simulation genre:
From the point of a player I would say that the trailer looks amazing. The energy of it, the looks, the potential, the promise is fantastic. I don't doubt that our office will be playing from the day 0 once it is released. Let me quote /u/european_impostor by saying: "They've certainly talked the talk, now let's see if they can walk the walk".
From the point of a Factorio developer, I would say that it makes me proud and insecure at the same time. As the game is undoubtedly inspired by Factorio, it makes me proud that we most probably helped to make this "genre" become a thing. It makes me insecure as well, as it could also completely overshadow our game. To that, I would say, that if they managed to do a game that is better then Factorio on every level, then they deserve it. If there are still going to be areas where Factorio is better, the potential success of the game can actually help us, as when more people come to play the game, more people will eventually look for alternatives in the similar way as the people asking for "other games like Factorio" from time to time.
If there is some takeaway for us, then it is, that we shouldn't wait with finishing the game too much. Let us know what you think on our forum.
A really strange debate started as a continuation of FFF-238. I insisted that the button order should obviously always be OK Cancel, as in any UI I see around.
But little I knew, that this is actually specific to windows, and on Linux or macOS, the order is reversed:
Eventually, we figured out, that we are not the first one trying to solve the problem.The solution we are now experimenting it sounds like a bad idea: "Make it so much different and Factorio specific, that the way it is done in your specific system will not interfere with your muscle memory". Which brings me to the load game dialog mockup:
Load game dialog
The load game dialog is currently the first dialog we are trying to implement with the new tileset and the mockup Albert created recently. The mockup looks like this:
The idea is, that all the dialogs will have this flow from left to right, on the very left, you go back, on the very right, you continue to the next window. The same logic would be consistent in all the dialog windows. Options for example, have only the Back button in 0.16:
It is currently quite weird, as it is not clear whether it is confirm or cancel. Actually, if you press Escape you exit the options without saving it, but if you press "back" you confirm the changes.
So these will also have cancel on the left and confirm on the right. Escape is the same as clicking back.
Please note, that all of the pictures are work in progress.
The map generator GUI
Hopefully you are not getting tired of hearing about the GUI, because this game sure has a lot of them, and the next one to talk about is the Map Generator GUI.Since we will have high-resolution spreadsheets for the GUI, all the mockups below are done on 200% UI scale, so they are scaled down on this page. You can click each image to see it in full size.
You will notice things were moved around quite a bit. The seed and the replay toggle were moved to the top since they are not part of the preset. Then the preset dropdown, the reset to default button and the description, which are visible at all times so you know what you are editing. Everything inside the tabs is part of the preset.
A new tab is the Enemies tab. The generation settings (Frequency, Size, Richness) are moved from being hidden in the terrain settings, to it's own category. Also the important Peaceful Mode is right at the top.
Finally the advanced tab contains the rest of the settings. Map width and height will now also be part of the preset.
The map exchange string can help you save all your settings in a string, but more importantly to share it with others. Clicking one of the buttons opens an in-window pop-up. The pop-up can be closed just by clicking outside. Player can use the "copy to clipboard" button, but can also copy directly from the textbox.
Now for the neat part: the map preview will be part of the map generator window. Clicking the "Preview" button expands the window (possibly with some quick animation). You can then change the settings as you like, then click Update to see the new map. You can have the map update automatically as you change the settings, by enabling the option. "Real-time update" is off by default since the preview generation can be a bit slow, and having the preview constantly flickering as you change the setting would be pretty annoying.
Notice that the "Preview" button has a warning icon next to it (in the images above). Hovering over it will give you a warning that the preview can spoil the exploration part of the game and should be used to understand the settings. My hope is that the majority of players will open the preview, play with the settings, then close the preview and re-roll the seed before pressing play.
(click to view full size)
We plan that almost every widget in this GUI (and the of the game) will have tooltips briefly explaining what everything does, since for example not even us developers know what Enemy base Richness actually does any more. As a bonus, here is a mockup with all the ores showing their richness.
As always, let us know what you think on our forum.
Being brought in to create content on a very mature project has been an interesting experience to say the least. One of the first things I did was analyse the features of the game and which kind of player the game currently supports. The obvious thing is that Factorio Freeplay strongly attracts and engages players who enjoy an open-ended sandbox type of game. Achievement statistics show that only about 11% of players on Steam have ever launched a rocket, which currently means 'won the game'.
What about the other player types? Well for those that are new to the game, or unsure if they are interested, we will have the New Player Experience. This is a free, combined tutorial and demonstrator mission which we discussed in FFF-241. But what about those that prefer a guided experience? This is the sort of player who wants to play the game, and experience all of what it has to offer, but wants to be taken on a journey. For these players we have the campaign.
Why do we need a new campaign at all? We find that the current campaign:
Does not include all the Freeplay content as it currently ends after Advanced Circuits.
Severely limits player investment by forcing a new factory to be built each mission.
Does not convey the feeling of loneliness that the Freeplay does.
Is showing its age visually, as it was made before high-res textures and the terrain rework.
To solve these issues we have set about designing new Campaign elements to act consistently to provide the player with a guided experience all the way from Science pack 1 to Space science packs.
The first step to achieving this is to have the map border expand each time the player completes a section of the main 'quest line'. This means that the player never loses any of their progress, and as long as these transitions are presented in a smooth way, the jarring effect of the old level restarts will be removed.
Having a continuously expanding map presents many other challenges, but we are confident that it will be worthwhile. This style of level will fit with the style of Factorio much better.
Such a map should also end up being as huge as a regular Freeplay environment so as to better place importance on exploration. Exploration in Freeplay is generally player motivated, such as when you are almost out of iron and need to find that next big patch. In a guided experience, letting the player know that there is something out there can give them impetus to dive into the unknown. This brings us to technologies.
Now that we have removed level transitions, we have also shot ourselves in the foot. How else will we deliver the technology tree in chunks? Simply making the entire tree available from the start of the game will cause all sorts of balance issues. In our NPE discussion we stated that new recipes should only be given to the player via research. In the campaign, unresearched technologies will only be given by moving to given locations on the map. These would include some non-generated terrain and pre-placed factory structures to help to player see where they are. These could also help to show concepts and workable designs, one thing that the current campaign does do well.
Science packs and technologies
When designing the campaign, we look at many things in the game very closely and often we start seeing some problems.
One such problem that has been confusing players for a long time now is the fact that the most important ingredient for progression - the science packs - are unlocked in arbitrary technologies. On top of that we changed those technologies a couple times already, so remembering if that elusive blue bottle is unlocked by battery or advanced electronics just adds to the confusion.
So in 0.17 we are going to add science pack technologies which only unlock that new science pack, making it clear in the tech tree where you get them and what they will lead to. Doing this properly requires a bunch of changes to the prerequisites of many technologies, but those are generally just cosmetic changes that don’t actually have any bigger impact on the game.
Here you can see the technology tree for the Logistic system. The GUI rework is being worked on in parallel, so this will actually be much nicer to look at in 0.17.
Production vs. High-tech science
When we were designing the High tech and Production science packs for 0.15, the purpose was to create a choice for the player whether after Science pack 3 they want to continue with a more 'production' or 'high tech' oriented method. Looking back, the idea is definitely good, but we want to make it more clear.
One of the big obstacles was that the Power armor mk2 required level 3 modules, which are a great candidate for production science pack - but Power armor mk2 is meant to be in high-tech. That made us only put the productivity module to the production science pack, but productivity modules without beacons and speed modules aren’t all that great, so you would still need the high tech science pack to make full use of productivity modules.
The resulting solution is that we changed the recipe of Power armor mk2 to require level 2 modules (which still require just Science pack 3) instead of level 3, and moved all of the level 3 modules to production science pack. Additionally the beacons are now unlocked with Production science packs without the need for High tech science packs. The total cost of Power armor mk2 is roughly unchanged, we just tweaked the numbers of modules it requires. These changes should already make both of the science packs offer quite appealing benefits, and it’s not so clear that one science pack is superior over the other.
Because of the new technologies for unlocking science packs, it is really easy to see what options each pack unlocks.
Overall we want to keep the campaign and the Freeplay technology trees exactly the same to avoid confusion, so any change we make, we make in both - which should give the Freeplay another layer of polish.
As always, let us know what you think on our forum.