[User] Please transcribe this text

[Assistant] The four sub-steps are essentially what I just said earlier. Uhm, so let's go through it together.


[User] Please transcribe this text

[Assistant] And in this case, it's a design choice, but uhm, we're choosing to...


[User] Please transcribe this text

[Assistant] Uh, represent food as just an array in our game state. So in this case, let's just call our coot array this food.


[User] Please transcribe this text

[Assistant] The spawn food function, which will just spawn food whenever we want.


[User] Please transcribe this text

[Assistant] Recall that we just defined the food array in our game state. And in this case, it's an array, so we can just push something to the array. And.


[User] Please transcribe this text

[Assistant] Yeah, location. Uhm, we're just gonna call that position. Yeah, radius, nice.


[User] Please transcribe this text

[Assistant] Uh, and then just one last thing we want to include is just color because we want to like spice up our game and include some random colors for each of the foods.


[User] Please transcribe this text

[Assistant] So let's go ahead and code up these properties. So position, we have this handy like get the end of position function that we defined earlier.


[User] Please transcribe this text

[Assistant] Uhm, the radius, we're also going to hard code in as just like a food size. It's just hard to put in as two right now.


[User] Please transcribe this text

[Assistant] And then finally a color similar to what we did for the players. We can just get a random color by using the same like weird syntax of getting like a random location in the array.


[User] Please transcribe this text

[Assistant] Alright, so now what this function will do is it'll add a food item to our food array in our game state with these three properties.


[User] Please transcribe this text

[Assistant] Anyone have any questions on spawning food and our game stage?


[User] Please transcribe this text

[Assistant] Cool, so the last thing in the substep that we want to do is go ahead to our game file.


[User] Please transcribe this text

[Assistant] And, oh sorry, not game file, go to our canvas manager. And we're gonna actually want to render the food on the canvas. So let's go ahead and, uhm,


[User] Please transcribe this text

[Assistant] Right under where we draw the players, let's draw the foods. So the syntax is essentially the same.


[User] Please transcribe this text

[Assistant] Alright, so now we've defined like a helpful function to spawn in food, and now we have the ability to draw the food on the canvas once we actually spawn in the food.


[User] Please transcribe this text

[Assistant] Awesome. So now, let's move on to step 3.2.


[User] Please transcribe this text

[Assistant] In this substep, we're going to define a function to check if any players can eat any fruits.


[User] Please transcribe this text

[Assistant] Alright, what about the server? Okay, we have a couple of hands there, so.


[User] Please transcribe this text

[Assistant] Yes, you're right, it should be on the server. Recall that all the game logic


[User] Please transcribe this text

[Assistant] In our game should be on the server side or else like it's not going to be like safe and if.


[User] Please transcribe this text

[Assistant] This is where we want to define the function to check, you know, if any players can eat foods. So let's scroll up and go to step 3.2.


[User] Please transcribe this text

[Assistant] We've defined this handy function called computePlayersEatGoods and what this will do is uhm,


[User] Please transcribe this text

[Assistant] For each of the players, we're gonna call this helper function we defined here that checks if a given player can eat a given food. And we'll get into that in the next sub step.


[User] Please transcribe this text

[Assistant] But for now, let's just call this on all the players and the foods.


[User] Please transcribe this text

[Assistant] Uhm, you're right about that. Like it's just a design choice in this game because we don't think that a lot of players will be on at the same time. Uhm, but when you're coding your own game, it might be helpful to think of like more optimizations, uhm, to check, you know, if things can happen in your game.


[User] Please transcribe this text

[Assistant] So essentially what we're doing here is, if you see that there's two for-eaches,


[User] Please transcribe this text

[Assistant] It's just a double nested for loop. We're just iterating through the players and the foods. And then we're going to call this helper function.


[User] Please transcribe this text

[Assistant] So in the next sub step, we're going to actually define and call a function that will remove food. So let's first call the function.


[User] Please transcribe this text

[Assistant] Long function here that we just called in Compute Players Eat Foods. Which we'll check to see if the given player can eat the given food. And I'll just walk through this function real quick. We're getting the positions of the food and the player. Those are these six lines here. Then we're getting the distance between the player and the food.


[User] Please transcribe this text

[Assistant] And the last thing we have to do is actually remove the food from the game because we successfully, uhm, absorb the mass into the player. We don't want like the food to remain there.


[User] Please transcribe this text

[Assistant] So let's just call removeFood function, or removeFood function, and let's define this removeFood function. Uhm, there's gonna be a bit of ugly syntax here.


[User] Please transcribe this text

[Assistant] So what this line is doing is it'll get the index of the food item.


[User] Please transcribe this text

[Assistant] And since foods are objects, there's only gonna be one of that object in our food array. So we can safely just get the index of the food item by just calling this JavaScript function indexOf. So now that we have the index,


[User] Please transcribe this text

[Assistant] We checked to see if it's not negative one, which means that we just want to make sure that the index is valid. And if the index is valid,


[User] Please transcribe this text

[Assistant] We're gonna call a JavaScript function called splice. And what this will do is it'll essentially just remove this index from the array. Uhm, and like this one means that we're just deleting one item from the array.


[User] Please transcribe this text

[Assistant] Cool, so now we have a functionality to spawn in food, remove food, and we have this check to see if any players can eat any foods.


[User] Please transcribe this text

[Assistant] And also we want to add all these food functions to the game loop.


[User] Please transcribe this text

[Assistant] We just want to basically spawn in food whenever there's like not enough food left in the game.


[User] Please transcribe this text

[Assistant] Since it's just an array, we can check to see. We're just going to say like, if there's less than 10 foods in the game, we want to spawn anymore food. So we're going to spawn food.


[User] Please transcribe this text

[Assistant] And the last thing we want to do is add all these to our update game state function. Like recall that Michael defined earlier that uhm, Michael defined earlier this update game state function that will be called like every tick.


[User] Please transcribe this text

[Assistant] And we haven't actually put anything in it, but now we finally want to be able to add some live updates to our game. So...


[User] Please transcribe this text

[Assistant] The two things that we just defined are, like, compute players eat foods, which will, again, attempt all pairwise eating between players and foods. And then we're also gonna wanna check if there's enough foods in the game.


[User] Please transcribe this text

[Assistant] We should see that there are, there are foods here and we sign in.


[User] Please transcribe this text

[Assistant] If we hover over food, supposedly this should work, the food should be absorbed into a player's radius, and the food should disappear.


[User] Please transcribe this text

[Assistant] Okay, there's a bug. Of course there's a bug. Uhm, so it looks like the remove player was not, you know, defined properly, or something with the removing, or sorry, removing food.


[User] Please transcribe this text

[Assistant] In this remove food function, or when we called remove food in our player attempt eat food, we didn't actually like pass in the food. So that's not going to work, obviously. So let's just pass in the food here.


[User] Please transcribe this text

[Assistant] We have a player, and when it eats food, nice. So the food is absorbed into the player's masks, and the food disappears from the game.


[User] Please transcribe this text

[Assistant] So Agar.io obviously isn't complete if we can't eat other players, right? Like, we've defined all this socket work for nothing so far, because uhm, who cares if like two players are in the same game if we can't eat each other? So...


[User] Please transcribe this text

[Assistant] Let's define some functions in order to eat other players. This is sort of the demo that you guys should see after we finish this step. We should have a player being able to eat another player.


[User] Please transcribe this text

[Assistant] So this step sort of mirrors the previous step. So if you remember in the previous step,


[User] Please transcribe this text

[Assistant] We added functionality to check if a player can eat their food. We also added functionality


[User] Please transcribe this text

[Assistant] To check all pairwise eating between a player and foods. And then also we added all these functions to our game state. And also we removed the food from the game once it was eaten. Similarly here, what we're gonna wanna do is


[User] Please transcribe this text

[Assistant] Firstly, we're gonna want to, uhm, define a helper function that will check if a given player 1 can eat a given player 2.


[User] Please transcribe this text

[Assistant] So we're gonna define, or we're gonna call the function we just defined in 4.1, which is playerAttemptEatPlayer, in this new function called computePlayersEatPlayers, which will attempt all pairwise eating between the players.


[User] Please transcribe this text

[Assistant] In 4.1, uhm, we're going to uhm, first define our function player attendee player.


[User] Please transcribe this text

[Assistant] So there's a lot of words here, but don't worry about reading it because I'll explain this function.


[User] Please transcribe this text

[Assistant] Yeah, exactly. So yeah, we want to get the positions of players, get the distance between them and like do some checks to see. Uh, and then if the checks are valid, then we want to remove the player from the game. And this is like nearly similar to like player attempt to eat food, which we have down here. Um, so we're just going to essentially implement the same thing again.


[User] Please transcribe this text

[Assistant] And the annoying thing we have to do is, like, we actually have to get the x and y. Uhm, so let's just get, extract these fields.


[User] Please transcribe this text

[Assistant] And now that we've gotten the positions, we can just get the distance between the two quotas. Uh, I'm just going to copy this in. This is kind of annoying to type.


[User] Please transcribe this text

[Assistant] So the first check that we want to, you know, see between two players is whether the player two is within player one's eat range. And this eat range is like something arbitrary we define, uh, which with these constants above like edible range ratio. Um, so let's go ahead and implement that.


[User] Please transcribe this text

[Assistant] The distance is less than, like, player 1's radius times, like, some arbitrary range ratio. This is just for, like, smoothness in the game. You can, like, obviously in your game you'll have some heuristics, uhm, and you should be able to, like, define those in any way you want to, like, make your game smoother or, like, work better.


[User] Please transcribe this text

[Assistant] Okay, so now that we have that check, one additional check we want to do is check if player 1 is actually big enough to eat player 2.


[User] Please transcribe this text

[Assistant] So this is, is checking, you know, getting player one's radius and like again, some arbitrary like edible size ratio.


[User] Please transcribe this text

[Assistant] And checking to see if that's bigger than player 2's radius.


[User] Please transcribe this text

[Assistant] Uhm, what we're gonna do is, similarly as when the player ate the food, we're gonna have the player eat the player. So...


