How ArcByte works
ArcByte is a free home for browser games made with AI tools like Claude, ChatGPT, Gemini, Cursor or v0. Playing never needs an account. Uploading needs a quick Google or GitHub sign-in.
Uploading a game
- Sign in with Google or GitHub, then open Upload.
- Choose your game:
- a single
.htmlfile with everything inline (what most AI chats produce), or - a
.zipwith anindex.htmlplus its JS, images and sounds. Zipping the folder itself is fine; the top folder is stripped automatically.
- a single
- Add a title, a short description with the controls, up to 8 tags, and the AI tools you used (required).
- Optionally add a thumbnail: PNG, JPEG, WebP or GIF up to 2 MB. A 16:9 screenshot works best.
- Pick a screen shape: Landscape, Portrait (phone) or Square. For single
.htmlfiles you can preview your game in each shape before publishing.
Limits
- Upload size: up to 25 MB.
- Zips: up to 1,500 files, 100 MB unzipped and 30 MB per file.
- Allowed file types: web code (HTML, JS, CSS, JSON, WASM), images, audio, video, fonts, 3D models (glTF/GLB/OBJ), shaders and text or data files. Executables and other file types are rejected.
- Hidden files and folders (
.git,.env,__MACOSX) are dropped, never published. - Up to 20 uploads per account per day.
What works in the sandbox
Every game runs in a locked-down sandbox on a separate domain, so a game can never touch your account, cookies or other games. Most AI-made games work unchanged. A few browser features are switched off.
Works
- Canvas, WebGL and CSS animation
- Keyboard, mouse, touch and gamepad
- Web Audio and audio/video (sound starts after the first tap)
- Loading your game's own files (fetch, images, JSON, WASM, workers)
- Libraries and fonts from
cdn.jsdelivr.net,cdnjs.cloudflare.com,unpkg.comand Google Fonts - Fullscreen, through the player's Fullscreen button or the SDK
- Saving between visits with
localStorage(see Saving progress)
Doesn't work
- IndexedDB and cookies throw errors. Use
localStoragefor saves instead.sessionStorageworks but starts empty on every load. alert(),confirm()andprompt(). Draw your own messages instead.- Pop-ups, new tabs, form submissions and navigating the page away
- Calling other websites or APIs (including AI APIs) from the game
- Pointer lock, the camera, the microphone and location
Tip: tell your AI tool "this game runs in a sandboxed iframe without pop-ups; save progress with localStorage only" and it will usually write compatible code first time.
Saving progress
Games that save with localStorage (high scores, unlocked levels, settings) keep their progress automatically. You don't need to change anything.
- Signed-in players get their save back on any device. Signed-out players keep it in this browser only. If they sign in later and their account has no save for that game yet, this browser's save is copied to the account the next time the game saves.
- Each game gets up to 64 KB per player (counted in characters of keys plus values). Writes that would go over are skipped, with a warning in the browser console.
- Saves load when the game starts. A game reloading itself, or moving to another HTML page, runs without saving until the player presses Play or ↻ Restart.
- Players can clear their save with Reset my save under the game.
Optional bridge SDK
Games work without it. Add one line to talk to the player. ArcByte.save and ArcByte.load use the same save as localStorage (under the key arcbyte:<name>), so the same size limit applies; save returns false if the value didn't fit.
<script src="/sdk/v1.js"></script>
<script>
if (window.ArcByte) {
ArcByte.ready(); // game finished loading
ArcByte.on('pause', () => { /* tab hidden */ });
ArcByte.on('resume', () => { /* back again */ });
// ArcByte.requestFullscreen();
// ArcByte.setShape('portrait'); // 'landscape' | 'portrait' | 'square'
ArcByte.save('progress', { level: 3 }); // any JSON value, kept between visits
const progress = ArcByte.load('progress'); // the saved value, or null
}
</script>Updating or removing your game
- On your game's page, use ✎ Edit game to change the title, description, tags, AI tools, thumbnail or shape, or to upload a new version. Likes, comments and plays are kept, and players get the new version on their next load.
- The Screen shape switch on your game page changes the frame instantly.
- 🗑 Delete permanently removes the game, its files, likes and comments.
Rules
- Only upload games you made, or have permission to share. Say which AI tools you used.
- No malware, phishing, tracking or illegal content. No sexual content, hate or harassment.
- Anyone can ⚑ Report a game or comment. Games with several reports are hidden automatically until a moderator reviews them.
FAQ
- Is it free?
- Yes, to play and to upload.
- Do players need an account?
- No. Anyone can play instantly. An account is only needed to upload, like or comment.
- Does it work on phones?
- Yes. Portrait games fill the screen on phones, and every game has a fullscreen button. Make sure your game supports touch.
- My game uses an AI API at runtime. Will it work?
- Not yet. Games can't call outside services from the sandbox.
- Why did my zip get rejected?
- Usually it's a missing
index.html, a file type that isn't allowed, or a file over the size limit. The upload form tells you which.