Blog

Friday Facts #16

Posted by Tomas on 2014-01-10

Good evening Factorians, today we had a presentation about the game at one of the universities here in Prague for the subject called "Video game development". It was focused on what is it like to develop an indie game. So yesterday we spent some time reflecting the past year and a half to come up with topics to talk about. We were thinking a lot about the period about a year ago before the Indiegogo campaign started, when the game was completely unknown to the public and we were close to burning out. The positive finding wat that as opposed to that period the work is now much less stressful and generally enjoyable. Maybe we (and people in general) should think about our down moments more often to better appreciate what we have ... Last Friday Facts promised a stable 0.8 release in the beginning of this week. Well, that was a false promise because couple of more bugs have been found that resulted in the new record for number of bugfix releases. Now we have the 0.8.8 in the experimental stage. If there are no serious issues found this will be made stable during the weekend. Having so many bugfix releases is rather annoying (and we plan to improve here by starting with automated testing) but it doesn't slow us down in the regular development. We have multiple development branches and the work on the 0.9 has been going for a while in the master branch, while the bugfixes are collected in the current release branch (the 0.8.x) and then merged back into the master. Talking about the 0.9, the work has been progressing well. Quite some internal rework of concepts is required for the oil industry and fluids in general. However, yesterday we already had an assembling machine that makes a recipe from some items and water supplied by the pipe. For this to work the recipe mechanism has been generalized and in the end (not yet done) following will be possible: The recipe ingredient can be a fluid. The recipe can have multiple results (both items and fluids). The results of the recipe can be randomized (there will be a probability of getting the result and a min - max range for the amount of the result). There might not be much more fluid content aside from the oil (and its variations) in the 0.9, however the mechanisms will be there for the modders to play with and take advantage of them. And we are curious what they come up with:) Kovarex has been working on the native blueprints for some time and he has the core functionality more or less finished. Of course that is just a small portion of the total work required (polishing, bugfixing, integration with other concepts, etc.) but it is something that can already be played with in the 0.9 branch. And it is actually quite fun to play with. The system is relatively straightforward now: You make the blueprint item. You select what to store in it (you get the blueprint preview on the item afterwards). You place it and the construction robots build it. You can check it out on the mini picture series below, where blueprints have been used to build the standard furnace line. If you would like to share your thoughts or ideas about this post, you can do so on our forum.

Friday Facts #15

Posted by Tomas on 2014-01-03

Happy new year to everyone! We have spent the New Year's Eve with friends in our appartment / office on a last-minute improvized party. The entertainment was provided by the usual elements - food, drinks, chatting and board games. The traditional fireworks all over the Prague kickstarted the 2014, which is going to be a crucial year for Factorio. The main points from the 2014 battle plan are: Get on the Steam. Get the multiplayer done. Get some quality holidays:). After some relaxed time during the Christmas we are back to full speed development. There will be a stable release of the 0.8 in the beginning of the next week. The periods necessary for release stabilization has been getting longer and longer. That was one of the reasons we decided to dedicate more time in the future to the automated testing. You can read more on this topic in our latest random ramblings. Past week has been spent by working on the new features for the 0.9. Mainly the oil industry and blueprints. Both are still in the process of development so I will go into the functional details later, after they are more or less stabilized. You can also read our plans regarding the functionality in that random ramblings post. One thing is clear already. The 0.9 is a very ambitious release and if all goes well it will be one of our most content rich releases (if not the most content rich). After the 0.9 we plan to start working on the multiplayer which might be a long period with little other updates. Therefore we plan to get a lot done before that. In the meantime, Albert has finished with a first set of doo-dads. Below is a composition with some new shipwrecks. Actually the current shipwreck sprite in the first level was cut (and adjusted) from one of our theme art pictures (can you find it:)?). It is time for this one to be replaced. There is still much more that could be (and will be) done for the doo-dads, but now we need to move on to making graphics for the new "oil related" machines ... Comment thread is not hiding anywhere. It is right there on our forum.

Friday Facts #14

Posted by Tomas on 2013-12-27