[User] Please transcribe this text

[Assistant] This important step, which I had to bug in last step, uhm.


[User] Please transcribe this text

[Assistant] One important thing we have to do is actually remove the player. Uhm, so we won't remove it directly in this function, but we're just gonna add it to our player's Eden array.


[User] Please transcribe this text

[Assistant] So once pid2, or once player2 is in, we add it to this player2. Alright, that was a long function, so any questions on that function?


[User] Please transcribe this text

[Assistant] So what this step will do is, we'll actually just call the function that we just implemented, pairwise on all the players. So we have some infrastructure here like,


[User] Please transcribe this text

[Assistant] First we're checking to see if there's actually two players in the game, two or more players. And then we're gonna, uhm, call for reaches on each of the players, or on the players array to check to see if like the players can meet each other.


[User] Please transcribe this text

[Assistant] So let's just call the function we just implemented on Plarity 1 and Plarity 2.


[User] Please transcribe this text

[Assistant] Alright, so what this function will do is it'll attempt all pairwise eating between the players.


[User] Please transcribe this text

[Assistant] Alright, now that substep is done, let's move on to step 4.3, where we will call removePlayer on each Eden player.


[User] Please transcribe this text

[Assistant] So recall that in this function we stored what players should be eaten in our playersEaten array.


[User] Please transcribe this text

[Assistant] So actually, we want to be able to remove those players in the player's eating array once our, you know, attempt eating is done. So, in this player's eating, we can call foreach, which will just delete each of the player IDs.


[User] Please transcribe this text

[Assistant] So, I think, honestly like, safe coding practices is probably just to like, make sure, like, to add a check to see if like, player ID 1 is not equal to player ID 2.


[User] Please transcribe this text

[Assistant] Uhm, I think it just worked out in this function that it'll never be the case that like a player can be itself. Uhm, just because of like the checks we have here.


[User] Please transcribe this text

[Assistant] Yeah, so in reality, like, you probably want to add in that check. Uhm, that's a good, thanks for pointing that out, though.


[User] Please transcribe this text

[Assistant] So after we've attempted like all pairwise eating between the players, let's actually remove each player from the players interact.


[User] Please transcribe this text

[Assistant] And then finally in sub 4.4, we're going to want to add this function to our game loop.


[User] Please transcribe this text

[Assistant] So like our function is like basically useless if we don't add to the game loop because we're not going to be calling it. So in this update game state function, let's just call a computer player as he plays. And again, this will attempt all pair white leading between the players.


[User] Please transcribe this text

[Assistant] So the left side is green and the right side is orange or yellow.


[User] Please transcribe this text

[Assistant] So if we're big enough, we get big enough. Let's try eating the other player.


[User] Please transcribe this text

[Assistant] Alright, so let's run, get reset dash dash hard and yet check out w10 dash step five.


[User] Please transcribe this text

[Assistant] Like, a game is not really a game if you can't win, right? Like, we want to win the game.


[User] Please transcribe this text

[Assistant] Recall that there's like two ways to communicate with the client and the server. We have sockets and APIs.


[User] Please transcribe this text

[Assistant] For the game updates, we needed to make them, or we needed the game updates to be fast and live, so we used Stockist.


[User] Please transcribe this text

[Assistant] But we, in this case, we'll use an API for spawning because we don't need like super speed for like spawning in a player in the game.


[User] Please transcribe this text

[Assistant] So what we'll do is we'll implement a spawn button on the game page, and when the user clicks that spawn button, it'll send an API request to the server, and that server will communicate with the server socket and game logic to actually spawn a player into the game.


[User] Please transcribe this text

[Assistant] I think I'll just talk about the most important concepts in this workshop and if anyone wants to have a recording, actually we'll just make a recording with the last step.


[User] Please transcribe this text

[Assistant] It's not like super important compared to like the other steps in the workshop, but there are a few important concepts that I want to point out. So.


[User] Please transcribe this text

[Assistant] I'll just talk through the steps and like, sort of point out the important parts of them. So in the first step,


[User] Please transcribe this text

[Assistant] We're gonna actually, like, not make a player spawn in automatically when the socket connects. And we're going to, like, make some helper functions to help the function, uh, the player, like, actually spawn into the game. In 5.2, we're gonna, like, implement API endpoints.


[User] Please transcribe this text

[Assistant] To allow a post request from the client to spawn in a player into the game.


[User] Please transcribe this text

[Assistant] In 5.3, we're gonna actually add in like a spawn button into the game page, uhm, and like that will call the post request to spawn a player into the game.


[User] Please transcribe this text

[Assistant] Like after a player disconnects or when the socket disconnects from the game, or from the website. And I'll talk a bit more about that just in a few seconds.


[User] Please transcribe this text

[Assistant] And then finally in step 5.5, we're going to add winning to the game. So we're going to check the win condition on the server side and display the winner on the client.


[User] Please transcribe this text

[Assistant] For the last step, if we add winning, like, where do you think we should put the check win function? Like, where on the server side?


[User] Please transcribe this text

[Assistant] So it should definitely be in-game logic, because that's where like all the ground truth logic of our game should run.


[User] Please transcribe this text

[Assistant] Yeaah, exactly, yes. So I think with, if we put the check win condition in players vs. players, it like might check it too frequently, or...


[User] Please transcribe this text

[Assistant] It might like, we might enter a state where we declare a winner even though like there's no winner. Just because like we haven't fully finished like checking all the players, eating players. Uhm, so it's generally best to check the win in like the update the game state function. And recall that we're like running this function.


[User] Please transcribe this text

[Assistant] And also when a player leaves the page. So let's say we have like a client joining the game. And...


[User] Please transcribe this text

[Assistant] When the client presses the spawn button, it's going to send an API request to the server, and the server is going to say, oh, I want to spawn in player.


[User] Please transcribe this text

[Assistant] Let's say more clients during the game, and the server spawns in more players, and there's a bunch of player objects hanging around in the game state.


[User] Please transcribe this text

[Assistant] But when clients leave the game, if we don't clean up the game state, we're just gonna have a bunch of players in the game, even though they're like inactive and unable to move.


[User] Please transcribe this text

[Assistant] The server, or, and Joe, like, just loses internet because he's not connected to MIT secure or something, and sleeps.


[User] Please transcribe this text

[Assistant] The server, what we want to happen is we're going to want the server to take Joe's session and just like put it in the trash. And.


[User] Please transcribe this text

[Assistant] So the main idea here is we're gonna want to remove the player from the game under two conditions. When the socket disconnects from the website, or when the player now gets to a different page.


[User] Please transcribe this text

[Assistant] So again, we'll record step five separately and post it, but you guys finished game book, which is, this was like the, by far the toughest workshop in all of cat book. So congrats on like following through. Thanks for coming. I just wanted to like point out some key takeaways before we leave.


[User] Please transcribe this text

[Assistant] We've added some things in, like sprites, map bounds so you don't go all the way off the canvas, server autoreset so you actually can play the game again, and some just general extra styling. You can also see this at weblab.is slash example if you want to check out the game.


[User] Please transcribe this text

[Assistant] Okay, so before we leave, I just want to clarify some takeaways. In case you didn't understand the workshop, these are the most important things you should take away. So please make sure you understand this. And if you don't, come to Office Hours or post on Piazza.


[User] Please transcribe this text

[Assistant] So again, sockets help us enable like fast live communication between the server and the client.


[User] Please transcribe this text

[Assistant] And API endpoints are for like a bit slower and like data communication between the server and the client.


[User] Please transcribe this text

[Assistant] We introduced HTML Canvas today, and it's a good way to render animations on the front end.


[User] Please transcribe this text

[Assistant] Michael coded up event listeners on the client side, which allow the website to take in user input.


[User] Please transcribe this text

[Assistant] Also, we noted that game logic should live on the server. We want the ground truth to be on the server and not, you know, bouncing around the clients.


[User] Please transcribe this text

[Assistant] Also, we store this game state object on the server side, which stores the ground truth of all the game components that we want.


[User] Please transcribe this text

[Assistant] Additionally, we use a server socket to broadcast live updates to the clients and use like a client socket manager to receive updates from the server.


[User] Please transcribe this text

[Assistant] And note that like the socket name should be the same between the server and the client to actually like have the client receive updates and the client sending updates to the server.


[User] Please transcribe this text

[Assistant] Upon a component unmount and or a client socket disconnect.


[User] Please transcribe this text

[Assistant] We have to clean up the user from the game, whether that be like, despawning or like, removing the game, or removing the player from the game state entirely.


[User] Please transcribe this text

[Assistant] Alright, so that was a lot. Uhm, you can come up to us during lunch if you have any questions. We'll also make the recording. But congrats on finishing all the workshops and congrats on finishing it. And thanks for tuning in.


[User] Please transcribe this text

[Assistant] Alright, so hi everyone, this is just a continuation of workshop 10. Unfortunately, we didn't get to step 5 during the actual lecture, so I'm just going to be going through the coding part of step 5 right now. So just to recap, previously we


[User] Please transcribe this text

[Assistant] We literally just added all the game functionality, all the main game functionality that we need for our agar.io game.


[User] Please transcribe this text

[Assistant] Previously we added the game page, then we added being able to move on the canvas, and then we added players being able to eat food, and then finally we added players being able to eat players.


[User] Please transcribe this text

[Assistant] So now, let's run git reset dash dash hard and git checkout w10 dash step-by.


[User] Please transcribe this text

[Assistant] The next step, let's say that we want to be able to replay the game. Let's add in some functionality to respawn and win the game.


[User] Please transcribe this text

[Assistant] Recall that there's two ways to communicate with the client and the server.


[User] Please transcribe this text

[Assistant] The first, uh, the first way is to use sockets. And we use sockets for game updates because we needed them to be fast. The second way is to use an API endpoint. And for things like spawning,


[User] Please transcribe this text

[Assistant] And like, despawning, we're going to use an API endpoint because we don't really need that much speed for them.


[User] Please transcribe this text

