Diary of a Lead Teacher: Starlink coding in action
Recently the Creative Computing Club CIC had the opportunity to use graphics from the amazing Ubisoft Starlink Game in our Digital Schoolhouse sessions.
I cannot understate how valuable having access to graphics from a newly released game is for encouraging young people to code. Prior to the Starlink Sessions, we did a game design course with the students and looked at all of the aspects that go into making a game. We looked at the themes, the narrative and of course the graphics. We had students design all of these aspects and we then coded the game as this allowed them to focus on the design process.
With the follow-up Starlink sessions, we had the game's awesome graphics in place and this allowed students to focus purely on the code. Because we all had the same graphics, we were all able to make the same game and gain a much richer understanding of video game programming. For the sessions, we used Scratch. Scratch does have a lot of cool assets in its library, but not graphics from an actual game the young people know and play, and certainly not actual game graphics you are allowed to use.
Having the game's assets had a number of unexpected and beneficial outcomes such as, discussions about intellectual property and how copyright works, as well as allowing us to look at just how much detail went into designing a commercial game. It also allowed us to reflect further on the design process of our previous game.
All of our students started with the same template with all the graphics and sound loaded. You can find that here.
Our first session was broken down into ship movement, laser movement, and meteor movement. By the end of the first session, we were able to move the ship, shoot lasers to destroy meteors and increase our score. But it was really easy and there was no consequence to not hitting the meteors.
Our second session template had all of this already in place. You can find it here.
Our second session was focussed on consequences, creating a shield and what happens if you or the planet get hit by a meteor. Making the game more of a challenge.
Our third session was focussed on making the game a progressive challenge, so we added a counter so that every 10 meteors it added another meteor to the sky. So after you destroy 10, you have two falling and then 20 you have three and so on. You can view the code here.
Also during the third session, things got really interesting from a learning standpoint. After completing the code, we asked the students to compete in getting a high score. Through the multiple attempts, we noticed something both amusing and wonderful - the score was getting very very high and very quickly.
It became evident that there was cheating going on and in multiple forms, but that was completely fine as it actually revealed that they had fully understood the game making process. We all had a chuckle and then discussed how the different students had re-coded the project to give them an advantage.
Some of them had just changed the score incrementer so they get 10 points instead of 1 each meteor they had destroyed. Some of them had slowed down the meteor fall speed to -1 instead of -2. Some of them had their shield power set to 999999999 instead of 3 and some of them sped up the ship to -6 and 6 so they could cover more ground quicker.
It was really impressive to see them learn, understand and adapt the code, and share how they had adapted it with confidence.
In the last session, we took in a Nintendo Switch and allowed them to see Starlink inaction as it helped solidify what they did in their game with the kinds of actions that took place in the real Starlink game. You press left and some code moves the ship to the left. It allowed them to make a real-world connection between the learning and the things they experience in everyday life.
It was a genuinely great experience to use real game assets in a teaching project. Thank you Ubisoft and Digital Schoolhouse for making it possible as it allowed young people to engage with game programming in a new way.