Hi there, past week has not been the most productive one in the Factorio history. The Christmas was a good opportunity to take couple of days off, relax and spend some time with the family. In the meantime some more bugs have popped up in the 0.8.x resulting in the release of the 0.8.4, the current shot at the stable release. The end of the year is a good time to look backward and do some balancing. Many things have happened in the 2013 but for me, one of them clearly stands out. And that is the change in sort of a general feeling from the project. What I mean is following. In the beginning of the year we didn't have a plan, we didn't have an artistic direction, we didn't have any income, we were just two guys working over-full-time from the living room on kind of a hobby project. I remember that those were often desperate times filled with insecurity about the future. The comparison to now is staggering. We received the trust in the Indiegogo campaign, 5000 people (almost there) have bought the game, there is a great community at our forums, we have a clear roadmap and we are working on it, the looks of the game have improved drastically and we now have an actual artistic direction to follow, and much more... All in all we overcame many obstacles, some of them seemed impossible a year ago. Of course it hasn't been all smooth ride, but the despair and uncertainty are gone. Yes, often there is the stress (especially during the sprint before the release) or anxiety but, I think that is unavoidable and it often actually pushes us forward. Overall Factorio now feels to me like a healthy project with clear direction rather than a very uncertain experiment it was a year ago. We all have worked hard to achieve this but a big thanks goes also to our fans, without you we wouldn't succeed in the Indiegogo, we wouldn't have the funds to continue the development later on when things started to drag and also we wouldn't have all the positive feedback that have kept us going. Thank you! Now, for a more humorous look on what the development of Factorio is like check out this series of gifs by Kovarex on our forums. Albert has worked a lot on the doo-dads and some good results start to come out. Below is the preview of the desert with new trees, rocks and plants. The name of the image is "The desert hunt". Just to make sure, it is an artificial composition, not a screenshot from the game:). Next on the list are doo-dads for other terrains and then ship wrecks, destroyed machines, etc. As always check out the post on our forum for the comments.

Merry Christmas

Posted by Tomas on 2013-12-24

Hello everyone, Just a very short post. We, the Factorio team, would like to wish you all very Merry Christmas. Take the opportunity to have some rest and recharge your energy (we certainly will). We have also prepared a small present for you. It is a never-before publicly released prototype of the game from the autumn 2012, so it is more than a year old. It is from so long ago that the game was not yet called Factorio. At that time we provisionally called it Energycraft. There are only the win32 and win64 binaries available (you can use emulator on other systems). Bundled with the game are 2 saves from that time, so you can have a look at some existing factories. Playing that version even for couple of minutes brings back a lot of nostalgia:) Merry Christmas everyone! If you wish to leave some comments you can do so on our forums.

Friday Facts #13

Posted by Tomas on 2013-12-20