[Assistant] We're gonna be adding a spawn button. And we're gonna add the spawn button to our game page. And when we click the spawn button,


[User] Please transcribe this text

[Assistant] We're gonna send an API request to the backend.


[User] Please transcribe this text

[Assistant] Which will communicate with the service socket and the game logic to actually spawn in the player into the game state.


[User] Please transcribe this text

[Assistant] And then finally the server is going to communicate that information back to the client and the client is going to be able to render.


[User] Please transcribe this text

[Assistant] The player and get information through updates.


[User] Please transcribe this text

[Assistant] There are four or there are five sub-steps in this step and let's go through the coding portions.


[User] Please transcribe this text

[Assistant] So the first sub step is right now, like players are being spawned when the socket connects. Let's remove that and actually just make functions to spawn in players instead.


[User] Please transcribe this text

[Assistant] In 5.3, we're gonna actually add a spawn button on the game page and make it call this API endpoint that we just defined in 5.2.


[User] Please transcribe this text

[Assistant] And then 5.4 and 5.5 are sort of the most important steps in this step. In 5.4, we're gonna actually clean up.


[User] Please transcribe this text

[Assistant] After a sock it disconnects and after a player leaves the page.


[User] Please transcribe this text

[Assistant] And in 5.5 we're gonna add a win condition on the server, uhm, and display the winner on the client.


[User] Please transcribe this text

[Assistant] So actually, 5.5 is a bit less important than 5.4. 5.4 is mostly what we want you to take away from this step.


[User] Please transcribe this text

[Assistant] The fact that you have to clean up after a user exits a website.


[User] Please transcribe this text

[Assistant] Uhm, yeah, so actually before we jump into the side, let's let's do the live coding session.


[User] Please transcribe this text

[Assistant] The first thing that we want to do is go ahead to server socket.


[User] Please transcribe this text

[Assistant] Alright, so it looks like we have two utility functions here. One that will add user to the game, and one that will remove the user from the game.


[User] Please transcribe this text

[Assistant] And these functions are more or less straightforward. Recall that in the game logic.


[User] Please transcribe this text

[Assistant] And let's say the ID that we give is user dot underscore or dot underscore ID.


[User] Please transcribe this text

[Assistant] Recall that the user object that we pass into this function is going to have an underscore ID field.


[User] Please transcribe this text

[Assistant] Similarly, for remove user from game, we can just call the game logic function removePlayer on this user ID.


[User] Please transcribe this text

[Assistant] Alright, so the next thing that we want to do in this step is to actually remove the call to spawn player as soon as a player, uhm, connects via socket. So recall that, like, when we log into our website,


[User] Please transcribe this text

[Assistant] Actually, a player spawns in even if we don't navigate to the game page. And this is because we just automatically spawn in a player whenever our socket connects to the website. So let's remove this call.


[User] Please transcribe this text

[Assistant] And if we remove the call, we won't automatically have a player spawning in when Asaki connects.


[User] Please transcribe this text

[Assistant] Let's move on to step 5.2. And in this step, we're going to add API endpoints to actually use the functions that we just defined.


[User] Please transcribe this text

[Assistant] Which is add user to game and remove user from game.


[User] Please transcribe this text

[Assistant] So remember that all of our API endpoints are housed in api.js on the server side.


[User] Please transcribe this text

[Assistant] So let's go ahead and quote up these two days.


[User] Please transcribe this text

[Assistant] So the first API endpoint we want is a spawn endpoint.


[User] Please transcribe this text

[Assistant] So we called the syntax for an API endpoint. In this case, we want a post endpoint because the client is going to be sending information to the server.


[User] Please transcribe this text

[Assistant] Uhm, namely, like, the client will say, oh, I want to spawn in a player now that I've connected to the website. Or connected to the gameplay. So let's define an endpoint called spawn.


[User] Please transcribe this text

[Assistant] And then recall that there's a rec and a res field.


[User] Please transcribe this text

[Assistant] And let's check to see if the user is actually, you know, a user on the website. It's not undefined. If so, we can call the add user to game function from our socket manager on the user.


[User] Please transcribe this text

[Assistant] And functionally, like this does nothing, but we can just send an empty object as a result.


[User] Please transcribe this text

[Assistant] And then our other endpoint should basically be the same thing.


[User] Please transcribe this text

[Assistant] The next step we want to do is actually add a spawn button on the game page that calls the API endpoints that we just defined.


[User] Please transcribe this text

[Assistant] So let's go ahead to the client side and go to game.js.


[User] Please transcribe this text

[Assistant] Here in 5.3, we already have handily a button here that has an onClick callback function.


[User] Please transcribe this text

[Assistant] And in this function, let's say we're just going to call this post endpoint. So slash API slash spawn.


[User] Please transcribe this text

[Assistant] And inside we're going to create a user object and this user object is going to have a field called user ID. And.


[User] Please transcribe this text

[Assistant] Uh, we can just use the user ID that was passed into the prompt. Or via the props.


[User] Please transcribe this text

[Assistant] We're going to clean up. So what exactly does this mean again? Well, basically when


[User] Please transcribe this text

[Assistant] The user exits the page or when the user disconnects from the website, we want to actually despawn the user from the game. So this is what we mean by cleaning up.


[User] Please transcribe this text

[Assistant] So if we go ahead and actually go to server socket and go to step 5.4.


[User] Please transcribe this text

[Assistant] This is the same place that we're actually deleting the socket from the entire user to socket map. So this means that the user will disconnect, or the user has disconnected from the website. So in this same place, let's just remove the user from the game.


[User] Please transcribe this text

[Assistant] Want the user to be removed from the game if the user navigates away from the game page, even if the user is still connected to the website.


[User] Please transcribe this text

[Assistant] In this case, the socket won't actually disconnect, but we still want the user to end the game, or exit the game.


[User] Please transcribe this text

[Assistant] So in here, in the same place that we removed the event listener, we can send a POST request that will be sent to the dspawn endpoint and similarly just pass in the user ID.


[User] Please transcribe this text

[Assistant] Alright, so now we're done with cleaning up all the game state once the user leaves the website or the game page.


[User] Please transcribe this text

[Assistant] Alright, and then finally, what we want to do is add winning. So, there are two parts of this. The first part is in the server, in game logic, and the second part is in the client, in game.js. First part, we're just gonna check the win on the server side. And then the second part, we're gonna actually display that winner, uh, once the information about the winner is conveyed to the client.


[User] Please transcribe this text

[Assistant] So let's go ahead to gamelogic.js and go to step 5.5.


[User] Please transcribe this text

[Assistant] We can just add the checkWin function to our updateGameState function.


[User] Please transcribe this text

[Assistant] Essentially what this will do is, it'll check the win condition at every tick.


[User] Please transcribe this text

[Assistant] And it'll check it at the beginning. So, you know, if a winner is declared during that tick, we can automatically just declare the winner and like, uh, send that information to the client.


[User] Please transcribe this text

[Assistant] And just to give, you know, a quick recap of this check win function, uh, we defined it for you. It will basically just check to see if a player is sufficiently large to win. If so, then it'll just declare that player as a winner.


[User] Please transcribe this text

[Assistant] And, you know, this is not exactly the safest code. There's actually a race condition in here. But when you're coding your own websites, it's probably best to, you know, deal with all these by thoroughly like playing through your website and making sure it works for like multiple users.


[User] Please transcribe this text

[Assistant] Okay, so now that we've added that to our game state or update game function, let's go ahead to the client side and actually deal with the case where there is a winner.


[User] Please transcribe this text

[Assistant] So the first thing we're going to do is declare a React state called WinnerModel.


[User] Please transcribe this text

[Assistant] And what Wintermodel is going to be is basically a pop-up.


[User] Please transcribe this text

[Assistant] Uhm, it's gonna be an HTML element that will just like pop up on the screen whenever a winner wins. Or whenever a player wins. And in React, usually we have a- when we have a state for an HTML element.


[User] Please transcribe this text

[Assistant] We use, we initialize it to null, so it won't render until we set the state to something.


[User] Please transcribe this text

[Assistant] Now that we have the state in the process update function.


[User] Please transcribe this text

[Assistant] Let's just, you know, declare this if-else statement that will set the user modal to something if there is actually a winner. If not, it'll just set it to null.


[User] Please transcribe this text

[Assistant] And recall that this process update function happens whenever we receive an update from the server. So if there is a winner in this update, then we actually have a winner and we can just display that on our friend end.


[User] Please transcribe this text

[Assistant] And the final thing we want to do is actually render the user or render the winner on


[User] Please transcribe this text

[Assistant] Alright, so if I go ahead and run this, theoretically, if there's a winner, uhm, the winner should be declared and it should be displayed correctly on the front end. So let's go ahead and run that.


[User] Please transcribe this text

[Assistant] And bear with me while I pause my screen share real quick to pull up the website.


[User] Please transcribe this text

[Assistant] So usually when you're testing you want to have like an incognito tab and


[User] Please transcribe this text

[Assistant] A regular tab. Uhm, I forgot to pull up the incognito tab, which is why I am pausing real quick, because I need to actually sign into my Google account.


[User] Please transcribe this text

[Assistant] Oh, actually it looks like something is wrong. Uhm, I actually did want to share this bug if anyone is facing it. Uhm, so yeah, notice how I have a tab.


[User] Please transcribe this text

[Assistant] For like my incognito and a tab for my regular chrome.


[User] Please transcribe this text

[Assistant] Actually, in incognito, if you log in, sometimes it just won't work. Like, let's say I try to log in, it won't work. And...


[User] Please transcribe this text

[Assistant] Actually, you have to enable something incognito. Uhm, yeaah. I think you have to enable third-party cookies. And what that'll do is it'll actually allow you to log in.


[User] Please transcribe this text

[Assistant] Yeah, so now I'm able to log in. And I can also log in regularly here.


[User] Please transcribe this text

[Assistant] So, if I go to the game page here, notice how I don't automatically spawn, which is great. I can also get to the game page here. Let's spawn in here.


[User] Please transcribe this text

