Playing factorio gave me the idea of pursuing software engineering. After 3 years as a Software engineer, I finally reached my goal, which is to get better at Factorio.
This is actually why I struggle with factory builder games. I'm drawn to them because they're like programming, but then I stop when it starts to feel too much like my actual job
I was playing Oxygen Not Included a couple months ago and this is exactly what stopped me from continuing even though I was addicted. Keeping alive all my duplicants while optimizing every aspect started to feel like a job and became stressful lol
If you really want to understand the sickness that is factorio, one of the recent changelog notes for the game mentioned the need to up the max save file time played from 2 ish years because someone hit that number awhile back and overflowed some variables, causing their save game to essentially be paused. The devs then decided to do the logical thing and increase the possible save file time played to over 2 million years. The factory must grow.
As I said in another comment, please consider carefully about this - especially if you have real life responsibilities like eating and sleeping! Half jokes aside, I'm happy to hear that I'm making an impact in the Factorio AND software engineering community. Thank you for commenting!!
Factorio is seriously fun, but I found it a bit limiting that there is a clear "best" way to do many things, just by figuring out the ratios of production and consumption. I enjoy the constrained freedom of the Zachtronics games even more, and have finished SpaceChem and started TIS-100 and Shenzhen IO so far. Kerbal Space Program is also a ton of fun, though it lacks consistent goals and challenges (I find many of the procedural contracts to be soulless) - but you can set your own or accept those set by others to infinity.
@@galfisk i mean sure there is the "best" way, but there are so many ways of achieving that "best" way. personally i like making my production into fractions of 900, since thats the normal belt speed per minute
1. The style and way this is done, is perfect. I wouldn't change a thing. 2. Giving me actual keywords I can put on my resume from hours of game time is AMAZING. More of this please! 3. This video also helps me better understand what careers would connect well with my gaming interests AND lets me justify my interests in gaming and translate them to real world use cases!! This is an INCREDIBLE thing you're doing, please do not stop!
If you build city blocks, you’re heavily into object oriented languages. If you build main bus, you code procedurally. If you build spaghetti, you code in perl.
@@angeldude101 - functional and procedural are sortof two sides of the same coin in my opinion. But I think a functional programmer would lean slightly more towards city blocks, or at least dedicating certain areas of the base to certain things. A true Object oriented developer who understands things like super classes and inheritance might lean towards more generic blocks (mining block, chemical block) that can fit multiple needs while functional programming would be more specific (electric motor block, light oil block, etc).
@@programmer437 Functional programming is largely about composing small pieces into larger blocks. This sounds more like creating blueprints for each individual recipe and then plugging the output of one directly into another before blueprinting the whole thing as another block.
One thing that's worth noting: a lot of these shared terms actually come from a third, much older discipline called industrial engineering. Which is pretty much playing Factorio for real. Say you're running a textile business in the early industrial revolution. You work with linen, so you buy flax, you have to break it down into fibres, you have to spin those fibers into thread, you have to run that thread through a loom to make fabric, and you need to bundle that fabric up into bolts to be sold. And to make things complicated, you also make bedsheets and tablecloths, so you also do some sewing using thread and fabric to make your sheets and tablecloths. (No idea if these were available off the shelf in those days, I know clothing generally wasn't, but this is just to make a point. Ok, so you've got a facility that produces thread and fabric. How many spinning jennies do you need? How many powered looms? What kind of steam engine do you need to run all that? And because the steam engine is noisy and disrupts the people who are sewing your sheets and tablecloths, you have them in a different facility - how often do you need to cart a shipment from your textile factory to your sewing people. The only facility available for this was across town, did you decide to transport your stuff all the way across town, or just pay some folks living nearby to make product for you in their own homes? If you did the latter, how are you managing your deliveries of materials and picking up of product? These are literal business decisions that have had to be made pretty much since the advent of the factory in its earliest form, and have been studied by actual engineers for a similar length of time. I still have my notes from that class!
You could compare Factorio to pretty much any process that humans do, some which have existed for thousands of years. For example, farming. People have been trying to optimize farming since the beginning of time. More food = good. But it's not that simple, it requires a bunch of little details and other smaller tasks to do. Someone could probably do a 1 hour video comparing all the similarities with Factorio and farming. Also there have been plenty of games before Factorio which are essentially the same thing. Off the top of my head Sim City and Roller Coaster Tycoon. At the end of the day it's just management. I think it's fun that people are comparing Factorio to software engineering but at the same time some people might be taking this too seriously.. the reality is learning Factorio doesn't make you a software engineer. There are a ton of other skills required to be a successful engineer.
Totally agree. The link I see from my background for example is with project management schedule management. When to start what task with how many resources that overall project duration is minimized while maximizing finishing date predictability
I'm in Operations Management and it's made me such a good Factorio player. Everyday is just allocating resources and labor to certain tasks to produce X amount of finished goods in X amount of time. Code tracing is a term I've never used but it's a daily currency in manufacturing. Root cause analysis, traceability, reducing bottlenecks, law of the minimum, etc.
Okay so first, I learned what it's like to play Factorio with friends. Then I learned how NOT to play Factorio with friends (by learning what it's really like). But now I'm learning that playing Factorio will make me a software engineer? Incredible, this truly is one of the games of all time.
I played factorio like a mad man, then 10 years later I dropped my healthcare career to go back to uni and get a computer science bachelors degree. That itch is eternal.
@@violatorut2003 Before intersection - chain signal. After intersection - regular signal. Since chain signals combine with regular signals to create single blocks (they are separate to the game but they function as one, so same thing) make sure that after every regular signal there's a space for the largest train you expect to travel through it (so that it's ass won't take space on block before, potentially causing dead lock on intersection).
Trains are the great divider in my experience. Up until them it's a lego set, mash it together and it works. Then you dip your toe into using train lines. You've been on trains, they just trundle along. You've balanced conveyors all day long, how hard can trains be? And BOOM, completely new puzzle. Completely new puzzle, with so few parts, yet so much fun to solve!
I actually finished my psych programs and practiced for a while (disabled now, meh). Then I got interested in software for the fun, and now I'm about to download factorio. RIP
Do you scrap the whole thing and start again in software engineering? I’m currently learning Factorio and find myself destroying my factories and systems because I “good enough”’d too many times and now everything is clogged 🥲
@TonyZhu (If something, I'd personally recommend just playing jokes straight without resorting to self depreciation. At least not every time. Segways are efficient for being shaped in traffic and "your mom" will never become unfunny. You can even ask from the greatest technician that's ever lived!)
หลายเดือนก่อน
(If something, I'd personally recommend just playing jokes straight without resorting to self depreciation. At least not every time. Segways are efficient for being shaped in traffic and "your mom" will never become unfunny. You can even ask from the greatest technician that's ever lived!)
I was thinking about that the other day. It's completely true, but not just for software engineers; it's how any engineering on a "high level" should be done. Everything in production (both in software and in a factory) is viewable as a square with something that goes in and something that goes out. Once you understand that you can write the code in between, design a production machine, set the controller... with something going in and something going out.
I came to learn a little about software engineering, I stayed to figure out who the hell has been talking to my mom on Facebook. This was highly entertaining, good work.
"I know that this is cringe" This is what TH-cam supposed to be. You making videos that you like and share it with others that also might like. Keep making videos man! I love the content!
Man really appreciate it! It's really heartwarming to read comments like this, thank you!! Seeing all the positive responses really make me want to double down on this :)
Back in school, for my final science exam, i had a question on how a nuclear reactor works, I didnt study that part, It was an 8 mark question out of a 60 mark paper, I wrote down how a reactor works in factorio, I got 6 marks out of 8
@@sergemarlon in Factorio nuclear reactor burns uranium fuel, producing a lot of heat. Heat is then used to turn water into 500-degree-hot steam. Steam is then fed into turbines to generate electricity.
And here I thought you would be talking about thinking in loops, dependencies, iterations, redundancies and all and foremost about Factorio's bot networks (requester chests are like events that are firing and calling robots that act like methods) and circuit networks. The latter are actually exactly like code one you use things like decider combinators. Train networks is also something I expected you to talk about.
I love how unhinged yet super solidly structured this video is As someone who loves factorio and also studies computer science, I relate to this and love this explanation
i was playing Factorio with mods (krastorio, space exploration) and ow boi, the systems get so bananas that i have to play for one hour just to rediscover what i was doing haha
@@owholypwner3548 I modularized my Nullius base with trains, so it’s easier to keep some things in mind, but building the whole factory after physics science packs took a long time, with all the intermediates, so I stopped doing it
The chart at 11:40 could've been: 1. Vertical scaling 2. Horizontal scaling 3. Optimization 3 is using mostly the same resources but somewhat modified to increase output. Speed module's effect is just waaaaaay more quantifiable benefit than what one can realistically expect out of most optimization. Great video though.
I'm a Software Engineer working as DevOps. I just noticed my last Factorio game is completely containerized and I made a Kubernetes control plane with train logic.
I'm a SE who was emotionally stunted by my parents in early childhood, and I need another video of you explaining how a monolithic program, relates to Factorio, and how they both enable you to talk to my mom.
Excellent video, this was brilliant! One thing I’ve always noticed is when looking at CPU Architecture under a microscope, it looks like an extremely optimized and monumental Factorio plant. If in your next video you could include things like buses transporting data, smelters caching data, Assemblers being Logic, and so on it would make for a highly interesting video in my opinion. Great stuff!
I’ve been trying to voice this to my friends for years that never give this game a shot. But I could not do it with this Intellectual prowess. Hopefully sharing this video with them will show them the magic for inspiration.
I am extremely pleased to hear this lol. You have no idea how many (literal) years I've spent thinking about this and finally have found the time and motivation to put this video together - glad to hear I could provide some catharsis to you as well!!
@@-sleepy- no, that it mimics many of the concepts used networking and circuitry as he describes here. Also tying straight in to your motherboard provides much more broadband to allow higher throughputs than through a remote mounted device running through a sata cable. General things of that nature
As a CS and IT person with a few decades of experience, your vid was accurate, insightful, fantastically presented and pretty damm funny. Whatever your 2nd topic is, DO IT. Enjoy your well earned and deserved new subscription.
7:30ish in on readability: YES!.. Ive been saying this to agency after agency for years. Literally the milliseconds in performance you gain from making any maintained code less readable is just going to screw you later when that code needs to be updated bc now that everythings been oddly tucked together or just generally obfuscated in some way, you'll need to go back through all of this 'optimized' code and basically make it readable again just to complete the update. TIME WASTED in the end so.. learn to think ahead and always lean towards readable code!
+1000 I almost sent this to my boss. Best explanation for readability. Some people just think that saving 5$ on aws bill is way better than hours wasted in debugging and understanding the mess later.
I can’t remember who it was attributed to, but i once read “debugging code is more difficult than writing code. if you are always as clever as possible when writing your code, by definition you are not smart enough to debug it”
this was actually the best video I've watched in a while. perfect balance between entertainment and learning. I'm definitely interested in another video. love your vibe, literally nothing in this video that I found to be uninteresting or boring. I'm not a software engineer but I always loves games like factorio that allow for micro management and making things run as efficiently as possible, never did I realize those games had a semblance with software engineering. you might of sparked a inspiration in me.
This video is a masterpiece of art. You have so completely compared the two subjects into identicality that it has bridged gaps that were already obvious into deep rooted bonds of nuance around each corner. Your shit was funny and engaging from the very first 15 seconds and you kept that energy going for the entire 21 minutes. Your channel is about to explode in popularity, I hope you're ready for it, because you just won the internet. I applaud you.
I don’t code or play that game but sat through the whole video cuz I found it’s interesting and your presentation appealing. When I got to the end of the video and you were saying you were unsure if you’d make a the second video I thought to my self “well if I’m seeing this, it must have gotten a lot of views and gotten picked up by the algorithm” Lo and behold it’s got a half a million views. Good job 👍😮🎉
As someone who has spent of lot of time playing factorio and generally doesn't know what to do with their life this just motivated me to go down the route of software engineering, Thank you, can't wait to see the next video
Best of luck!!! I love it when gamers find purpose in life :D Also maybe you can consider emsy/computer engineering! It's more in line with such games than even software engg.
i was dissatisfied with work in different sectors and companies for a decade, then had no job for almost a decade. someday i started playing factorio. now im a software engineer. real story. totally not far fedged and simplified cause and effects. ;)
I had a kind of similar experience as a kid with the old Sierra citybuilder games like Pharaoh and Caesar 3. Only realized it after I studied software engineering for a couple of years. Parents, let your kids play.
One of my former coworkers used his factorio game to get a job as a warehouse planner during his interview. As a player I would love to here your take on combinators and such. I find they frustrating at first but after a thousand hours, they are indispensable.
Man that’s actually awesome to hear that (1) factorio helped someone get a job and (2) the interviewer was cool enough to understand / “get it.” I was actually looking into combinators during the creation of this vid but they still terrify me and I have much to learn. Will definitely give it another look now that you’ve mentioned it!!
If factorio belts are your software bus, then circuit networks are where software moves into hardware. The core idea is that you are implementing *sensors* (both binary and counters) and transforming them into I/O signals, and they are effectively used as relays into other areas of your 'factory/software' bus. If circuit networks are hardware signals, then it follows that combinators are effectively hardware drivers, the 'black boxes' of software engineering. It helps me to move off the analogy from web/cloud-based software industry (where CPUs are the main hardware involved), and into an area with greater hardware contribution - Access interlock systems, reader devices (barcode, QR, RFID), sensing devices (thermocouples, pressure sensors, pizeoelectric sensors, Hall effect sensors), signal/protocol converters (USBRS232GPIOEthernet), hardware relays/switches, circuit breakers/fuses/alarm systems, human interface devices (buttons, keypads, keyboards, mouse) and robotics. Congrats, you are closer to real engineering where automation moves physical things in real life! :D
@@TonyZhu If you want to check some combinators shenanigans you might check DoshDoshington youtube channel and his "Welcome to Factorio City" Or "Building Circuit Abominations in Factorio" videos.
I'm two months late to the party, but i read this comment right as he said, "heroin just wasn't addictive enough." The pair together, chef's kiss. I ACTUALLY laughed out loud.
I'm in my first semester of college, and I have to write a research paper that we work on for the entirety of the semester. This video gave me the inspiration to research how video games can be used to teach engineering principles in collegiate level programs, as well as discuss how building a video game can be used to teach multiple principles of engineering to students. I'm definitely using this video as one of my more "fun" sources. Thanks for the informative and entertaining video!
As a super nerd that sucked at school, who is teaching myself software engineering to stop getting paid hourly as a onsite IT guy... This video was hilariously entertaining, and suprisingly educational. Please do more. You did a very good job at explaining these concepts, in an entertaining yet educational manner. Future content doesn't necessarily have to be a videogame analogy. I'd just love to hear you talk about comp sci concepts more. I feel like I'd pick up some good info whilst also being entertained. (I'm 22 btw, not a boomer, so like, I for real mean it lol. You caught my age group as an audience here)
I loved this format, please don't change it. You've blown me away with the quality that you put out compared to your subscriber count and the fact that I've never heard of you before. As someone who enjoys messing with and building programs for fun, I understood how much effort you put into making your analogies digestible by everyone. Watching this I got some junferno vibes but you seemed to keep this much calmer and focused which was a format that I loved as well. Please keep up the great videos and I'd love to see a second follow up video. I also plan to get into factorio as soon as I figure out how to not worry about that whole "eating and sleeping" thing.
As a software engineer, I don't know why I haven't known about factorio until just a month ago. I just fell in love almost immediately, to the point that I spent hours only in the tutorial, just to optimize everything before achieving the actual goal 😂It is the perfect game for the field because first and foremost, it is a game, so it washes the stress away. Second, I still use the same type of mental process when approaching a certain task. Planning and picturing how everything would run before placing all the components, making it more efficient and easier to upgrade later on. If I'm being honest here.. I feel like the game made me better at work. I think it has something to do with keeping the mental exercise going even at home playing a game. It makes me think like a software engineer without tiring or stressing me out like work does.
you think optimising in tutorial is nice.. wait till you go full beacon setup and want to have setups that take a full blue belt and output a fully compressed blue belt... It's like programming golf, or writing a haiku
You can also discuss: deadlocks (trains); load shedding (using combinators that automatically cut power to the main factory to prevent a Power Death Spiral)
As a software engineer of more than 20 years and a factorio enjoyer, this was great. It's amazing how fitting the Factorio analogy is... The bigger your code base, the more and stronger, the bugs (biters) are that come attack your base, causing all kinds of other slow downs and interruptions. Also, if you want to have your mind blown, look up some of the older factorio vids where people build fully functional displays that actually encode/decode video and play it in game - Factorio is Turing Complete and an incredible video game.
I'm a graduate student, and I'm in the middle of writing a research proposal about using Factorio to teach Industrial Engineering. This video has brought up some perspectives i didn't consider. Thank you!
@@tuftela The proposal was just for an assignment, and that got good marks. I'm currently doing personal research on knowledge transfer with recreational video games, and might be submitting an abstract for a conference soon 🤞
@@ATwiz02 That is so cool! Thank you so much for answering even though it's been so long since your original comment. Wishing you the very best of luck with your abstract as well!
Okay I cook for a ton of software engineers at “insert tech company here” and you just kinda made them seem so much more relatable. I have asked them what they do for work and for the life of me I couldn’t understand.
Haha honestly having eaten for two years at a "insert tech company here" cafeteria, I can almost guarantee you that your job is both more important and way more noble! Also we don't understand what we do either.
One thing I've always liked with Factorio (which you didn't quite touch on here) is modularity and interfaces. Ideally (IMO) you are building your factory such that the inner-workings of the upstream source(s) do not matter; you simply need to know that you'll be receiving iron plates (and that your smelters, however they are configured, will be outputting iron plates). Later, when you build more things that require iron plates, you can reconfigure/scale/move/etc. your smelting; but as long as you keep a stream going to the original consumer of iron plates, it does not matter that the source has changed. To me this is like an API changing how it works internally without changing what it returns for the same request. Nice video man, enjoyed it!
Stylistically....don't change a thing, I was absolutely hooked all the way through and LOVE this format. (Thank you for the "attention" videos during story time 6:24 ) As someone about to embark on their software engineering journey, I hope you continue to make this kind of content!
there are two wolves inside all of us: "I don't need it to look pretty, I just need it to work" followed by "omg why is this a mess I have to make this the most beautiful thing ever or my brain will explode"
I'm a software guy and I have a buddy who is interesting in the trade and always picking my brain on it. He sent me this video in his excitement of drawing parallels into what we do everyday into a game he knows fairly well. This effort to bridge technological patterns (in this case dev) with more widely familiar concepts such as gaming is great. I enjoyed your video and it was doubly good in that you made my friends brain tick just a bit faster. Really good job man.
This is fantastic. I think you did an excellent job of explaining incredibly complex concepts in a way that even those of us who were new to the concepts could understand!
I was confused when you told that story that I didn’t see the cutting soap video first. But when I saw it and red the subtitles I laughed SO HARD. You’re probably becoming one of those TH-camrs who rarely upload but when you upload it’s something unique and a lot of fun to watch.
Watching this, I was expecting some big youtuber, not 600 views. This video has quite an impressive quality, keep up the good work, I really hope you get the attention you deserve!
Lately I have been struggeling with my Job leading to getting lost in a boreout and depressive episodes I found myself playing Factory Games like Satisfactory and Factorio a LOT to keep my head busy. Last week I decided to lean a lot more into coding as this was always some kind of my dream profession as I LOVE solving problems while being kind of creative (...you see where this is going to, right?). This video just hit me so mfking hard and gave me a WEIRD feeling of: you're doing the right thing, which was something I REALLY needed after a dark time. So I just wanna say thank you, Tony. I never heard of you before that video. It was totally random.
I think it's really worth mentioning trains as well. At the end of the video, you mentioned the differences between monolithic and microservice based architectures, and I think the best the to show that difference/similarity is in trains. If you consider your entire factorio base as a distributed service, trains exactly represent packet flow and more importantly packet delay and packet loss if you get a biter attack. If you consider your factorio base as a single monolith, then trains turn into interfaces. The train doesn't care how you actually insert the cargo, and how you process the items at the station. All it cares about is that it needs to drop of Item X and wants to go pick up item Y. This represents component design and individual classes and functions as well.
Yes 100%!! You've articulated the idea very well and this is most definitely something I already had in mind for video #2. As I start to read these comments though, I think there's a lot more I wouldn't have thought of otherwise so I really appreciate people like you commenting this stuff!!
Thank you for this. Obviously im addicted to Factorio and always felt so dumb when it comes to computers. Your casual approach to teaching is SO helpful when setting up an emotional openness to new knowledge. I understood ever part of this video and had a GREAT time watching it. Amazing job!
I think you need more on the spaghetti. I think it's worth getting into maintenance and refactoring and the trade off between living with your past decisions, often by making the mess a lil worse or taking the time to do a big cleanup. And also how a layout that works fine for a small amount of things at a small scale just inevitably becomes a mess as you add to it.
Factorio helped me clarify the two different methods of improving throughput. Optimization (gotta have perfect ratios) and scaling (gotta get bigger). You can, of course, do both, but I prefer the big corporation method (why be efficient when you can be inefficient at scale?) Edit: This is not meant to imply that big corporations don't care about optimization. It's more of a commentary that they have the resources to be able to not care about it quite so much.
Yeah that's like my big worlds. I am probably intermediate at circuit networks at best, but I'm pretty good at scaling and automation... I don't have the skills like some guys out there to maximize efficiency... Just make more!!! That's the fun part anyway.
The other big thing they have in common is stealing code from strangers on the internet lmao. Blueprints are basically that, right? And the crazy thing is, you can design/steal a blueprint and treat it as just a closed system that takes an input and makes an output. I'm currently working on a "coal to plastic" blueprint, which is a design that you just build, supply it with water and coal and it spits out plastic, and you don't have to care about the specifics of how inside the blueprint the coal is turned into oil and processed into exact amounts of oil byproducts, how boilers make steam for the process, how heavy oil is routed from the output back to the input, and how petroleum is mixed with more coal to make plastic. All you care about is the input and output.
This is actually a great point that I totally forgot about over the past few years lol. Had written in my script about black box processing but the idea of copy pasting functions from the internet is great, thanks for this!
I'm learning software engineering in uni right now and im a Factorio player. I was actually doing one of my biggest assignments while watching this. Ironic. Loved it.
I legit just came across this video and as someone with ADHD and needing immediate feedback with if i'm doing something correctly or having a visual way of explaining something this literally hit the nail on the head. its the sweet spot that I look for when learning something. I would love another video expanding upon this!
In manufacturing: a bottleneck is a process that holds up production somewhere in the assembly line. Sometimes a bottleneck's root cause is due to a spaghetti-like flow of materials through the facility since the layout was planned beforehand for a smaller quantity throughput. We scale up or scale down by adding or removing machines, workers and materials. When scaling up, the load on parallel processes is balanced for a steady flow of materials, and we use logic controls with sensors set limits for detecting problems. Similar to tracing, we do a root cause analysis to figure out what's holding the whole thing up. Delays all depend on our upstream suppliers, and trickle down to our downstream customers.
Instantly subscribed, not because you make me feel good about putting thousand of hours into a game, but because your video style is absurdly good, you have a good flow and get your points across with a nice sense of humor to boot. And all this by the 8th video? It's insane
HELL YES! this is genuinely creative, smart and makes me more excited to code and play factorio. Thanks for making this. Can’t wait to see what other cool creations and essays you’ll come up with.
I love that this video exists! How about a follow-up featuring Space Age content, some of the new mechanics (Fulgora scrap recycling, Gleba item spoilage) narrow the difference gap even more between SE and Factorio by requiring time-dependent and constant flowing systems! Keep up the great work!
This is really excellent. You've found a niche here, man. Funny, smart, original content, and I think there's a huge audience out there that you could capture. Please keep it up! I'm already convinced you're gonna be a big big deal.
Big thing I learned from factorio is a thing I don't remember the name of. But basically that buffers are not good, except for train unloading stations (so that it can keep your base full supplied and doesn't run out by time next train arrives). Maybe it was JIT or something? Something about producing as much as you can use and if you cannot use enough science then that means that.... The factory must grow!
For sure I find having a buffer that doubles as a mechanical mass sorter after it comes off your train lines chests is a good unit to have to get through the early game and is really good once you up grade it to use logistics bots.
You're fucking awesome bro. distilling complex or not understood information and making it understandable to the masses is literally the most important thing anybody can do. thank you.
Coming back to this video months later, this video persuaded me to study code and pursue something in the tech field, now I know basic python and CPP, and I am finally getting my degree in mechatronics and learning PLC ladder logic, thanks overall for the push I needed
As someone who has neither played factorio, nor is a software engineer, i found the video surprisingly entertaining and would be interested on seeing your take on the other video, it was a very pleasant ratio of information and humour
As someone who works in tech, though as an sys admin, and started playing Satisfactory, while also dabbling into code now and again. This was great, please do more. :)
I'm in school right now for computer science, and I've loved Factorio for years now. This is such a great analogy, and it was a really entertaining video!
This isn't just software engineering and factorio. It's the study of systems; it's used in nearly every discipline. For example: Chemisty for complex chemical reactions. Biology for reaction pathways. Economics for analysis of supply chains and such and it can become even more niche.
Not quite, since what the other disciplines study some specific system to their problems, usually they try to frame this interaction in a model already studied and proven, now software engineering and factorio for this matter, is this sort of study of the study of systems, the job is to design better ways to meet the requirements, while keeping your sanity check. A chemist, will use their knowledge on chemical reactions, modifying this reactions, adding and compounding different materials to yield better results, in control manner. A biologist, will use their knowledge on biology to change the conditions on the bio compounds and the agents to get safer and useful goods. A economist, will use their knowledge of basic geometry to put the square in the square hole on the other hand, A software engineer, will study what are the chemist, biologist, and some common sense to try to englobe all the later and put it through some none-sense it works system, on which will make it regulate itself by proven or field tested way, hopping that something doesn't goes up in flames the moment that you want to gtfo at 5pm on a friday A factorio player, will do the later willingly, on a videogame while creating the next framework to grow the factory that this time will indeed solve the other problems and be the one to use after repairing some nonsense problem caused by an edge case in their work that took their whole friday afternoon to solve
@@samu_2822when generalizing, it is possible that two categories are more like each other, than a third, but it still being possible to generalise all three. A factory is more analogous to a whole economy’s supply web, yet it is stil generalizable as a complex system along with a software system.
This is an incredible video that takes something I love(games) and connects to something I'm interested in, but know little about(software engineering). This game going to the top of my steam wishlist and you have definitely opened up the rabbit hole. Looking forward to part 2.
I've been screaming this for years, especialy when it comes to things like logistics-and supply chains' similarities with software engineering. Glad to see I'm not the only one noticing these things. Makes me think I might not be all that crazy after all.
I never understood the need for enemies as an important feature in a game that's basically an incremental, and why they don't have any important drops or collectibles, literally just there to be annoying. Until this video made me realize they could be an analogy to cybersecurity threats and attacks, and why they are important into planning out and building these defense systems. Thanks for the cool video, and subbed for the next one :)
Fun fact, the game USED TO have drops for the biters that you needed to make higher-tier items, especially player equipment. But when they decided that they didn't want to lock content for people who wanted to play peacefully, they got rid of those. Even without those drops, dealing with the biters is basically a second resource sink apart from science, which does add a layer of complexity to how you build out your systems.
I freaking love this. So spot on, and some how this actually makes some who is in the software development industry take a step back and review core concepts that we can all improve on. So cool to make these connections.
I think this is the video that's going to get me to play factorio when I never had considered it before. Its also a wonderful showcase and representation of how games can teach useful high level concepts without inducing the stress that is forcing yourself to learn new ideas and ways of thinking. It happens naturally. Wonderful editing and amazing sense of humor. Thank you for your awesome addition to the collective of human knowledge and understanding!!!
I started self teaching software development in 2018, when factorio came out specifically the blueprints/schematics really helped me get my head around interfaces and making my code a lot more modular it's a great game and has the same 'feeling' while playing as I get while writing code.
In factorio I've really come to love the sorts of things I can do with trains, and I think it fits into the whole comparison with software engineering. Because when you first start with trains it tends to be really simple, you probably have a few dedicated trains going between specific stations, only going to and from the same spot each time, probably even on separate rail lines. Then as you learn how rail signals work you can combine things into one rail line with several different trains running on it, but each train is still just going between their normal spots. And THEN you start learning more advanced stuff, like how if you have two stations with the same name trains will be able to choose which one to go to, so instead of having "Iron Mine A", "Iron Mine B", etc you can just have several stations named "Iron Mine" and your train goes to the first available one. After that you can start going into circuit conditions and making it so that stations will only accept trains when there's something to pick up, or when there's something that needs to be delivered, so that the trains move around more efficiently. Now when you want to set up a new mine, or make a new smelting array, you can just slap down the same blueprint and the trains will automatically start rolling in without you needing to set up new schedules. Wow I kinda rambled there.
Awesome video with a great sense of humor, and this was clearly inspired by great passion for both topics discussed here! Would love to see more video-essay type stuff, especially that monolithic vs. microservices thing. ❤
@@TonyZhu If you want the *_PERFECT_* game for showing SOA, I can't think of a better one than Autonauts, where you need to program cute bots to do _everything._ The catch is that the Tier 0 bots only have room for 12 instructions. (...which really puts the 'micro' in 'microservices'!) That means you have to have *LOTS* of bots--each doing only one thing--and they all have to work together. ...but don't worry; as you advance to different tiers, you can add modules to increase their capabilities, so you can, for example, have a Tier 3 bot with a 'Super Bot Brain Upgrade' that can handle 64 (32+32) instructions! Here is the trailer to give you an idea of what's ahead of you: th-cam.com/video/TtOjoEV0ooE/w-d-xo.html (The devs have also released 'Autonauts vs Piratebots', which takes the basic premise Autonauts and adds PvE, which you could use to Segway into security issues.) Cheers! P.S. You could also go the more traditional route and take a look at Screeps, where each bot needs to be programming in JS.
Man this is the best fking community ever, ya'll are too nice and so freaking wholesome
This is such a good video. Thank you!
And the game is like a decade old, but still great with DLC quality mods. Already a month on K2 + Space exploration, still half of the tech tree. :D
Great video youre gonna blow up dude keep uploading it will happen, you earned my sub
The Factory Must Grow
U da 🐐
Being a software engineer turned me into a Factorio Player
I dream to be a game dev. I think I will turn into a Factorio player when dlc is released. 😅
Dosh ooc have you had any success with talking to your fans' moms?
Huge fan btw.
Teach me how to play space exploration Dosh 🙏
Me too but only when I don't have enough jobs to fill my brain to capacity.
Being a Factorio player will have turned me into a software engineer(if I can stop playing Factorio for long enough and actually pass my exams)
Playing factorio gave me the idea of pursuing software engineering. After 3 years as a Software engineer, I finally reached my goal, which is to get better at Factorio.
😂
The factory MUST grow.
Factorio > $500K package from Netflix 😂😂
Same but with bitburner
esport is a thing, now lets make Factorio a courses too....or maybe it already did....
Factorio is like the best part of programming turned into game
Which literally makes it a crack for engineers...
You can never watch a Factorio Video in peace... everytime you find out TRUPEN WAS ALREADY HERE!
Trupen is everywhere.
He's like Big Brother who watching all factorio comiunity
@@JeyDeee89
I would like two cracks please
This is actually why I struggle with factory builder games. I'm drawn to them because they're like programming, but then I stop when it starts to feel too much like my actual job
I hate how real this is. specially when you almost every time debug the base to have good flow😂
I was playing Oxygen Not Included a couple months ago and this is exactly what stopped me from continuing even though I was addicted. Keeping alive all my duplicants while optimizing every aspect started to feel like a job and became stressful lol
Same lol, I game to relax, not to work even more
Maybe same too
If you really want to understand the sickness that is factorio, one of the recent changelog notes for the game mentioned the need to up the max save file time played from 2 ish years because someone hit that number awhile back and overflowed some variables, causing their save game to essentially be paused. The devs then decided to do the logical thing and increase the possible save file time played to over 2 million years. The factory must grow.
Good lord what a story lol, thanks for sharing
Nobody will ever need more than 2 years! 😁
Nothing has made me hope that humanity has a continuous computing ability for the next 2 million years before....
Steam says I have 16,000 hours playing Factorio. My big world is running all the time, I never shut it off.
@@toddstephenson9849ok you're closer to 2 million than I am. I think I'm gonna try your strategy.
I'm a software engineer and you just convinced me to play factorio. Not even kidding
As I said in another comment, please consider carefully about this - especially if you have real life responsibilities like eating and sleeping! Half jokes aside, I'm happy to hear that I'm making an impact in the Factorio AND software engineering community. Thank you for commenting!!
just doing your job in another format without the part where you get paid lmao
It has been 14 hours now, please consider going to the toilet and get some sleep
Factorio is seriously fun, but I found it a bit limiting that there is a clear "best" way to do many things, just by figuring out the ratios of production and consumption. I enjoy the constrained freedom of the Zachtronics games even more, and have finished SpaceChem and started TIS-100 and Shenzhen IO so far. Kerbal Space Program is also a ton of fun, though it lacks consistent goals and challenges (I find many of the procedural contracts to be soulless) - but you can set your own or accept those set by others to infinity.
@@galfisk i mean sure there is the "best" way, but there are so many ways of achieving that "best" way.
personally i like making my production into fractions of 900, since thats the normal belt speed per minute
My mom really liked this video
your mother is a really nice person
she's a nice lady
Can confirm, I am his mother and I like this video
Cap
Can confirm, I am his brother and my mother liked this video.
1. The style and way this is done, is perfect. I wouldn't change a thing. 2. Giving me actual keywords I can put on my resume from hours of game time is AMAZING. More of this please! 3. This video also helps me better understand what careers would connect well with my gaming interests AND lets me justify my interests in gaming and translate them to real world use cases!! This is an INCREDIBLE thing you're doing, please do not stop!
If you build city blocks, you’re heavily into object oriented languages. If you build main bus, you code procedurally. If you build spaghetti, you code in perl.
What style would be best suited for a functional programmer?
@@angeldude101 - functional and procedural are sortof two sides of the same coin in my opinion. But I think a functional programmer would lean slightly more towards city blocks, or at least dedicating certain areas of the base to certain things.
A true Object oriented developer who understands things like super classes and inheritance might lean towards more generic blocks (mining block, chemical block) that can fit multiple needs while functional programming would be more specific (electric motor block, light oil block, etc).
Pretty solid analogy and interesting thoughts! Definitely am thinking more about functional programming after reading these comments :)
@@programmer437 Functional programming is largely about composing small pieces into larger blocks. This sounds more like creating blueprints for each individual recipe and then plugging the output of one directly into another before blueprinting the whole thing as another block.
But the train is the main bus, or is this Rust then?
One thing that's worth noting: a lot of these shared terms actually come from a third, much older discipline called industrial engineering. Which is pretty much playing Factorio for real. Say you're running a textile business in the early industrial revolution. You work with linen, so you buy flax, you have to break it down into fibres, you have to spin those fibers into thread, you have to run that thread through a loom to make fabric, and you need to bundle that fabric up into bolts to be sold. And to make things complicated, you also make bedsheets and tablecloths, so you also do some sewing using thread and fabric to make your sheets and tablecloths. (No idea if these were available off the shelf in those days, I know clothing generally wasn't, but this is just to make a point.
Ok, so you've got a facility that produces thread and fabric. How many spinning jennies do you need? How many powered looms? What kind of steam engine do you need to run all that? And because the steam engine is noisy and disrupts the people who are sewing your sheets and tablecloths, you have them in a different facility - how often do you need to cart a shipment from your textile factory to your sewing people. The only facility available for this was across town, did you decide to transport your stuff all the way across town, or just pay some folks living nearby to make product for you in their own homes? If you did the latter, how are you managing your deliveries of materials and picking up of product?
These are literal business decisions that have had to be made pretty much since the advent of the factory in its earliest form, and have been studied by actual engineers for a similar length of time. I still have my notes from that class!
great comment, very interesting, thank you!
You could compare Factorio to pretty much any process that humans do, some which have existed for thousands of years. For example, farming. People have been trying to optimize farming since the beginning of time. More food = good. But it's not that simple, it requires a bunch of little details and other smaller tasks to do. Someone could probably do a 1 hour video comparing all the similarities with Factorio and farming.
Also there have been plenty of games before Factorio which are essentially the same thing. Off the top of my head Sim City and Roller Coaster Tycoon. At the end of the day it's just management. I think it's fun that people are comparing Factorio to software engineering but at the same time some people might be taking this too seriously.. the reality is learning Factorio doesn't make you a software engineer. There are a ton of other skills required to be a successful engineer.
Totally agree. The link I see from my background for example is with project management schedule management. When to start what task with how many resources that overall project duration is minimized while maximizing finishing date predictability
好写的评论
I'm in Operations Management and it's made me such a good Factorio player. Everyday is just allocating resources and labor to certain tasks to produce X amount of finished goods in X amount of time. Code tracing is a term I've never used but it's a daily currency in manufacturing. Root cause analysis, traceability, reducing bottlenecks, law of the minimum, etc.
Okay so first, I learned what it's like to play Factorio with friends. Then I learned how NOT to play Factorio with friends (by learning what it's really like). But now I'm learning that playing Factorio will make me a software engineer? Incredible, this truly is one of the games of all time.
Indeed, a game they will continue to speak of for at least a few weeks to come!
It's especially great in showing how software engineering works in multiplayer :P
playing factorio with friends is like constantly deploying to production without testing
The factory must grow.
The factorio must growio.
I played factorio like a mad man, then 10 years later I dropped my healthcare career to go back to uni and get a computer science bachelors degree. That itch is eternal.
I dont like how relatable that feels..... if you predict my future career path istg
Bros got some clean editing skills. This video must have taken forever.
It did lol, all I remember is blacking out and waking up 2 weeks later with those socks on and a finished video
Worth the effort
My experience in Factorio has led me to a singular conclusion: I am not fit to be a software engineer.
lol same, though this video makes me want to try again
@@birchcove8454likewise except i’ve never played it. pull me out if my brain grows too large brothers
You can be a professional software engineer and still suck at Factorio!
It’s all fine until wiring comes up
Played it with some friends. After first or second science i build myself a 4x4 belt and watched myself rotate. I couldnt comprehend it anymore.
Train signals are probably a great way to talk about mutual exclusion and deadlocks when dealing with multi-threaded programs!
There is a reason why it is called semaphore ;)
I wish he would do a video about that because that's the part I struggle with. Train signals, I mean.
@@violatorut2003 Before intersection - chain signal. After intersection - regular signal.
Since chain signals combine with regular signals to create single blocks (they are separate to the game but they function as one, so same thing) make sure that after every regular signal there's a space for the largest train you expect to travel through it (so that it's ass won't take space on block before, potentially causing dead lock on intersection).
after dealing with train signals very early and a lot, i feel like a godlike being for even understanding how city block rails work
Trains are the great divider in my experience. Up until them it's a lego set, mash it together and it works. Then you dip your toe into using train lines. You've been on trains, they just trundle along. You've balanced conveyors all day long, how hard can trains be? And BOOM, completely new puzzle. Completely new puzzle, with so few parts, yet so much fun to solve!
The your mom jokes really tied everything together, I don't know if I would've understand all of it without them, great work!
My love for factorio got me to start exploring software engineering at a really young age!
I am now a psych major.
Lmao well done, I’m glad at least one of us is actually getting their problems solved
@@TonyZhuthat’s a funny assumption you think psychologists have there shit together
@@TonyZhu It's a cardinal sin for a psychologist to diagnose themselves, it's a treasure they guide others to
@@TonyZhu I didn't think I'd end up in a medicine program :(
I actually finished my psych programs and practiced for a while (disabled now, meh). Then I got interested in software for the fun, and now I'm about to download factorio. RIP
You scale your factory, at some point something stops working, you invent a new design, you scale futher, repeat. Just like in software engineering.
Do you scrap the whole thing and start again in software engineering? I’m currently learning Factorio and find myself destroying my factories and systems because I “good enough”’d too many times and now everything is clogged 🥲
Change NOTHING to this format, it's brilliant!
The pacing, the jokes, the knowledge break-down, everything just right! *chef's kiss*
Exactly!
@@emreapaydn4064instant subbed
Agreed!
@TonyZhu (If something, I'd personally recommend just playing jokes straight without resorting to self depreciation. At least not every time. Segways are efficient for being shaped in traffic and "your mom" will never become unfunny. You can even ask from the greatest technician that's ever lived!)
(If something, I'd personally recommend just playing jokes straight without resorting to self depreciation. At least not every time. Segways are efficient for being shaped in traffic and "your mom" will never become unfunny. You can even ask from the greatest technician that's ever lived!)
I was thinking about that the other day. It's completely true, but not just for software engineers; it's how any engineering on a "high level" should be done. Everything in production (both in software and in a factory) is viewable as a square with something that goes in and something that goes out. Once you understand that you can write the code in between, design a production machine, set the controller... with something going in and something going out.
I came to learn a little about software engineering, I stayed to figure out who the hell has been talking to my mom on Facebook. This was highly entertaining, good work.
Lol great comment, thanks for the support!
"I know that this is cringe"
This is what TH-cam supposed to be. You making videos that you like and share it with others that also might like.
Keep making videos man! I love the content!
Man really appreciate it! It's really heartwarming to read comments like this, thank you!! Seeing all the positive responses really make me want to double down on this :)
you dropped this👑
Back in school, for my final science exam, i had a question on how a nuclear reactor works, I didnt study that part, It was an 8 mark question out of a 60 mark paper, I wrote down how a reactor works in factorio, I got 6 marks out of 8
I can already hear North Korea frantically writing this down.
lmao, that's amazing
Sweet! What did you write?
He probably doesn't remember what he wrote. What I want to know is how a nuclear reactor works in Factario. Anyone care to explain?
@@sergemarlon in Factorio nuclear reactor burns uranium fuel, producing a lot of heat. Heat is then used to turn water into 500-degree-hot steam. Steam is then fed into turbines to generate electricity.
And here I thought you would be talking about thinking in loops, dependencies, iterations, redundancies and all and foremost about Factorio's bot networks (requester chests are like events that are firing and calling robots that act like methods) and circuit networks. The latter are actually exactly like code one you use things like decider combinators. Train networks is also something I expected you to talk about.
The new invention that blows my mind in this video is: a funny software engineer.
he's had the luck of not being an electrical or computer engineer
Yeah seriously this is like a different angle of micheal Reeves. If this guy keeps at it and improves he could actually do really well on here.
yeah and unpretensious too
lol this is what people consider funny now days? this is just a weirdo
I love how unhinged yet super solidly structured this video is
As someone who loves factorio and also studies computer science, I relate to this and love this explanation
Imagine taking a Software Engineering class and the teacher just gives you a computer that has Factorio on it.
Highschool freshman year, and the dots are just clicking softmore year of college 👍
I will never think of software bugs the same: bad update = actual bugs destroying my furnace.
I was a video editor for 15 years. I have 600+ hours in Factorio. I am now a software developer. You are correct.
I was a developing software. Played 1k hours in Factorio after taking a break from developing software. I am now trying to edit videos. xD
@@swazgaming420 hey, do both! I do a lot of work with ffmpeg at work. Automate those video edits.
I'm so jealous there is a guy that has played Factorio 12k hours more than me
Idk man, maybe god stays in the sky because he fears he’ll be the only one to remember the sun once we all get +12k hrs in Factorio
i was playing Factorio with mods (krastorio, space exploration) and ow boi, the systems get so bananas that i have to play for one hour just to rediscover what i was doing haha
Modded players man, they're on a different level. Bob's and Angel's runs can go for an eternity
@@owholypwner3548 As a Pyanodon's mods player, ToDoList and Foreman2 are my best friends
@@owholypwner3548 I modularized my Nullius base with trains, so it’s easier to keep some things in mind, but building the whole factory after physics science packs took a long time, with all the intermediates, so I stopped doing it
The chart at 11:40 could've been:
1. Vertical scaling
2. Horizontal scaling
3. Optimization
3 is using mostly the same resources but somewhat modified to increase output.
Speed module's effect is just waaaaaay more quantifiable benefit than what one can realistically expect out of most optimization.
Great video though.
Not a cringe video. Really creative, I enjoyed the topic and the way you presented it. Pretty funny too! Good work.
Thank you for the really nice comment!! Will definitely consider working on a sequel
I'm a Software Engineer working as DevOps. I just noticed my last Factorio game is completely containerized and I made a Kubernetes control plane with train logic.
I strive to learn programming as my second language lmao
Just for your information. Grafana has a dashboard for factorio.
Could you elaborate how you recreated k8s in factories?
I'm a SE who was emotionally stunted by my parents in early childhood, and I need another video of you explaining how a monolithic program, relates to Factorio, and how they both enable you to talk to my mom.
this and yes i kinDa agRee. .
Factorio is very similar to low-level circuit design and high-level service architecture. It's not very similar to all the stuff in-between though.
fun fact, in Factrio SE stands for the Space Exploration mod if (in case some outsider randomly reads this comment)
I love Factorio. I may want to consider software engineering. Thank you for bringing this to light for me.
God I would love to see someone put 4,000 hours of Factorio on their resume.
"best i can do is 1000 hours of factorio" "your fired"
“Work or factorio, you can only have one”
Excellent video, this was brilliant! One thing I’ve always noticed is when looking at CPU Architecture under a microscope, it looks like an extremely optimized and monumental Factorio plant. If in your next video you could include things like buses transporting data, smelters caching data, Assemblers being Logic, and so on it would make for a highly interesting video in my opinion. Great stuff!
self similarity (fractals)
I’ve been trying to voice this to my friends for years that never give this game a shot. But I could not do it with this Intellectual prowess. Hopefully sharing this video with them will show them the magic for inspiration.
I am extremely pleased to hear this lol. You have no idea how many (literal) years I've spent thinking about this and finally have found the time and motivation to put this video together - glad to hear I could provide some catharsis to you as well!!
you've been trying to tell your friends that this game will make you a "software engineer"?
@@-sleepy- no, that it mimics many of the concepts used networking and circuitry as he describes here. Also tying straight in to your motherboard provides much more broadband to allow higher throughputs than through a remote mounted device running through a sata cable. General things of that nature
@@garandman34 but why does that make it a good game though?
Seems to check out, I play Factorio exactly like I code. Rarely and very poorly, but for 5 day binges every time.
As a CS and IT person with a few decades of experience, your vid was accurate, insightful, fantastically presented and pretty damm funny. Whatever your 2nd topic is, DO IT.
Enjoy your well earned and deserved new subscription.
Thank you!! This is very nice, appreciate the kind words
7:30ish in on readability: YES!.. Ive been saying this to agency after agency for years. Literally the milliseconds in performance you gain from making any maintained code less readable is just going to screw you later when that code needs to be updated bc now that everythings been oddly tucked together or just generally obfuscated in some way, you'll need to go back through all of this 'optimized' code and basically make it readable again just to complete the update. TIME WASTED in the end so.. learn to think ahead and always lean towards readable code!
One of my biggest issues with some coders. Build around maintenance. If you optimize something, stick it in a wrapper that's easy to work with.
Personally, I'm much more familiar with the issue of having to convince people that poorly optimized, unreadable code is a problem.
+1000 I almost sent this to my boss. Best explanation for readability. Some people just think that saving 5$ on aws bill is way better than hours wasted in debugging and understanding the mess later.
@@TPAKTOPsp I usually show people Indian telephone poles to give people a visual representation of what's it's like trying to maintain spaghetti code.
I can’t remember who it was attributed to, but i once read “debugging code is more difficult than writing code. if you are always as clever as possible when writing your code, by definition you are not smart enough to debug it”
Bro is so charismatic I only caught that he's wearing socks mid vid.
My eyes was on hes cool socks. Video stats ending and i realize he is cool asian guy.
My comment here was deleted. Did i say something wrong? I just make reverse socks joke :(
me too
@@SUpeREleCtRoSTaLIN my comments are being deleted all over the place, it's just youtube being youtube i guess
@@robertdracosu8115
this was actually the best video I've watched in a while. perfect balance between entertainment and learning. I'm definitely interested in another video. love your vibe, literally nothing in this video that I found to be uninteresting or boring. I'm not a software engineer but I always loves games like factorio that allow for micro management and making things run as efficiently as possible, never did I realize those games had a semblance with software engineering. you might of sparked a inspiration in me.
This video is a masterpiece of art. You have so completely compared the two subjects into identicality that it has bridged gaps that were already obvious into deep rooted bonds of nuance around each corner. Your shit was funny and engaging from the very first 15 seconds and you kept that energy going for the entire 21 minutes. Your channel is about to explode in popularity, I hope you're ready for it, because you just won the internet. I applaud you.
Called it.
well-put
Real
God idk why I didn't respond to this comment earlier but this is one of the nicest, most beautiful comments I've received! Thanks for your kind words
I don’t code or play that game but sat through the whole video cuz I found it’s interesting and your presentation appealing. When I got to the end of the video and you were saying you were unsure if you’d make a the second video I thought to my self “well if I’m seeing this, it must have gotten a lot of views and gotten picked up by the algorithm” Lo and behold it’s got a half a million views. Good job 👍😮🎉
As someone who has spent of lot of time playing factorio and generally doesn't know what to do with their life this just motivated me to go down the route of software engineering, Thank you, can't wait to see the next video
Best of luck!!! I love it when gamers find purpose in life :D Also maybe you can consider emsy/computer engineering! It's more in line with such games than even software engg.
Do it! I learned after playing factorio, if you played correctly then you already know how to program. (not kidding)
i was dissatisfied with work in different sectors and companies for a decade, then had no job for almost a decade. someday i started playing factorio. now im a software engineer. real story. totally not far fedged and simplified cause and effects. ;)
as a software engineer who doesn't know what to do with their life, this just motivated me to go down the route of factorio
I support three out of the four replies in this thread. In unrelated news I am considering starting a Factorio addiction support group.
my hat off to you sir, very fun way to break down these engineering concepts! please make more videos, the internet (and aspiring engineers) need you
I had a kind of similar experience as a kid with the old Sierra citybuilder games like Pharaoh and Caesar 3. Only realized it after I studied software engineering for a couple of years. Parents, let your kids play.
Or for those really in the loop, Zeus: Master of Olympus.
God, I’m old. 😂
They tend to
My people!
One of my former coworkers used his factorio game to get a job as a warehouse planner during his interview. As a player I would love to here your take on combinators and such. I find they frustrating at first but after a thousand hours, they are indispensable.
Man that’s actually awesome to hear that (1) factorio helped someone get a job and (2) the interviewer was cool enough to understand / “get it.”
I was actually looking into combinators during the creation of this vid but they still terrify me and I have much to learn. Will definitely give it another look now that you’ve mentioned it!!
@@TonyZhu DoshDoshington made a 3 minute video followed by 46 minute insanity bonus about combinators
If factorio belts are your software bus, then circuit networks are where software moves into hardware. The core idea is that you are implementing *sensors* (both binary and counters) and transforming them into I/O signals, and they are effectively used as relays into other areas of your 'factory/software' bus.
If circuit networks are hardware signals, then it follows that combinators are effectively hardware drivers, the 'black boxes' of software engineering.
It helps me to move off the analogy from web/cloud-based software industry (where CPUs are the main hardware involved), and into an area with greater hardware contribution - Access interlock systems, reader devices (barcode, QR, RFID), sensing devices (thermocouples, pressure sensors, pizeoelectric sensors, Hall effect sensors), signal/protocol converters (USBRS232GPIOEthernet), hardware relays/switches, circuit breakers/fuses/alarm systems, human interface devices (buttons, keypads, keyboards, mouse) and robotics. Congrats, you are closer to real engineering where automation moves physical things in real life! :D
@@TonyZhu , If i remeber right he got the job with fedex. And to see a truly amazing use of combinators look up " JOSIF " or self expanding factory :)
@@TonyZhu If you want to check some combinators shenanigans you might check DoshDoshington youtube channel and his "Welcome to Factorio City" Or "Building Circuit Abominations in Factorio" videos.
Dude, your sense of humor and comedic timimg are incredible. I was laughing out loud so many times, even while enjoying and learning from your essay.
And that‘s his 3rd video?? Incredible!
I'm two months late to the party, but i read this comment right as he said, "heroin just wasn't addictive enough." The pair together, chef's kiss. I ACTUALLY laughed out loud.
I'm in my first semester of college, and I have to write a research paper that we work on for the entirety of the semester. This video gave me the inspiration to research how video games can be used to teach engineering principles in collegiate level programs, as well as discuss how building a video game can be used to teach multiple principles of engineering to students. I'm definitely using this video as one of my more "fun" sources. Thanks for the informative and entertaining video!
As a super nerd that sucked at school, who is teaching myself software engineering to stop getting paid hourly as a onsite IT guy... This video was hilariously entertaining, and suprisingly educational. Please do more. You did a very good job at explaining these concepts, in an entertaining yet educational manner.
Future content doesn't necessarily have to be a videogame analogy. I'd just love to hear you talk about comp sci concepts more. I feel like I'd pick up some good info whilst also being entertained. (I'm 22 btw, not a boomer, so like, I for real mean it lol. You caught my age group as an audience here)
lol great to hear, thanks for the detailed feedback man!
Same here as the age group.
I loved this format, please don't change it. You've blown me away with the quality that you put out compared to your subscriber count and the fact that I've never heard of you before. As someone who enjoys messing with and building programs for fun, I understood how much effort you put into making your analogies digestible by everyone. Watching this I got some junferno vibes but you seemed to keep this much calmer and focused which was a format that I loved as well. Please keep up the great videos and I'd love to see a second follow up video. I also plan to get into factorio as soon as I figure out how to not worry about that whole "eating and sleeping" thing.
Feedback heard! Also these are really flattering compliments thank you for the kind words!!
First time here and I agree with this guy^
@@TonyZhu I see a million subs in your future.. I was here at 11k ;-)
As a software engineer, I don't know why I haven't known about factorio until just a month ago. I just fell in love almost immediately, to the point that I spent hours only in the tutorial, just to optimize everything before achieving the actual goal 😂It is the perfect game for the field because first and foremost, it is a game, so it washes the stress away. Second, I still use the same type of mental process when approaching a certain task. Planning and picturing how everything would run before placing all the components, making it more efficient and easier to upgrade later on. If I'm being honest here.. I feel like the game made me better at work. I think it has something to do with keeping the mental exercise going even at home playing a game. It makes me think like a software engineer without tiring or stressing me out like work does.
you think optimising in tutorial is nice.. wait till you go full beacon setup and want to have setups that take a full blue belt and output a fully compressed blue belt... It's like programming golf, or writing a haiku
When I started playing the game they didn't have a tut yet took 6 months just learning the basics
@@Smitten702 lmfao 🤣🤣
You can also discuss: deadlocks (trains); load shedding (using combinators that automatically cut power to the main factory to prevent a Power Death Spiral)
As a software engineer of more than 20 years and a factorio enjoyer, this was great.
It's amazing how fitting the Factorio analogy is...
The bigger your code base, the more and stronger, the bugs (biters) are that come attack your base, causing all kinds of other slow downs and interruptions.
Also, if you want to have your mind blown, look up some of the older factorio vids where people build fully functional displays that actually encode/decode video and play it in game - Factorio is Turing Complete and an incredible video game.
"bugs" hehe
As a web dev (still intern), I'd like to think that the biters spoke Russian or Chinese.
I’d suggest DoshDoshington’s “Building circuit abominations in Factorio” he’s a fun watch.
I swear factorio developers made biters to look like bugs on purpose
There was one about a year ago, I believe. A dude made a Turing complete calculator out of a rail system. He said it took like 20 days to run though
I'm a graduate student, and I'm in the middle of writing a research proposal about using Factorio to teach Industrial Engineering. This video has brought up some perspectives i didn't consider. Thank you!
Super cool proposal idea! I hope it works out, you gotta let me know if you end up getting anything published!!!
How is it going?
@@tuftela The proposal was just for an assignment, and that got good marks. I'm currently doing personal research on knowledge transfer with recreational video games, and might be submitting an abstract for a conference soon 🤞
@@ATwiz02 That is so cool! Thank you so much for answering even though it's been so long since your original comment. Wishing you the very best of luck with your abstract as well!
This may be a bit far fetched, but maybe you could use industrial engineering to teach industrial engineering?
Instead of a silly little game...
Okay I cook for a ton of software engineers at “insert tech company here” and you just kinda made them seem so much more relatable. I have asked them what they do for work and for the life of me I couldn’t understand.
Haha honestly having eaten for two years at a "insert tech company here" cafeteria, I can almost guarantee you that your job is both more important and way more noble! Also we don't understand what we do either.
@@TonyZhu I do love to cook, you guys give me TH-cam or Xbox or steam, whatever you program for and I feed you. And that sounds fair to me.
One thing I've always liked with Factorio (which you didn't quite touch on here) is modularity and interfaces. Ideally (IMO) you are building your factory such that the inner-workings of the upstream source(s) do not matter; you simply need to know that you'll be receiving iron plates (and that your smelters, however they are configured, will be outputting iron plates). Later, when you build more things that require iron plates, you can reconfigure/scale/move/etc. your smelting; but as long as you keep a stream going to the original consumer of iron plates, it does not matter that the source has changed. To me this is like an API changing how it works internally without changing what it returns for the same request.
Nice video man, enjoyed it!
Stylistically....don't change a thing, I was absolutely hooked all the way through and LOVE this format. (Thank you for the "attention" videos during story time 6:24 )
As someone about to embark on their software engineering journey, I hope you continue to make this kind of content!
As a software engineer, I can confirm that I am the problem in both worlds.
there are two wolves inside all of us: "I don't need it to look pretty, I just need it to work" followed by "omg why is this a mess I have to make this the most beautiful thing ever or my brain will explode"
Fucking my jira stories because the code isn't pretty definitely makes me a software engineer
I'm a software guy and I have a buddy who is interesting in the trade and always picking my brain on it.
He sent me this video in his excitement of drawing parallels into what we do everyday into a game he knows fairly well.
This effort to bridge technological patterns (in this case dev) with more widely familiar concepts such as gaming is great. I enjoyed your video and it was doubly good in that you made my friends brain tick just a bit faster. Really good job man.
This is fantastic. I think you did an excellent job of explaining incredibly complex concepts in a way that even those of us who were new to the concepts could understand!
I was confused when you told that story that I didn’t see the cutting soap video first. But when I saw it and red the subtitles I laughed SO HARD. You’re probably becoming one of those TH-camrs who rarely upload but when you upload it’s something unique and a lot of fun to watch.
Watching this, I was expecting some big youtuber, not 600 views. This video has quite an impressive quality, keep up the good work, I really hope you get the attention you deserve!
Those kind words mean a lot to me, thanks for commenting
@@TonyZhu Yeah, it's a great video!
@@simonwillover4175 Thank you!! Really appreciate these comments
We are at 10k already...
"In the business, we call this foreshadowing"
@@TonyZhuWhat you put out is amazing, honestly. This Video was a blast to watch!
Lately I have been struggeling with my Job leading to getting lost in a boreout and depressive episodes I found myself playing Factory Games like Satisfactory and Factorio a LOT to keep my head busy. Last week I decided to lean a lot more into coding as this was always some kind of my dream profession as I LOVE solving problems while being kind of creative (...you see where this is going to, right?). This video just hit me so mfking hard and gave me a WEIRD feeling of: you're doing the right thing, which was something I REALLY needed after a dark time. So I just wanna say thank you, Tony. I never heard of you before that video. It was totally random.
I think it's really worth mentioning trains as well. At the end of the video, you mentioned the differences between monolithic and microservice based architectures, and I think the best the to show that difference/similarity is in trains. If you consider your entire factorio base as a distributed service, trains exactly represent packet flow and more importantly packet delay and packet loss if you get a biter attack.
If you consider your factorio base as a single monolith, then trains turn into interfaces. The train doesn't care how you actually insert the cargo, and how you process the items at the station. All it cares about is that it needs to drop of Item X and wants to go pick up item Y. This represents component design and individual classes and functions as well.
Yes 100%!! You've articulated the idea very well and this is most definitely something I already had in mind for video #2. As I start to read these comments though, I think there's a lot more I wouldn't have thought of otherwise so I really appreciate people like you commenting this stuff!!
Thank you for this. Obviously im addicted to Factorio and always felt so dumb when it comes to computers. Your casual approach to teaching is SO helpful when setting up an emotional openness to new knowledge. I understood ever part of this video and had a GREAT time watching it. Amazing job!
I think you need more on the spaghetti. I think it's worth getting into maintenance and refactoring and the trade off between living with your past decisions, often by making the mess a lil worse or taking the time to do a big cleanup. And also how a layout that works fine for a small amount of things at a small scale just inevitably becomes a mess as you add to it.
That's a great point! Will jot this down in my notes for the next video and see if I can find a good spot for it :)
0:40 It's that last one. It has to be.
Factorio helped me clarify the two different methods of improving throughput. Optimization (gotta have perfect ratios) and scaling (gotta get bigger). You can, of course, do both, but I prefer the big corporation method (why be efficient when you can be inefficient at scale?)
Edit: This is not meant to imply that big corporations don't care about optimization. It's more of a commentary that they have the resources to be able to not care about it quite so much.
Yeah that's like my big worlds. I am probably intermediate at circuit networks at best, but I'm pretty good at scaling and automation... I don't have the skills like some guys out there to maximize efficiency... Just make more!!! That's the fun part anyway.
why do you have to call me out for playing like a big corpo QwQ
dude, stop lying. Don't lie to yourself
The other big thing they have in common is stealing code from strangers on the internet lmao. Blueprints are basically that, right? And the crazy thing is, you can design/steal a blueprint and treat it as just a closed system that takes an input and makes an output. I'm currently working on a "coal to plastic" blueprint, which is a design that you just build, supply it with water and coal and it spits out plastic, and you don't have to care about the specifics of how inside the blueprint the coal is turned into oil and processed into exact amounts of oil byproducts, how boilers make steam for the process, how heavy oil is routed from the output back to the input, and how petroleum is mixed with more coal to make plastic. All you care about is the input and output.
This is actually a great point that I totally forgot about over the past few years lol. Had written in my script about black box processing but the idea of copy pasting functions from the internet is great, thanks for this!
Mmmm tasty open closed principles 🤣🤣
Yesss, blueprint websites are basically stack overflow lmao
Is this abstraction?
I'm learning software engineering in uni right now and im a Factorio player. I was actually doing one of my biggest assignments while watching this. Ironic. Loved it.
I legit just came across this video and as someone with ADHD and needing immediate feedback with if i'm doing something correctly or having a visual way of explaining something this literally hit the nail on the head. its the sweet spot that I look for when learning something.
I would love another video expanding upon this!
In manufacturing: a bottleneck is a process that holds up production somewhere in the assembly line. Sometimes a bottleneck's root cause is due to a spaghetti-like flow of materials through the facility since the layout was planned beforehand for a smaller quantity throughput. We scale up or scale down by adding or removing machines, workers and materials. When scaling up, the load on parallel processes is balanced for a steady flow of materials, and we use logic controls with sensors set limits for detecting problems. Similar to tracing, we do a root cause analysis to figure out what's holding the whole thing up. Delays all depend on our upstream suppliers, and trickle down to our downstream customers.
Instantly subscribed, not because you make me feel good about putting thousand of hours into a game, but because your video style is absurdly good, you have a good flow and get your points across with a nice sense of humor to boot.
And all this by the 8th video? It's insane
HELL YES! this is genuinely creative, smart and makes me more excited to code and play factorio. Thanks for making this. Can’t wait to see what other cool creations and essays you’ll come up with.
Thank you!! Really appreciate such kind words and compliments :)
I love that this video exists! How about a follow-up featuring Space Age content, some of the new mechanics (Fulgora scrap recycling, Gleba item spoilage) narrow the difference gap even more between SE and Factorio by requiring time-dependent and constant flowing systems! Keep up the great work!
This is really excellent. You've found a niche here, man. Funny, smart, original content, and I think there's a huge audience out there that you could capture. Please keep it up! I'm already convinced you're gonna be a big big deal.
Big thing I learned from factorio is a thing I don't remember the name of. But basically that buffers are not good, except for train unloading stations (so that it can keep your base full supplied and doesn't run out by time next train arrives). Maybe it was JIT or something? Something about producing as much as you can use and if you cannot use enough science then that means that.... The factory must grow!
That is JIT! And is a concept used on industrial engineering to plan the logistics at actual manufacturing plants :D
For sure I find having a buffer that doubles as a mechanical mass sorter after it comes off your train lines chests is a good unit to have to get through the early game and is really good once you up grade it to use logistics bots.
You're fucking awesome bro. distilling complex or not understood information and making it understandable to the masses is literally the most important thing anybody can do. thank you.
Coming back to this video months later, this video persuaded me to study code and pursue something in the tech field, now I know basic python and CPP, and I am finally getting my degree in mechatronics and learning PLC ladder logic, thanks overall for the push I needed
i played factorio when i was young (no seriously) and with my dad and I had a grand time playing the game with him, I learned so much.
Aw that sounds like an awesome childhood experience to have! Just imagining this makes me happy, thanks for sharing
As someone who has neither played factorio, nor is a software engineer, i found the video surprisingly entertaining and would be interested on seeing your take on the other video, it was a very pleasant ratio of information and humour
4:30 as a person who doesn't know much about Pokemon and just started learning AWS i completely accepted those names 😂
As someone who works in tech, though as an sys admin, and started playing Satisfactory, while also dabbling into code now and again. This was great, please do more. :)
I’ve been telling my one friend factorio has transferable skills to the real world for a while now. Thank you for laying it out so beautifully
I'm in school right now for computer science, and I've loved Factorio for years now. This is such a great analogy, and it was a really entertaining video!
This isn't just software engineering and factorio.
It's the study of systems; it's used in nearly every discipline.
For example:
Chemisty for complex chemical reactions.
Biology for reaction pathways.
Economics for analysis of supply chains and such
and it can become even more niche.
Not quite, since what the other disciplines study some specific system to their problems, usually they try to frame this interaction in a model already studied and proven, now software engineering and factorio for this matter, is this sort of study of the study of systems, the job is to design better ways to meet the requirements, while keeping your sanity check.
A chemist, will use their knowledge on chemical reactions, modifying this reactions, adding and compounding different materials to yield better results, in control manner.
A biologist, will use their knowledge on biology to change the conditions on the bio compounds and the agents to get safer and useful goods.
A economist, will use their knowledge of basic geometry to put the square in the square hole
on the other hand,
A software engineer, will study what are the chemist, biologist, and some common sense to try to englobe all the later and put it through some none-sense it works system, on which will make it regulate itself by proven or field tested way, hopping that something doesn't goes up in flames the moment that you want to gtfo at 5pm on a friday
A factorio player, will do the later willingly, on a videogame while creating the next framework to grow the factory that this time will indeed solve the other problems and be the one to use after repairing some nonsense problem caused by an edge case in their work that took their whole friday afternoon to solve
@@samu_2822when generalizing, it is possible that two categories are more like each other, than a third, but it still being possible to generalise all three.
A factory is more analogous to a whole economy’s supply web, yet it is stil generalizable as a complex system along with a software system.
This is an incredible video that takes something I love(games) and connects to something I'm interested in, but know little about(software engineering). This game going to the top of my steam wishlist and you have definitely opened up the rabbit hole. Looking forward to part 2.
How does this video only have 35 views?? So good
Haha appreciate the sentiment, thank you for supporting the channel!!
I've been screaming this for years, especialy when it comes to things like logistics-and supply chains' similarities with software engineering. Glad to see I'm not the only one noticing these things. Makes me think I might not be all that crazy after all.
I never understood the need for enemies as an important feature in a game that's basically an incremental, and why they don't have any important drops or collectibles, literally just there to be annoying. Until this video made me realize they could be an analogy to cybersecurity threats and attacks, and why they are important into planning out and building these defense systems. Thanks for the cool video, and subbed for the next one :)
Just dawned on me, this is why Factorio has "bugs" that mess up your factory (code)
In real life, they are called "co-workers".
@@sourceoptical that hits closer to home huh...
Fun fact, the game USED TO have drops for the biters that you needed to make higher-tier items, especially player equipment. But when they decided that they didn't want to lock content for people who wanted to play peacefully, they got rid of those. Even without those drops, dealing with the biters is basically a second resource sink apart from science, which does add a layer of complexity to how you build out your systems.
@@sourceoptical Co-workers would be the other players in a multiplayer game.
I freaking love this. So spot on, and some how this actually makes some who is in the software development industry take a step back and review core concepts that we can all improve on. So cool to make these connections.
I think this is the video that's going to get me to play factorio when I never had considered it before.
Its also a wonderful showcase and representation of how games can teach useful high level concepts without inducing the stress that is forcing yourself to learn new ideas and ways of thinking. It happens naturally.
Wonderful editing and amazing sense of humor. Thank you for your awesome addition to the collective of human knowledge and understanding!!!
I started self teaching software development in 2018, when factorio came out specifically the blueprints/schematics really helped me get my head around interfaces and making my code a lot more modular it's a great game and has the same 'feeling' while playing as I get while writing code.
In factorio I've really come to love the sorts of things I can do with trains, and I think it fits into the whole comparison with software engineering. Because when you first start with trains it tends to be really simple, you probably have a few dedicated trains going between specific stations, only going to and from the same spot each time, probably even on separate rail lines. Then as you learn how rail signals work you can combine things into one rail line with several different trains running on it, but each train is still just going between their normal spots. And THEN you start learning more advanced stuff, like how if you have two stations with the same name trains will be able to choose which one to go to, so instead of having "Iron Mine A", "Iron Mine B", etc you can just have several stations named "Iron Mine" and your train goes to the first available one. After that you can start going into circuit conditions and making it so that stations will only accept trains when there's something to pick up, or when there's something that needs to be delivered, so that the trains move around more efficiently. Now when you want to set up a new mine, or make a new smelting array, you can just slap down the same blueprint and the trains will automatically start rolling in without you needing to set up new schedules.
Wow I kinda rambled there.
Unironically the best video to explain software engineering, especially vertical vs horizontal scaling
Awesome video with a great sense of humor, and this was clearly inspired by great passion for both topics discussed here! Would love to see more video-essay type stuff, especially that monolithic vs. microservices thing. ❤
Ur a goated friend
@@TonyZhu If you want the *_PERFECT_* game for showing SOA, I can't think of a better one than Autonauts, where you need to program cute bots to do _everything._ The catch is that the Tier 0 bots only have room for 12 instructions. (...which really puts the 'micro' in 'microservices'!) That means you have to have *LOTS* of bots--each doing only one thing--and they all have to work together. ...but don't worry; as you advance to different tiers, you can add modules to increase their capabilities, so you can, for example, have a Tier 3 bot with a 'Super Bot Brain Upgrade' that can handle 64 (32+32) instructions! Here is the trailer to give you an idea of what's ahead of you: th-cam.com/video/TtOjoEV0ooE/w-d-xo.html
(The devs have also released 'Autonauts vs Piratebots', which takes the basic premise Autonauts and adds PvE, which you could use to Segway into security issues.)
Cheers!
P.S. You could also go the more traditional route and take a look at Screeps, where each bot needs to be programming in JS.