 Okay, I am very, very proud to introduce the Rocket Badge team that hacked the Lightning Talk format, so give them a round of applause for that. I never said you could not schedule three back-to-back demos that were thematically different enough to constitute their own Lightning Talks all at the same time, plus it's the Rocket Badge, so it's really awesome. So they have three, they have a five-minute talk and then two demos, was that it? Okay, so they have a five-minute talk and two demos and they're taking up the next 15 minutes. Give the Rocket Badge team a huge round of applause, they're going to take it from here. Hi. Okay, this is about the multiplayer, massive multiplayer prong. We wanted to have a nice game with, playable with the Rockets by a bigger audience and basically if you have a Rocket you can log in into the game and you have the option to control the right or the left side and it's basically averaged from all your inputs and you have to, you can play a little bit in the background. The setup is basically done currently with two of the tracker readers you see around which to track all your movement if you enabled it on your Rocket. But you can actually use, you can actually use a Rocket as a receiver also. The code for this is all in our Git. The numbers in the bottom right should be the number of players but actually it looks like it's broken. That's what happens if you do some last minute changes. I'm very sorry about that. You can check out all the code, the prong is implemented in JavaScript using web sockets to connect to the game script which is written in Python. There's the complete Python lib for controlling games. Down in the hack centers there's four, five player Tetris, six player Tetris implemented with the Python game lib and rockets. Second is trying to fix the thing with the number of lock and people because I think it's pretty interesting to see how many people are controlling the pedals. I'll use the meantime and tell something about the setup for people who want to redo it themselves. What we're basically using here is the open beacon readers for inputting your movement but that is not necessary. You can also use a rocket with a bridge code framework. Does it work right off the box deck or do you have to change something? It should basically easily work with rockets as a receiver part but not in the version which is currently committed. Sec will commit the changes today or something like that. So if you want to do it on your own notebook, you need a rocket as a receiver and there also needs to announce rockets, right? No? Yes. You don't? We don't know what we need. We need? Well, the open beacon readers are configured to only receive packets and we have distributed at least three rockets in the room here which announce the game. But if you're using a rocket to play the game, it switches the channel, announces the game to another channel, reads packets and once a second switches back and announces the game. So we only need one single rocket to play the whole game as a server. But we are using a little bit more than a right setup here. So oh, okay, 20 people on the left side, 45 people on the right side. Okay. Do you want to say something about how the averaging works or what our ideas for the algorithm were? During the talk, we already tried this. It turned out where people had problems reaching the complete top and the complete bottom because everyone needs to control the record. So in this version, I implemented some kind of idle timeout. If you take part of the game, but don't use the rocket control for like 40 seconds, you'll get thrown out of the game. So you have better chance of reaching the extreme positions to hit the ball. That was only one of the ideas. The other idea was to allow oversteering. So basically scale it up a little bit to make it easier to reach the top. But I think this idea is the better one. Any questions about the setup? Or do you just want to play? I'd like to know about the averaging. Why do you average the position and not the movement? You could also say if a majority of people steer up, the thing goes up. Yeah, I thought that was more interesting that way. One thing is you could reach more easily the position because it could move quicker if everyone decides to switch. The second thing is it was to show that some kind of swarm intelligence. There's no correct answer to move the paddle. But the people automatically decide what to choose to hit the correct spot. Thank you. So welcome to our new talk. Moving the pedals. It's a live demo. So we will shortly say, oh, it's already running. Nick is really fast. Set up the game here. Why are the numbers back to zero, Zach? He don't know. Because it's the second talk. Of course, we had to reset it. That's the rules of lightning talks. It's very, very hard. Nick is really strict there. So we had to restart the software. Now nothing is working anymore. So what's that? What is? It moves all our players to the ignore list. Oh, happy restarting. I try to continue what you were trying to explain about the movement of the paddle. The idea is if you press up and down, there is no way to give an exact position from zero to some arbitrary value. So the swarm intelligence has to randomly decide, do I press up or down? If everybody would press up because the paddle has to go up, the paddle would instantly be at the top of the screen. So it's a bit of a delay of people, oh, should I go up? Should I know? And the more they go up, the higher the paddle goes. But not everybody is allowed to do the right decision. So this really is a funny experiment and we were quite surprised that it actually worked in a way. What we would like to try if Zach has the game running back. I fell over the power cable. He fell over the power cable. So if the thing is back working again, we would try to possibly increase the speed of the ball and see how fast the swarm intelligence, or it should increase automatically, shouldn't it, Zach? I think we even said it after every lost ball to increase the speed. So we can see how fast this swarm intelligent paddle movement can really get a paddle to a specified position because in theory the audience could instantly move the paddle to any position if they just do the right decision in how many people press up or down. So what your basic algorithm in your brain should be, choose a random number between zero and the value you want to go, and decide open that if you have to press. But of course that will not... It's getting faster. Oh, I think he's repowering the recipients. That looks almost like... We're not attacking jeopardy here. You can use... You can use working technology. And I think it would be better if it would move. We have left players. That's unfair, Zach. Only one... I think it is a little unfair because of the left side. Oh, okay. Possibly a few more people should... Where are your rockets? Please join the forces of the left side. It's very unfair. Are we getting higher? Okay, so now the speed of the ball should increase with time, right? Yeah. Oh, okay. It's increasing even more now. Are there any questions in the meantime while you are playing here? There's one far in the back. Can the microphone go far in the back, please? Hi. We'd like to get the logs of people's votes. Is that possible? Do you log the votes from the badges? We're running a full TCP dump on the packet, so we have complete log. Good stuff. Thanks very much. And I think we can publish it later if you want to analyze how such things work. So we put such dumps anywhere where you can get it. I think it's getting faster now. I think you should restart it. You have to rejoin the game, I guess. One minute? Okay, we have to get close to the end. Are there any last minute questions for this talk before we start the next one? Where are my slides? These are our slides. They are in the background of the pong, and I think we used all of them. No, this was yesterday. I think. Okay, now remember, the speed is increasing again, so get the – why are there 47 and 21? So thanks for all your help. Okay, so welcome to our third talk, and we need more players here, and it's still getting very fast. Yes, you should remove the increase a little bit, I think. They actually got one. That's not that difficult. Why did – oh, it starts always in this direction. It's really unfair. You should alternate that, Saks. It's very unfair. It wasn't random. It was all going through that one side. Yeah, that's not random, Saks. Going through the side to one is not random. Why are 43 players not able to move a paddle to a specified position? What am I playing? I'm playing left. Okay. Everybody has to press up to get to the real – to the real limits. Yes. Everybody has. Saks didn't change it. I really have to agree on the top level. Does anybody still have questions about the setup you need? The code is basically in the Git repository. So if you go to the Rocket website and check out the Git repository, where do you find it? It's in our standard Rocket Git. It's in GitHub, and the repository is called Rocket with a zero and no C. If it's a consensus, can we ban somebody? Sorry. If it's a consensus, can we ban somebody? No, currently not. The code is in the tools, game, bong. It's like pong but with a B. Oh, okay. That's actually not scope of this talk, but how does the mesh network work and how does tracking work? That's not really part of this demo. But every Rocket just for tracking just broadcasts its current ID, and several readers around the convention center, and they listen, and we're trying to – there's a more or less clever script trying to deduce your position if you're seen by more than one readers, because it's sending in different transmission strengths. So if you only see the packets which are sent with very high power, you're far away. And it also sends your nickname, which you configured on your Rocket. And there's actually, since yesterday, a working JSON which contains all the data. And there will also be a packet capture file of all the transmitted data. And as to the mesh network, that's just simply flood fill. Each batch retransmits the packet it sees if it's within its current parameters. Okay. To make that clear, the mesh – you have to restart again, I think. To make that clear, the mesh network has nothing to do with either the tracking or with this. This is direct transmissions from your batch to our receivers here. And that's basically the same what the tracking does. This is the same receivers, and your batch is sending on a different channel your nickname and your ID. And the mesh network is completely different in this broadcasting the time from batch to batch. And you find the URL for the tracking on the Twitter account. Thank you.