[Assistant] It's getting bigger. Let's also spawn in here. Oh, same color. It's kind of unlucky. Let's respawn. Okay. Uhm, so left side is yellow and it's getting bigger and bigger. Let's say we want to eat. Oh, we ate the other player.


[User] Please transcribe this text

[Assistant] And theoretically, uhm, we've coded the win condition to be like the player getting big enough, so, player gets big enough, it should win.


[User] Please transcribe this text

[Assistant] Actually, you can see right now, like, we have the socket number as the actual, like, winner ID.


[User] Please transcribe this text

[Assistant] You should probably change it on your website if you have a win condition. But yeaah, for now we've just hardcoded this in essentially. Or we've just coded in it to be the socket number.


[User] Please transcribe this text

[Assistant] So you guys have finished gamebook and you can check out the complete step to see the full product.


[User] Please transcribe this text

[Assistant] But one thing, before we sum up the lecture, uhm, I just wanted to share, like, what is the motivation behind, like, cleaning up?


[User] Please transcribe this text

[Assistant] Remember that this is like one of the most important takeaways for this lecture. So like, why do we have to clean up the game state after we leave? Okay, so let's say we have a client that joins the game.


[User] Please transcribe this text

[Assistant] And the client communicates this by sending an API request to the backend and the server responds by spawning in a player and sending the update back to the client.


[User] Please transcribe this text

[Assistant] Let's say more clients join the game, so the server spawns in more and more players on the backend into the game state.


[User] Please transcribe this text

[Assistant] Who aren't doing anything, and like, they're permanently disconnected, but, you know, if they can't do anything, then the game's just gonna be cluttered with like, NPCs.


[User] Please transcribe this text

[Assistant] So why do we clean up? So let's say like Joe, we have a client here. When Joe disconnects from the wifi or when they lose wifi or something like that, we want the server to pick up the session and put it in the trash. And everything will be clean again and we can proceed with the game normally.


[User] Please transcribe this text

[Assistant] So the message is to remove player when the socket disconnects.


[User] Please transcribe this text

[Assistant] Or when the player navigates to a different page on the game.


[User] Please transcribe this text

[Assistant] And just to recap, socket disconnection will happen when the player leaves the entire website.


[User] Please transcribe this text

[Assistant] And player navigating to a different page will just happen when player clicks a different tab on the website or, you know, navigates to a different page on the nav bar, etc.


[User] Please transcribe this text

[Assistant] Alright, so congrats on completing Gamebook. It was by far the toughest workshop in, uhm, in WebLab so far.


[User] Please transcribe this text

[Assistant] And yeaah, you definitely deserve a pat of on the back for completing a book.


[User] Please transcribe this text

[Assistant] So if you want to see the final product, we've added a couple of things. So you can do git vset dash dash hard, git checkout w10 dash complete.


[User] Please transcribe this text

[Assistant] And we've added some extra features here, so namely we've added some sprites, map bounds, uh, server autoreset, and some extra styling.


[User] Please transcribe this text

[Assistant] And you can also go to weblab.is slash example to see the full gamebook. And we've added like an LLM thing. Uh, Tony and Andrew added that. So be sure to check out the example website.


[User] Please transcribe this text

[Assistant] And again, uhm, we recapped a lot towards the end of this lecture, but I just wanted to solidify some takeaways.


[User] Please transcribe this text

[Assistant] Uhm, so sockets are there to enable fast live communication between the server and the client, while API endpoints are for like slow and data connections.


[User] Please transcribe this text

[Assistant] Michael introduced HTML Canvas and HTML Canvas is a great way to render animations on the front end.


[User] Please transcribe this text

[Assistant] Event listeners on the client will allow the website to take in any user input. And in this case, we use the event listeners for keybundings.


[User] Please transcribe this text

[Assistant] Uhm, all game logic should be done on the server. Remember that we want the ground truth game logic to be on the server so that, you know, we don't have


[User] Please transcribe this text

[Assistant] You know, game state bouncing around the clients and you know, losing the ground truth of the game.


[User] Please transcribe this text

[Assistant] And on the same note, the game state stored on the server is where the ground truth of the game should be stored. And there should only be one ground truth.


[User] Please transcribe this text

[Assistant] Additionally, we use the server socket to broadcast live updates to the clients and use a client socket manager to receive updates from the server.


[User] Please transcribe this text

[Assistant] And finally, upon a component unmount or client socket disconnect,


[User] Please transcribe this text

[Assistant] We have to clean up the user from the game, or else the game state will be cluttered with unusable users and, you know, that's not what we want, what we want for our game.


[User] Please transcribe this text

[Assistant] Hey, do me a favor and help me cut this 2x4, will ya?


[User] Please transcribe this text

[Assistant] Pass me that circle saw, and grab hold of the end of the board.


[User] Please transcribe this text

[Assistant] Yeah, you're right. Pass me the sander and I'll take care of it.


[User] Please transcribe this text

[Assistant] Hey, do me a favor and help me cut this 2x4, will ya?


[User] Please transcribe this text

[Assistant] Pass me that circle saw, and grab hold of the end of the board.


[User] Please transcribe this text

[Assistant] Yeah, you're right. Pass me the sander and I'll take care of it.


[User] Please transcribe this text

[Assistant] Oh no. I know what you're trying to do, and it's not going to work. I'm in a bad mood, and I'm going to STAYS in a bad mood. Huh? Oh, no, no, no, don't sniff, no.


[User] Please transcribe this text

[Assistant] Okay, well, yesterdays, you, you,


[User] Please transcribe this text

[Assistant] I think you already knows, right? Okay, well, bye.


[User] Please transcribe this text

[Assistant] Actually, I can't remember. You did something. Something awful. I'm not even sure if we can be friends anymore after that awful thing.


[User] Please transcribe this text

[Assistant] It's because we have the exact same DNA. Base sequence pattern 0988 type.


[User] Please transcribe this text

[Assistant] Although Iolia Schenberg worked out his plan up until the third stage, he was obsessively attached to the first stage, the elimination of conflicts. Will it be the design of Ribbon's hallmark, or the ideals of celestial being?


[User] Please transcribe this text

[Assistant] I'd sure like to see my mom and dad again. Your mom and dad? Where are they now? In Swiel.


[User] Please transcribe this text

[Assistant] A laser attack from a satellite using the solar power system. The scale of the attack.


[User] Please transcribe this text

[Assistant] Split our fleet into two groups and attack simultaneously. Using 23 warships and 43 mobile suits. That's the fighting strength of our entire space force.


[User] Please transcribe this text

[Assistant] Whichever one prevails, this world will change.


[User] Please transcribe this text

[Assistant] We'll be fine dear. You're staying with the Ptolemy?


[User] Please transcribe this text

[Assistant] If you'd handled him better, you might have been able to persuade him to become our ally. I went through all the trouble of setting the stage for you.


[User] Please transcribe this text

[Assistant] Is that Gundam equipped with two GN drives? Something that Celestial Being came up with on their own?


[User] Please transcribe this text

[Assistant] Or is it something that Iolia Shenberg left to them? You know, like he left the Trans Am system.


[User] Please transcribe this text

[Assistant] I can't believe we were bested in battle by mere humans. If only Ribbons had told us what the Twin Drive was really capable of doing.


[User] Please transcribe this text

[Assistant] And he's getting Hilling and Divine involved in this as well.


[User] Please transcribe this text

[Assistant] Is it, is it possible that not even Ribbons knew about the Twin Drive's capabilities?


[User] Please transcribe this text

[Assistant] I still have a lot of things to learn. I don't even come close to Kati.


[User] Please transcribe this text

[Assistant] If wars can't be stopped, then I'll come up with tactics to resolve them quickly. By limiting casualties to a minimum, I'll be saving lives. I want to become a tactical forecaster, just like Kati.


[User] Please transcribe this text

[Assistant] You know, that's not the kind of thing you should say to a girl who's five years younger than you.


[User] Please transcribe this text

[Assistant] Lisa, I read your graduation thesis. You did a great job. Oh, thank you very much, Carti.


[User] Please transcribe this text

[Assistant] We must have faith in our comrades.


[User] Please transcribe this text

[Assistant] I'm kind of at a loss about what I should do.


[User] Please transcribe this text

[Assistant] Because of something I did, a lot of people lost their lives. Somehow I have to make up for that. But if it means having to fight, or to actually kill people, I couldn't possibly.


[User] Please transcribe this text

[Assistant] Yes, but I have to help out somehow. There must be something I can do.


[User] Please transcribe this text

[Assistant] Sure, what about? I just wanna know if you intend to stay with them from now on.


[User] Please transcribe this text

[Assistant] If by some chance we were to see each other again, I don't think I'd leave her aside either. But I'm worried.


[User] Please transcribe this text

[Assistant] I see. To avenge the deaths of our family members, my brother went up against this Alsacez. Why are you laughing? Placing revenge before reforming the world. That sounds like my brother, alright. Got a problem with that? Nope. I respect him for it. But our family members were killed over ten years ago. I don't see the point in brooding over what happened. Even if the one responsible was right in front of you? Say what?


[User] Please transcribe this text

[Assistant] It's all in the past now. There's no point in dwelling on what happened. It's true.


[User] Please transcribe this text

[Assistant] What's the plan about? About VEDA. You see?


[User] Please transcribe this text

[Assistant] We've concluded that the Federation, or rather the innovators, have been using VEDA to control information. If we can take VEDA back...


[User] Please transcribe this text

[Assistant] The following is an interview with the President of Russia, Vladimir Putin, shot February 6, 2024, at about 7pm in the building behind us, which is, of course, the Kremlin.


[User] Please transcribe this text

[Assistant] The interview, as you will see if you watch it, is primarily about the war in progress, the war in Ukraine, how it started, what's happening, and most presently, how it might end.


[User] Please transcribe this text

[Assistant] One note before you watch. At the beginning of the interview, we asked the most obvious question, which is, why did you do this? Did you feel a threat, an imminent physical threat? And that's your justification. And the answer we got shocked us.


[User] Please transcribe this text

