WEBVTT
1
00:00:20.260 --> 00:00:21.050
Hey, Ben.
2
00:00:21.050 --> 00:00:21.940
Hey, Matt.
3
00:00:21.940 --> 00:00:23.480
How on earth are you?
4
00:00:23.480 --> 00:00:25.100
I'm doing good. How are you?
5
00:00:25.100 --> 00:00:38.140
I'm doing really good. Now we've made a thing out of that. So... Actually, I'm going to move back a bit from the mic. We don't have much time because I've got to go and pick kids up from school.
6
00:00:38.140 --> 00:00:39.350
So this is going to be a Turbo Edition.
7
00:00:39.350 --> 00:00:39.380
Yeah.
8
00:00:39.380 --> 00:00:43.560
But you said you had an idea, and I'm all ears.
9
00:00:43.560 --> 00:00:46.880
Yeah. Have we talked about Factorio on this podcast yet?
10
00:00:46.880 --> 00:00:49.540
I don't think we have.
11
00:00:49.540 --> 00:00:50.080
No.
12
00:00:50.080 --> 00:00:50.480
It seems like
13
00:00:50.480 --> 00:00:59.480
this podcast is the intersection of games and programming. And if there's anything that is the intersection of games and programming, it is the game Factorio.
14
00:00:59.480 --> 00:01:00.720
And Factorio...
15
00:01:00.720 --> 00:01:16.850
I think you're right, you know. I mean, so if our listener doesn't know what Factorio is, how would you know? I know there's the pithy description, but that kind of buries the lede a little bit.
16
00:01:16.850 --> 00:01:17.380
Mm-hmm.
17
00:01:17.380 --> 00:01:20.580
But what is Factorio, Ben? Tell me what Factorio is.
18
00:01:20.580 --> 00:01:24.320
So Factorio is a game, the premise of the game.
19
00:01:24.320 --> 00:01:25.290
A video game, first of all.
20
00:01:25.290 --> 00:01:25.590
It's a video game.
21
00:01:25.590 --> 00:01:25.660
Yeah.
22
00:01:25.660 --> 00:01:42.880
It's on many platforms. It's a fairly popular game. So if you have not played this game already, it is very likely that you will be able to reach within arm's reach of where you are right now and pick up a device that would allow you to play this game.
23
00:01:42.880 --> 00:01:52.320
But it's a game and the premise of the game is that you are crash landed on a planet and you
24
00:01:52.320 --> 00:01:52.320
Mm-hmm.
25
00:01:52.320 --> 00:02:10.220
are a sort of technician or engineer that has access to these amazing tools for crafting and building things. And your goal, at least in the vanilla game, is to escape the planet. It's basically like I crash landed here. My ship is destroyed.
26
00:02:10.220 --> 00:02:24.120
I don't want to be here. So I'm just going to build a rocket ship and leave. And so you go from mining coal with a pickaxe to launching yourself into space in a rocket.
27
00:02:24.120 --> 00:02:30.380
And a typical playthrough, I think like the speedrun playthroughs are pretty fast, like eight hours. But I could...
28
00:02:30.380 --> 00:02:32.500
That's not fast for a speedrun, but yeah, there's a lot to do.
29
00:02:32.500 --> 00:02:47.660
Right, right. But the typical playtime, I think, for mortal humans is like 24 hours. Right. And one of the things I actually sort of like about that is you can imagine, you're traveling through space.
30
00:02:47.660 --> 00:03:01.480
Alarms start going off. You're entering the atmosphere of a planet. You go, oh crap. And then you land and you got 24 hours to get off the planet. And then you sort of launch yourself back into space, exhausted, fall asleep.
31
00:03:01.480 --> 00:03:02.760
All right, fine. And you go into hibernation.
32
00:03:02.760 --> 00:03:10.480
Right, but this is 24 hours of somewhat accelerated time with the magical ability to mine and build things.
33
00:03:10.480 --> 00:03:13.710
Yeah. I mean, in game time and real time are the same time, right?
34
00:03:13.710 --> 00:03:14.100
Okay.
35
00:03:14.100 --> 00:03:23.580
Like, like you're, if you're moving the character around and you're, you know, like I said, you know mining for coal or whatever, like there's no time speed up in the game, right?
36
00:03:23.580 --> 00:03:23.960
Right.
37
00:03:23.960 --> 00:03:29.160
So if you're playing for 24 hours, you could think of that as this person being on this planet for 24 hours.
38
00:03:29.160 --> 00:03:31.080
But it's like top-down.
39
00:03:31.080 --> 00:03:36.760
So far, it sounds a little bit like Minecraft. It's like crafting and building and stuff.
40
00:03:36.760 --> 00:03:38.240
It's got some Minecraft-y aspects to it for sure.
41
00:03:38.240 --> 00:03:40.020
And it's a little bit like that. But it's a very different look.
42
00:03:40.020 --> 00:03:42.100
It's a top-down game.
43
00:03:42.100 --> 00:03:50.400
When I see it, it reminds me of like StarCraft and that kind of look and feel a little bit.
44
00:03:50.400 --> 00:03:53.200
And the planet as well is a bit sort of alien.
45
00:03:53.200 --> 00:03:56.160
Yeah.
46
00:03:56.160 --> 00:03:57.140
It's got some real-time strategy aspects to it.
47
00:03:57.140 --> 00:03:58.820
It's got some tower defense aspects to it.
48
00:03:58.820 --> 00:04:02.520
Right, there are aliens on the planet that you have to kind of fend off while you're doing this.
49
00:04:02.520 --> 00:04:02.900
Yeah. Right.
50
00:04:02.900 --> 00:04:12.810
But really, the key of it is... you can't do this by yourself, right? One person with a pickaxe can't possibly build a rocket ship and launch it.
51
00:04:12.810 --> 00:04:12.880
Mm-hmm.
52
00:04:12.880 --> 00:04:23.860
You need to do something. And so there's kind of this sort of progression of like, well, I've now, the first thing I craft is something to help me craft faster and so on.
53
00:04:23.860 --> 00:04:23.920
Right.
54
00:04:23.920 --> 00:04:30.060
So how does that progression look? And then why are we talking about this on a programming podcast?
55
00:04:30.060 --> 00:04:49.780
Well, so as you go through, you're building essentially automation, right? Automation to gather the resources, automation to turn the raw resources into refined resources, automation to build actual useful products out of those refined resources.
56
00:04:49.780 --> 00:05:12.120
And then automation to tell the useful products, you know, how to assemble them into eventually what becomes a rocket. And you know there's all kinds of amazing things in this game. There's robots that you can control, and there are circuitry systems that you can set up and essentially program to do various things.
57
00:05:12.120 --> 00:05:24.980
But the sort of fundamental aspects of the game revolve around you know, sort of like gathering resources, refining those resources, and then, you know, using them or moving them somewhere else, distributing, yes.
58
00:05:24.980 --> 00:05:25.320
Distributing them, yeah.
59
00:05:25.320 --> 00:05:40.220
And it turns out that Factorio is actually just a huge, you know, distributed computing architecture simulator, because each of these little conveyor belts that you build are actually just kind of like a message queue.
60
00:05:40.220 --> 00:05:40.600
Right.
61
00:05:40.600 --> 00:05:53.140
And each of like the little factories that you build that turn like the raw iron into, you know, iron plates or steel are kind of like services that take in inputs and produce outputs.
62
00:05:53.140 --> 00:06:00.570
And then on the bus, which you've built yourself a bus of like eight lanes of conveyor belt that then have different things you sort.
63
00:06:00.570 --> 00:06:01.320
Right.
64
00:06:01.320 --> 00:06:20.120
It's quite, I mean, it's a crossover between, as you say, distributed computing, but also sort of silicon simulator. You know, like if you zoom out far enough out of your established Factorio map, it's very difficult to tell the difference between the die plan of a Pentium 2 and your Factorio map.
65
00:06:20.120 --> 00:06:21.300
Yes, yes, it is.
66
00:06:21.300 --> 00:06:22.400
It's very, very hard. You're like, hey, there's this...
67
00:06:22.400 --> 00:06:27.460
Just take a blurry picture of that and you will not be able to tell the difference. Not even that blurry, really.
68
00:06:27.460 --> 00:06:52.300
Right, not even that blurry. Yeah, you just have to be... it's quite something and I think it's very appealing because there is this satisfaction of laying things out. But there's a kind of... I haven't played I don't think as much as you have, but the satisfaction I get from working out the right latency of like this robot arm that can pick things off the conveyor belt has like a three-second cadence where it can pick something off and put it into the factory, pick it up and put it into the factory.
69
00:06:52.300 --> 00:06:52.520
Mm-hmm.
70
00:06:52.520 --> 00:07:25.000
So now I want to lay my robot arms and factories out so that like a continuous stream of items coming down the conveyor belt are all efficiently plucked and used and none of them fall off the end of the conveyor belt or go back round again in a loop and all those kinds of things. And I am sure this gets gamified and spreadsheeted to death to really optimise it beyond that. But there is a satisfaction in it. Although... what I find is I get very quickly overwhelmed by the size of my own map and the fact that something stops working and now I'm debugging.
71
00:07:25.000 --> 00:07:29.970
Like, where is it? I'm going back up all the conveyor belts to, oh, I've run out of this.
72
00:07:29.970 --> 00:07:30.100
Mm-hmm.
73
00:07:30.100 --> 00:07:35.320
This thing's been destroyed by aliens and I didn't notice it. And now I have to kind of get everything back and online again.
74
00:07:35.320 --> 00:07:35.380
Mm-hmm.
75
00:07:35.380 --> 00:07:43.160
And so there's kind of a, yeah, it feels like work at some level, which is not selling it, right, to people.
76
00:07:43.160 --> 00:07:44.450
But it's work in...
77
00:07:44.450 --> 00:07:44.560
Yeah.
78
00:07:44.560 --> 00:07:44.780
Mm-hmm.
79
00:07:44.780 --> 00:07:58.580
It's the best parts of the things I like about my job, the sort of micro-optimisation and the sort of big picture stuff. And yeah, often I'll turn off the aliens, actually, because I don't want them to come in and annoy me.
80
00:07:58.580 --> 00:07:59.740
But, you know, I know that's not pure.
81
00:07:59.740 --> 00:08:15.720
Yeah. So just sort of a somewhat side note here. If you don't want to deal with the aliens in Factorio, there's another style of play that you can use, which is to go completely green, because the thing that triggers the aliens is pollution.
82
00:08:15.720 --> 00:08:16.680
Yes.
83
00:08:16.680 --> 00:08:24.990
And so you can just... and I have done this. You can do a playthrough where you literally never have any kind of combat with an alien at all.
84
00:08:24.990 --> 00:08:25.380
Oh.
85
00:08:25.380 --> 00:08:33.700
And now the whole problem is how do I launch a rocket without creating pollution? Right. And so that just changes the problem in a new and interesting way.
86
00:08:33.700 --> 00:08:36.690
That's, I'd forgotten about, I'd forgotten about that aspect of it.
87
00:08:36.690 --> 00:08:36.740
Yeah.
88
00:08:36.740 --> 00:08:38.500
That's pretty cool.
89
00:08:38.500 --> 00:08:39.600
Yeah, it's great.
90
00:08:39.600 --> 00:08:52.110
And then there's a sort of meta part to this whole thing, which is like Factorio, the game, runs pretty quickly on my PC, even my old PC, my non-gaming PC.
91
00:08:52.110 --> 00:08:52.580
Mm-hmm.
92
00:08:52.580 --> 00:08:56.700
And the amount of complexity that it's simulating...
93
00:08:56.700 --> 00:08:58.480
Oh, I know. It's amazing, isn't it?
94
00:08:58.480 --> 00:09:14.820
They've got quite an engine underneath there doing the simulation and moving things around as well as then just displaying. I mean, there's one thing displaying, but there's the other thing is like, well no, you've got this huge, huge, huge sprawling map filled with actors that are doing things all the time.
95
00:09:14.820 --> 00:09:19.490
So, I mean, it's quite a testament to the engine skill.
96
00:09:19.490 --> 00:09:19.590
Mm-hmm.
97
00:09:19.590 --> 00:09:19.680
Mm-hmm.
98
00:09:19.680 --> 00:09:33.820
And I'd be intrigued to know. I think I've heard another podcast somewhere where it was an interview with one of the developers. And I think they use all sorts of, you know, data-oriented design tricks to be able to make things cache-friendly and like write lists of the same kinds of objects so that they can stream through it with SIMD.
99
00:09:33.820 --> 00:09:34.460
Oh, interesting.
100
00:09:34.460 --> 00:09:38.090
There's some cool things behind the scenes. But yeah we don't need to know about that.
101
00:09:38.090 --> 00:09:38.120
Neat.
102
00:09:38.120 --> 00:09:42.280
We can actually just enjoy it from the point of view of a player.
103
00:09:42.280 --> 00:09:43.120
Yeah. Yeah.
104
00:09:43.120 --> 00:10:01.320
So I've never actually got to the point of launching a ship. I always get caught in the middle and then I do have a great time, but then I eventually lose interest in the race for it, either because I've been too pollutey and the aliens have come in and smashed up stuff or more likely I've been distracted long enough that I come back to it and I'm like, I can't.
105
00:10:01.320 --> 00:10:01.320
Yeah.
106
00:10:01.320 --> 00:10:06.020
I don't remember. It's like coming back to a codebase after six months. You're like, I don't remember any of this.
107
00:10:06.020 --> 00:10:19.940
And there's no comments and there's no kind of – I mean, I was going to say there's no functions and naming of things, but you know you can do – with the more sophisticated robot automation, you can put programs of sorts in them, I think, and then you can duplicate those.
108
00:10:19.940 --> 00:10:20.060
Yeah, right.
109
00:10:20.060 --> 00:10:20.240
Yeah, you can.
110
00:10:20.240 --> 00:10:23.960
And I think there was... templates that you can make.
111
00:10:23.960 --> 00:10:26.500
Blueprints is what they call them, but yes, they are exactly that, right?
112
00:10:26.500 --> 00:10:29.230
Blueprints. And then you can sort of stamp out, this is my –
113
00:10:29.230 --> 00:10:30.160
Mm-hmm.
114
00:10:30.160 --> 00:10:37.210
My thing that creates this kind of resource and I have, you know, these two factories and these type of conveyor belts around, you can just like click it down and stamp it out.
115
00:10:37.210 --> 00:10:37.360
Yeah.
116
00:10:37.360 --> 00:10:49.620
But when you stamp it out, it's not like a UI help thing. It's no, you're telling the robot to go and build it all and it goes off and builds it. You still need all the resources to have that in place to build it. So yeah, it's a cool game.
117
00:10:49.620 --> 00:10:51.550
Mm-hmm. Yeah. I'm a fan.
118
00:10:51.550 --> 00:10:51.680
Oh, right.
119
00:10:51.680 --> 00:10:54.780
And there's an expansion for it too, right? Which
120
00:10:54.780 --> 00:10:56.200
Yeah. Go on. Tell me about this.
121
00:10:56.200 --> 00:11:13.780
They released this year. The expansion is Space Age and the whole idea is, okay, well, you've launched the rocket. What if you just kept going, right? And now you're in a whole solar system and there's lots of planets in the solar system, not just the one with the aliens on it.
122
00:11:13.780 --> 00:11:18.280
And you can go to those other planets and they are very different and they have their own things.
123
00:11:18.280 --> 00:11:18.920
Oh.
124
00:11:18.920 --> 00:11:29.040
And you can set up essentially spacecraft that move between the planets and use the rockets to relay materials from one planet to another.
125
00:11:29.040 --> 00:11:38.110
Oh my gosh. But presumably with a much longer latency and, you know, the resources of launching a rocket are non-trivial.
126
00:11:38.110 --> 00:11:39.340
Right.
127
00:11:39.340 --> 00:11:44.240
But you can now ship ore from one planet to another. That's so cool.
128
00:11:44.240 --> 00:12:05.120
Exactly. And then one of the super fun things about this I really kind of dig is like, so you go to a new planet, you launch yourself up into space, you take one of your space platforms is what they call them, but basically it's a big ship and you fly to the new planet, you land on the new planet, and now you have no way to get off.
129
00:12:05.120 --> 00:12:07.700
You have to build another rocket to get off, right?
130
00:12:07.700 --> 00:12:08.880
Oh, right.
131
00:12:08.880 --> 00:12:19.140
And so while you're on that new planet, you have to remotely control the setup that you had on the previous planet, right?
132
00:12:19.140 --> 00:12:19.900
Whoa. On your original planet, yeah.
133
00:12:19.900 --> 00:12:36.220
Yes, which means you have to have set up like some robots and a few other things. And you can like, you know, sort of remotely, you can zoom out in the map essentially and like go over to the other planet and like click on things. But like, you can't just like go, you know, if the bugs go destroy your dealie, you can't just walk over there and fix it.
134
00:12:36.220 --> 00:12:42.120
Like you have to be able to fix it remotely or you have to have the automation in place where the robots just automatically fix it.
135
00:12:42.120 --> 00:12:42.210
Right.
136
00:12:42.210 --> 00:12:42.680
Which is another fun thing.
137
00:12:42.680 --> 00:12:43.940
Whoa.
138
00:12:43.940 --> 00:12:57.740
So I really liked what they did with the expansion and just the way the space platforms work and the different planets. And I think it's just been a really fantastic game.
139
00:12:57.740 --> 00:13:04.770
But my new sort of way to explain TCP backpressure to people now is I say, have you played Factorio?
140
00:13:04.770 --> 00:13:04.940
That's...
141
00:13:04.940 --> 00:13:09.390
And they're like, yes. They're like, conveyor belts. That's what's happening.
142
00:13:09.390 --> 00:13:09.680
Oh, that's...
143
00:13:09.680 --> 00:13:14.020
Your conveyor belts are full. And they're like, oh, okay. And I don't have to say anything else.
144
00:13:14.020 --> 00:13:17.660
Yeah, that's it. I mean, it's good enough, right?
145
00:13:17.660 --> 00:13:17.780
They just get it. They immediately get it.
146
00:13:17.780 --> 00:13:20.200
I mean, as... I don't know if you, yeah. TCP backpressure is, yeah.
147
00:13:20.200 --> 00:13:22.060
No. Backpressure. Yeah, of course. But the backpressure is like, slow consumer.
148
00:13:22.060 --> 00:13:26.520
I mean, you can go down many levels from there, but it's like, what is happening here?
149
00:13:26.520 --> 00:13:30.420
Why do I write to this socket and it just blocks, right?
150
00:13:30.420 --> 00:13:30.480
Yeah.
151
00:13:30.480 --> 00:13:31.240
What's happening?
152
00:13:31.240 --> 00:13:33.340
Yeah. There you go.
153
00:13:33.340 --> 00:13:47.580
Yeah. That makes sense. The other cool thing about Factorio is that it's multiplayer. You can get someone to come and join you in the map, and then that means that certainly if you have kids of an age that are interested in this kind of thing, you can do an...
154
00:13:47.580 --> 00:13:47.640
Yeah.
155
00:13:47.640 --> 00:13:47.760
It is.
156
00:13:47.760 --> 00:13:54.690
Or I guess you could have friends as well. Friends are an option, but you know we're two dads, and so we've been through this with kids.
157
00:13:54.690 --> 00:13:54.800
Yeah, you know. Right.
158
00:13:54.800 --> 00:13:56.390
It's like, hey, do you want to come and like...
159
00:13:56.390 --> 00:13:56.780
Yeah.
160
00:13:56.780 --> 00:14:02.100
Shoot aliens and build stuff. And it works pretty well with that.
161
00:14:02.100 --> 00:14:14.840
At least I found that. And certainly the division of labour thing is useful where you can kind of like be one person can stay back in the main base and just kind of keep the admin going where the other person goes off and finds more resources and builds a sort of secondary base.
162
00:14:14.840 --> 00:14:14.870
Yeah.
163
00:14:14.870 --> 00:14:14.940
Yeah. Mm-hmm.
164
00:14:14.940 --> 00:14:16.520
And then you start with your...
165
00:14:16.520 --> 00:14:18.580
Or flies to a new planet, right?
166
00:14:18.580 --> 00:14:20.750
Or flies to a new planet... Yeah. Or sets up the train network.
167
00:14:20.750 --> 00:14:20.840
Mm-hmm.
168
00:14:20.840 --> 00:14:23.580
I got as far as trains and then I was like, that was very cool.
169
00:14:23.580 --> 00:14:23.640
Yeah.
170
00:14:23.640 --> 00:14:26.280
And then I was like, okay, now... yeah, don't know why I stopped.
171
00:14:26.280 --> 00:14:35.520
Man, if you are into model trains, Factorio is the game for you, right? Because it's just got all of the things that make that fun and interesting.
172
00:14:35.520 --> 00:14:40.560
Yeah, it's a great game. Now I want to play it again. And I haven't got time, Ben.
173
00:14:40.560 --> 00:14:47.420
I haven't got time. I know I've got like all this time off, which I think by the time this episode goes out, I might actually be working again. [Editor Matt: yes I am, just had my first week]
174
00:14:47.420 --> 00:14:47.540
No, you don't.
175
00:14:47.540 --> 00:14:48.200
Oh, my goodness.
176
00:14:48.200 --> 00:14:53.570
I know how horrible, how awful for me. No, I'm looking forward to the rhythm
177
00:14:53.570 --> 00:14:54.100
I see.
178
00:14:54.100 --> 00:15:01.770
of working again. But, ironically, maybe I'll have more time then because at the moment I could just keep saying yes to everything because I'm like, I by default don't have a reason.
179
00:15:01.770 --> 00:15:01.820
Right.
180
00:15:01.820 --> 00:15:09.840
But as soon as I, oh, I've got a new job, I can't be doing this, but then I might have my evenings back. Who knows? So yeah, Factorio could be in my future.
181
00:15:09.840 --> 00:15:26.640
Yeah. Yeah. Well, I would say if you are a programmer and you are in a place in your life where you're okay falling into a black hole for a few hours and being like, what just happened? Well, how is it one in the morning?
182
00:15:26.640 --> 00:15:30.540
You could consider trying out Factorio because it is a game.
183
00:15:30.540 --> 00:15:33.150
We are not sponsored by whomever makes Factorio.
184
00:15:33.150 --> 00:15:33.260
No, no, we're not.
185
00:15:33.260 --> 00:15:34.700
I can't even remember who it is, but we're not sponsored.
186
00:15:34.700 --> 00:15:37.380
This is my own personal opinion on what games are fun.
187
00:15:37.380 --> 00:15:40.420
It's purely a fun game.
188
00:15:40.420 --> 00:15:41.500
Yeah.
189
00:15:41.500 --> 00:15:42.580
Yeah.
190
00:15:42.580 --> 00:15:45.610
What other games are you playing at the moment while we're here?
191
00:15:45.610 --> 00:15:46.500
Yeah.
192
00:15:46.500 --> 00:15:51.520
I had been doing Baldur's Gate 3. Because you know, it's just a fantastic game.
193
00:15:51.520 --> 00:15:51.640
Right.
194
00:15:51.640 --> 00:15:52.420
Yep.
195
00:15:52.420 --> 00:15:53.100
Well...
196
00:15:53.100 --> 00:16:05.720
I actually, this is probably going to wind up being another episode for us at some point in the future, but I have already decided that I am not going to upgrade to Windows 11 on my gaming PC.
197
00:16:05.720 --> 00:16:10.150
And I am going to install Ubuntu and, probably Ubuntu.
198
00:16:10.150 --> 00:16:10.600
Ooh.
199
00:16:10.600 --> 00:16:12.320
I haven't necessarily picked a distribution yet, but I'm going to, yeah.
200
00:16:12.320 --> 00:16:14.220
But some flavor of Linux. Okay.
201
00:16:14.220 --> 00:16:27.720
Some flavour of Linux, and I am going to start using Linux for my gaming PC. And I expect that most of the games that I want to play will work.
202
00:16:27.720 --> 00:16:36.210
There might be a little bit of troubleshooting here and there. My son has also done this. He, in fact, sort of led the way on this. And I was initially very sceptical. I'm like, really?
203
00:16:36.210 --> 00:16:36.560
Yeah.
204
00:16:36.560 --> 00:16:54.140
And he's had some good luck with it. And I'm like, you know what? That is better. So I'm switching. And if that means that there's some game at some point in the future that I really want to play that I can't get to work on Linux, well, then I will decide at that point in time whether it's worth my time to figure out how to get it to run.
205
00:16:54.140 --> 00:16:58.960
Interesting. Well, we'll definitely look forward to you giving us a trip report from that point of view.
206
00:16:58.960 --> 00:17:08.080
I mean, I predominantly have used Linux and all of my experience on Factorio was in fact on Linux. So that has worked for me.
207
00:17:08.080 --> 00:17:08.480
Yeah.
208
00:17:08.480 --> 00:17:09.280
Yeah.
209
00:17:09.280 --> 00:17:17.160
But then when my kids started playing Overwatch 2 and Marvel Rivals, that's when I...
210
00:17:17.160 --> 00:17:17.160
Yeah.
211
00:17:17.160 --> 00:17:36.540
finally acquiesced and decided to, in order to join them, I would need to use Windows. So I installed Windows. And then I've been using it for video editing, which is another thing that I have been unable to get Linux to be as good, even though I have a package that works on Linux. It works about as well on Linux as you'd imagine,
212
00:17:36.540 --> 00:17:47.010
Where they say, well, you're not on a supported particular variant of Linux. I'm like, well, what is supported? And they named a distribution of Linux that I have literally never, ever heard of.
213
00:17:47.010 --> 00:17:47.040
Mm-hmm.
214
00:17:47.040 --> 00:17:54.230
And it turns out it's just a distribution that's just for running this package. So I'm like, okay, no, I'm not using your bespoke version of Linux.
215
00:17:54.230 --> 00:17:54.320
Yeah. Okay.
216
00:17:54.320 --> 00:17:55.640
I'm using like a normal one.
217
00:17:55.640 --> 00:17:55.780
Right.
218
00:17:55.780 --> 00:17:56.440
Thank you.
219
00:17:56.440 --> 00:17:57.280
Yeah.
220
00:17:57.280 --> 00:18:10.380
So, you know, I get it. It's a more, you know, it's a difficult support burden and there are things to do with, you know, codecs and there's things to do with, you know, proprietary closed source stuff that's harder to get on Linux, whatever.
221
00:18:10.380 --> 00:18:10.700
Yeah.
222
00:18:10.700 --> 00:18:11.340
Yeah.
223
00:18:11.340 --> 00:18:27.460
But yeah, I by and large live in the Linux world. And I don't know how people can use Windows. I know this is not what this episode is about, but oh my golly, everything about Windows has been frustrating the heck out of me.
224
00:18:27.460 --> 00:18:49.780
Like the unhideable, sorry, non-configurable start bar that keeps popping up every time I dare put my mouse anywhere near the bottom of the screen, as I've got it auto-hidden to try and get the screen real estate back, to being upsold various Microsoft-related things like logging into their Microsoft Cloud, whatever it is, or, you know, hey, you're not backing anything up.
225
00:18:49.780 --> 00:18:49.820
Yeah.
226
00:18:49.820 --> 00:18:54.750
I'm like, yes, I know. There is literally nothing on this computer that I care about. I don't want to back anything up.
227
00:18:54.750 --> 00:18:54.840
Right.
228
00:18:54.840 --> 00:19:06.080
Oh, but you haven't backed up in this long. Again, with the stop telling me, I don't care. And then every now and then I reboot. And for reasons that I don't understand, I go through some part of the, you know, beginning setup again.
229
00:19:06.080 --> 00:19:13.600
And the only thing I've got to not sign into something is to skip for now. And I'm like, no, skip forever, go away.
230
00:19:13.600 --> 00:19:14.200
Right, right. Yep, yep.
231
00:19:14.200 --> 00:19:18.220
And it's... everything about it feels utterly frustrating.
232
00:19:18.220 --> 00:19:19.920
Yeah. It's pretty gross.
233
00:19:19.920 --> 00:19:26.070
And especially considering that I'm literally only using it as a gaming platform. I really don't need any of that.
234
00:19:26.070 --> 00:19:26.800
Yeah. [Dog barks]
235
00:19:26.800 --> 00:19:28.720
I don't need a single bit of it.
236
00:19:28.720 --> 00:19:29.360
Yeah. [Dog barks again]
237
00:19:29.360 --> 00:19:40.340
So I am planning on making the switch probably over Thanksgiving when I'll have a few days off and I can just kind of wipe the machine and start over again.
238
00:19:40.340 --> 00:19:48.420
Now people will work out when we're recording. Oh no. Now people know that we don't do these live.
239
00:19:48.420 --> 00:19:48.740
Well,
240
00:19:48.740 --> 00:19:49.500
I've thought about that.
241
00:19:49.500 --> 00:19:49.540
Yeah.
242
00:19:49.540 --> 00:19:53.060
We could do a live one sometime. That might be fun.
243
00:19:53.060 --> 00:19:54.640
Or a live-ish. Now I'm all up with the video editing.
244
00:19:54.640 --> 00:19:54.820
I mean, we could do a live one.
245
00:19:54.820 --> 00:19:54.880
I don't know.
246
00:19:54.880 --> 00:20:00.200
We could even do a video one, but then that would mean that, you know, actually I'm looking at your backdrop right now and you'd be fine.
247
00:20:00.200 --> 00:20:00.280
Yeah.
248
00:20:00.280 --> 00:20:06.570
You've got a great sort of Zoom background, whereas mine's a catastrophe, but I've just gone with it.
249
00:20:06.570 --> 00:20:07.980
I think yours works pretty well.
250
00:20:07.980 --> 00:20:10.680
So we could try that sometime, I guess.
251
00:20:10.680 --> 00:20:11.560
I'd be down for that.
252
00:20:11.560 --> 00:20:23.800
Yeah. All right. We can certainly think about doing that sometime. But yeah, we're recording this actually on Halloween, which is one of the reasons why I've got to go pick the kids up, because I've then got to get back in time to hand out candy to people, or maybe not.
253
00:20:23.800 --> 00:20:24.120
Right.
254
00:20:24.120 --> 00:20:26.200
Just throw it at them. You don't need to hand it.
255
00:20:26.200 --> 00:20:37.260
Well, there's been a lot of political activity in this area. I've been wondering whether I should be carrying my green card with me, which is a very weird feeling.
256
00:20:37.260 --> 00:20:42.090
And I don't want to go politics on this, but it's like, oh, maybe I'll have to.
257
00:20:42.090 --> 00:20:42.420
That is weird.
258
00:20:42.420 --> 00:20:43.660
Yeah.
259
00:20:43.660 --> 00:20:44.420
Yeah.
260
00:20:44.420 --> 00:20:48.980
That's a downer. Let's talk about something nice in the last few minutes before I have to go.
261
00:20:48.980 --> 00:21:00.640
Well, I am definitely going to report back on my experiences switching over to Linux. And I expect it will be mostly smooth. There are a few games that are natively supported on Linux.
262
00:21:00.640 --> 00:21:01.980
And I think Factorio actually might be one of them.
263
00:21:01.980 --> 00:21:03.280
I think it is. Yes, it is.
264
00:21:03.280 --> 00:21:03.620
Yeah.
265
00:21:03.620 --> 00:21:11.720
But I know that the Steam Deck is based on at least some... there's a Linux kernel in there somewhere, if I recall correctly.
266
00:21:11.720 --> 00:21:13.160
I think so.
267
00:21:13.160 --> 00:21:23.100
And so Steam kind of has this incentive of making sure that games are at least remotely compatible with that. And they have this, I think it's Proton is the name of it.
268
00:21:23.100 --> 00:21:24.140
Maybe I'm getting that name wrong.
269
00:21:24.140 --> 00:21:30.840
Yeah, that brings, I think that brings about that sort of like, I think it's either a port or based on Wine at some point.
270
00:21:30.840 --> 00:21:31.550
Wine. Yeah.
271
00:21:31.550 --> 00:21:31.900
Yeah.
272
00:21:31.900 --> 00:21:44.060
And Steam has, at least with Steam games anyway, has a rating, if I understand this correctly, of how compatible they are with Proton. And for the Platinum or Gold games, they kind of expect that it's just going to work, right?
273
00:21:44.060 --> 00:21:46.560
It just works. Yeah.
274
00:21:46.560 --> 00:21:53.720
So, if that means that I'm just sticking to those types of games... The problem is there's too many games to play anyway, right?
275
00:21:53.720 --> 00:21:53.720
Right.
276
00:21:53.720 --> 00:22:07.600
It's the tyranny of choice, right? I feel like there's a somewhat famous psychological concept that's just like people are miserable when they have too much choice, right?
277
00:22:07.600 --> 00:22:08.300
Yeah.
278
00:22:08.300 --> 00:22:19.580
Trying to remember that... it's probably the tyranny of choice or something like that. But in any case, there's too many games. There's too many games to play. And if I have to just filter, what's Platinum, Gold on Proton.
279
00:22:19.580 --> 00:22:20.120
Okay. These are the games I'm going to consider buying in the Steam sale.
280
00:22:20.120 --> 00:22:22.760
Oh, that might actually be a boon. Yeah, I see.
281
00:22:22.760 --> 00:22:30.160
Great. Now that'll help me. And I won't be sitting there, when the Steam sale comes along, going like, there's so many games that I want to play.
282
00:22:30.160 --> 00:22:30.700
Yeah.
283
00:22:30.700 --> 00:22:33.000
How do I pick which I'm going to buy? Yeah.
284
00:22:33.000 --> 00:22:38.560
That's fair. Yeah, anything to reduce the number of them might actually be working in your favour.
285
00:22:38.560 --> 00:22:43.900
Right. I mean, I wouldn't complain if it means I don't have to deal with stupid Windows pop-ups. I gladly welcome it.
286
00:22:43.900 --> 00:22:49.420
Right, that is definitely worth doing for that reason alone.
287
00:22:49.420 --> 00:22:50.120
Yeah.
288
00:22:50.120 --> 00:22:55.560
Well, it looks like it's going to be quite a short episode today, which is good for editor Matt in the future. [Thanks past Matt]
289
00:22:55.560 --> 00:22:56.480
Yes. Right.
290
00:22:56.480 --> 00:22:58.840
So lucky him, although he's gotten very lazy recently.
291
00:22:58.840 --> 00:23:05.840
So apologies for all the ums and uhs and dog barks in all of the last few episodes that have gone out. But I like to think that it's charming.
292
00:23:05.840 --> 00:23:08.340
There's charm. You have some charm.
293
00:23:08.340 --> 00:23:10.480
There's something in it. Yeah.
294
00:23:10.480 --> 00:23:11.990
Some amount of charm.
295
00:23:11.990 --> 00:23:19.820
Fabulous, my friend. Well, I look forward to hearing your trip report about gaming on Linux some future episode.
296
00:23:19.820 --> 00:23:20.700
Some future episode.
297
00:23:20.700 --> 00:23:24.150
I've got some ideas up my sleeve as well for some cool things.
298
00:23:24.150 --> 00:23:24.440
Okay.
299
00:23:24.440 --> 00:23:36.500
So again, you know, we're totally abusing our poor audience. Well, I guess it's not abuse. They chose to come here. They've chosen to stay being here. And the kind of things we talk about, hopefully, are the things they're interested in.
300
00:23:36.500 --> 00:23:37.270
We'll find out, I guess.
301
00:23:37.270 --> 00:23:37.580
Yeah, we will.
302
00:23:37.580 --> 00:23:43.290
All right. I'll see you next time.
303
00:23:43.290 --> 00:23:51.550
Until next time.
304
00:23:51.550 --> 00:23:54.550
Take care mate. Bye.
1
00:00:20.260 --> 00:00:21.050
Hey, Ben.
2
00:00:21.050 --> 00:00:21.940
Hey, Matt.
3
00:00:21.940 --> 00:00:23.480
How on earth are you?
4
00:00:23.480 --> 00:00:25.100
I'm doing good. How are you?
5
00:00:25.100 --> 00:00:38.140
I'm doing really good. Now we've made a thing out of that. So... Actually, I'm going to move back a bit from the mic. We don't have much time because I've got to go and pick kids up from school.
6
00:00:38.140 --> 00:00:39.350
So this is going to be a Turbo Edition.
7
00:00:39.350 --> 00:00:39.380
Yeah.
8
00:00:39.380 --> 00:00:43.560
But you said you had an idea, and I'm all ears.
9
00:00:43.560 --> 00:00:46.880
Yeah. Have we talked about Factorio on this podcast yet?
10
00:00:46.880 --> 00:00:49.540
I don't think we have.
11
00:00:49.540 --> 00:00:50.080
No.
12
00:00:50.080 --> 00:00:50.480
It seems like
13
00:00:50.480 --> 00:00:59.480
this podcast is the intersection of games and programming. And if there's anything that is the intersection of games and programming, it is the game Factorio.
14
00:00:59.480 --> 00:01:00.720
And Factorio...
15
00:01:00.720 --> 00:01:16.850
I think you're right, you know. I mean, so if our listener doesn't know what Factorio is, how would you know? I know there's the pithy description, but that kind of buries the lede a little bit.
16
00:01:16.850 --> 00:01:17.380
Mm-hmm.
17
00:01:17.380 --> 00:01:20.580
But what is Factorio, Ben? Tell me what Factorio is.
18
00:01:20.580 --> 00:01:24.320
So Factorio is a game, the premise of the game.
19
00:01:24.320 --> 00:01:25.290
A video game, first of all.
20
00:01:25.290 --> 00:01:25.590
It's a video game.
21
00:01:25.590 --> 00:01:25.660
Yeah.
22
00:01:25.660 --> 00:01:42.880
It's on many platforms. It's a fairly popular game. So if you have not played this game already, it is very likely that you will be able to reach within arm's reach of where you are right now and pick up a device that would allow you to play this game.
23
00:01:42.880 --> 00:01:52.320
But it's a game and the premise of the game is that you are crash landed on a planet and you
24
00:01:52.320 --> 00:01:52.320
Mm-hmm.
25
00:01:52.320 --> 00:02:10.220
are a sort of technician or engineer that has access to these amazing tools for crafting and building things. And your goal, at least in the vanilla game, is to escape the planet. It's basically like I crash landed here. My ship is destroyed.
26
00:02:10.220 --> 00:02:24.120
I don't want to be here. So I'm just going to build a rocket ship and leave. And so you go from mining coal with a pickaxe to launching yourself into space in a rocket.
27
00:02:24.120 --> 00:02:30.380
And a typical playthrough, I think like the speedrun playthroughs are pretty fast, like eight hours. But I could...
28
00:02:30.380 --> 00:02:32.500
That's not fast for a speedrun, but yeah, there's a lot to do.
29
00:02:32.500 --> 00:02:47.660
Right, right. But the typical playtime, I think, for mortal humans is like 24 hours. Right. And one of the things I actually sort of like about that is you can imagine, you're traveling through space.
30
00:02:47.660 --> 00:03:01.480
Alarms start going off. You're entering the atmosphere of a planet. You go, oh crap. And then you land and you got 24 hours to get off the planet. And then you sort of launch yourself back into space, exhausted, fall asleep.
31
00:03:01.480 --> 00:03:02.760
All right, fine. And you go into hibernation.
32
00:03:02.760 --> 00:03:10.480
Right, but this is 24 hours of somewhat accelerated time with the magical ability to mine and build things.
33
00:03:10.480 --> 00:03:13.710
Yeah. I mean, in game time and real time are the same time, right?
34
00:03:13.710 --> 00:03:14.100
Okay.
35
00:03:14.100 --> 00:03:23.580
Like, like you're, if you're moving the character around and you're, you know, like I said, you know mining for coal or whatever, like there's no time speed up in the game, right?
36
00:03:23.580 --> 00:03:23.960
Right.
37
00:03:23.960 --> 00:03:29.160
So if you're playing for 24 hours, you could think of that as this person being on this planet for 24 hours.
38
00:03:29.160 --> 00:03:31.080
But it's like top-down.
39
00:03:31.080 --> 00:03:36.760
So far, it sounds a little bit like Minecraft. It's like crafting and building and stuff.
40
00:03:36.760 --> 00:03:38.240
It's got some Minecraft-y aspects to it for sure.
41
00:03:38.240 --> 00:03:40.020
And it's a little bit like that. But it's a very different look.
42
00:03:40.020 --> 00:03:42.100
It's a top-down game.
43
00:03:42.100 --> 00:03:50.400
When I see it, it reminds me of like StarCraft and that kind of look and feel a little bit.
44
00:03:50.400 --> 00:03:53.200
And the planet as well is a bit sort of alien.
45
00:03:53.200 --> 00:03:56.160
Yeah.
46
00:03:56.160 --> 00:03:57.140
It's got some real-time strategy aspects to it.
47
00:03:57.140 --> 00:03:58.820
It's got some tower defense aspects to it.
48
00:03:58.820 --> 00:04:02.520
Right, there are aliens on the planet that you have to kind of fend off while you're doing this.
49
00:04:02.520 --> 00:04:02.900
Yeah. Right.
50
00:04:02.900 --> 00:04:12.810
But really, the key of it is... you can't do this by yourself, right? One person with a pickaxe can't possibly build a rocket ship and launch it.
51
00:04:12.810 --> 00:04:12.880
Mm-hmm.
52
00:04:12.880 --> 00:04:23.860
You need to do something. And so there's kind of this sort of progression of like, well, I've now, the first thing I craft is something to help me craft faster and so on.
53
00:04:23.860 --> 00:04:23.920
Right.
54
00:04:23.920 --> 00:04:30.060
So how does that progression look? And then why are we talking about this on a programming podcast?
55
00:04:30.060 --> 00:04:49.780
Well, so as you go through, you're building essentially automation, right? Automation to gather the resources, automation to turn the raw resources into refined resources, automation to build actual useful products out of those refined resources.
56
00:04:49.780 --> 00:05:12.120
And then automation to tell the useful products, you know, how to assemble them into eventually what becomes a rocket. And you know there's all kinds of amazing things in this game. There's robots that you can control, and there are circuitry systems that you can set up and essentially program to do various things.
57
00:05:12.120 --> 00:05:24.980
But the sort of fundamental aspects of the game revolve around you know, sort of like gathering resources, refining those resources, and then, you know, using them or moving them somewhere else, distributing, yes.
58
00:05:24.980 --> 00:05:25.320
Distributing them, yeah.
59
00:05:25.320 --> 00:05:40.220
And it turns out that Factorio is actually just a huge, you know, distributed computing architecture simulator, because each of these little conveyor belts that you build are actually just kind of like a message queue.
60
00:05:40.220 --> 00:05:40.600
Right.
61
00:05:40.600 --> 00:05:53.140
And each of like the little factories that you build that turn like the raw iron into, you know, iron plates or steel are kind of like services that take in inputs and produce outputs.
62
00:05:53.140 --> 00:06:00.570
And then on the bus, which you've built yourself a bus of like eight lanes of conveyor belt that then have different things you sort.
63
00:06:00.570 --> 00:06:01.320
Right.
64
00:06:01.320 --> 00:06:20.120
It's quite, I mean, it's a crossover between, as you say, distributed computing, but also sort of silicon simulator. You know, like if you zoom out far enough out of your established Factorio map, it's very difficult to tell the difference between the die plan of a Pentium 2 and your Factorio map.
65
00:06:20.120 --> 00:06:21.300
Yes, yes, it is.
66
00:06:21.300 --> 00:06:22.400
It's very, very hard. You're like, hey, there's this...
67
00:06:22.400 --> 00:06:27.460
Just take a blurry picture of that and you will not be able to tell the difference. Not even that blurry, really.
68
00:06:27.460 --> 00:06:52.300
Right, not even that blurry. Yeah, you just have to be... it's quite something and I think it's very appealing because there is this satisfaction of laying things out. But there's a kind of... I haven't played I don't think as much as you have, but the satisfaction I get from working out the right latency of like this robot arm that can pick things off the conveyor belt has like a three-second cadence where it can pick something off and put it into the factory, pick it up and put it into the factory.
69
00:06:52.300 --> 00:06:52.520
Mm-hmm.
70
00:06:52.520 --> 00:07:25.000
So now I want to lay my robot arms and factories out so that like a continuous stream of items coming down the conveyor belt are all efficiently plucked and used and none of them fall off the end of the conveyor belt or go back round again in a loop and all those kinds of things. And I am sure this gets gamified and spreadsheeted to death to really optimise it beyond that. But there is a satisfaction in it. Although... what I find is I get very quickly overwhelmed by the size of my own map and the fact that something stops working and now I'm debugging.
71
00:07:25.000 --> 00:07:29.970
Like, where is it? I'm going back up all the conveyor belts to, oh, I've run out of this.
72
00:07:29.970 --> 00:07:30.100
Mm-hmm.
73
00:07:30.100 --> 00:07:35.320
This thing's been destroyed by aliens and I didn't notice it. And now I have to kind of get everything back and online again.
74
00:07:35.320 --> 00:07:35.380
Mm-hmm.
75
00:07:35.380 --> 00:07:43.160
And so there's kind of a, yeah, it feels like work at some level, which is not selling it, right, to people.
76
00:07:43.160 --> 00:07:44.450
But it's work in...
77
00:07:44.450 --> 00:07:44.560
Yeah.
78
00:07:44.560 --> 00:07:44.780
Mm-hmm.
79
00:07:44.780 --> 00:07:58.580
It's the best parts of the things I like about my job, the sort of micro-optimisation and the sort of big picture stuff. And yeah, often I'll turn off the aliens, actually, because I don't want them to come in and annoy me.
80
00:07:58.580 --> 00:07:59.740
But, you know, I know that's not pure.
81
00:07:59.740 --> 00:08:15.720
Yeah. So just sort of a somewhat side note here. If you don't want to deal with the aliens in Factorio, there's another style of play that you can use, which is to go completely green, because the thing that triggers the aliens is pollution.
82
00:08:15.720 --> 00:08:16.680
Yes.
83
00:08:16.680 --> 00:08:24.990
And so you can just... and I have done this. You can do a playthrough where you literally never have any kind of combat with an alien at all.
84
00:08:24.990 --> 00:08:25.380
Oh.
85
00:08:25.380 --> 00:08:33.700
And now the whole problem is how do I launch a rocket without creating pollution? Right. And so that just changes the problem in a new and interesting way.
86
00:08:33.700 --> 00:08:36.690
That's, I'd forgotten about, I'd forgotten about that aspect of it.
87
00:08:36.690 --> 00:08:36.740
Yeah.
88
00:08:36.740 --> 00:08:38.500
That's pretty cool.
89
00:08:38.500 --> 00:08:39.600
Yeah, it's great.
90
00:08:39.600 --> 00:08:52.110
And then there's a sort of meta part to this whole thing, which is like Factorio, the game, runs pretty quickly on my PC, even my old PC, my non-gaming PC.
91
00:08:52.110 --> 00:08:52.580
Mm-hmm.
92
00:08:52.580 --> 00:08:56.700
And the amount of complexity that it's simulating...
93
00:08:56.700 --> 00:08:58.480
Oh, I know. It's amazing, isn't it?
94
00:08:58.480 --> 00:09:14.820
They've got quite an engine underneath there doing the simulation and moving things around as well as then just displaying. I mean, there's one thing displaying, but there's the other thing is like, well no, you've got this huge, huge, huge sprawling map filled with actors that are doing things all the time.
95
00:09:14.820 --> 00:09:19.490
So, I mean, it's quite a testament to the engine skill.
96
00:09:19.490 --> 00:09:19.590
Mm-hmm.
97
00:09:19.590 --> 00:09:19.680
Mm-hmm.
98
00:09:19.680 --> 00:09:33.820
And I'd be intrigued to know. I think I've heard another podcast somewhere where it was an interview with one of the developers. And I think they use all sorts of, you know, data-oriented design tricks to be able to make things cache-friendly and like write lists of the same kinds of objects so that they can stream through it with SIMD.
99
00:09:33.820 --> 00:09:34.460
Oh, interesting.
100
00:09:34.460 --> 00:09:38.090
There's some cool things behind the scenes. But yeah we don't need to know about that.
101
00:09:38.090 --> 00:09:38.120
Neat.
102
00:09:38.120 --> 00:09:42.280
We can actually just enjoy it from the point of view of a player.
103
00:09:42.280 --> 00:09:43.120
Yeah. Yeah.
104
00:09:43.120 --> 00:10:01.320
So I've never actually got to the point of launching a ship. I always get caught in the middle and then I do have a great time, but then I eventually lose interest in the race for it, either because I've been too pollutey and the aliens have come in and smashed up stuff or more likely I've been distracted long enough that I come back to it and I'm like, I can't.
105
00:10:01.320 --> 00:10:01.320
Yeah.
106
00:10:01.320 --> 00:10:06.020
I don't remember. It's like coming back to a codebase after six months. You're like, I don't remember any of this.
107
00:10:06.020 --> 00:10:19.940
And there's no comments and there's no kind of – I mean, I was going to say there's no functions and naming of things, but you know you can do – with the more sophisticated robot automation, you can put programs of sorts in them, I think, and then you can duplicate those.
108
00:10:19.940 --> 00:10:20.060
Yeah, right.
109
00:10:20.060 --> 00:10:20.240
Yeah, you can.
110
00:10:20.240 --> 00:10:23.960
And I think there was... templates that you can make.
111
00:10:23.960 --> 00:10:26.500
Blueprints is what they call them, but yes, they are exactly that, right?
112
00:10:26.500 --> 00:10:29.230
Blueprints. And then you can sort of stamp out, this is my –
113
00:10:29.230 --> 00:10:30.160
Mm-hmm.
114
00:10:30.160 --> 00:10:37.210
My thing that creates this kind of resource and I have, you know, these two factories and these type of conveyor belts around, you can just like click it down and stamp it out.
115
00:10:37.210 --> 00:10:37.360
Yeah.
116
00:10:37.360 --> 00:10:49.620
But when you stamp it out, it's not like a UI help thing. It's no, you're telling the robot to go and build it all and it goes off and builds it. You still need all the resources to have that in place to build it. So yeah, it's a cool game.
117
00:10:49.620 --> 00:10:51.550
Mm-hmm. Yeah. I'm a fan.
118
00:10:51.550 --> 00:10:51.680
Oh, right.
119
00:10:51.680 --> 00:10:54.780
And there's an expansion for it too, right? Which
120
00:10:54.780 --> 00:10:56.200
Yeah. Go on. Tell me about this.
121
00:10:56.200 --> 00:11:13.780
They released this year. The expansion is Space Age and the whole idea is, okay, well, you've launched the rocket. What if you just kept going, right? And now you're in a whole solar system and there's lots of planets in the solar system, not just the one with the aliens on it.
122
00:11:13.780 --> 00:11:18.280
And you can go to those other planets and they are very different and they have their own things.
123
00:11:18.280 --> 00:11:18.920
Oh.
124
00:11:18.920 --> 00:11:29.040
And you can set up essentially spacecraft that move between the planets and use the rockets to relay materials from one planet to another.
125
00:11:29.040 --> 00:11:38.110
Oh my gosh. But presumably with a much longer latency and, you know, the resources of launching a rocket are non-trivial.
126
00:11:38.110 --> 00:11:39.340
Right.
127
00:11:39.340 --> 00:11:44.240
But you can now ship ore from one planet to another. That's so cool.
128
00:11:44.240 --> 00:12:05.120
Exactly. And then one of the super fun things about this I really kind of dig is like, so you go to a new planet, you launch yourself up into space, you take one of your space platforms is what they call them, but basically it's a big ship and you fly to the new planet, you land on the new planet, and now you have no way to get off.
129
00:12:05.120 --> 00:12:07.700
You have to build another rocket to get off, right?
130
00:12:07.700 --> 00:12:08.880
Oh, right.
131
00:12:08.880 --> 00:12:19.140
And so while you're on that new planet, you have to remotely control the setup that you had on the previous planet, right?
132
00:12:19.140 --> 00:12:19.900
Whoa. On your original planet, yeah.
133
00:12:19.900 --> 00:12:36.220
Yes, which means you have to have set up like some robots and a few other things. And you can like, you know, sort of remotely, you can zoom out in the map essentially and like go over to the other planet and like click on things. But like, you can't just like go, you know, if the bugs go destroy your dealie, you can't just walk over there and fix it.
134
00:12:36.220 --> 00:12:42.120
Like you have to be able to fix it remotely or you have to have the automation in place where the robots just automatically fix it.
135
00:12:42.120 --> 00:12:42.210
Right.
136
00:12:42.210 --> 00:12:42.680
Which is another fun thing.
137
00:12:42.680 --> 00:12:43.940
Whoa.
138
00:12:43.940 --> 00:12:57.740
So I really liked what they did with the expansion and just the way the space platforms work and the different planets. And I think it's just been a really fantastic game.
139
00:12:57.740 --> 00:13:04.770
But my new sort of way to explain TCP backpressure to people now is I say, have you played Factorio?
140
00:13:04.770 --> 00:13:04.940
That's...
141
00:13:04.940 --> 00:13:09.390
And they're like, yes. They're like, conveyor belts. That's what's happening.
142
00:13:09.390 --> 00:13:09.680
Oh, that's...
143
00:13:09.680 --> 00:13:14.020
Your conveyor belts are full. And they're like, oh, okay. And I don't have to say anything else.
144
00:13:14.020 --> 00:13:17.660
Yeah, that's it. I mean, it's good enough, right?
145
00:13:17.660 --> 00:13:17.780
They just get it. They immediately get it.
146
00:13:17.780 --> 00:13:20.200
I mean, as... I don't know if you, yeah. TCP backpressure is, yeah.
147
00:13:20.200 --> 00:13:22.060
No. Backpressure. Yeah, of course. But the backpressure is like, slow consumer.
148
00:13:22.060 --> 00:13:26.520
I mean, you can go down many levels from there, but it's like, what is happening here?
149
00:13:26.520 --> 00:13:30.420
Why do I write to this socket and it just blocks, right?
150
00:13:30.420 --> 00:13:30.480
Yeah.
151
00:13:30.480 --> 00:13:31.240
What's happening?
152
00:13:31.240 --> 00:13:33.340
Yeah. There you go.
153
00:13:33.340 --> 00:13:47.580
Yeah. That makes sense. The other cool thing about Factorio is that it's multiplayer. You can get someone to come and join you in the map, and then that means that certainly if you have kids of an age that are interested in this kind of thing, you can do an...
154
00:13:47.580 --> 00:13:47.640
Yeah.
155
00:13:47.640 --> 00:13:47.760
It is.
156
00:13:47.760 --> 00:13:54.690
Or I guess you could have friends as well. Friends are an option, but you know we're two dads, and so we've been through this with kids.
157
00:13:54.690 --> 00:13:54.800
Yeah, you know. Right.
158
00:13:54.800 --> 00:13:56.390
It's like, hey, do you want to come and like...
159
00:13:56.390 --> 00:13:56.780
Yeah.
160
00:13:56.780 --> 00:14:02.100
Shoot aliens and build stuff. And it works pretty well with that.
161
00:14:02.100 --> 00:14:14.840
At least I found that. And certainly the division of labour thing is useful where you can kind of like be one person can stay back in the main base and just kind of keep the admin going where the other person goes off and finds more resources and builds a sort of secondary base.
162
00:14:14.840 --> 00:14:14.870
Yeah.
163
00:14:14.870 --> 00:14:14.940
Yeah. Mm-hmm.
164
00:14:14.940 --> 00:14:16.520
And then you start with your...
165
00:14:16.520 --> 00:14:18.580
Or flies to a new planet, right?
166
00:14:18.580 --> 00:14:20.750
Or flies to a new planet... Yeah. Or sets up the train network.
167
00:14:20.750 --> 00:14:20.840
Mm-hmm.
168
00:14:20.840 --> 00:14:23.580
I got as far as trains and then I was like, that was very cool.
169
00:14:23.580 --> 00:14:23.640
Yeah.
170
00:14:23.640 --> 00:14:26.280
And then I was like, okay, now... yeah, don't know why I stopped.
171
00:14:26.280 --> 00:14:35.520
Man, if you are into model trains, Factorio is the game for you, right? Because it's just got all of the things that make that fun and interesting.
172
00:14:35.520 --> 00:14:40.560
Yeah, it's a great game. Now I want to play it again. And I haven't got time, Ben.
173
00:14:40.560 --> 00:14:47.420
I haven't got time. I know I've got like all this time off, which I think by the time this episode goes out, I might actually be working again. [Editor Matt: yes I am, just had my first week]
174
00:14:47.420 --> 00:14:47.540
No, you don't.
175
00:14:47.540 --> 00:14:48.200
Oh, my goodness.
176
00:14:48.200 --> 00:14:53.570
I know how horrible, how awful for me. No, I'm looking forward to the rhythm
177
00:14:53.570 --> 00:14:54.100
I see.
178
00:14:54.100 --> 00:15:01.770
of working again. But, ironically, maybe I'll have more time then because at the moment I could just keep saying yes to everything because I'm like, I by default don't have a reason.
179
00:15:01.770 --> 00:15:01.820
Right.
180
00:15:01.820 --> 00:15:09.840
But as soon as I, oh, I've got a new job, I can't be doing this, but then I might have my evenings back. Who knows? So yeah, Factorio could be in my future.
181
00:15:09.840 --> 00:15:26.640
Yeah. Yeah. Well, I would say if you are a programmer and you are in a place in your life where you're okay falling into a black hole for a few hours and being like, what just happened? Well, how is it one in the morning?
182
00:15:26.640 --> 00:15:30.540
You could consider trying out Factorio because it is a game.
183
00:15:30.540 --> 00:15:33.150
We are not sponsored by whomever makes Factorio.
184
00:15:33.150 --> 00:15:33.260
No, no, we're not.
185
00:15:33.260 --> 00:15:34.700
I can't even remember who it is, but we're not sponsored.
186
00:15:34.700 --> 00:15:37.380
This is my own personal opinion on what games are fun.
187
00:15:37.380 --> 00:15:40.420
It's purely a fun game.
188
00:15:40.420 --> 00:15:41.500
Yeah.
189
00:15:41.500 --> 00:15:42.580
Yeah.
190
00:15:42.580 --> 00:15:45.610
What other games are you playing at the moment while we're here?
191
00:15:45.610 --> 00:15:46.500
Yeah.
192
00:15:46.500 --> 00:15:51.520
I had been doing Baldur's Gate 3. Because you know, it's just a fantastic game.
193
00:15:51.520 --> 00:15:51.640
Right.
194
00:15:51.640 --> 00:15:52.420
Yep.
195
00:15:52.420 --> 00:15:53.100
Well...
196
00:15:53.100 --> 00:16:05.720
I actually, this is probably going to wind up being another episode for us at some point in the future, but I have already decided that I am not going to upgrade to Windows 11 on my gaming PC.
197
00:16:05.720 --> 00:16:10.150
And I am going to install Ubuntu and, probably Ubuntu.
198
00:16:10.150 --> 00:16:10.600
Ooh.
199
00:16:10.600 --> 00:16:12.320
I haven't necessarily picked a distribution yet, but I'm going to, yeah.
200
00:16:12.320 --> 00:16:14.220
But some flavor of Linux. Okay.
201
00:16:14.220 --> 00:16:27.720
Some flavour of Linux, and I am going to start using Linux for my gaming PC. And I expect that most of the games that I want to play will work.
202
00:16:27.720 --> 00:16:36.210
There might be a little bit of troubleshooting here and there. My son has also done this. He, in fact, sort of led the way on this. And I was initially very sceptical. I'm like, really?
203
00:16:36.210 --> 00:16:36.560
Yeah.
204
00:16:36.560 --> 00:16:54.140
And he's had some good luck with it. And I'm like, you know what? That is better. So I'm switching. And if that means that there's some game at some point in the future that I really want to play that I can't get to work on Linux, well, then I will decide at that point in time whether it's worth my time to figure out how to get it to run.
205
00:16:54.140 --> 00:16:58.960
Interesting. Well, we'll definitely look forward to you giving us a trip report from that point of view.
206
00:16:58.960 --> 00:17:08.080
I mean, I predominantly have used Linux and all of my experience on Factorio was in fact on Linux. So that has worked for me.
207
00:17:08.080 --> 00:17:08.480
Yeah.
208
00:17:08.480 --> 00:17:09.280
Yeah.
209
00:17:09.280 --> 00:17:17.160
But then when my kids started playing Overwatch 2 and Marvel Rivals, that's when I...
210
00:17:17.160 --> 00:17:17.160
Yeah.
211
00:17:17.160 --> 00:17:36.540
finally acquiesced and decided to, in order to join them, I would need to use Windows. So I installed Windows. And then I've been using it for video editing, which is another thing that I have been unable to get Linux to be as good, even though I have a package that works on Linux. It works about as well on Linux as you'd imagine,
212
00:17:36.540 --> 00:17:47.010
Where they say, well, you're not on a supported particular variant of Linux. I'm like, well, what is supported? And they named a distribution of Linux that I have literally never, ever heard of.
213
00:17:47.010 --> 00:17:47.040
Mm-hmm.
214
00:17:47.040 --> 00:17:54.230
And it turns out it's just a distribution that's just for running this package. So I'm like, okay, no, I'm not using your bespoke version of Linux.
215
00:17:54.230 --> 00:17:54.320
Yeah. Okay.
216
00:17:54.320 --> 00:17:55.640
I'm using like a normal one.
217
00:17:55.640 --> 00:17:55.780
Right.
218
00:17:55.780 --> 00:17:56.440
Thank you.
219
00:17:56.440 --> 00:17:57.280
Yeah.
220
00:17:57.280 --> 00:18:10.380
So, you know, I get it. It's a more, you know, it's a difficult support burden and there are things to do with, you know, codecs and there's things to do with, you know, proprietary closed source stuff that's harder to get on Linux, whatever.
221
00:18:10.380 --> 00:18:10.700
Yeah.
222
00:18:10.700 --> 00:18:11.340
Yeah.
223
00:18:11.340 --> 00:18:27.460
But yeah, I by and large live in the Linux world. And I don't know how people can use Windows. I know this is not what this episode is about, but oh my golly, everything about Windows has been frustrating the heck out of me.
224
00:18:27.460 --> 00:18:49.780
Like the unhideable, sorry, non-configurable start bar that keeps popping up every time I dare put my mouse anywhere near the bottom of the screen, as I've got it auto-hidden to try and get the screen real estate back, to being upsold various Microsoft-related things like logging into their Microsoft Cloud, whatever it is, or, you know, hey, you're not backing anything up.
225
00:18:49.780 --> 00:18:49.820
Yeah.
226
00:18:49.820 --> 00:18:54.750
I'm like, yes, I know. There is literally nothing on this computer that I care about. I don't want to back anything up.
227
00:18:54.750 --> 00:18:54.840
Right.
228
00:18:54.840 --> 00:19:06.080
Oh, but you haven't backed up in this long. Again, with the stop telling me, I don't care. And then every now and then I reboot. And for reasons that I don't understand, I go through some part of the, you know, beginning setup again.
229
00:19:06.080 --> 00:19:13.600
And the only thing I've got to not sign into something is to skip for now. And I'm like, no, skip forever, go away.
230
00:19:13.600 --> 00:19:14.200
Right, right. Yep, yep.
231
00:19:14.200 --> 00:19:18.220
And it's... everything about it feels utterly frustrating.
232
00:19:18.220 --> 00:19:19.920
Yeah. It's pretty gross.
233
00:19:19.920 --> 00:19:26.070
And especially considering that I'm literally only using it as a gaming platform. I really don't need any of that.
234
00:19:26.070 --> 00:19:26.800
Yeah. [Dog barks]
235
00:19:26.800 --> 00:19:28.720
I don't need a single bit of it.
236
00:19:28.720 --> 00:19:29.360
Yeah. [Dog barks again]
237
00:19:29.360 --> 00:19:40.340
So I am planning on making the switch probably over Thanksgiving when I'll have a few days off and I can just kind of wipe the machine and start over again.
238
00:19:40.340 --> 00:19:48.420
Now people will work out when we're recording. Oh no. Now people know that we don't do these live.
239
00:19:48.420 --> 00:19:48.740
Well,
240
00:19:48.740 --> 00:19:49.500
I've thought about that.
241
00:19:49.500 --> 00:19:49.540
Yeah.
242
00:19:49.540 --> 00:19:53.060
We could do a live one sometime. That might be fun.
243
00:19:53.060 --> 00:19:54.640
Or a live-ish. Now I'm all up with the video editing.
244
00:19:54.640 --> 00:19:54.820
I mean, we could do a live one.
245
00:19:54.820 --> 00:19:54.880
I don't know.
246
00:19:54.880 --> 00:20:00.200
We could even do a video one, but then that would mean that, you know, actually I'm looking at your backdrop right now and you'd be fine.
247
00:20:00.200 --> 00:20:00.280
Yeah.
248
00:20:00.280 --> 00:20:06.570
You've got a great sort of Zoom background, whereas mine's a catastrophe, but I've just gone with it.
249
00:20:06.570 --> 00:20:07.980
I think yours works pretty well.
250
00:20:07.980 --> 00:20:10.680
So we could try that sometime, I guess.
251
00:20:10.680 --> 00:20:11.560
I'd be down for that.
252
00:20:11.560 --> 00:20:23.800
Yeah. All right. We can certainly think about doing that sometime. But yeah, we're recording this actually on Halloween, which is one of the reasons why I've got to go pick the kids up, because I've then got to get back in time to hand out candy to people, or maybe not.
253
00:20:23.800 --> 00:20:24.120
Right.
254
00:20:24.120 --> 00:20:26.200
Just throw it at them. You don't need to hand it.
255
00:20:26.200 --> 00:20:37.260
Well, there's been a lot of political activity in this area. I've been wondering whether I should be carrying my green card with me, which is a very weird feeling.
256
00:20:37.260 --> 00:20:42.090
And I don't want to go politics on this, but it's like, oh, maybe I'll have to.
257
00:20:42.090 --> 00:20:42.420
That is weird.
258
00:20:42.420 --> 00:20:43.660
Yeah.
259
00:20:43.660 --> 00:20:44.420
Yeah.
260
00:20:44.420 --> 00:20:48.980
That's a downer. Let's talk about something nice in the last few minutes before I have to go.
261
00:20:48.980 --> 00:21:00.640
Well, I am definitely going to report back on my experiences switching over to Linux. And I expect it will be mostly smooth. There are a few games that are natively supported on Linux.
262
00:21:00.640 --> 00:21:01.980
And I think Factorio actually might be one of them.
263
00:21:01.980 --> 00:21:03.280
I think it is. Yes, it is.
264
00:21:03.280 --> 00:21:03.620
Yeah.
265
00:21:03.620 --> 00:21:11.720
But I know that the Steam Deck is based on at least some... there's a Linux kernel in there somewhere, if I recall correctly.
266
00:21:11.720 --> 00:21:13.160
I think so.
267
00:21:13.160 --> 00:21:23.100
And so Steam kind of has this incentive of making sure that games are at least remotely compatible with that. And they have this, I think it's Proton is the name of it.
268
00:21:23.100 --> 00:21:24.140
Maybe I'm getting that name wrong.
269
00:21:24.140 --> 00:21:30.840
Yeah, that brings, I think that brings about that sort of like, I think it's either a port or based on Wine at some point.
270
00:21:30.840 --> 00:21:31.550
Wine. Yeah.
271
00:21:31.550 --> 00:21:31.900
Yeah.
272
00:21:31.900 --> 00:21:44.060
And Steam has, at least with Steam games anyway, has a rating, if I understand this correctly, of how compatible they are with Proton. And for the Platinum or Gold games, they kind of expect that it's just going to work, right?
273
00:21:44.060 --> 00:21:46.560
It just works. Yeah.
274
00:21:46.560 --> 00:21:53.720
So, if that means that I'm just sticking to those types of games... The problem is there's too many games to play anyway, right?
275
00:21:53.720 --> 00:21:53.720
Right.
276
00:21:53.720 --> 00:22:07.600
It's the tyranny of choice, right? I feel like there's a somewhat famous psychological concept that's just like people are miserable when they have too much choice, right?
277
00:22:07.600 --> 00:22:08.300
Yeah.
278
00:22:08.300 --> 00:22:19.580
Trying to remember that... it's probably the tyranny of choice or something like that. But in any case, there's too many games. There's too many games to play. And if I have to just filter, what's Platinum, Gold on Proton.
279
00:22:19.580 --> 00:22:20.120
Okay. These are the games I'm going to consider buying in the Steam sale.
280
00:22:20.120 --> 00:22:22.760
Oh, that might actually be a boon. Yeah, I see.
281
00:22:22.760 --> 00:22:30.160
Great. Now that'll help me. And I won't be sitting there, when the Steam sale comes along, going like, there's so many games that I want to play.
282
00:22:30.160 --> 00:22:30.700
Yeah.
283
00:22:30.700 --> 00:22:33.000
How do I pick which I'm going to buy? Yeah.
284
00:22:33.000 --> 00:22:38.560
That's fair. Yeah, anything to reduce the number of them might actually be working in your favour.
285
00:22:38.560 --> 00:22:43.900
Right. I mean, I wouldn't complain if it means I don't have to deal with stupid Windows pop-ups. I gladly welcome it.
286
00:22:43.900 --> 00:22:49.420
Right, that is definitely worth doing for that reason alone.
287
00:22:49.420 --> 00:22:50.120
Yeah.
288
00:22:50.120 --> 00:22:55.560
Well, it looks like it's going to be quite a short episode today, which is good for editor Matt in the future. [Thanks past Matt]
289
00:22:55.560 --> 00:22:56.480
Yes. Right.
290
00:22:56.480 --> 00:22:58.840
So lucky him, although he's gotten very lazy recently.
291
00:22:58.840 --> 00:23:05.840
So apologies for all the ums and uhs and dog barks in all of the last few episodes that have gone out. But I like to think that it's charming.
292
00:23:05.840 --> 00:23:08.340
There's charm. You have some charm.
293
00:23:08.340 --> 00:23:10.480
There's something in it. Yeah.
294
00:23:10.480 --> 00:23:11.990
Some amount of charm.
295
00:23:11.990 --> 00:23:19.820
Fabulous, my friend. Well, I look forward to hearing your trip report about gaming on Linux some future episode.
296
00:23:19.820 --> 00:23:20.700
Some future episode.
297
00:23:20.700 --> 00:23:24.150
I've got some ideas up my sleeve as well for some cool things.
298
00:23:24.150 --> 00:23:24.440
Okay.
299
00:23:24.440 --> 00:23:36.500
So again, you know, we're totally abusing our poor audience. Well, I guess it's not abuse. They chose to come here. They've chosen to stay being here. And the kind of things we talk about, hopefully, are the things they're interested in.
300
00:23:36.500 --> 00:23:37.270
We'll find out, I guess.
301
00:23:37.270 --> 00:23:37.580
Yeah, we will.
302
00:23:37.580 --> 00:23:43.290
All right. I'll see you next time.
303
00:23:43.290 --> 00:23:51.550
Until next time.
304
00:23:51.550 --> 00:23:54.550
Take care mate. Bye.