Hello, another Friday means another update on what is happening here in the Factorio central in Prague. It doesn't really feel like the Christmas are actually around the corner. There is no snow (just cold) and the shopping spree / Christmas tree hunt doesn't really affect us that much:) Therefore the only clear signal that the year is coming to an end has been the Christmas concert we attended with Kovarex. The stabilization of the 0.8 has been our main topic for the past week. We have found and fixed many bugs ranging from little annoyances to serious game-crashing or save-corrupting beasts. The 0.8.1 contained a magical number of 42 bugfixes, but unfortunately some of the fixes brought in new bugs (this happens so often that it became a programming folklore). Therefore we made another bugfix release - the 0.8.2 which has been published today and so far it has been looking good. The way I put it sometimes, the bugfixing probably sounds like a boring / tedious work. Well there is not that much creativity involved, but it can get really interesting. It is like solving a puzzle or a small criminal case of your own. In the beginning you only have the problem. Then you are looking around, noticing small odities and other clues. If you need, you can use the debugger or debugging prints to get a glimpse of what is happening behind the curtains. You need to think a lot and picture how the different parts of the code interact and what could be going on. You make a hypothesis, test it and often ... find nothing. But in the end you get this AHAAA moment when everything becomes clear and the source of the problem is revealed. Actually fixing the bug is usually the simple part, once you have traced its origin. The AHAAA moment feels really good, it is like figuring out a riddle or solving a tricky math problem. Kuba started working on the biomes for the 0.9. The model he is using is taking into account two semi-independent variables: the temperature and the humidity. The noise of temperature and humidity is generated over the map, assigning a specific combination of values to every tile. The placement of terrain and doo-dads (trees, rocks, fauna, etc.) are driven by these two variables. For instance, the definition of plain green tree would say that it has the peak at humidity of 0.5 and temperature of 17 degrees. The probability distribution is then formed around this peak to determine whether the tree should be placed on a given tile (based on the tile's temperature and humidity values). In the end, based on these definitions, the different biomes should emerge (we are already curious if they do:)). Below there is an image which demonstrates the relationship between biomes and humidity / temperature. Albert is at the moment working on the doo-dads (new trees, rocks, plants, etc.) to give the environment a realistic feel. We have collected quite some feedback on the new logo direction in the past week. Personally, the biggest surprise to me has been that a lot of people would prefer the current logo to the old one. We still believe in the new logo and we will use the feedback from the forums and emails to improve it (experimenting with the color, increased readability, the wheel shape, etc.). The second post picture is called "The giant and the machines". It demonstrates the scale functionality of the engine that can be used to draw scaled pictures on the fly rather than scaling them first. This way the picture uses both less space on the drive (some mods are already bigger than the vanilla game:)) and less video memory. It was really funny to see the giant player walking around the tiny machines:) As always you can let us know what you think in the dedicated post on our forum.

Friday Facts #12

Posted by Tomas on 2013-12-14

Hello everyone, even though it is not Friday anymore here we come with yet another regular update. We didn't want to make a blogpost on Friday the 13th because for sure something would go wrong. And also I am on a skiing trip in Austria and I was too tired yesterday to do anything, after all the day going downhills. So the 0.8.0 has been succesfully released last Friday. We finished at the same time when first guests for the party started coming. We just crossed our fingers, pressed the release button (maybe we should have a real, big, red "release" button) and went off to drink beer and talk to people. The cake (see the picture in the last post) was delicious:) Back to the release - there were small issues, but nothing really major ("Pump cannot be built" kind of thing). We have already fixed most of the reported issues for the 0.8.1, which will happen in the beginning of the next week. We haven't worked on anything major aside from the issues. We took the time to relax after the intensive release sprint (says the guy who has been skiing all day long:). Kovarex was playing some games (including classics like Dune 2000) looking for inspiration. There was also a long conversation about how the new industry with oil and chemicals should work. Interesting things ahead. Originally we wanted to start the Steam Greenlight campaign before the Christmas. Now it is clear that this will not happen. The reason is that the music for the new trailer is not yet ready. The cooperation with the guy we hired for the music hasn't brought the expected result. So we are back where we started. Recently, we found a composer in Prague, who looks like a very good fit for the job, but he will not have time until after Christmas. At least Albert will have more time to work on doodads for the game (and the trailer) - things like trees, rocks, etc. Albert also took the opportunity to work on something completely different for a while and he came up with a proposal for the new Factorio logo. The old (current) logo has been done by me and then face-lifted by another artist. But still it looks painfully amateurish. The new logo doesn't have that problem:) Together with the logo Albert worked on the new forum style, this will be deployed sometimes next week. So here is the thing. We actually have two proposals for the logo. And we would appreciate some help and opinions for deciding which one to use. You can see the proposals below. They are shown on the potential loading screen of the game. We do have our preference but will not say which one that is to avoid influencing the outcome. They both work as links for larger versions. There are polls for you to vote and comment in the post on our forums, so go there and let us know what you think.

Friday Facts #11

Posted by Tomas on 2013-12-06

