Skillmap support in MakeCode
Currently, skillmaps are supported only in MakeCode Arcade.
A skillmap is is one or more guided pathways with focused learning objectives along the way. The goal of a skillmap is to have students progrerssively aquire a set of design and coding skills until they reach an achievement goal.
A skillmap path has a starting point and a sequence of nodes (activities) to progress through. The activities in nodes along the path are locked until the previous node’s activity is finished.
The first node is unlocked and ready to start.
Each node contains a tutorial exercise to teach a certain skill or concept. Completing the tutorial (activity) will unlock the next node along the pathway.
After the last tutorial node, the student reaches the end of the path on the map and arrives at the Reward. The Reward node greets the student with an affirming message and awards them a downloadable “Certificate of Completion”.
A skillmap is described by a markdown document with sections for the map settings, its paths, and the activities (nodes) in the paths.
# map-id
* mapProperty1: ...
* mapProperty2: ...
## path-id1
* pathProperty1: ...
### path-id1-activity1
* activityProperty1: ...
* activityProperty2: ...
### path-id1-activity2
## path-id2
### path-id2-activity1
### path-id2-activity2
### path-id2-activity3
The first-level (#
) heading is the ID of the skillmap. Under this heading are the map’s properties. A skillmap document has one or more paths declared under the second-level (##
) headings. The path sections contain a set of activities that form the path. The activities for a path are under third-level (###
) headings.
Each activity section has list of properties. All activities have a name
, a description
, and a type
, along with other properties which are related to the type
of the section.
### space-cruiser-activity1
* name: Space background
* description: Create a stellar background image.
* type: tutorial
The map properties are in the first section of the skillmap document. This starts with a first-level (#
) heading using the skillmap’s name, or its the map-id.
# game-maker-guide
Following the heading is a bulleted list of the properties defined for the skillmap.
A property list from a skillmap in MakeCode Arcade provides an example:
# game-maker-guide
* name: Game Maker Guide
* description: Level up your game making skills by completing the tutorials in this guide.
* infoUrl: skillmap/educator-info/int-map-info
* bannerUrl: /static/skillmap/platformer/activity4.png
* backgroundurl: /static/skillmap/space/game-maker-guide-background.png
* primarycolor: #2EA9B0
* secondarycolor: #F392BD
* tertiarycolor: #83C252
* highlightcolor: #FAED28
* alternatesources: github:https://github.com/microsoft/pxt-skillmap-sample/skillmap.md
The following skillmap has 3 different paths defined. The panel on the right shows the name of the map with a description and a banner image.
The path properties are in the second-level (##
) headings using the paths’s name, or its path-id.
## space
After the heading is the path property list.
Here’s an example of a property list set for a path:
## space
* name: Design a Space Explorer
* description: Let's explore the depths of space! We'll design a vessel for space travel, add some enemies, and populate the universe with planets.
* completionUrl: /static/skillmap/certificates/design-a-space-explorer.pdf
The selected path shows in the skillmap panel along with the property info from the activity node in focus.
An activity node sets a current activity and connects it to the next one. Activities are created as tutorials and linked together in the node properties.
The activity node properties are under a third-level (###
) heading which has the nodes’s name, or its node-id. The activity nodes are grouped sequentially under their associated path section.
### space-activity3
The node properties are specified under the node-id
heading.
tutorial
easy, enemies
node-id
of the next activitytrue
by default, you can turn it off by setting it to false
layout
(reservedor completion
(reserved, don’t use)The node with it’s properties will look like this:
### space-activity3
* name: Enemies
* description: Watch out for danger! Add enemies and lives to your game.
* type: tutorial
* tags: easy, enemies, kinds
* next: space-activity4
* url: /skillmap/space/activity3
* imageUrl: /static/skillmap/space/enemies.gif
The node name
, description
, and tags
are shown in the skillmap panel.
Reward nodes are at the same level as activities. The node completes a path and displays the reward certificate. Set these properties for the reward node:
certificate
type
of node, use completion
Here’s a sample reward node:
### space-finish
* type: certificate
* kind: completion
* url: https://microsoft.github.io/pxt-skillmap-sample/certificates/design-a-space-explorer.pdf
Skillmaps are loaded into a MakeCode editor using a URL with the skillmap
resource type. Using https://arcade.makecode.com/--skillmap will load the default skillmap for MakeCode Arcade. To load skillmaps from somewhere else, append an external resource address path to this URL. To use a skillmap from the Skillmap Sample repository in GitHub, specify it with a direct path to the skillmap document file.
Connect https://arcade.makecode.com/--skillmap
with the GitHub resource specifier as a parameter using #
. So, you have https://arcade.makecode.com/--skillmap
+ #
+ github:microsoft/pxt-skillmap-sample/skillmap
. This forms the full skillmap load URL:
https://arcade.makecode.com/--skillmap#github:microsoft/pxt-skillmap-sample/skillmap