1:11 This is literally an optimization technique real-life compilers employ when given a while loop. They turn it into a do-while and jump to the conditional. It's cool to see it show up here.
There’s also the code size vs speed thing: Loop unrolling is great … unless you’re e.g. on a Nintendo 64 where loading code in is super slow and execution is fast, so you want to minimize instruction count instead.
@@flying-sheep "Which is faster?" from "Fabulous adventures in coding", Part 5: "Leaving the difference between best, worst and typical aside, there are all kinds of speed metrics. When I was working on Visual Studio Tools For Office we did comparatively little making the customization framework code _run_ faster because our tests showed that it typically ran fast enough to satisfy customers. But we did an enormous amount of work making the framework code _load_ faster, because our research showed that Office power users were highly irritated by noticable-by-humans delays when loading customized documents for the first time."
Honestly, this game is basically how someone's first exposure to assembly language _should_ be handled. It introduces all the basic concepts and the general 'style' such languages have, and how simple conceptually the execution of each instruction is, while also showing the difference between optimization for speed and for length, but also makes it slowly clear why it's a PAIN to do anything complicated in such a language. But it makes what's going on really... pleasantly tactile and clear, which a lot of existing methods definitely don't have.
I just want to comment on how perfect the editing has been on this series so far. It can be very hard to follow people’s thought process on puzzles, but the visual representations of where the boxes will be placed is such a small but PHENOMENAL edition.
@@silversoul21000 well when you’re programming yourself, it’s way easier to just do it in your head, but it’s almost impossible for other people to follow your thought process, which is why this is great for a video, but no one would use it in-game
@@redpepper74 yep, that's one of the later ones. I hope you like resetting numbers to two and waiting for lots of addition and comparing to check factors.
I think the editor actually cuts out most of the thinking time tyler uses. Although I do think that he is exceptionally fast, we are getting a little bit of a skewed view of his solving speed. I think something that would be interesting is a timer that is just always running on screen so you can see the time skips the editor makes.
@@cyberneticsquid well I mean that it’s not really a higher level language or machine code, it’s pretty much just assembly code. Conditional and non-conditional jumps, extremely limited amounts of temporary variable storage, only simple addition and subtraction allowed, the type of programming this is almost 1 for 1 for is assembly code.
@@martinshoosterman I wouldn’t say it’s a Turing machine as those are moreso state machines, whereas this is variable and command based. (Yes I know any program can be represented by a turing machine but you know what I mean).
My dearest Tyler, who’s videos I enjoy most wholeheartedly: I am alarmed to behold it appears that the code with which you’ve started this exercise could execute prior to the enactment of further code! This distresses me deeply and I’ve returned to my fainting couch. I do hope you rectify this mistake. Forever yours, An average Aliensrock commenter. you have been bamboozled.
@@v1b3z77 Did you know that i am the guy in the thumbnail Tyler has not let me see my family for 23 years I have not gotten of work since my sin turned 5
if you're aiming for full 100%, i'll point out that there's a "gottem" all the way at the beginning that's very easy to miss; they have challenges as well, and one of them will never be fully satisfied at first due to the nature of it just figured i'd give the heads-up! as someone who played this gsme to completion i'm loving this series
These challenges are where you have to use different code for the Size and Speed challenges. The are also showing the issue of doing such a low level of programming - even a simple 0 check, conditional number swap and FOR loop is a huge amount of jumps.
You might want to play Shenzhen I/O! It's from the Zachtronics team, and it's pretty similar to this game, but with circuitry in addition to programing. You have played a game from this team I think, 20th century food court
The editing is absolutely awesome. Not only this video, but previous also. I love the help for following Tyler's explanation and I love when there's a little personality of the editor.
This is what it feels like to code in assembly. Your registers are on the floor, you have jumps, copy to and from, and your stack pointer is whatever is in your hands.
Tyler, you're doing an excellent job explaining, *especially* combined with the amazing work your editors are doing. I'm thoroughly enjoying this series so far and look forward to seeing more of it!
@@SeymourDisapproves The average video quality really took a huge step up after Tyler hired a second editor. Just goes to show how much better people perform when they have a balanced workload and a chill boss (making the assumption that Tyler is a chill boss, bc he gives off those vibes)
I'm pretty sure starting with a jump is never faster/shorter; it's either the same as or worse than if you rearranged it a little bit. A couple of Tyler's optimizations actually involved making this change partway through. Could just write the code more linearly in the first place, but y'know, whatever gets him there in the end
It's never shorter, but it can be faster. Typically, by doing this optimization you remove a jump that happens once for each input, and replace it with a jump that happens just once in total, saving a few cycles overall.
Nope. Starting with a jump is the equivalent of putting an "if" block in the code. With only jump statements, the only other way to add an "if" block to the code is by using 2 jump statements. It saves both space and steps to have the if block naturally flow into the normal code instead of needing a jump statement to terminate it.
When he says “this game just got difficult”, he’s not wrong, I can remember playing through this a few years ago and there’s a real difficulty jump between the early levels, which are mostly pretty straight forward and mid/late levels, which can involve very convoluted code.
My dearest Tyler, who's videos I enjoy most wholeheartedly: I am alarmed to behold that it appears the code with which you've started this exercise could execute prior to the enaction of further code! This distresses me deeply and I've retreated to my fainting couch. I do hope you rectify this mistake. Forever yours, Someone who thinks he's funny
My dearest Tyler who's videos I enjoy most wholeheartedly: I am alarmed to behold that it appears the code with witch you've started this exercise could execute prior to the enaction of the further code! This distresses me deeply and I've retreated to my fainting couch. I do hope you rectify this mistake. Forever yours, An average Aliensrock commenter.
If you cheese it, the game will actually detect it and give you a new set of data that the cheese won't work with, then tell you to do it better. Fantastic game. :)
There are hidden checks, that's why the final result also says "average"... it's basically doing hundreds of other levels in the background and checking if your code would work on them
Yay this game was not a one time wonder for you. Hope you actually finish it.. :) Cuz its a great game. I wish the devs did even more of this and 7 Billion Humans.
I played this game like 4 years ago and loved it, it was a great introduction to low-level programming. Hope you enjoy it (and maybe even play the sequel!)
I could follow, but tbh Tyler could say complete gibberish and I would still enjoy listening. Also, if I recall it correctly, this game gets real wild when you get mutiple workers at once, so I hope the series continue.
The very first solution could have been done in 7 lines. The cop to and subtract commands would not work, because no number would be on hand from the outbox. This was a fun video though. : )
Although I do think that Tyler is exceptionally fast at solving these puzzles, we are getting a little bit of a skewed view of his solving speed due to the cuts in the video. I think something that would be interesting is a timer that is just always running on screen so you can see the time skips the editor makes.
I remember this game. Mainly the ridiculous jump in difficulty between the second last level and the last level (I think it’s Sorting Facility). Not sure how I got that far, as when I played it recently I got stuck at around 26 or something.
My dearest Tyler who's videos I enjoy most wholeheartedly: I am alarmed to behold that it appears the code with which you've started this exercise could execute prior to the enaction of further code! This distresses me deeply and I've retreated to my fainting couch, I do hope you rectify this mistake. Forever yours, An average time waster 💀
As a 2nd year in computer Engineer the restrictions really work out your brain compared to a higher level language where you can do everything simplier and easier.
I know the code wouldn't work as far as actually detecting anything, but could year 17 have been beaten by cycling 4 ones to the outbox? Or does the game have a safeguard for that?
I have played the game, and yes, the game has a safeguard. It basically says to you, "you may have solved this arrangement of numbers, here's another you can't solve". What is kinda cool, is that for the following tests the new set is in place, so you have solve it correctly.
Internally, the game checks the solution on many different inputs, and if any of them fail, it changes to show you a set of inputs that your code doesnt work with and asks you to try again
It tests with different sets, you only see one but in the background the game runs multiple ones. If you did that the lady would yell at you saying your solution works only for that dataset but not others, and then proceed to give you one in which it doesn't work.
Lol took me too long to realize this is not the first ep of this series... Tyler even mentioned World of Goo at the beginning for the (actual) 1st ep XD
It's a fantastic game, and the difficulty curve is pretty intense too. Tyler's keeping his brain busy coming up with explanations and his editors' brains busier finding ways to visualize them!
5:18 oh, the character is actually balding! Will he work all the way to old age and die of a heart attack while coding, before his deserved retirement? Only way to know is if Tyler keeps this series to the end.
I'm going to sleep so won't put too much time into this, but on year 17, since this is basically just assembly programming, there might be a more efficient way to do it if you make a multiplication function with adds and just do a single sign check of the first input, then multiply them and check the resulting sign +/- sign. Might be wrong since it's not true binary and the multiplication operation in binary can be done a bit more elegantly with addition than base 10. Too much thinking for sleepy head right now
1:11
This is literally an optimization technique real-life compilers employ when given a while loop. They turn it into a do-while and jump to the conditional. It's cool to see it show up here.
There’s also the code size vs speed thing: Loop unrolling is great … unless you’re e.g. on a Nintendo 64 where loading code in is super slow and execution is fast, so you want to minimize instruction count instead.
@@flying-sheep "Which is faster?" from "Fabulous adventures in coding", Part 5:
"Leaving the difference between best, worst and typical aside, there are all kinds of speed metrics. When I was working on Visual Studio Tools For Office we did comparatively little making the customization framework code _run_ faster because our tests showed that it typically ran fast enough to satisfy customers. But we did an enormous amount of work making the framework code _load_ faster, because our research showed that Office power users were highly irritated by noticable-by-humans delays when loading customized documents for the first time."
@@christopherg2347 Neat quote but has probably little to do with micro-optimization of assembly.
This game is a perfect showcase of why you don't use goto when coding
what tf is goto?
@@aguyontheinternet8436 jump
Too true
But if you're doing assembly code, you don't have much choice. goto is everywhere (:
Another day to appreciate the inventor of if statements
Honestly, this game is basically how someone's first exposure to assembly language _should_ be handled. It introduces all the basic concepts and the general 'style' such languages have, and how simple conceptually the execution of each instruction is, while also showing the difference between optimization for speed and for length, but also makes it slowly clear why it's a PAIN to do anything complicated in such a language. But it makes what's going on really... pleasantly tactile and clear, which a lot of existing methods definitely don't have.
Agreed!
I just want to comment on how perfect the editing has been on this series so far. It can be very hard to follow people’s thought process on puzzles, but the visual representations of where the boxes will be placed is such a small but PHENOMENAL edition.
i actually kind of wish that'd be in the game ! would make my though process easier ingame !!!!
@@silversoul21000 well when you’re programming yourself, it’s way easier to just do it in your head, but it’s almost impossible for other people to follow your thought process, which is why this is great for a video, but no one would use it in-game
So true bestie
I must say as a software engineer you are doing a great job of explaining it. Once you hit multiplication I weep at you only having jumps 😢
there were a couple levels that had multiplication
imagine this: prime factorization
@@redpepper74 yep, that's one of the later ones.
I hope you like resetting numbers to two and waiting for lots of addition and comparing to check factors.
The editor are making this series possible, huge props to them!
this is litterally my entire job, building simulation models for production systems. You would be a god so fast
u just lmk if this youtube stuff ever stops working out logic puzzles for years
Out of curiosity what is your job title?
@@Deadlychuck84 human resource manager
@@Deadlychuck84 Digital Twin Engineer
I think the editor actually cuts out most of the thinking time tyler uses. Although I do think that he is exceptionally fast, we are getting a little bit of a skewed view of his solving speed. I think something that would be interesting is a timer that is just always running on screen so you can see the time skips the editor makes.
Thinking further on this, this is essentially just assembly code.
Yep that's the game's whole gimmick
it seems like it's quite literally meant to be a turing machine
A Turing machine is much simpler and harder to program though
@@cyberneticsquid well I mean that it’s not really a higher level language or machine code, it’s pretty much just assembly code. Conditional and non-conditional jumps, extremely limited amounts of temporary variable storage, only simple addition and subtraction allowed, the type of programming this is almost 1 for 1 for is assembly code.
@@martinshoosterman I wouldn’t say it’s a Turing machine as those are moreso state machines, whereas this is variable and command based. (Yes I know any program can be represented by a turing machine but you know what I mean).
My dearest Tyler, who’s videos I enjoy most wholeheartedly:
I am alarmed to behold it appears that the code with which you’ve started this exercise could execute prior to the enactment of further code! This distresses me deeply and I’ve returned to my fainting couch. I do hope you rectify this mistake.
Forever yours,
An average Aliensrock commenter.
you have been bamboozled.
im sorry it is late and i had 56 strokes while trying to read this. Can you please put it in an easier language?
@@legitelf0058 “But Tyler, won’t this code execute right at the beginning if I start it?”
-Tyler
@@arcanelizard4646 thank you
i still managed to have a stroke reading yours but it is much better
@@legitelf0058 I would wholeheartedly advise you to meet a medical professional if the symptoms persist.
@@v1b3z77 Did you know that i am the guy in the thumbnail
Tyler has not let me see my family for 23 years
I have not gotten of work since my sin turned 5
if you're aiming for full 100%, i'll point out that there's a "gottem" all the way at the beginning that's very easy to miss; they have challenges as well, and one of them will never be fully satisfied at first due to the nature of it
just figured i'd give the heads-up! as someone who played this gsme to completion i'm loving this series
I feel like series like this require all my brainpower to follow, perfect for putting me to sleep from overwork.
God I can’t wait to see how Tyler fairs against the hardest puzzles in this game
Well, he studied computer science or something similar so i expect he will be able to finish it. It could still end up being hard though.
These challenges are where you have to use different code for the Size and Speed challenges.
The are also showing the issue of doing such a low level of programming - even a simple 0 check, conditional number swap and FOR loop is a huge amount of jumps.
You might want to play Shenzhen I/O! It's from the Zachtronics team, and it's pretty similar to this game, but with circuitry in addition to programing. You have played a game from this team I think, 20th century food court
Or just TIS-100 which basically IS this game just more complicated haha
@@SteamyBlizzard i did not like that one as much, I found the mix of placement strategy and code. Admittedly, I did not play that much as much.
@@polmarcetsarda Fair, i also admittedly burned out. Might try out Shenzhen tho
The editing is absolutely awesome. Not only this video, but previous also. I love the help for following Tyler's explanation and I love when there's a little personality of the editor.
I didn't even realise the boxes were edited in until i read this
very good editing
fun to see a math person doing these harder puzzle games counter to let's players
The editing definitely helps explaining things, really enjoying this
Imagine not torturing office workers
This is what it feels like to code in assembly. Your registers are on the floor, you have jumps, copy to and from, and your stack pointer is whatever is in your hands.
Tyler, you're doing an excellent job explaining, *especially* combined with the amazing work your editors are doing. I'm thoroughly enjoying this series so far and look forward to seeing more of it!
Agreed, everyone has been at the top of their game lately. These videos are super engaging!
@@SeymourDisapproves The average video quality really took a huge step up after Tyler hired a second editor. Just goes to show how much better people perform when they have a balanced workload and a chill boss (making the assumption that Tyler is a chill boss, bc he gives off those vibes)
If you beat this game, you should try 7 Billion Humans. It's basically the sequel to this game
Game: here are some LABELS you can use
Tyler: nah, the editors can explain what each of these things is doing.
Me: thank you, editors!
I'm pretty sure starting with a jump is never faster/shorter; it's either the same as or worse than if you rearranged it a little bit. A couple of Tyler's optimizations actually involved making this change partway through. Could just write the code more linearly in the first place, but y'know, whatever gets him there in the end
Starting with a jump is usually pretty good in this game, locality is important
It's never shorter, but it can be faster. Typically, by doing this optimization you remove a jump that happens once for each input, and replace it with a jump that happens just once in total, saving a few cycles overall.
Nope. Starting with a jump is the equivalent of putting an "if" block in the code. With only jump statements, the only other way to add an "if" block to the code is by using 2 jump statements. It saves both space and steps to have the if block naturally flow into the normal code instead of needing a jump statement to terminate it.
Sleep: No
Watch Tyler doing C. O. D. E.: Yes
your editor is amazing. its a lot of fun watching this series, thanks
The editing in this to show the thought process really makes the video
You've been doing a great job explaining it, Tyler. The editor's visuals help a great deal too
being a puzzle youtuber is an uphill battle, glad you're a great editor!
Tyler isn't the editor, he's paying people to do it
can you recommend me other great puzzle youtuber please?
When he says “this game just got difficult”, he’s not wrong, I can remember playing through this a few years ago and there’s a real difficulty jump between the early levels, which are mostly pretty straight forward and mid/late levels, which can involve very convoluted code.
This game is the programmer equivalent of a truck driver going home and playing Euro Truck Simulator.
My dearest Tyler, who's videos I enjoy most wholeheartedly:
I am alarmed to behold that it appears the code with which you've started this exercise could execute prior to the enaction of further code!
This distresses me deeply and I've retreated to my fainting couch. I do hope you rectify this mistake.
Forever yours,
Someone who thinks he's funny
My dearest Tyler who's videos I enjoy most wholeheartedly:
I am alarmed to behold that it appears the code with witch you've started this exercise could execute prior to the enaction of the further code!
This distresses me deeply and I've retreated to my fainting couch. I do hope you rectify this mistake.
Forever yours,
An average Aliensrock commenter.
That sign check level is absolutely cheeseable
If you cheese it, the game will actually detect it and give you a new set of data that the cheese won't work with, then tell you to do it better. Fantastic game. :)
There are hidden checks, that's why the final result also says "average"... it's basically doing hundreds of other levels in the background and checking if your code would work on them
@@peterpeladon Ah lol I *was* wondering what would happen if someone cheeses it
@@voxelrifts the game comes with build in unit tests
I played this game forever ago and love that I can revisit it like this
Ngl the editing makes it so much easier to follow your explanations. Very helpful and much appreciated.
Yay this game was not a one time wonder for you.
Hope you actually finish it.. :)
Cuz its a great game. I wish the devs did even more of this and 7 Billion Humans.
0:04 Papers Please lezzgooo
Great job with the edits they really tie the video together
Is it just me or does Tyler look good balding with blue hair
Thank you for the video Tyler and editors! I may not understand a lick of it but I am definitely entertained!
This game deserves to return
Man, props to the editor for making this a super interesting watch!
I played this game like 4 years ago and loved it, it was a great introduction to low-level programming. Hope you enjoy it (and maybe even play the sequel!)
puzzle at 1:43 could've been cheesed considering every pair of inbox items had different signs
inbox > inbox > copyfrom 5 > outbox > jump to start
Nope, game does checks in background to make sure it works on all random inputs
My brain has stopped functioning trying to compute all this clearly logical code.
holy crap the editing is amazing, it does a great job showing the logic being shown!
"take it up with your SCRUM master" ahaha im dead
It could be vastly sped up. For example "Pick 1 five times and put it in outbox"
THE EDITORS COMMENT HAD ME DYING
i love the attention to detail in the papers please shot, his name is ROCK, ALIENS
I could follow, but tbh Tyler could say complete gibberish and I would still enjoy listening.
Also, if I recall it correctly, this game gets real wild when you get mutiple workers at once, so I hope the series continue.
I want to see more of this, please!
As a non-coder, but someone who can understand it (just not do it), you're doing a great job explaining it
After having watched this video thrice I can say. Certified tyler classic
Your editor is doing a fantastic job as usual. But... it's more charming if you write your own labels in game.
Puzzle game? Reminder to finish Devil's calculator
The very first solution could have been done in 7 lines. The cop to and subtract commands would not work, because no number would be on hand from the outbox. This was a fun video though. : )
Very fun to watch! Defs need more of this
big fan of the exclusive or level being called “exclusive lounge”
please finish this game, loving it
Although I do think that Tyler is exceptionally fast at solving these puzzles, we are getting a little bit of a skewed view of his solving speed due to the cuts in the video. I think something that would be interesting is a timer that is just always running on screen so you can see the time skips the editor makes.
I feel like coding games are just for fellow game makers and the rare smart person
I remember this game. Mainly the ridiculous jump in difficulty between the second last level and the last level (I think it’s Sorting Facility).
Not sure how I got that far, as when I played it recently I got stuck at around 26 or something.
I can't wait for you to finish this them move onto 7 Billion Humans
finally a relatable video
No part 3? :(
If you haven't already, you should check out Little Inferno made by the same people.
Love this series
3:25 idea, just sends 1
Going from here, the only thing that gets more program-y are all those Zachtronics' puzzle games lmao
tbh you can't get more programmy than HRM, this is basically just straight up assembly but with a very cute IDE
That intro made me chuckle. Thx editor
The editing this video was insane.
My dearest Tyler who's videos I enjoy most wholeheartedly:
I am alarmed to behold that it appears the code with which you've started this exercise could execute prior to the enaction of further code!
This distresses me deeply and I've retreated to my fainting couch, I do hope you rectify this mistake.
Forever yours,
An average time waster 💀
i loved playing this game, but my god it gets hard near the end, especially in it's sequel 7 billion human, it is insane
Editor really knocking it out of the park on these!
This game is the epitome of spaghetti code
As a 2nd year in computer Engineer the restrictions really work out your brain compared to a higher level language where you can do everything simplier and easier.
I know the code wouldn't work as far as actually detecting anything, but could year 17 have been beaten by cycling 4 ones to the outbox? Or does the game have a safeguard for that?
I have played the game, and yes, the game has a safeguard.
It basically says to you, "you may have solved this arrangement of numbers, here's another you can't solve".
What is kinda cool, is that for the following tests the new set is in place, so you have solve it correctly.
Internally, the game checks the solution on many different inputs, and if any of them fail, it changes to show you a set of inputs that your code doesnt work with and asks you to try again
It tests with different sets, you only see one but in the background the game runs multiple ones. If you did that the lady would yell at you saying your solution works only for that dataset but not others, and then proceed to give you one in which it doesn't work.
Art style is the exact same as World of Goo... is it the same dev?
Yep! Same people.
Yes.
Lol took me too long to realize this is not the first ep of this series... Tyler even mentioned World of Goo at the beginning for the (actual) 1st ep XD
Now we need Tyler to play AntiChamber
Career goals achieved code and game at the same time. #multitasking
WIDELER IS BACK
The papers please scene is to good
Didupause.... Yes
i actually have this at home :)
i actually forgot about it until this.
This game is peak perfection
Guys just letting you know the WIDE TYLER jumpscare is at 0:59
I love spaghetti! Very nice code :P
Love Tyler’s notes. The poor handwriting is funny
Wide Tyler has returned. 🙆♂️
Hope you play 7 billion humans as well
Dude your content is great! Wonder if your live stuff is just as entertaining?
wait until he sees assembler
This seems interesting, im going to go watch the first part now
It's a fantastic game, and the difficulty curve is pretty intense too. Tyler's keeping his brain busy coming up with explanations and his editors' brains busier finding ways to visualize them!
Please do "Little Inferno" too
5:18 oh, the character is actually balding! Will he work all the way to old age and die of a heart attack while coding, before his deserved retirement? Only way to know is if Tyler keeps this series to the end.
you should try little inferno, its from the same devs as this game
wait til he realizes he can use "sub" to ask for subscribers itll be so funny haha
The editor is the real MVP here
I'm going to sleep so won't put too much time into this, but on year 17, since this is basically just assembly programming, there might be a more efficient way to do it if you make a multiplication function with adds and just do a single sign check of the first input, then multiply them and check the resulting sign +/- sign.
Might be wrong since it's not true binary and the multiplication operation in binary can be done a bit more elegantly with addition than base 10.
Too much thinking for sleepy head right now
4:56 Does it secretly test your program on more examples, or would it pass if you just had something, that sends "1" four times?
It does, it will then tell you what example it failed on and let you use that for your next simulation
@@mart3323 Good, I expected that but I still wanted to ask.