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.
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
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.
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.
@@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).
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.
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.
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)
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.
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.
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
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
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!)
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. :)
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.
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 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 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.
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.
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. : )
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!
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.
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 💀
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.
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!
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
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
The editor are making this series possible, huge props to them!
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.
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.
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.
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.
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).
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.
The editing definitely helps explaining things, really enjoying this
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
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)
The editing in this to show the thought process really makes the video
Sleep: No
Watch Tyler doing C. O. D. E.: Yes
your editor is amazing. its a lot of fun watching this series, thanks
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!
Ngl the editing makes it so much easier to follow your explanations. Very helpful and much appreciated.
If you beat this game, you should try 7 Billion Humans. It's basically the sequel to this game
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.
0:04 Papers Please lezzgooo
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.
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?
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
Great job with the edits they really tie the video together
holy crap the editing is amazing, it does a great job showing the logic being shown!
I played this game forever ago and love that I can revisit it like this
Man, props to the editor for making this a super interesting watch!
Thank you for the video Tyler and editors! I may not understand a lick of it but I am definitely entertained!
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
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!)
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.
This game deserves to return
This game is the programmer equivalent of a truck driver going home and playing Euro Truck Simulator.
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. :)
@@peterpeladon Ah lol I *was* wondering what would happen if someone cheeses it
@@voxelrifts the game comes with build in unit tests
As a non-coder, but someone who can understand it (just not do it), you're doing a great job explaining it
Very fun to watch! Defs need more of this
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.
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
Is it just me or does Tyler look good balding with blue hair
That intro made me chuckle. Thx editor
The editing this video was insane.
I want to see more of this, please!
My brain has stopped functioning trying to compute all this clearly logical code.
Editor really knocking it out of the park on these!
please finish this game, loving it
It could be vastly sped up. For example "Pick 1 five times and put it in outbox"
i love the attention to detail in the papers please shot, his name is ROCK, ALIENS
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.
THE EDITORS COMMENT HAD ME DYING
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.
After having watched this video thrice I can say. Certified tyler classic
No part 3? :(
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.
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.
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.
big fan of the exclusive or level being called “exclusive lounge”
Your editor is doing a fantastic job as usual. But... it's more charming if you write your own labels in game.
Thank you editor!
This game is peak perfection
"take it up with your SCRUM master" ahaha im dead
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. : )
Puzzle game? Reminder to finish Devil's calculator
I can't wait for you to finish this them move onto 7 Billion Humans
Love this series
If you haven't already, you should check out Little Inferno made by the same people.
3:25 idea, just sends 1
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
I feel like coding games are just for fellow game makers and the rare smart person
This game is the epitome of spaghetti code
finally a relatable video
The papers please scene is to good
Didupause.... Yes
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!
Love Tyler’s notes. The poor handwriting is funny
Hope you play 7 billion humans as well
WIDELER IS BACK
8:48 why didnt u change copyto and copyfrom to 4 to reduce the time spent walking back and forth?
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.
The editor is the real MVP here
I love spaghetti! Very nice code :P
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
Career goals achieved code and game at the same time. #multitasking
Now we need Tyler to play AntiChamber
Guys just letting you know the WIDE TYLER jumpscare is at 0:59
i actually have this at home :)
i actually forgot about it until this.
Please do "Little Inferno" too
Wide Tyler has returned. 🙆♂️
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 💀
you should try little inferno, its from the same devs as this game
the jump at the start is the same as if everything jumped to the bottom and jumped all the way to the top
If you enjoy this game your should try out space chem, it’s a free puzzle game and it’s one of the hardest I’ve ever played
He's played a bunch of Zachtronics games in the past too, so it might be right up his alley for any of the other ones
I need part three =D
wait until he sees assembler