Hi there, after a hectical sprint, the 0.8.0 release is done. We have continuously reported on the progress, so the content of the release won't be a big surprise. Still, you can checkout the release notes on our forums. And if you are brave enough you can even try it out. The thing is that considering the circumstances the release will be "very" experimental. We have fixed all the major errors and crashes we came acrros. But still there were plenty of changes under the hood in non-trivial areas (namely the logistic system) so there are a lot of potential places for error. Just a reminder, you need to set "Enable experimental updates" in the "Other settings" for the builtin updater to update your version to 0.8.0. After a major release we usually take a day or two off. This time it will be no exception. Moreover it was Kovarex's birthday yesterday, so today in the evening we will have a party in our place. After the headaches are gone, the place is clean again and we recharge our batteries, we will be after the (supposedly found) bugs in 0.8 and planning the 0.9. It is kind of a never ending story:). The last bigger feature we worked on for the 0.8 was the Roboport. That is the "home" for the logistic and construction robots, where they can charge, station and which navigates them on the map. This neatly solves some issues there were with the logistic system before: Balancing - Roboport requires quite some energy to charge the robots. So the Logistic Robots will be less overpowered than they have been. Stationing - In the past robots without orders kept hanging at the place where they stopped. This was annoying and even caused robots to become a target for enemies after they delivered stuff to the player's inventory. Now every robot that has nothing to do goes to the roboport to station there. Area Separation - Before, all the logistic robots could fly all over the map. From the base to the expansion if necessary. Following the player fighting the enemy bases, etc. This was also less than desirable. Now the connections between the roboports define separate logistic networks which can't be mixed. This way, small independent systems can be setup in the expansions and one large network in the main base for instance. And on top of all that the roboports look really cool:D Albert happily took the break from the terrain and made a great machine in a short amount of time. You can checkout the "making of" animation below. Some of the instructional pictures in the demo were getting really outdated. So we replaced them with setups with the current graphics. Below is a side-by-side comparison for the instruction on how to use inserters from some months ago and from now. The last picture is the courtesy to Kovarex's grandmother, who made this wonderful cake for his birthday. The tradition is the commenting thread on our forum.

Friday Facts #10

Posted by Kovarex on 2013-11-29

Hello, the regular dose of news from the developement of Factorio is here, I (Kovarex) wrote it today, and you can clearly see, that I like structured form of information :) Factorio is a continuous jam session. Albert had this observation yesterday and it is very precise description of our development. In the start I had no idea what will the game be like, I had no plans about the visual styles and proportions of the project that was just a hobby, an experiment. The rails were the first graphical assignment for Albert. I told him to just "do the rails" like it was some obvious one way street task. I didn't give him any clues about the style. Should it be cartoonish? Should it be realistic? Should it look modern, cyberpunk or 19th century like? We didn't know, we were searching for the direction on the fly. Any manager would probably say this is a bad thing, that we need a roadmap for the whole process from the start to the final release with all the contents, features and graphics planned ahead including cost estimates. I personally think, that the freedom of the jam (agile) way of development that allows us to react is the best for Factorio. We are inventing and extending the best ideas on the run, ideas that would never be visible in the start. The 0.8 We have less than a week for the preparation of the 0.8, we integrated all the new terrain tilesets to the game, Tomas is now working on the roboports, and construction robots can reconstruct destroyed buildings. We have few days to add some smaller features before we start bugfixing and preparing for the release. The new terrain The main graphical task of the 0.8 is almost finished. You can judge for yourself: The roboport The roboport is the control building for the logistic/construction robots, it will provide the radio signal with limited range for these to operate. This will limit the robots from following the player out of the factory and allow the player to have more distinct logistic systems. Apart from that, the robots will recharge there and stock inside if they have nothing to do. Reconstruction of destroyed buildings When any building owned by player is destroyed while he has the construction robots researched, the half transparent "ghost" building appear on top of the remnants. This ghost building has limited lifetime (5 minutes) and if the needed component is available in the local logistic system, the construction robots take it and automatically reconstruct the building. Nothing new, but still: the thread for comments is available on our forum.

Friday Facts #9

Posted by Tomas on 2013-11-22

