About Design a Space Explorer in Arcade Games
A page for Educators & Parents
Design a Space Explorer provides students with instruction for block-based game development. This skillmap walks through beginner/intermediate game development concepts, teaching them in a beginner-friendly way.
In this set of activities, students will use the power of coding to create a Galaga-style space fighter. Equipped with refillable fuel canisters and a creative mix of space lasers, students’ will code everything they need to defend the galaxy from enemies. We recommend that students using this guide already have familiarity with basic MakeCode elements, but our step-by-step instructions are written to be friendly towards those with little coding experience as well.
Designed for students between the ages of 13 & 16, this experience contains a total of 7 tutorials (approximating 63 minutes of instruction) spread over 2 sessions. At the end of the learning path, students receive a certificate of completion.
Minutes* | Game Type | Key Concepts | |
---|---|---|---|
Session 1 | |||
Prepare Your Ship | 5 | Intro | velocity, movement |
Ready, Aim, Fire! | 8 | Collector | events, projectiles, effects, velocity |
Here Comes Trouble! | 15 | Collector | events, velocity, randomization, life bar, effects, game score, destruction |
All Shook Up | 6 | Collector | effects, animation |
Session 2 | |||
Fuel Up! | 12 | Collector | status bar, positioning, events, destruction, velocity, randomization, game score |
Level Up! | 9 | Collector | variables, conditional statements, game score, text display, velocity, level design |
The Art of Darts | 8 | Modification | arrays, randomization, sprite design |
* Minutes are approximate, based on instructions as written. They do not include time spent designing elements or re-aquainting with previously-written code. Providing extra time for creativity and debugging is encouraged.
Objectives
As students go through Design a Space Explorer, they will build a galactic environment in which they can fire projectiles at enemy ships, level up the difficulty of the game, and customize projectile design, all while being cautious about their own health bars and refeuling needs. Throughout these experiences, they will be using various computer science and game design concepts.
Specifically, they will experience the following topics:
Computer Science Concepts
- Loops
- Events
- Conditional Statements
- Arrays
Game Design Concepts
- Velocity
- Projectiles
- Effects
- Randomization
- Hit Points
- Game Score
- Destruction
- Animation
- Status Bar
- Positioning
- Variables
- Text Display
- Level Design
- Sprite Design
Session 1
During this session, students will set up the initial version of their game. These modules walk through spaceship setup, projectile shooting, enemy ship functionality, and animations.
1. Prepare Your Ship
Activity | Prepare Your Ship (5 min) |
---|---|
Set up your spaceship and galactic backdrop. | |
Blocks used | [scene.setBackgroundImage(img`.`)] [scroller.scrollBackgroundWithSpeed()] [let mySprite = sprites.create(img`.`, SpriteKind.Player)] [let mySprite: Sprite=null; controller.moveSprite(mySprite)] [let mySprite: Sprite=null; mySprite.setStayInScreen(true)] |
Solution option | Prepare Your Ship Project |
2. Ready, Aim, Fire!
Activity | Ready, Aim, Fire! (8 min) |
---|---|
Equip your ship with projectiles and special effects. | |
Blocks used | [controller.A.onEvent(ControllerButtonEvent.Pressed, function () {})] [projectile = sprites.createProjectileFromSprite(img`.`, mySprite, 0, 0)] [let projectile: Sprite=null; projectile.startEffect(effects.fire, 100)] |
Solution option | Ready, Aim, Fire! Project |
3. Here Comes Trouble!
Activity | Here Comes Trouble! (15 min) |
---|---|
Add enemies, enemy functionality, and enemy destruction into your game. | |
Blocks used | [controller.A.onEvent(ControllerButtonEvent.Pressed, function () {})] [let mySprite: Sprite=null; projectile = sprites.createProjectileFromSprite(img`.`, mySprite, 0, 0)] [let projectile: Sprite=null; projectile.startEffect()] [sprites.onOverlap()] [let sprite: Sprite=null; sprite.destroy(effects.ashes, 0)] [let otherSprite: Sprite=null; otherSprite.destroy()] [info.changeScoreBy()] [info.changeLifeBy()] |
Solution option | Here Comes Trouble! Project |
4. All Shook Up
Activity | All Shook Up (6 min) |
---|---|
Animate your and your enemies’ ships. | |
Blocks used | [scene.cameraShake()] [animation.runImageAnimation()] |
Solution option | All Shook Up Project |
Session 2
During this session, students will amp up their game by building in additional game design elements. These modules will walk through adding the need to refuel, an extra level, and some design modifications.
1. Fuel Up!
Activity | Fuel Up! (12 min) |
---|---|
Add a fuel gauge to your ship and set fuel drops in your game. | |
Blocks used | [let statusbar: StatusBarSprite = null; statusbar = statusbars.create(20, 4, StatusBarKind.Energy)] [let statusbar: StatusBarSprite = null; statusbar.attachToSprite(mySprite, -30, 0)] [game.onUpdateInterval()] [let statusbar: StatusBarSprite = null; statusbar.value += -1] [sprites.onOverlap()] [let statusbar: StatusBarSprite = null; statusbar.value = 100] [let otherSprite: Sprite=null; otherSprite.destroy()] [statusbars.onZero(StatusBarKind.Energy, function (status){})] [game.over(false)] |
Solution option | Fuel Up! Project |
2. Level Up!
Activity | Level Up! (9 min) |
---|---|
Switch to a new level when the player gains an achievement. | |
Blocks used | [let enemySpeed = null] [myEnemy = sprites.createProjectileFromSide(img`.`, 0, enemySpeed)] [if (true) {}] [info.changeScoreBy()] [let mySprite: Sprite=null; mySprite.say("", 0)] [enemySpeed = 0] |
Solution option | Level Up! Project |
3. The Art of Darts
Activity | The Art of Darts (8 min) |
---|---|
Use arrays and randomization to switch up the kinds of darts fired from your ship. | |
Blocks used | [darts = [img`.`, img`.`, img`.`]] [let darts = [img`.`, img`.`, img`.`] ; darts._pickRandom()] |
Solution option | The Art of Darts Project |
Game Mod Ideas
After students complete The Art of Darts, they can head back to the skillmap and click “SAVE TO MY PROJECTS”, which will open the game in a window with a full-featured toolbox. Here are some modifications they can try:
- Add another type of enemy
- Set the health bar (lives, hp) to display on start
- Add another level to the game
- Modify level-up design to include more reward elements
- Add automated, damage-inducing projectiles to enemy ships
arcade-background-scroll=github:microsoft/arcade-background-scroll/
pxt-status-bar=github:jwunderl/pxt-status-bar