[Assistant] Putin went on for a very long time, probably half an hour, about the history of Russia going back to the 8th century.


[User] Please transcribe this text

[Assistant] Honestly, we thought this was a filibustering technique and found it annoying and interrupted him several times and he responded, he was annoyed, uh, by the interruption.


[User] Please transcribe this text

[Assistant] But we concluded in the end, for what it's worth, that it was not a filibustering technique. There was no time limit on the interview. We ended it after more than two hours. Instead, what you're about to see seemed to us sincere, whether you agree with it or not. Vladimir Putin believes that Russia has a historic claim to parts of Western Ukraine.


[User] Please transcribe this text

[Assistant] So our opinion would be to view it in that light as a sincere expression of what he thinks. And with that, here it is. Mr. President, thank you.


[User] Please transcribe this text

[Assistant] On February 22nd, 2022, you addressed your country in a nationwide address when the conflict in Ukraine started.


[User] Please transcribe this text

[Assistant] And you said that you were acting because you had come to the conclusion that the United States, through NATO, might initiate a quote, surprise attack on our country.


[User] Please transcribe this text

[Assistant] And to American ears, that sounds paranoid. Tell us why you believe the United States might strike Russia out of the blue. How did you conclude that?


[User] Please transcribe this text

[Assistant] I beg your pardon, can you tell us what period I'm losing track of where in history we are? The Polish oppression of Ukraine.


[User] Please transcribe this text

[Assistant] I'll give you these documents. Well, it doesn't sound like you're inventing it, but I'm not sure why it's relevant to what happened two years ago.


[User] Please transcribe this text

[Assistant] May I ask you, you're making the case that Ukraine, certainly parts of Ukraine, Eastern Ukraine is in effect Russia has been for hundreds of years. Why wouldn't you just take it when you became president?


[User] Please transcribe this text

[Assistant] 24 years ago. You have nuclear weapons, they don't. If it's actually your land, why did you wait so long?


[User] Please transcribe this text

[Assistant] Do you believe Hungary has a right to take its land back from Ukraine? And that other nations have a right to go back to their 1654 borders?


[User] Please transcribe this text

[Assistant] Well that, that is, and there's a lot of that though. I think many nations are upset about Transylvania as well as you obviously know. But many nations feel frustrated by the redrawn borders of the wars of the 20th century.


[User] Please transcribe this text

[Assistant] And wars going back a thousand years, the ones that you mentioned. But...


[User] Please transcribe this text

[Assistant] The fact is that you didn't make this case in public until two years ago, February, and in the case that you made, which I read today,


[User] Please transcribe this text

[Assistant] You, you explain at great length that you felt a physical threat from the West in NATO, including potentially a nuclear threat, and that's what got you to move. Is that a fair characterization of what you said?


[User] Please transcribe this text

[Assistant] Well, of course it did come true, and I, and you've mentioned this many times, I think it's a fair point, and many in America thought that relations between


[User] Please transcribe this text

[Assistant] You think that happened, except to say that the West fears a strong Russia.


[User] Please transcribe this text

[Assistant] We have a strong China the West does not seem very afraid of. What about Russia do you think?


[User] Please transcribe this text

[Assistant] Convinced policy makers, they had to take it down.


[User] Please transcribe this text

[Assistant] Why do you think that is? Just to get to motive, I know you're clearly bitter about it, uhm, I understand. But why do you think the West rebuffed you then? Why the hostility? Why did the end of the Cold War not...


[User] Please transcribe this text

[Assistant] Fix the relationship. What motivates this from your point of view?


[User] Please transcribe this text

[Assistant] Forces in opposition to you. So you're saying the CIA is trying to overthrow your government.


[User] Please transcribe this text

[Assistant] So twice you've described US presidents making decisions and then being undercut.


[User] Please transcribe this text

[Assistant] So it sounds like you're describing a system that's not run by the people who are elected in your talent.


[User] Please transcribe this text

[Assistant] So he did more trade with Russia than with the EU. Ukraine did.


[User] Please transcribe this text

[Assistant] That was eight years before the current conflict started. So what was the trigger for you? What was the moment where you decided you had to do this?


[User] Please transcribe this text

[Assistant] Really my question is what do you do about it? I mean, Hitler's been dead for 80 years, Nazi Germany no longer exists, and so, true, and so, I think what you're saying is you want to extinguish or at least control Ukrainian nationalism, but how? How do you do that?


[User] Please transcribe this text

[Assistant] Right, my question is a little more specific. It was of course not a defense of...


[User] Please transcribe this text

[Assistant] Nazis, neo or otherwise. It was a practical question. You don't control the entire country. You don't control Kiev. You don't seem like you want to. So how, how do you eliminate a culture or an ideology or feelings or view of history in a country that you don't control? What do you do about that?


[User] Please transcribe this text

[Assistant] Uhm, will there be talks and why haven't there been talks about resolving the conflict in Ukraine? Peace talks.


[User] Please transcribe this text

[Assistant] Well, but you wouldn't be speaking to the Ukrainian president, you'd be speaking to the American president. When was the last time you spoke to Joe Biden?


[User] Please transcribe this text

[Assistant] Well, he's funding the war that you're fighting, so I would think that would be memorable.


[User] Please transcribe this text

[Assistant] Devolve or evolve into something that brings the entire world into conflict and could...


[User] Please transcribe this text

[Assistant] Uhm, initiate some, a nuclear launch. And so why don't you just call Biden and say, let's work this out.


[User] Please transcribe this text

[Assistant] Do you think NATO is worried about this becoming a global war or a nuclear conflict?


[User] Please transcribe this text

[Assistant] The threat I think you're referring to is a Russian invasion of Poland, Latvia, expansionist behavior. Can you imagine a scenario where you sent Russian troops to Poland?


[User] Please transcribe this text

[Assistant] Well the argument, I know you know this, is that, well, he invaded Ukraine, he has territorial aims across the continent, and you're saying unequivocally you don't.


[User] Please transcribe this text

[Assistant] One of, uh, our senior United States senators from the state of New York, Chuck Schumer, said yesterday, I believe, that we have to continue to fund the Ukrainian effort, or U.S. soldiers, citizens could wind up fighting there. How do you assess that?


[User] Please transcribe this text

[Assistant] But I'm confused. I mean, that's the biggest act of industrial terrorism ever, and it's the largest emission of CO2 in history. Okay, so if you had evidence, and presumably given your security services or intel services, you would, that NATO, the US CIA, the West, did this, why wouldn't you present it and win a propaganda victory?


[User] Please transcribe this text

[Assistant] Yes, but here's a question you may be able to answer. You worked in Germany, famously. Uhm, the Germans clearly know that their NATO partner did this.


[User] Please transcribe this text

[Assistant] Why are they being silent about it? That's very confusing to me. Why wouldn't the Germans say something about it?


[User] Please transcribe this text

[Assistant] Well, maybe the world is breaking into two hemispheres, one with cheap energy, the other without. And I want to ask you that if, if we're now a multipolar world, obviously we are.


[User] Please transcribe this text

[Assistant] Can you describe the blocks of alliances? Who is in each side, do you think?


[User] Please transcribe this text

[Assistant] Well, let's just give one example. The U.S. dollar, which has kind of united the world, uh, in a lot of ways, maybe not to your advantage, but certainly to ours. Is that going away as the reserve currency, the common, the universally accepted currency? How have sanctions, do you think, changed the dollar's place in the world?


[User] Please transcribe this text

[Assistant] I think that's a fa- I think that's a fair assessment. The question is what comes next, and maybe you trade one colonial power for another much less sentimental and forgiving colonial power. I mean, are- is the- the bricks, for example,


[User] Please transcribe this text

[Assistant] In a way that's not good for their sovereignty. Do you worry about that?


[User] Please transcribe this text

[Assistant] So you said a moment ago that the world would be a lot better if it weren't broken into competing alliances, if there was cooperation globally.


[User] Please transcribe this text

[Assistant] One of the reasons you don't have that is because


[User] Please transcribe this text

[Assistant] Be able to reestablish communication with the U.S. government. Or does it not matter who the president is?


[User] Please transcribe this text

[Assistant] You've run this country for so long, you've known all these American presidents, what are those power centers in the United States, do you think? Like who actually makes the decisions?


[User] Please transcribe this text

[Assistant] You sent troops into Ukraine. The Vice President of the United States went to the Munich Security Conference and encouraged the President of Ukraine to join NATO.


[User] Please transcribe this text

[Assistant] Do you think that was an effort to provoke you into military action?


[User] Please transcribe this text

[Assistant] Do you think Zelensky has the freedom to negotiate a settlement to this conflict?


[User] Please transcribe this text

[Assistant] But do you think at this point, as of February 2024, he has the latitude, the freedom?


[User] Please transcribe this text

[Assistant] To speak with you or your government directly about putting an end to this, which clearly isn't helping his country or the world. Can he do that, do you think?


[User] Please transcribe this text

[Assistant] You've described the connection between Russia and Ukraine. You've described Russia itself a couple of times as orthodox. That's central to your understanding of Russia. You've said you're orthodox. What does that mean?


[User] Please transcribe this text

[Assistant] For you, you're a Christian leader by your own description. So what effect does that have on you?


[User] Please transcribe this text

[Assistant] Look out across what's happening in the world now. Do you see God at work? Do you ever think to yourself, these are forces that are not human?


[User] Please transcribe this text

[Assistant] I appreciate all the time you've given us. I just gotta ask you one last question, and that's about someone who's very famous in the United States, probably not here. Evan Gershkovitz, who's the Wall Street Journal reporter, he's 32.


[User] Please transcribe this text

[Assistant] Uhm, and he's been in prison for almost a year. Uh, this is a huge story in the United States and I just want to ask you directly,


[User] Please transcribe this text

[Assistant] Without getting into the details of it or your version of what happened, if as a sign of your decency, you would be willing to release him to us and we'll bring him back to the United States.


[User] Please transcribe this text

[Assistant] So typically, I mean, this stuff has happened for obviously centuries. One country catches another spy within its borders, it trades it for one of its own intel guys in another country. I think what makes, and it's not my business, but what makes this difference is the guy's obviously not a spy, he's a kid.


