Share a GameMaker game without asking players to download an executable. Create an HTML5 build and publish its files on Lobsite: players open a direct HTTPS link in their browser, and later releases can keep the same address.
How it works
- Choose the HTML5 target. In GameMaker's Target Manager, select HTML5 and test the game in a browser. Create a distributable build rather than uploading a desktop executable or project file.
- Upload the playable output. Extract the build if necessary and find the folder containing
index.html. Drop that folder or ZIP above, or save it asexport/and runnpx lobsite ./export. - Keep the release link. An anonymous deployment lasts 6 hours. Claim it with Keep it free → and deploy future HTML5 builds to that same site.
Test the HTML5 target before release
A game working as a desktop build still needs testing in the browser. Check browser-compatible extensions, file access, input and audio before sending the link to players. A .yyp project file or a Windows executable isn't an HTML5 build.
Use the GameMaker HTML5 setup guide for your version. This workflow is for the HTML5 target's standalone output; other web targets can have different build requirements.
Keep scripts and assets together
Upload the whole generated folder, including its scripts and asset directories. Don't flatten it into a single directory or rename files that the generated page references. Match the case of any paths your own code constructs.
Free includes 50 MB total storage, 5 MB per file and 100 files. Texture pages, audio and included files count toward those limits. Standard increases them to 2 GB total, 100 MB per file and 10,000 files. The box on this page handles up to 25 MB at once; use the CLI or signed-in dashboard for larger exports. See HTML5 hosting limits.
Release a browser playtest
After keeping the site, deploy a test release with npx lobsite --preview. Send that preview URL to testers while your public game stays on its current version. Only files whose contents changed upload again on subsequent deploys.
Check save behaviour on the live origin: browser storage belongs to the player's browser and the site's origin, so moving to another address can leave previous saves behind. For leaderboards or multiplayer, connect the game to an external service; Lobsite doesn't run the game server.
A deploy without an account is live for 6 hours. The claim link keeps it, free.
Preview before going live. Roll back in one click, redirects and all.
Files are stored by their hash. Redeploying an unchanged site uploads 0 bytes.
Every site gets a *.lobsite.app address with HTTPS from the first deploy.
Free accounts included: add one DNS record and the site moves to your domain. Every site has HTTPS on any plan.
Redirects, headers and forms live in lobsite.toml and travel with each deploy.
Ways to deliver a GameMaker game
| Delivery | What the player opens | Best suited to |
|---|---|---|
| HTML5 build on Lobsite | A browser link | Immediate play and remote testing |
| Desktop build | A platform-specific download | A native desktop release |
| Editable GameMaker project | The project in GameMaker | Development collaboration |
For other export-based workflows, see GDevelop hosting and Defold HTML5 hosting. Start with HTML5 game hosting for the general browser checklist.
Frequently asked questions
Which GameMaker target does this hosting guide cover?
The HTML5 target. Build the standalone browser output and publish its files. A different target may need different preparation.
Can I upload a GameMaker .yyp project to Lobsite?
No. Export a playable HTML5 build first. Lobsite doesn't open the IDE or compile your project.
Why does my GameMaker HTML5 game behave differently from desktop?
Browsers have different APIs and restrictions, particularly for file access, sound and extensions. Test the HTML5 build locally and at the hosted URL, then inspect browser-console errors.
Can I share a new GameMaker level while leaving the release untouched?
Yes. Use a preview deployment and share its separate URL. The live site's current build stays unchanged until you deploy a live update.