Developer Tips and Tricks

If you want to customize and extend the Arcade game experience, or just code you games for better performance, this page directs you to several topics with helpul tips and guidance.

Finding examples and documentation

There are a number of examples you can try out on the MakeCode Arcade homepage. We also have several courses in development that are located here. API reference docs are located here.

“JavaScript” == “TypeScript”

Despite the name shown in the MakeCode editor, our text language is actually a stricter subset of TypeScript. More information on what’s supported can be found in the language docs.

Source Control

The MakeCode editor stores all of your projects in browser’s local storage. The easiest way to back up a blocks project is to simply “download” it. For text projects, MakeCode has GitHub integration. Read more here.

MakeCode also supports “extensions” (libraries or packages) in projects, so it’s possible to split your project into multiple repositories or libraries. Find more information here.

Game Loop, Physics, and Rendering

Documentation on the core game loop, physics system, and rendering can be found here.

Music and Art

Documentation on how to import and use images in Arcade can be found here.

Documentation on how to create music and sound effects is here.

Asset packs

You can set a project to only expose the assets it contains. Whether as an extension or shared project, this type of project is called an asset pack. When a project is set as an asset pack, only the assets are loaded and any code in the project is ignored.

You can set a project as an asset pack for sharing by going to the Settings (⚙️) menu and selecting ‘Project Settings’. Enable the ‘Import as asset pack’ setting. To provide assets in an extension, read the Asset Packs page to learn more about creating an asset pack extension.

Controller Buttons

Use the button tester to verify the proper button assignents on your controller.

Getting Help

To get help, you can ask the MakeCode community at/on our public discord channel for arcade.

Bugs and Features

Please report all bugs and feature requests to pxt-arcade. If you would also like to submit a fix, feel free to open a pull request!

The arcade editor is located in pxt-arcade. The game engine and runtime code is in pxt-common-packages.

Most of the code related to Arcade can be found in the libs/game directory of that repo.