Hello, since we started with the Friday Facts series, it seems to me that the Fridays have been coming more and more often. So here we are again with the handful of fresh news from the Factorio back stage. There is a good news and an even better news regarding the 0.8 release. The good news is that we have a definitive release date now. The date has been set to the Friday, the 6th of December. The even better news is that it will be Kovarexs' birthday the day before that, so there will be two reasons to celebrate on that Friday night:). On Tuesday the first ever "FactorioCon" took place. It was not really a conference, more like a spontaneous meeting. Here is what happened. In the reaction to the previous Friday post we got a message from one of our players on the forums, that he would be coming to Prague for the week. So we agreed to grab a beer on Tuesday night. In the beginning it was supposed to be just me and Kovarex but in the end all the Factorio team was present and even two more of our fans from Prague came (my brother and a friend of his:)). So we were 7 people. We took a beer and snacks in a pub by the river and had a good chat about the game (and life - the usual topic of pub chats). Most of the map editor functionality, mentioned in the last post is done. This occupied the majority of my time over the past week. Now it is actually a pleasure to work with . Maybe it is a subjective feeling, because I had to do some maps with the old editor:) Anyway the mechanism of layers and tools is in place and easy to extend in the future. So we will release the new editor into the wild, gather the feedback from people on the forum and then incorporate it back in if necessary. Includes. They are killing us. Factorio is written in C++ which has an old-school-textually-include-stuff approach to referencing objects in other files. This means that the compile time goes up fast with the growing codebase. Compile time is very unproductive kind of time. And it has been going up steadily. At the moment the Factorio core code base has almost 130k lines of code and it takes a fair amount of time to compile. My 2011 MacBookPro 13" takes already around 8 minutes to build the whole project from scratch. Sometime I take the time to wash the dishes or do a bit of exercise. But most of the time I just kill those 8 minutes by surfing the web or staring at the rolling compilation log. To battle this we have spent quite some time pruning the includes in the past days (it has not been the first time). Kuba was playing with some existing clang include analyzers while Kovarex wrote his own small tool to gather include statistics and try the trial and error include removal (remove - try compile - iterate). This is what the game development includes (pun intended) as well. Albert has defeated the deamons of the water and now he started integrating the new terrains together. On the other hand we are still struggling with the algorithm for correcting the terrain border transitions. The fail attempt number 5 (I think) is called "the weeping terrain": To keep the tradition rolling, the thread for comments is available on our forum.

Friday Facts #8

Posted by Tomas on 2013-11-15

Hello everyone, The preparation for the next release (the 0.8) are in the full speed. Original expected release date was today, but we are not ready yet. It will take at least two to three more weeks. Especially the graphical work on the new terrain has proved to be more trickier than we expected. Last week we had some good sales driven mostly by the people from the US. That had a very positive effect both on our credit balance but more importantly on our moral strength. We have been working on Factorio for a long time with a lot of uncertainty regarding the outcome. We keep getting moral boost from people on our forums but actually selling the game feels great. The absolute numbers were not staggering (the peak was at around 50 sold copies per day) but for us they were still high above average (usually it is like 10 copies per day). So the mood is better now, we even went out for some social activities this week. Back to the programming. The repair robots mentioned in the last post are done. Michal is fast:) He spent past couple of days with smaller tasks we had on the list for a while. Now he is fiddling with "ghost" entities (transparent outlines of entities without bounding box). These will be used for reconstructing entities that has been completely destroyed and in the future also for the blueprints. I have spent most of the time from the past week improving the map editor. We have quite a few mods for Factorio, but very little maps / scenarios. The people on the forums asked for the better editor multiple times, so we listened to them. Also during the work on the trailer I confirmed just how big pain it is to use the map editor. Now on to the features. I have a list full of things that need to be done, but couple of most important ones are: Terrain painting - before only one tile at a time could have been changed. Now there is a brush with different sizes that can change the surface pretty fast. Laying out the resource fields - The biggest pain in the old editor. Resources had to be laid out one by one and then manually increased by holding a specified key. Now the brush or spray can be used to do that in matter of seconds. Creating forests - Not so common, but still time consuming. Creating big forests one tree at a time will be a history by using a brush to draw many trees at once. Copying entity strutures - Moving a part of the factory 10 tiles to the right is not possible now. The plan is to allow some sort of selection and copy-pasting that selection to other place on the map. Inventory manipulation - Chests can be filled only one stack at a time now. I still don't know how, but this will be improved. From the above list the first two tasks are finished already. The rest is work in progress but will be ready for 0.8:). The map editor early preview is below. The tabs at the top left represent different layers(terrain, tiles, entities, items). Below is the tool list. The active tool is the spray which I used to spray the coal field. The usual thread for comments is on our forum.