[User] Please transcribe this text

[Assistant] And maybe he was breaking your law in some way, but he's not a super spy, and everybody knows that, and he's being held hostage in exchange, which is true. With respect, it's true, and everyone knows it's true.


[User] Please transcribe this text

[Assistant] What is it then? But are you suggesting that he was working for the US government or NATO or he was just a reporter who was given material he wasn't supposed to have? Those seem like very different, very different things.


[User] Please transcribe this text

[Assistant] I wonder if that's, I wonder if that's true with the war though also. I mean I just want to, I guess I want to ask one more question which is, and maybe you don't want to say so for strategic reasons, but are you worried that what's happening in Ukraine could


[User] Please transcribe this text

[Assistant] Lead to something much larger and much more horrible and how motivated are you?


[User] Please transcribe this text

[Assistant] Just to call the US government and say, let's come to terms.


[User] Please transcribe this text

[Assistant] Ukraine was prevented from negotiating a peace settlement by the former British Prime Minister acting on behalf of the Biden administration. So of course they're a satellite, big countries control small countries, that's not new. And that's why I asked about dealing directly with the Biden administration, which is making these decisions, not President Zelensky of Ukraine.


[User] Please transcribe this text

[Assistant] So I just want to make sure I'm not misunderstanding what you're saying. I don't think that I am. I think you're saying you want a negotiated settlement to what's happening in Ukraine.


[User] Please transcribe this text

[Assistant] Do you think it's too humiliating at this point for NATO to accept Russian control of what was two years ago Ukrainian territory?


[User] Please transcribe this text

[Assistant] Would you be willing to say, congratulations NATO, you won, and just keep the situation where it is now?


[User] Please transcribe this text

[Assistant] The satellite weapon was destroyed, but we were pretty heavily damaged. In the worst case, we might have to ask your branch for help.


[User] Please transcribe this text

[Assistant] Nice to meet you. My name's Sophie.


[User] Please transcribe this text

[Assistant] I'm a keyboard operator. What's your job?


[User] Please transcribe this text

[Assistant] Nice to meet you. My name's Sophie.


[User] Please transcribe this text

[Assistant] I'm a keyboard operator. What's your job?


[User] Please transcribe this text

[Assistant] Are they still affiliated with Celestial Being? What about the rumor these particular Gundams were actually developed by a dissident group?


[User] Please transcribe this text

[Assistant] You're not really a soldier, are you boy? I'm an old soldier, I can tell these things. You don't have the eyes of someone who's seen combat. In other words, you're clearly not a member of Catherine. So what in the world have you been up to?


[User] Please transcribe this text

[Assistant] You've been traveling with Celestial Bean, haven't you? It's plausible.


[User] Please transcribe this text

[Assistant] According to the data, until a few weeks ago, you were working on colony development at Proud, where the Gundams first reappeared.


[User] Please transcribe this text

[Assistant] I believe you. I just want to hear your side of the story, boy. I won't use it against you.


[User] Please transcribe this text

[Assistant] What are you talking about? I'm afraid your presence here was leaked to the allies. They're a group that operates above the law.


[User] Please transcribe this text

[Assistant] Those children are your victims too, you know. Victims of the world that you guys changed.


[User] Please transcribe this text

[Assistant] I've got comrades in town I need to talk to.


[User] Please transcribe this text

[Assistant] Let us not keep them and ourselves in the dark. Let us celebrate diversity.


[User] Please transcribe this text

[Assistant] Alright, Trans Amp! Let's get going, Haro!


[User] Please transcribe this text

[Assistant] I heard you weren't feeling well. Is something the matter?


[User] Please transcribe this text

[Assistant] It would probably be a good idea to prescribe some new medication for you.


[User] Please transcribe this text

[Assistant] I gave you the medication that suppressed the cellular defects that were eating your body Why did I do that?


[User] Please transcribe this text

[Assistant] So that you can bring about a united world without war.


[User] Please transcribe this text

[Assistant] And avenge your parents by defeating the Gundams.


[User] Please transcribe this text

[Assistant] I brought this regnant specifically for you.


[User] Please transcribe this text

[Assistant] I want you to become humanity's first innovator, so you can guide this world. Will you, Louise Hallevy?


[User] Please transcribe this text

[Assistant] That's right. We are superior beings, absolute and perfect.


[User] Please transcribe this text

[Assistant] I can't stand us being treated as though we were as lowly as humans.


[User] Please transcribe this text

[Assistant] No way, dear. I cannot lose you, too. I will find them. I feel it.


[User] Please transcribe this text

[Assistant] I feel I have to go and that they are expecting me.


[User] Please transcribe this text

[Assistant] I love you very much. And even if you've turned into crows, you're still my brother's.


[User] Please transcribe this text

[Assistant] She has yet not forgiven herself for the curse, brothers. Come back, and she will be most happy to see you all.


[User] Please transcribe this text

[Assistant] Mother, I'm back, and I have a big surprise for you.


[User] Please transcribe this text

[Assistant] An evolutionary biologist at Purdue University named William Muir studied chickens.


[User] Please transcribe this text

[Assistant] He was interested in productivity. I think it's something that concerns all of us. But it's easy to measure in chickens because you just count the eggs.


[User] Please transcribe this text

[Assistant] He wanted to know what could make his chickens more productive, so he devised a beautiful experiment. Chickens live in groups, so first of all he selected just an average flock, and he left it alone for six generations.


[User] Please transcribe this text

[Assistant] And he put them together in a super flock, and each generation he selected only the most productive for breeding. After six generations had passed, what did he find?


[User] Please transcribe this text

[Assistant] Well, the first group, the average group, was doing just fine. They were all plump and fully feathered, and egg production had increased dramatically. What about the second group? Well, all but three were dead. They'd pecked the rest to death.


[User] Please transcribe this text

[Assistant] The individually productive chickens had only achieved their success by suppressing the productivity of the rest.


[User] Please transcribe this text

[Assistant] Now as I've gone around the world talking about this and telling this story and all sorts of organizations and companies, people have seen the relevance almost instantly and they come up and they say things to me like, that super flock, that's my company.


[User] Please transcribe this text

[Assistant] All my life I've been told that the way we have to get ahead is to compete. Get into the right school, get into the right job, get to the top.


[User] Please transcribe this text

[Assistant] And I've really never found it very inspiring. I've started and run businesses because invention is a joy. And because working alongside brilliant creative people is its own reward.


[User] Please transcribe this text

[Assistant] And I've never really felt very motivated by pecking orders or by super chickens or by superstars.


[User] Please transcribe this text

[Assistant] But for the past 50 years, we've run most organizations and some societies along the super chicken model.


[User] Please transcribe this text

[Assistant] We thought that success is achieved by picking the superstars, the brightest men or occasionally women in the room, and giving them all the resources and all the power.


[User] Please transcribe this text

[Assistant] And the result has been just the same as in William Muir's experiment, aggression, dysfunction and waste.


[User] Please transcribe this text

[Assistant] If the only way the most productive can be successful is by suppressing the productivity of the rest, then we badly need to find a better way to work and a richer way to live.


[User] Please transcribe this text

[Assistant] Well that's the question a team at MIT took to research. They brought in hundreds of volunteers, they put them into groups, and they gave them very hard problems to solve. And what happened was exactly what you'd expect, that some groups were very much more successful than others.


[User] Please transcribe this text

[Assistant] But what was really interesting was that the high achieving groups were not those where they had one or two people with spectacularly high IQ.


[User] Please transcribe this text

[Assistant] Nor were the most successful groups the ones that had the highest aggregate IQ.


[User] Please transcribe this text

[Assistant] Instead, they had three characteristics, the really successful teams. First of all,


[User] Please transcribe this text

[Assistant] They showed high degrees of social sensitivity to each other.


[User] Please transcribe this text

[Assistant] This is measured by something called the reading the mind in the eye test. It's broadly considered a test for empathy. And the groups that scored highly on this did better.


[User] Please transcribe this text

[Assistant] Secondly, the successful groups gave roughly equal time to each other, so that no one voice dominated, but neither were there any passengers. And thirdly, the more successful groups had more women in them.


[User] Please transcribe this text

[Assistant] Was this because women typically score more highly on the reading of mind in the eye test, so you're getting a doubling down on the empathy quotient? Or was it because they brought a more diverse perspective? We don't really know. But the striking thing about this experiment,


[User] Please transcribe this text

[Assistant] Really counts. Because in groups that are highly attuned and sensitive to each other, ideas can flow and grow, people don't get stuck, they don't waste energy down dead ends. An example.


[User] Please transcribe this text

[Assistant] Arup is one of the world's most successful engineering firms and it was commissioned to build the Equestrian Center for the Beijing Olympics. Now this building had to receive two and a half thousand


[User] Please transcribe this text

[Assistant] What quantity of waste to cater for?


[User] Please transcribe this text

[Assistant] So he could have spent months talking to vets, doing the research, tweaking the spreadsheet. Instead, he asked for help.


[User] Please transcribe this text

[Assistant] Eric believes that the culture of helpfulness is central to their success.


[User] Please transcribe this text

[Assistant] But it's absolutely core to successful teens, and it routinely outperforms individual intelligence.


[User] Please transcribe this text

[Assistant] Helpfulness means I don't have to know everything.


[User] Please transcribe this text

[Assistant] But there isn't a single high tech company I've worked with that imagines for a moment that this is a technology issue. Because what drives helpfulness is people getting to know each other.


[User] Please transcribe this text

[Assistant] Now that sounds so obvious, and we think it'll just happen normally, but it doesn't. When I was running my first software company,


[User] Please transcribe this text

[Assistant] I realized that we were getting stuck. There was a lot of friction, but not much else.


[User] Please transcribe this text

[Assistant] And I gradually realized the brilliant creative people that I'd hired didn't know each other.


[User] Please transcribe this text

[Assistant] They were so focused on their own individual work, they didn't even know who they were sitting next to.


[User] Please transcribe this text

