Video Starcoder Uses a Multiplayer Game to Teach Programming (Video # 2) 11
To learn more about Starcoder, you may want to check out these video clips on Vimeo that not only show you how the game was developed, but give you a look at how it's played. Note: this is video 2 of 2. The transcript covers both videos, plus some material we were forced to edit out of the videos due to length restrictions.)
Timothy Lord for Slashdot: Jon, you’ve got a project called Starcoder and you’ve gotten associated Kickstarter page right now. But let’s talk in general terms what is Starcoder? What’s it about?
Jonathan Martin: So Starcoder, it’s an online multiplayer game, where you can use coding to change the game play in real-time. So it has two different coding windows, Blockly and JavaScript and it helps students transition from Block based-coding to JavaScript. But the game play is kind of like if you combine multiplayer Asteroids with Codecademy with some Minecraft. So you can have students online at the same time and they’re seeing what each other create in real-time, and they can even see the code or show the code that they used to create these things in the game.
Slashdot: What is the advantage that you see in using JavaScript per se? How did you choose the language for your underlying base?
Jonathan Martin: So a few of the reasons are kind of practical reasons like, one is just that you can run it right in the browser, so you don’t have to install anything on the computer to run it like processing is great, and we use that sometimes with Arduino, but it just saves the extra step of having install that on all the computers of the schools we go to. And I figured also it fits in nicely with our sort of progression into – I mean it ties in great with HTML and CSS. So I think those three just give a lot of fun things a new student can do, sort of at the middle school level. The other thing we like about JavaScript is so the game it uses Node.js on the backend, so students get more advanced, we can even have them start to look at Node a little bit because they have some JavaScript under their belts.
Slashdot: The code that runs the game itself, is that OpenSource code, can anyone replicate this if they want to have the sort of same educational experience elsewhere?
Jonathan Martin: Well, we use a game engine that’s – they have two versions, they have an open version and then they have a paid version for a small license fee which really isn’t all that difference called Isogenic Engine. So that we rely kind of heavily on that game engine, so anyone could sort of take a look at that and go through some of the demos. We're thinking about making all of our code OpenSource at some point in the future, but as you play the game a lot of the code is sort of already revealed in there in the different like tasks that we have.
Slashdot: And that’s what kids are going to be actually learning anyway, to create the code, so that seems appropriate?
Jonathan Martin: Right, so I mean we did have sort of the OpenSource model kind of in mind, so I mean, I think at some point as students get more advanced and we have high school students use it, we’ll just have them work with the base code, and they can be on the GitHub account and can modify it. But for now it’s kind of an intro into kind of that type of experience of a professional developer, because we expose enough that it's sort of like an API in there that new students can come in and modify the code that we make available.
Slashdot: A lot of kids are obviously learning about computing and about programming through things like Minecraft and now LEGO has a similar sort of game that they’re introducing. Distinguish what you are doing from what a kid who’s got a copy of Minecraft open is going to be able to learn.
Jonathan Martin: I think I mean there are – well, that’s at least one program I know of and we’ve used it sometimes with kids, where they can modify Minecraft in real-time using Blockly and JavaScript, I mean I think the advantage of this is that it’s just the ease-of-use, and that it runs like totally in the browser, so it loads quickly within a couple of seconds and immediately students see each other online, they see each other's ships, and so it's like a sort of entry level sort of game, it’s like perfect because right away students can start dragging sort of blocks in to change the shape of their ship, the speed, they can upgrade their lasers. So I think it’s really the speed at which students can jump into it, whereas – there's just a few extra steps with a Minecraft program or a LEGO program to be able to do it like real time, sort of massive multiplayer type mode.
Slashdot: It seems like you are also exposing Codemarks explicitly than Minecraft I would say.
Jonathan Martin: Right. Right. Like the one program sort of – I am thinking of it, it will lead you through certain steps and it does have kind of a library of Blockly code on the site. But this I do – yeah I think you’re right, we do expose a lot more and we expose the JavaScript codes are behind it right away, which I haven’t seen another program that does that.
Slashdot: No. The game that you've come up with is explicitly designed to be multiplayer. I want you to talk two things about that, one, you say, as we talked before we started recording this that 200 to 300 kids have actually been using it. So are there things that are either impossible to do with only one person that having more players makes possible? Or what do students do that they can get more out of it being a multiplayer experience.
Jonathan Martin: I mean, so like the reason – one of the reasons we designed it was because that was sort of the standard that kids were used to as multiplayer and once they are used to connecting with their friends in a game, most of them would rather have that experience than working alone for the most part. Especially if it’s sort of a classroom setting or they know some of their friends. So that’s kind of why we created, we didn’t see anything that was like that, like a multiplayer coding game. And the other thing I guess – kids have said is they like kind of immediately seeing what each other are creating and that way, I think it enhances sort of the peer to peer learning. So let’s say, in the game, if you create a planet, and then the trees that the students are creating are a fractals, they are kind of simple fractals and they have like 4 or 5 parameters. So as they sort of change those, they come up with a really cool looking shape, another student can fly by the tree and the code that was used to make that will populate their code window. So that is a big advantage that like peer to peer learning that goes on with kids and so I don’t know – I think it’s kind of a cool differentiator from – you are just by yourself, you are trying to sort of struggle through a game. And it also adds unpredictability on this sort of emerging I mean which is – now that we’ve introduced the competitive mode, I think that is a really cool thing, where kids have to think on their feet, and they see another kid sort of made their ship invisible by changing their scale down to zero, or they changed their color, it’s a black against a black background. And so they will have go through an array and cycle through the players and find the right one and change their color, but all that kind of thinking on your feet, I think is another level of learning that you wouldn’t get with single player.
Slashdot: One thing about some of the education based web-ware there is right now, I am thinking of the Khan Academy, it gives a lot of backend for teachers to observe what students do, how they behave in actually going through a particular exercise. Is that kind of data made available by this system? Can a teacher sort of see her students’ progress or how they interact with it?
Jonathan Martin: We’re working on it. I mean, we have that in mind where our students, the code that they write for a session will be able to be saved in a database, so that’s sort of in the works. So, the way a teacher could observe it would be they would see a student could right away pull-up sort of the code they’ve already been working on. And we could also kind of easily make it worth the code from the database just get sent to the teacher or they can access it through sort of a formatted view on the web.
Slashdot: Is the code that each student creates pretty persistent, do they log out and log back in and find that this thing while they have been working on is in place, you don’t have to restart that each time, do they?
Jonathan Martin: It’s in process. Right now, they click and it saves locally. So, as long as they use the same computer, they can retrieve it. But yeah, in the works, is that it’ll be saved in the database. So, when they log in, it will be retrieve based on their login name.
Slashdot: I guess, one thing about any game that is also meant to be educational is that you wanted to be a game, so can students use this in their off hours, can they login to a session of Starcoder or is it really meant to be more of a classroom environment?
Jonathan Martin: No, it’s definitely meant to be a game. It just happens that coding is like the core mechanic in the game and so, that is one nice thing that we’ve seen like when we have had students use it, it is something that they’ve said, oh I went home, and I was playing it and I learned different things. I was online with this other student where we haven’t seen that with some of the other sort of coding, learning software that’s out there. So, basically, we have two modes. The one mode is kind of like a sandbox mode and you just use code to sort of like build-up your ship and make it faster and change the shape of it and then you can create different-colored planets and the size of the planets and then you can sort of plant trees on it.
And so that with all the variation in that it’s kind of fun that – it’s kind of like digital art in a way, so students will have fun just doing that by themselves. And then you also have like a competitive mode where it’s kind of like laser-tag and when you shoot the other player, you change their color, you kind of make their ship go a little haywire for a minute and it changes the thrust until they regain control. And it’s sort of a competition to see who can have the greatest number of sort of things of their color. But yeah, it’s totally fun just for one person, or one student just to go on and just be in there making stuff in sandbox mode.
Slashdot: Okay. You’ve been play-testing this for awhile, have you come out with any big changes or insights that you found through play-testing?
Jonathan Martin: Well, I mean, I wanted – the other team members – we wanted it to be sort of a co-operative experience for the kids. So for the sandbox mode, we wanted them to creating, you know, planets and trees and eventually animals and just making – kind of like, if you ever browse, you know some of the JavaScript or some of the box2d library examples or any of the cool visual stuff for JavaScript, it’s kind of like that on the same world, so we wanted kids to just be creating stuff, kind of like a studio, which they liked, and they kind of enjoyed but we did another test earlier where it was like Deathmatch. And so, kids, they kept asking, when can we have that mode, so okay, we’ll do it, but it’ll be more like tag, more like laser tag, so you're changing colors, you still get the fun of being able to shoot somebody and do something to their ship and interact that way, so, yeah, that was one change, so we introduced that after a lot of kids requesting it and they like it.
Slashdot: Do you foresee the possibility of let’s say other game kernels, I grew up with Oregan Trailers, my favorite, I really liked it, it was a text-based narrative, are there ways that you can extend this game that are going to make it not just a space adventure?
Jonathan Martin: Yeah, I think so. I mean, so the overall – sort of the general story line is, it’s sort of like Interstellar where you have to go out and sort of create another inhabitable place outside of planet Earth and it does sort of have a science theme behind it where, as you’re going, you have to sort of get the atmosphere ready first and then the soil and then the water and then plants and animals and sort of build it up over time. So we want to sort of incorporate more things directly about biology into the game. I mean, in terms of the storyline, in terms of incorporating like history sort of like Oregon Trail, I mean, I do have sort of an idea for bringing in something maybe kind of like competitive sort of SimCity where you started building your economy and there's some trading involved, so that’s sort of like one idea to bringing them. In terms of history, I mean, I guess it would sort of have to be like fantasy history that we would create. I mean the fun thing is we’re getting a lot of good feedback from kids. So I think that you know, as we ask some more ideas for more of the narrative to expand on it, I think that will be cool to incorporate.
Slashdot: So Starcoder has both text-based and block-based programming available. Do you see the kids like orexcel better at one than the other? Is there a tendency, does everybody like to drag-and-drop or do you think is a progression, what do you say?
Jonathan Martin: Yeah. I think the cool thing is, is because I mean, I think it’s because it’s sort of competitive and because there’s other players on that, it’s like kids quickly – they want to get better at it sort of in a competitive mode, so they want to quickly transition from Blockly to JavaScript just because it’s quicker. So, we have it, we're set up where when you use Blockly, you can see the conversion into JavaScript and so I don’t know, I think quickly kids want to – they quickly just want to start using JavaScript. So, I don’t know, it seems to be like kind of satisfying to see that, just kind of organically kids want to progress that way, just to get better.
Slashdot: Right now, you've had like you said before 200 to 300 kids who’ve taken part in classrooms around New York City, what’s the next step? How many people would be involved in testing it out and what do you foresee right now?
Jonathan Martin: Well, I mean, one of the nice things, with the Kickstarter was just getting a lot of exposure and just getting interest from people. I mean we’ve had interest from a parent who lives in Barcelona and sort of saw that a lot of the – from the play test that we did, there were lot of girls who seemed to really like the game and we’ve seen that too that it has a nice appeal with the boys and girls, so she recommended that we reach out to this university to a professor who is really involved with sort of closing the gender gap in computer science. And we’ve done a lot of reaching out to other schools, kind of, in the United States, so that’s the big picture that I would love to have – once we upgrade the server, we’ll have kids sort of playing all around the world together online and learning about each other’s cultures and the nice thing with Blockly2 is it does have a lot of things built in to make it easy to sort of localize it, to have different languages and we have already done some work to do it in French and we are working on it in Spanish and then we’re going to work with the women from Barcelona getting Catalan. So that I think will be really exciting. Kids don’t just play, but if it’s classroom then we have a follow up, sort of Skype or Google Hangout session where they learn about each other’s backgrounds and it’s kind of a fun – like international competition, so that’s sort of what I'd love to see happen in the next couple of months.
Why the kickstarter advertising???? (Score:2)