TUXDB - LINUX GAMING AGGREGATE
by NuSuey
NEWSFEED
▪️ GAMES
▪️ STEAM DECK ▪️ DEALS ▪️ CROWDFUNDING ▪️ COMMUNITY
tuxdb.com logo
Support tuxDB on Patreon
Currently supported by 9 awesome people!

🌟 Special thanks to our amazing supporters:


✨ $10 Tier: [Geeks Love Detail]
🌈 $5 Tier: [Arch Toasty][Benedikt][David Martínez Martí]

Steam ImageSteam ImageSteam ImageSteam ImageSteam ImageSteam Image
Friday Facts #148 - Optimizations for 0.14

Greetings!

My visit to Prague


Todays Friday Facts are brought to you by Rseding91. I live in the USA and normally work remotely for Wube but I've been visiting Prague for the past 2 months. Since I'm not the touristy kind of person (I'm a programmer) and I love working on Factorio; I've spent almost all of my time here in the office. I've been in Prague since June 6 and my current time sheet says I've logged 568.55 hours.

The bugs


0.13.0 was released 4 weeks ago and we've had 9 releases since with 280+ bugs fixed of which I've personally fixed 99. We've still got 60+ confirmed bugs to work through however the bug reports are coming in less frequently as time passes. The reported bugs have also changed from "the game crashed, my map is corrupt, my computer exploded" style bugs to this kind of bug. While yes, it's still a bug, it doesn't break gameplay at all so it's far less critical to get fixed immediately. The number of repeat bugs (bugs reported, fixed, and then broken again later) is near zero and of the bugs reported and fixed in 0.13 almost all of them where preexisting issues or introduced from features added in 0.13. That means that our automated tests are working and we aren't fighting against ourselves fixing issues we've already fixed. Other than the outstanding multiplayer issues mentioned in last week's Friday Facts 0.13 is looking great and baring any major bugs we're planning for a stable release August 1st..

0.14 and optimizations


As of now, there hasn't been any concrete plan as to what will go into 0.14. There are still enough bugs to fix that everyone's busy working on those. However, when optimization was mentioned it immediately got my attention and was assigned to myself for 0.14. Because we put no limits on what you're allowed to build in Factorio and the nature of the game encourages expansion and large factories even the best computers will eventually struggle to keep the game simulation running at the desired 60 updates per second as you expand. So far our main method for addressing slowdown has been "do less". It sounds simple but it rarely is. A few examples of past performance improvements:
  • Transport belts in 0.12 onward only check item collision against the item directly in front of the item being moved. (More in FF #83)
  • Solar panels where grouped so regardless of how many you build the calculation is: N * light * power
  • Accumulators are grouped similar to solar panels
  • Logistic/construction robots don't do any collision checks when moving since they can't ever hit anything anyway
  • Most entities will "go to sleep" when they have nothing to do - consuming zero processing time when asleep
Two of the most frequently built entities and subsequently two of the most CPU consuming entities are: transport belts and pipes. The vast majority of them are large section of simple belts without intersections splitters inserters or so. The player simply needed more throughput and so they built 5-10 parallel lines of belts/pipes. Right now each belt and each pipe is updated individually piece by piece. That means the cost to run those increases as the count of entities does. The other cost is also the transition of fluid/items from each pipe/belt to another.

The plan



The belt/pipe lines would be merged and act as series of segments. This allows the items on the segment to be saved in one continuous piece of memory, which not only improves memory locality, but allows us to use tricks to move the items on the belts smarter, instead of moving every item in the segment, we can just change the overall segment offset as long as the belt exit is not blocked. On top of that, the individual belts and pipes wouldn't have to be updated, as their animation can be simply tick-based. In the ideal case, this could improve the performance of transport belts many times! Again, that sounds simple enough when stated but as I've started to look into what will be required it becomes more and more complex. This is just the initial list of questions that I need to solve before work can really begin on this:
  • How is the "other movable" logic meant to be handled for belts and splitters if they aren't going to be updatable
  • Right now splitters operate by doing: move items on input lines -> split -> move items on output lines. How will this logic be done when the lines have no knowledge of the splitter or its mechanics?
  • Who's responsible for saving transport line data?
  • Custom render logic, so the segments draws it items in one go instead of individual items drawing them.
  • How is save-load stability going to be maintained for merged transport belts? When a set of belts is merged runtime and then that data is saved how do we ensure the loaded and re-setup belts re-merge in the same way?
  • Segment creating/merging/splitting logic. When belts are build/destroyed.
  • How will migrations of belts in segment work?
  • How will we handle underground belt connection distance changes between save load?
  • And many others.
Nothing is ever as simple as you think it should be :) Between working on bugs and thinking about optimizations in 0.14 I've been working on some smaller features for 0.14. One of them I really like won't change the gameplay but just gives some fun data for multiplayer games: train kills.
As always, let us know what you think on our forums


[ 2016-07-22 18:15:41 CET ] [ Original post ]

Factorio
Wube Software LTD. Developer
Wube Software LTD. Publisher
2020-08-14 Release
Game News Posts: 506
🎹🖱️Keyboard + Mouse
Overwhelmingly Positive (164072 reviews)
The Game includes VR Support
Public Linux Depots:
  • Factorio Linux64 [306.86 M]
  • Factorio Linux32 [300.1 M]
Available DLCs:
  • Factorio: Space Age
Factorio is a game in which you build and maintain factories. You will be mining resources, researching technologies, building infrastructure, automating production and fighting enemies. In the beginning you will find yourself chopping trees, mining ores and crafting mechanical arms and transport belts by hand, but in short time you can become an industrial powerhouse, with huge solar fields, oil refining and cracking, manufacture and deployment of construction and logistic robots, all for your resource needs. However this heavy exploitation of the planet's resources does not sit nicely with the locals, so you will have to be prepared to defend yourself and your machine empire.

Join forces with other players in cooperative Multiplayer, create huge factories, collaborate and delegate tasks between you and your friends. Add mods to increase your enjoyment, from small tweak and helper mods to complete game overhauls, Factorio's ground-up Modding support has allowed content creators from around the world to design interesting and innovative features. While the core gameplay is in the form of the freeplay scenario, there are a range of interesting challenges in the form of the Scenario pack, available as free DLC. If you don't find any maps or scenarios you enjoy, you can create your own with the in-game Map Editor, place down entities, enemies, and terrain in any way you like, and even add your own custom script to make for interesting gameplay.

Discount Disclaimer: We don't have any plans to take part in a sale or to reduce the price for the foreseeable future.

What people say about Factorio


  • No other game in the history of gaming handles the logistics side of management simulator so perfectly. - Reddit
  • I see conveyor belts when I close my eyes. I may have been binging Factorio lately. - Notch, Mojang
  • Factorio is a super duper awesome game where we use conveyor belts to shoot aliens. - Zisteau, Youtube

MINIMAL SETUP
  • OS: Linux (tarball installation)
  • Processor: Dual core 3Ghz+Memory: 4 GB RAM
  • Memory: 4 GB RAM
  • Graphics: OpenGL 3.3 core. DirectX 10.1 capable GPU with 512 MB VRAM - GeForce GTX 260. Radeon HD 4850 or Intel HD Graphics 5500
  • Storage: 3 GB available space
RECOMMENDED SETUP
  • OS: Linux (tarball installation)
  • Processor: Quad core 3GHz+Memory: 8 GB RAM
  • Memory: 8 GB RAM
  • Graphics: OpenGL 4.3 core. DirectX 11 capable GPU with 2 GB VRAM - GeForce GTX 750 Ti. Radeon R7 360
  • Storage: 3 GB available space
GAMEBILLET

[ 6102 ]

17.79$ (11%)
8.39$ (16%)
25.19$ (16%)
34.79$ (13%)
35.99$ (49%)
8.37$ (16%)
17.39$ (13%)
16.59$ (17%)
16.01$ (11%)
50.95$ (15%)
16.59$ (17%)
13.14$ (12%)
19.95$ (56%)
11.43$ (12%)
8.39$ (16%)
29.71$ (15%)
50.96$ (15%)
16.99$ (15%)
12.71$ (15%)
5.94$ (15%)
16.96$ (15%)
16.97$ (15%)
16.52$ (17%)
16.59$ (17%)
22.24$ (11%)
12.44$ (17%)
3.75$ (81%)
16.99$ (15%)
17.54$ (12%)
8.25$ (17%)
GAMERSGATE

[ 764 ]

1.0$ (80%)
0.6$ (91%)
0.53$ (92%)
1.28$ (79%)
0.77$ (61%)
0.85$ (91%)
33.19$ (17%)
3.19$ (79%)
0.51$ (91%)
2.55$ (74%)
2.21$ (83%)
35.99$ (10%)
12.74$ (58%)
3.57$ (70%)
8.49$ (58%)
6.38$ (57%)
5.94$ (41%)
12.74$ (58%)
1.13$ (77%)
9.94$ (45%)
4.5$ (70%)
0.85$ (91%)
1.7$ (91%)
0.51$ (91%)
18.74$ (25%)
1.02$ (91%)
0.6$ (91%)
8.49$ (58%)
1.5$ (85%)
0.53$ (92%)

FANATICAL BUNDLES

Time left:

12 days, 11 hours, 15 minutes


Time left:

19 days, 11 hours, 15 minutes


Time left:

8 days, 11 hours, 15 minutes


Time left:

5 days, 11 hours, 15 minutes


Time left:

13 days, 11 hours, 15 minutes


Time left:

15 days, 11 hours, 15 minutes


Time left:

36 days, 11 hours, 15 minutes


Time left:

356461 days, 3 hours, 15 minutes


Time left:

18 days, 11 hours, 15 minutes


Time left:

47 days, 11 hours, 15 minutes


Time left:

33 days, 11 hours, 15 minutes


HUMBLE BUNDLES

Time left:

0 days, 5 hours, 15 minutes


Time left:

2 days, 5 hours, 15 minutes


Time left:

7 days, 5 hours, 15 minutes


Time left:

9 days, 5 hours, 15 minutes


Time left:

14 days, 5 hours, 15 minutes

by buying games/dlcs from affiliate links you are supporting tuxDB
🔴 LIVE