[Assistant] And it was only when I insisted that we stop working and invest time in getting to know each other that we achieved real momentum.


[User] Please transcribe this text

[Assistant] Now that was 20 years ago, and now I visit companies that have banned coffee cups at desks because they want people to hang out around the coffee machines and talk to each other.


[User] Please transcribe this text

[Assistant] The Swedes even have a special term for this, they call it fika, which means more than a coffee break, it means collective restoration.


[User] Please transcribe this text

[Assistant] At IDEX, a company up in Maine, they've created vegetable gardens on campus so that people from different parts of the business can work together and get to know the whole business that way. Have they all gone mad?


[User] Please transcribe this text

[Assistant] Quite the opposite. They figured out that when the going gets tough, and it always will get tough if you're doing breakthrough work that really matters. What people need is social support, and they need to know who to ask for help. Companies don't have ideas. Only people do. And what motivates people


[User] Please transcribe this text

[Assistant] Of the bonds and loyalty and trust they develop between each other. What matters is the mortar, not just the bricks.


[User] Please transcribe this text

[Assistant] Now when you put all of this together, what you get is something called social capital.


[User] Please transcribe this text

[Assistant] Social capital is the reliance in interdependency that builds trust. The term comes from sociologists who were studying communities that proved particularly resilient in times of stress. Social capital is what gives companies momentum, and social capital is what makes companies robust. What does this mean in practical terms? It means that time


[User] Please transcribe this text

[Assistant] Because social capital compounds with time.


[User] Please transcribe this text

[Assistant] So teams that work together longer get better because it takes time to develop the trust you need for real candor and openness.


[User] Please transcribe this text

[Assistant] When Alex Pentland suggested to one company that they synchronize coffee breaks so that people would have time to talk to each other.


[User] Please transcribe this text

[Assistant] Profits went up fifteen million dollars and employee satisfaction went up ten percent.


[User] Please transcribe this text

[Assistant] Not a bad return on social capital, which compounds even as you spend it.


[User] Please transcribe this text

[Assistant] Now, this isn't about chumminess and it's no charter for slackers. Because people who work this way tend to be kind of scratchy, impatient, absolutely determined to think for themselves because that's what their contribution is. Conflict is frequent because candor is safe. And that's how good ideas turn into great ideas.


[User] Please transcribe this text

[Assistant] And it's only through the generous contribution, faith and challenge that they achieve their potential. And that's what social capital supports.


[User] Please transcribe this text

[Assistant] Now we aren't really used to talking about this, about talent, about creativity in this way. We're used to talking about stars.


[User] Please transcribe this text

[Assistant] So I went and I sat in on the auditions at the Royal Academy of Dramatic Art in London. And what I saw there really surprised me.


[User] Please transcribe this text

[Assistant] Because the teachers weren't looking for individual pyrotechnics.


[User] Please transcribe this text

[Assistant] They were looking for what happened between the students because that's where the drama is.


[User] Please transcribe this text

[Assistant] And when I talked to producers of hit albums, they said, oh sure, we have lots of superstars in music. It's just, they don't last very long.


[User] Please transcribe this text

[Assistant] It's the outstanding collaborators who enjoy the long careers because bringing out the best in others is how they found the best in themselves.


[User] Please transcribe this text

[Assistant] And when I went to visit companies that are renowned for their ingenuity and creativity, I couldn't even see any superstars because everybody there really mattered. And when I reflected on my own career,


[User] Please transcribe this text

[Assistant] I think extraordinary people I've had the privilege to work with. I realized how much more we could give each other if we just stopped trying to be super chickens.


[User] Please transcribe this text

[Assistant] Once you appreciate truly how social work is, a lot of things have to change.


[User] Please transcribe this text

[Assistant] Management by talent contest has routinely pitted employees against each other. Now rivalry has to be replaced by social capital.


[User] Please transcribe this text

[Assistant] For decades we've tried to motivate people with money, even though we've got a vast amount of research that shows that money erodes social connectedness. Now we need to let people motivate each other.


[User] Please transcribe this text

[Assistant] And for years we've thought that leaders were heroic soloists who were expected all by themselves to solve complex problems. Now we need to redefine leadership.


[User] Please transcribe this text

[Assistant] As an activity in which conditions are created, in which everyone can do their most courageous thinking together. We know that this works.


[User] Please transcribe this text

[Assistant] When the Montreal Protocol called for the phasing out of CFCs, the chlorofluorocarbons implicated in the hole in the ozone layer, the risks were immense.


[User] Please transcribe this text

[Assistant] CFCs were everywhere, and nobody knew if a substitute could be found.


[User] Please transcribe this text

[Assistant] But one team that rose to the challenge adopted three key principles.


[User] Please transcribe this text

[Assistant] The first was the head of engineering, Frank Maslin, said there will be no stars in this team. We need everybody. Everybody has a valid perspective. Second, we work to one standard only. The best imaginable.


[User] Please transcribe this text

[Assistant] And third, he told his boss, Jeff Tudhope, that he had to butt out.


[User] Please transcribe this text

[Assistant] Because he knew how disruptive power can be. Now, this didn't mean Todd Hope did nothing.


[User] Please transcribe this text

[Assistant] He gave the team air cover and he listened to ensure that they honored their principles. And it worked.


[User] Please transcribe this text

[Assistant] Ahead of all the other companies tackling this hard problem, this group cracked it first.


[User] Please transcribe this text

[Assistant] And to date, the Montreal Protocol is the most successful international environmental agreement ever implemented.


[User] Please transcribe this text

[Assistant] There was a lot at stake then, and there's a lot at stake now.


[User] Please transcribe this text

[Assistant] And we won't solve our problems if we expect it to be solved by a few supermen or superwomen. Now we need everybody.


[User] Please transcribe this text

[Assistant] And because it is only when we accept that everybody has value, that we will liberate the energy and imagination and momentum we need to create the best beyond measure. Thank you.


[User] Please transcribe this text

[Assistant] That shiny pin, Sandy, you are cooking some amazing food. Yesterday was absolutely brilliant. Two of the best dishes so far this year. Thank you. And you've got the pin to prove it.


[User] Please transcribe this text

[Assistant] It's the first time you've seen the MasterChef kitchen empty like this. Industrial kitchen set up behind us can only mean one thing. Today is a service challenge.


[User] Please transcribe this text

[Assistant] And here's the thing, your starters need to leave the pass on the three hour mark.


[User] Please transcribe this text

[Assistant] On the way to the kitchen. Your time starts now.


[User] Please transcribe this text

[Assistant] Hopefully everything's going as planned, but with half an hour to go, it's time to switch your brain from prep to service. Let's go. Come on guys, come on.


[User] Please transcribe this text

[Assistant] What do you reckon? It looks a bit insipid to me. The colour on the batter, I mean they've been very deliberate to keep it light.


[User] Please transcribe this text

[Assistant] I just love how tender that beef cheek is. I mean, you barely touch that, and uh, it just starts falling apart.


[User] Please transcribe this text

[Assistant] And in a good way because all those chunks look really kind of beautiful and that is a beautiful, beautiful, beautiful plate of food.


[User] Please transcribe this text

[Assistant] Need to go on, yeah? I think she's worried that we're not gonna get it done in time.


[User] Please transcribe this text

[Assistant] No, this is a magical mirror. It shows the truth. Nothing.


[User] Please transcribe this text

[Assistant] And she built an ice castle far away from everyone.


[User] Please transcribe this text

[Assistant] She grew up all alone, without any love or joy in her life.


[User] Please transcribe this text

[Assistant] Please don't kill her. Kill her evil thoughts. Your magic mirror will help you to do so.


[User] Please transcribe this text

[Assistant] If you succeed in reminding her who she was, you can save your friend K.


[User] Please transcribe this text

[Assistant] Nona Rosa wasn't comfortable with our decision to do beef cheeks, but we've backed ourselves and it's looking great.


[User] Please transcribe this text

[Assistant] So we're at Howard Smith Warps walking along this beautiful boardwalk and the story bridges in the background and it looks magnificent.


[User] Please transcribe this text

[Assistant] I need spices, Larry. Yep, okay. I need star anise, cinnamon. Our pork will is in the oven for the crispy pork salad. So my briskets are in the pressure cooker. Now I need to move on to making my soup for my beef pho.


[User] Please transcribe this text

[Assistant] It's an hour and a half to go and I'm nearly finished getting my stock on for my soup. I just need to quickly brown this ginger and this onion and pop it in the stock pot and then I can move on to the other elements that I need to deal with. I'm so happy with my beef. It is tasting and looking really delicious.


[User] Please transcribe this text

[Assistant] And Larissa and I nailed these dishes. They are really good. I think these were top dishes today and now no one is going to eat them and the judges are not going to get to taste them.


[User] Please transcribe this text

[Assistant] But I love trying to make tricky flavours work.


[User] Please transcribe this text

[Assistant] The oyster mayonnaise is delicious. It's the first time I've ever made oyster mayonnaise and I'll be making it again. It's really minerally, it's gonna work beautifully with the rest of the ingredients. The coconut is pickling, the oyster mayonnaise is done, the crab has been de-picked.


[User] Please transcribe this text

[Assistant] In the dish it's really important to have texture. But the pickled coconut has freshness and also creaminess. And it has the acid I need for the salad to work.


[User] Please transcribe this text

[Assistant] Yes, I want to taste my dish. I'm so excited. I'm really happy with how my dish has turned out. I'm really hoping they feel the same way.


[User] Please transcribe this text

[Assistant] I've cooked a crab salad. And what is in your crab salad? It's crab, pickled and charred coconut, there's an oyster, mayonnaise and some peanut praline.


[User] Please transcribe this text

[Assistant] We should go and see the night at once. When they went to the night's castle, the night welcomed them.


[User] Please transcribe this text

[Assistant] Robert and Amelia asked the knight and his wife if their marriage was truly as happy as people said it was.


[User] Please transcribe this text

[Assistant] They thanked the knight and his wife and continued their journey in search of the completely happily married couple. As they traveled on,


[User] Please transcribe this text

