Publish a Godot game
Godot 4 web exports run on ThrunGames. Exports with thread support and exports without it both work.
Export from Godot
- Add a Web export preset (the Web/HTML5 export).
- Export the project into an empty folder.
Name the page index.html
Godot names the page after your project, for example MyGame.html. Rename it to index.html, or name it index.html in the export dialog. If you forget, the upload fails and tells you which file to rename.
Leave the other files (the .js, .wasm and .pck files) where Godot put them.
Threads
Game pages are cross-origin isolated, so SharedArrayBuffer works. You do not need a special server setup.
Zip and upload
Zip the contents of the export folder, so that index.html is at the root of the zip. Do not zip the folder itself. If index.html ends up inside a folder, the upload fails and tells you so.
Your game has to exist before you upload. If you have not made it yet, sign in, open My games and choose "Add new game". (You need a developer account: see Become a developer.) Note the game's slug, the last part of its address.
Then upload with the ThrunGames CLI:
thrungames login
thrungames upload path/to/export-folder --game <your-game-slug> --version 1.0.0 --width 960 --height 600 --submit
--width and --height are the size of the game's play area in pixels on a Classic game page; an Immersive game fills the screen and ignores them.
The CLI zips the folder for you. You can also point upload at a .zip file you made yourself. Leave out --submit to keep the upload as a draft with a preview link. To skip the flags next time, put a game.json with name, version, width and height in the folder (see the CLI page).
The limits are 450 MB for the zip through the CLI (100 MB on the website), 500 MB unpacked, and 5000 files.
Engine and layout
ThrunGames detects the engine when you upload and sets it on your game if you have not set one. Most Godot games suit the Immersive layout, which opens the game full screen. To change it later, use the game settings, or:
thrungames games edit <game> --engine godot
thrungames games edit <game> --layout immersive