# Convert your MakeCode Arcade games to executables

**URL:** <https://forum.makecode.com/t/convert-your-makecode-arcade-games-to-executables/37719>\
**Category:** Show & Tell\
**Tags:** game\
**Created:** [July 2, 2025, 5:44pm UTC](https://forum.makecode.com/t/convert-your-makecode-arcade-games-to-executables/37719 "2025-07-02T17:44:25Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![UnsignedArduino](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/unsignedarduino/32/592_2.png) [@UnsignedArduino](https://forum.makecode.com/u/UnsignedArduino)\
**Post date:** [July 2, 2025, 5:44pm UTC](https://forum.makecode.com/t/convert-your-makecode-arcade-games-to-executables/37719/1 "2025-07-02T17:44:25Z")

</div>

Convert your MakeCode Arcade games into a standalone offline executable!

> **[GitHub - UnsignedArduino/MakeCode-Arcade-to-App: Convert your MakeCode Arcade games into a...](https://github.com/UnsignedArduino/MakeCode-Arcade-to-App)**
>
> Convert your MakeCode Arcade games into a standalone offline executable!

 ![My MakeCode Arcade game Racers! running in a Tauri app inside Windows Sandbox. There is also a properties screen showing that the app size is 9.34 MB.](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/4/a/4a21f5cf611729cedd89f20d28b2fc3bd53c531e.png)

It’s basically the same thing as [this](https://forum.makecode.com/t/convert-your-makecode-arcade-games-to-electron-apps/31352), but the star of the show is being able to use [Tauri](https://tauri.app/) instead of [Electron](https://www.electronjs.org/) instead, reducing app sizes from **over 200 MB to ~10 MB!** (~3% of the original size) It is also a standalone executable, making distribution even easier!

Set up and configuration is now easier, as you only need to write a YAML file like so:

```yaml
name: Racers
description: "Enjoy the high-speed thrills of car racing in MakeCode Arcade! 
  For the MakeCode Arcade Mini Game Jam #3."
author: UnsignedArduino
version: 1.3.2
title: "{NAME} v{VERSION}"

source: https://arcade.makecode.com/84426-33815-03715-00484

icon: https://raw.githubusercontent.com/UnsignedArduino/MakeCode-Arcade-to-App/refs/heads/main/examples/Racers%20icon.png

output: tauri

```

Check out the example on [GitHub](https://github.com/UnsignedArduino/MakeCode-Arcade-to-App/blob/main/examples) to see examples with comments documenting available options, etc. You can easily switch between bundling to static HTML, CSS, and JS files, an Electron app, (like before), or a Tauri app! If you want even more configuration, you can edit [`gameConfiguration.ts`](https://github.com/UnsignedArduino/MakeCode-Arcade-to-App/blob/main/src/templates/website_files/src/gameConfiguration.ts) to customize the web app running your game, being able to change toast notifications, available features like showing statistics, a focus detector, and more!

And, as usual, the generated Electron and Tauri apps are responsive windows that can be played offline, built for multiple platforms, and they save the data that the setting extension saves!

If you would like to convert your own games, follow the instructions in the repo’s README. It is a quite involved process, necessitating Python and Node.js at minimum. You will need Rust installed to generate a Tauri executable. You will need to build for each platform you want to support, ex. build on Windows to generate `.exe`, build on Linux to generate Linux executables, etc. (Code signing is still not supported explicitly by the program) Command line knowledge is highly recommended.

Please let me know if you want any more features or there are bugs for me to fix! Enjoy!

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [July 7, 2025, 11:34pm UTC](https://forum.makecode.com/t/convert-your-makecode-arcade-games-to-executables/37719/2 "2025-07-07T23:34:58Z")

</div>

This is some great work, @UnsignedArduino!!!

-Especially with the substantially reduced executable sizes, since ~10MB is manageable for most modern small systems (even for a couple of hundreds kB of game logic… 😉 )!

A couple of questions off the top of my head:

1. What are the run time dependencies needed for such small Tauri executables? Does the executing system need a minimal browser etc. pre-installed?
2. Does this solution also support multiple games in one executable, as was suggested/discussed in the earlier topic for your first solution?

PS:

1. Do you think there is enough generic high-level stuff in these executable bundles to being able to make them “run-everywhere”, with for instance: [https://github.com/jart/cosmopolitan](https://github.com/jart/cosmopolitan)?
2. Could we make the executables even substantially smaller with certain executable compressors similar to those used in the demoscene, like for instance: [https://logicoma.io/squishy/](https://logicoma.io/squishy/) ?

---

<div class="post-metadata">

**Author:** ![UnsignedArduino](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/unsignedarduino/32/592_2.png) [@UnsignedArduino](https://forum.makecode.com/u/UnsignedArduino)\
**Post date:** [July 8, 2025, 5:23pm UTC](https://forum.makecode.com/t/convert-your-makecode-arcade-games-to-executables/37719/3 "2025-07-08T17:23:42Z")

</div>

(sorry for the mod having to read all of this 💀)

> [@Vegz78](#):
>
> (even for a couple of hundreds kB of game logic… 😉 )!

Technically, the `binary.js` in an average game is several MB. 🤪

* * *

> [@Vegz78](#):
>
> 1. What are the run time dependencies needed for such small Tauri executables? Does the executing system need a minimal browser etc. pre-installed?

Instead of Electron packaging Chromium, making it heavy but guaranteed to work on the target platform, Tauri uses the system-installed web view (ex. WebView2 on Windows, WebKit on macOS, or GTK WebKit on Linux) as a “browser”. For example, when I showed the 10 MB executable in a Windows Sandbox, **I actually had to install [Microsoft Edge WebView2](https://developer.microsoft.com/en-us/microsoft-edge/webview2/?form=MA13LH) by running an installer first.** (A dialog pops up telling you where to find the installer). Although I think this is still a better tradeoff than a 200 MB Electron build. Supposedly, most systems shouldn’t have to deal with something like that.

* * *

> [@Vegz78](#):
>
> 1. Does this solution also support multiple games in one executable, as was suggested/discussed in the earlier topic for your first solution?

Currently, no. With the executables being “so small”, I imagined people wouldn’t mind creating shortcuts to the game on the desktop, or adding them to an existing launcher like Steam:

 ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/5/9/59a00941f5b556bf0f16d6830955e630047bde6f.png)

(Which launches correctly, although there isn’t any description, art besides the executable icon)

Although the script is able to bundle to static HTML, CSS, and JS files, which means you could have a bunch of these games be hosted on a server by copying these static files to directories that are served. I think a MakeCode Arcade launcher would be a separate project altogether…Aghh I already have enough projects in queue this summer!!!

* * *

> [@Vegz78](#):
>
> 1. Do you think there is enough generic high-level stuff in these executable bundles to being able to make them “run-everywhere”, with for instance: [https://github.com/jart/cosmopolitan](https://github.com/jart/cosmopolitan)?

[Apparently, it’s possible](https://ahgamut.github.io/2022/07/27/ape-rust-example/) but I think it would be extremely difficult as it would need to call the correct web view for the platform. I’m definitely not smart enough for that!

* * *

> [@Vegz78](#):
>
> 1. Could we make the executables even substantially smaller with certain executable compressors similar to those used in the demoscene, like for instance: [https://logicoma.io/squishy/](https://logicoma.io/squishy/) ?

`squishy` didn’t work for me, it resulted in something like this:

```cmd
C:\Users\ckyiu\Downloads\squishy-0.2.0>squishy-x64.exe -i tauri-app.exe -o tauri-app-packed.exe
squishy 0.2.0 | made with <3 by Jake "ferris" Taylor / logicoma 2016-2021
 - WARNING: resources present, these can be kinda big
thread 'main' panicked at 'Unrecognized resource type: 0x00000010', src\main.rs:1247:26
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

C:\Users\ckyiu\Downloads\squishy-0.2.0>

```

But [`upx`](https://github.com/upx/upx) did work for me - it’s most aggressive compression scheme (`-9`) was able to reduce the size from **9.34 MB to 2.58 MB!** (27% ratio) The packed executable seemed to have slightly worse performance and frame stuttered a bit, but otherwise it still worked! So I guess, if you want to save even more space, you can compress the executable smaller than the size of its `binary.js` lol. (the `binary.js` for Racers, I think, is ~3 MB) This is a good idea I haven’t thought of before!

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [July 9, 2025, 12:02am UTC](https://forum.makecode.com/t/convert-your-makecode-arcade-games-to-executables/37719/4 "2025-07-09T00:02:01Z")

</div>

Thanks for your further investigations and elaborate answer, @UnsignedArduino!  
(Did not mean to plant any further summer projects in your mind. I hope you get some vitalising sun and leisure time away from the screen, too!) 😉

Yours is probably the best solution for a standalone executable MCA game so far, with a good balance between usability, size and portability. And probably controller support etc.

But I still don’t understand how MCA games can be compiled natively to a couple of hundreds kB ARM Linux .elf executables and run fine without the whole web simulator included in binary.js, and why this should be so difficult to port/compile to other platforms (or even cross platform via Cosmopolitan)…

---

<div class="post-metadata">

**Author:** ![MeatballDev](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/meatballdev/32/28502_2.png) [@MeatballDev](https://forum.makecode.com/u/MeatballDev)\
**Post date:** [August 22, 2025, 9:07pm UTC](https://forum.makecode.com/t/convert-your-makecode-arcade-games-to-executables/37719/6 "2025-08-22T21:07:52Z")

</div>

Reviving this topic but does this mean I can put a Makecode game on steam for people to get

---

<div class="post-metadata">

**Author:** ![BotWarrior](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/botwarrior/32/25328_2.png) [@BotWarrior](https://forum.makecode.com/u/BotWarrior)\
**Post date:** [August 22, 2025, 9:45pm UTC](https://forum.makecode.com/t/convert-your-makecode-arcade-games-to-executables/37719/7 "2025-08-22T21:45:07Z")

</div>

I actually did get this to the point of working, (or my dad did most of it). I did this, only to realise that somewhere along the line of uploading to GitHub, my project had broken. Oh well…

---

<div class="post-metadata">

**Author:** ![BotWarrior](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/botwarrior/32/25328_2.png) [@BotWarrior](https://forum.makecode.com/u/BotWarrior)\
**Post date:** [August 22, 2025, 9:45pm UTC](https://forum.makecode.com/t/convert-your-makecode-arcade-games-to-executables/37719/8 "2025-08-22T21:45:13Z")

</div>

do you think it would be possible to host a website where you could put in the link and get a downloadable executable? This would be great for sharing games, but people might struggle on the technical side of things.

---

<div class="post-metadata">

**Author:** ![UnsignedArduino](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/unsignedarduino/32/592_2.png) [@UnsignedArduino](https://forum.makecode.com/u/UnsignedArduino)\
**Post date:** [August 24, 2025, 11:20pm UTC](https://forum.makecode.com/t/convert-your-makecode-arcade-games-to-executables/37719/9 "2025-08-24T23:20:49Z")

</div>

> [@MeatballDev](#):
>
> Reviving this topic but does this mean I can put a Makecode game on steam for people to get

You should be able to, although I am unsure of MakeCode’s policies/license terms for making money of makecode games. I’m also not familiar with how to create a Steam game page, but I’m pretty sure it requires a monetary investment. But if it can accept an executable, then it should work.

> [@BotWarrior](#):
>
> I did this, only to realise that somewhere along the line of uploading to GitHub, my project had broken. Oh well…

Do you have a working share link? That can be used instead of a GitHub repository.

> [@BotWarrior](#):
>
> do you think it would be possible to host a website where you could put in the link and get a downloadable executable?

Building executables is computationally expensive, so the hosting would make it really expensive and complicated, especially as there are many different OS and hardware architectures to compile for.

---

<div class="post-metadata">

**Author:** ![xRIVERLIKEx](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/xriverlikex/32/26414_2.png) [@xRIVERLIKEx](https://forum.makecode.com/u/xRIVERLIKEx)\
**Post date:** [November 11, 2025, 7:04pm UTC](https://forum.makecode.com/t/convert-your-makecode-arcade-games-to-executables/37719/10 "2025-11-11T19:04:17Z")

</div>

A little late to all of this. Do you happen to have a video walkthrough for this process?

---

<div class="post-metadata">

**Author:** ![UnsignedArduino](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/unsignedarduino/32/592_2.png) [@UnsignedArduino](https://forum.makecode.com/u/UnsignedArduino)\
**Post date:** [November 24, 2025, 5:31am UTC](https://forum.makecode.com/t/convert-your-makecode-arcade-games-to-executables/37719/11 "2025-11-24T05:31:20Z")

</div>

I’m sorry I currently do not have a video on how to do it. (maybe some chatbot with the contents of README.md as context could be beneficial, or just ask here!)

---

<div class="post-metadata">

**Author:** ![Reflectfr](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/reflectfr/32/32515_2.png) [@Reflectfr](https://forum.makecode.com/u/Reflectfr)\
**Post date:** [November 24, 2025, 5:18pm UTC](https://forum.makecode.com/t/convert-your-makecode-arcade-games-to-executables/37719/12 "2025-11-24T17:18:21Z")

</div>

this is cool im saving this for later

---

<div class="post-metadata">

**Author:** ![Iro](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/iro/32/34749_2.png) [@Iro](https://forum.makecode.com/u/Iro)\
**Post date:** [November 24, 2025, 5:19pm UTC](https://forum.makecode.com/t/convert-your-makecode-arcade-games-to-executables/37719/13 "2025-11-24T17:19:43Z")

</div>

Def bookmarking this, and immediately making a desktop companion (PS: can you change the window propertys? e.g. making it transparent? if not pls make that a thing).

---

<div class="post-metadata">

**Author:** ![UnsignedArduino](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/unsignedarduino/32/592_2.png) [@UnsignedArduino](https://forum.makecode.com/u/UnsignedArduino)\
**Post date:** [November 24, 2025, 6:21pm UTC](https://forum.makecode.com/t/convert-your-makecode-arcade-games-to-executables/37719/14 "2025-11-24T18:21:54Z")

</div>

I don’t think there’s an easy way to do this. The only idea I have to execute that is to specify a color in the settings to be chroma keyed, and also, for a desktop companion, you would also need APIs to move and resize the window around the screen. No easy way to test that in Arcade.

---

<div class="post-metadata">

**Author:** ![Reflectfr](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/reflectfr/32/32515_2.png) [@Reflectfr](https://forum.makecode.com/u/Reflectfr)\
**Post date:** [November 24, 2025, 7:17pm UTC](https://forum.makecode.com/t/convert-your-makecode-arcade-games-to-executables/37719/15 "2025-11-24T19:17:57Z")

</div>

with this could you possibly make makecode games into 7-zip files? if so that’d be so cool!

---

<div class="post-metadata">

**Author:** ![Reflectfr](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/reflectfr/32/32515_2.png) [@Reflectfr](https://forum.makecode.com/u/Reflectfr)\
**Post date:** [November 25, 2025, 6:10pm UTC](https://forum.makecode.com/t/convert-your-makecode-arcade-games-to-executables/37719/16 "2025-11-25T18:10:52Z")

</div>

ok i was having an issue understanding trying to convert it to an executable and just didnt get it sadly. and no one in my family can help because im the only one that can use a computer

---

<div class="post-metadata">

**Author:** ![UnsignedArduino](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/unsignedarduino/32/592_2.png) [@UnsignedArduino](https://forum.makecode.com/u/UnsignedArduino)\
**Post date:** [November 25, 2025, 10:02pm UTC](https://forum.makecode.com/t/convert-your-makecode-arcade-games-to-executables/37719/17 "2025-11-25T22:02:17Z")

</div>

Can you describe your issue here then? Many here would love to help

---

<div class="post-metadata">

**Author:** ![Reflectfr](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/reflectfr/32/32515_2.png) [@Reflectfr](https://forum.makecode.com/u/Reflectfr)\
**Post date:** [November 25, 2025, 10:07pm UTC](https://forum.makecode.com/t/convert-your-makecode-arcade-games-to-executables/37719/18 "2025-11-25T22:07:42Z")

</div>

i just dont understand most of they steps, mostly the .yaml steps and the python stuff./ although python might just be glitching

---

<div class="post-metadata">

**Author:** ![UnsignedArduino](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/unsignedarduino/32/592_2.png) [@UnsignedArduino](https://forum.makecode.com/u/UnsignedArduino)\
**Post date:** [December 5, 2025, 3:07am UTC](https://forum.makecode.com/t/convert-your-makecode-arcade-games-to-executables/37719/19 "2025-12-05T03:07:49Z")

</div>

If you are experiencing any errors, make sure to include them in any posts. As for YAML, that’s just a text file with specific syntax (kind of like a programming language, but only for defining stuff) which I use to specify settings. Instead of changing settings in a GUI, you write them out in a text file, and the program interprets it. Make sure to check out my [example YAML files](https://github.com/UnsignedArduino/MakeCode-Arcade-to-App/tree/main/examples) if you need an…example

---

<div class="post-metadata">

**Author:** ![michaelcaplan](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/michaelcaplan/32/14780_2.png) [@michaelcaplan](https://forum.makecode.com/u/michaelcaplan)\
**Post date:** [December 9, 2025, 7:26pm UTC](https://forum.makecode.com/t/convert-your-makecode-arcade-games-to-executables/37719/20 "2025-12-09T19:26:58Z")

</div>

This is amazing @UnsignedArduino !

By any chance have you looked at what might be involved in turning the kiosk mode into a similar package?

One of my biggest challenges with exhibiting students work on our mobile arcade cabinet is wifi access . Being able to go offline would be a game changer

Best

Mike

---

<div class="post-metadata">

**Author:** ![\_phoenix](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/_phoenix/32/26368_2.png) [@\_phoenix](https://forum.makecode.com/u/_phoenix)\
**Post date:** [December 12, 2025, 4:42pm UTC](https://forum.makecode.com/t/convert-your-makecode-arcade-games-to-executables/37719/21 "2025-12-12T16:42:56Z")

</div>

yoooo this is sick! good work xD

[Next page](https://forum.makecode.com/t/convert-your-makecode-arcade-games-to-executables/37719.md?page=2)