[Assistant] Dejected once again, Robert and Amelia looked at each other.


[User] Please transcribe this text

[Assistant] For otherwise the long journeys and all the trouble that we are taking would go in vain.


[User] Please transcribe this text

[Assistant] All this was observed by Robert and Amelia, who walked closer and spoke to them.


[User] Please transcribe this text

[Assistant] Yes, you see, we have traveled for days to find the truly happily married couple. And in both of you, we have found it. If you give us a piece of linen from your cloth.


[User] Please transcribe this text

[Assistant] Then we will take it to the wise man in the forest and from it he will for talismans which will ensure that Robert and I live happily together forever.


[User] Please transcribe this text

[Assistant] But nevertheless, they gifted the shepherd some gold coins before leaving.


[User] Please transcribe this text

[Assistant] Let us go back to our kingdom. I do not wish for any talisman.


[User] Please transcribe this text

[Assistant] And so Robert and Amelia decided to return home, while passing through the forest where the wise man lived.


[User] Please transcribe this text

[Assistant] After listening to them, the wise man smiled.


[User] Please transcribe this text

[Assistant] At this, Robert and Amelia were stunned. They looked at each other and wondered what the wise man meant. What do you mean?


[User] Please transcribe this text

[Assistant] Both Robert and Amelia realized what the wise man was trying to do all this while. It was a lesson. Robert took Amelia's hand.


[User] Please transcribe this text

[Assistant] And together they guarded the talisman that they had found in their hearts.


[User] Please transcribe this text

[Assistant] And lived happily ever after. But wait. That's not the end. The knight and his wife had a baby girl.


[User] Please transcribe this text

[Assistant] He was no one but the wise man in disguise to teach Robert and Amelia their lesson.


[User] Please transcribe this text

[Assistant] And is that what you truly desire, my mistress?


[User] Please transcribe this text

[Assistant] This is a big operation. Why does Ribbons keep doing these things? You look irritated. Still waiting to avenge Brink?


[User] Please transcribe this text

[Assistant] 15 minutes in a clock, we still have very bit to go and we are looking out and we can see sea of people walking in and the chill went into us.


[User] Please transcribe this text

[Assistant] Those poor humans. Unlike us, they can't just communicate mind to mind.


[User] Please transcribe this text

[Assistant] Despair and agony. In the midst of a battle where lives are lost, people's thoughts intersect. Next episode, within the scattering light, before love turns to hate.


[User] Please transcribe this text

[Assistant] Manu was a small boy who lived with his parents in a big house. Manu loved toys and had lots of them. Every time a new toy came in the market Manu's parents would buy it for him.


[User] Please transcribe this text

[Assistant] Once Manu's mother got him a box made of tin. What's in it mama? This is for my sweet little boy, the tin soldiers. Now you have an army of your own. They will protect you.


[User] Please transcribe this text

[Assistant] Out of these 100 soldiers, there was one very different tin soldier. Oh.


[User] Please transcribe this text

[Assistant] The tin was watching everyone. The panda stretched his back.


[User] Please transcribe this text

[Assistant] But Tin had stopped listening to them his eyes were stuck at a distant shiny figure


[User] Please transcribe this text

[Assistant] That which shone the most was a red bright heart right at the center of her dress. She danced on one foot, with her other foot raised high behind her. There was a beautiful pond right outside the castle.


[User] Please transcribe this text

[Assistant] The water shone on her face like morning dew on the grass. Tin could not see anything else.


[User] Please transcribe this text

[Assistant] It didn't take time for Tin to realize that he was in love with Tracy. The evening passed. All the toys played and laughed.


[User] Please transcribe this text

[Assistant] Tinn took a deep breath and started towards the ballerina. He fell a few times trying to jump towards her.


[User] Please transcribe this text

[Assistant] She had never seen a soldier who had such a strong will. He was special indeed.


[User] Please transcribe this text

[Assistant] Tin and Tracy spent the whole night near the pond, talking and laughing. It was the best night for both of them.


[User] Please transcribe this text

[Assistant] But before Tin could think anything, he was again falling deeper into the gutter.


[User] Please transcribe this text

[Assistant] The cook took the fish in the kitchen and cut it open with a big sharp knife.


[User] Please transcribe this text

[Assistant] But Tin was right. He had been there before.


[User] Please transcribe this text

[Assistant] It was the same house. He was back to Manu and his love, Tracy.


[User] Please transcribe this text

[Assistant] Standing exactly where she was, waiting for him. As Tin looked at her, his eyes didn't move.


[User] Please transcribe this text

[Assistant] All the toys watched as Tracy and Tim burned in the fire. They had a smile on their faces. They were together at last.


[User] Please transcribe this text

[Assistant] Till the mother came, the fire had burned the paper ballerina and the tin soldier. Nothing was left of them.


[User] Please transcribe this text

[Assistant] Just like the one that was stuck on the ballerina's dress. That's all that was left of her. Manu knew his toys well. He knew what had happened.


[User] Please transcribe this text

[Assistant] He smiled and kept the blended heart on the top floor of the shelf. No one could now disturb Tin and Tracy.


[User] Please transcribe this text

[Assistant] But they would be together always, and Manu would now never lose either of them.


[User] Please transcribe this text

[Assistant] Tracy and Tin were now inseparable.


[User] Please transcribe this text

[Assistant] Yes, absolutely, I have been there many times. I know it sounds like a very simple bit of advice, but I think when you're in this state you kind of want to impress. But do what you know today.


[User] Please transcribe this text

[Assistant] Okay, it's nice, it adds a bit of richness and texture.


[User] Please transcribe this text

[Assistant] Dr. Jane Goodall is going to tell you a story.


[User] Please transcribe this text

[Assistant] Stay tuned after the animation to learn how to download this as a free children's book. Ready? Let's begin.


[User] Please transcribe this text

[Assistant] Help turn the whisper into a roar by sharing this poem today.


[User] Please transcribe this text

[Assistant] You can download the illustrated book for free at ed.ted.com slash whisper. Or keep your soul aflutter with one of these animated poems.


[User] Please transcribe this text

[Assistant] That's the report from gene one. It seems celestial being intends to go there as well.


[User] Please transcribe this text

[Assistant] The Innovator's giant mothership finally appears. Do the Meisters standing against it have any chance at victory? Next episode, Flower of Life. With every flash of light, a life disappears.


[User] Please transcribe this text

[Assistant] The kind of future that you win through fighting is no future at all.


[User] Please transcribe this text

[Assistant] Lasse's still recovering. Someone has to take over the job of protecting Ptolemy.


[User] Please transcribe this text

[Assistant] Anytime you go onto a pressure test, it could be your last day in the kitchen. So, pretty nerve wracking.


[User] Please transcribe this text

[Assistant] Really happy with how much I've retained writing it down, you know, I think I've got the planning with how it's meant to look, but I really need to get my timing correct.


[User] Please transcribe this text

[Assistant] I look over to my Crayon and I've been whipping the full score and that's gone far too far. My Crayon is at firm pace.


[User] Please transcribe this text

[Assistant] At this point in the cook everything's going wrong. My chocolate hasn't worked. My cream is far too over-whipped. There's a really large risk of me going home.


[User] Please transcribe this text

[Assistant] Really under the pressure now. Now I'm, I'm really in the midst. So I've really, really gotta cook as fast as I can. I've never done something so complicated as this.


[User] Please transcribe this text

[Assistant] It's a bit diff-deflating, but I've still got something there. You got 12 minutes to go!


[User] Please transcribe this text

[Assistant] Right guys, once you've been shown how to make the dish, you'll head across town to the joinery in West End where you'll make it.


[User] Please transcribe this text

[Assistant] You're going to have two and a half hours to prep the dish. We'll be judging you on how closely your dish resembles Shannon's, both in taste and of course presentation. Whoever brings us a dish that's least like Shannon's will be going home.


[User] Please transcribe this text

[Assistant] Right guys, time to head into Montrachet with Shannon. We'll see you over in the joinery. Off you go. Good luck guys.


[User] Please transcribe this text

[Assistant] Guys, you still got a lot to do. You need to get that mousse out of the mould. You need to obviously spray it. There's so much to do. It's gonna be down to the wire. Yes? Yep. Keep moving. Fifty minutes. Come on.


[User] Please transcribe this text

[Assistant] It was a difficult challenge. Let's get the first dish in.


[User] Please transcribe this text

[Assistant] I'm sure you've done some really difficult things in your life.


[User] Please transcribe this text

[Assistant] That's a delicious dessert now. A really, really good job. So, let's get the next dish in.


[User] Please transcribe this text

[Assistant] Ben's tough. Lacking with a little bit of the execution. But Tim, some of your elements were not quite right.


[User] Please transcribe this text

[Assistant] Ginger's an amazing ingredient. I love cooking with it, I love eating it. It's definitely one of those top 10 ingredients.


[User] Please transcribe this text

[Assistant] But I've made buttermilk before, and I've made ponzu before, and I think they're gonna work well together.


[User] Please transcribe this text

[Assistant] Yeah, using those, and then I'm going to make a ginger ponzu. So I'm making buttermilk using the cream. So separating that out. You're cooking the bugs through the butter and making the ponzu with the buttermilk.


[User] Please transcribe this text

[Assistant] I cracked them open and they cooked perfectly. The meat is just melting in your mouth. It's sweet and salty. I'm really happy with how they are.


[User] Please transcribe this text

[Assistant] And that's really putting me in a twist and turn and second guessing what I'm doing. So I'm really questioning my dish.


[User] Please transcribe this text

[Assistant] I'm pretty happy with how my ponzu tastes. Quite bright and definitely gingery. I'm gonna stick with what I'm doing, but I'm gonna also listen to Gary and go and elevate my dish. I'm really starting to push to get more ingredients, really try and build more on what I've already got. Yeah, way better.


[User] Please transcribe this text

[Assistant] And make a really wonderful, wonderful ginger based dish.


[User] Please transcribe this text

[Assistant] Pretty happy with how it tastes, and I just want to make this dish look beautiful.