Publishing Your Game
This guide covers everything you need to know about packaging and publishing your Emberware game.
Overview
The publishing process:
- Build your game (compile to WASM)
- Pack assets into a ROM file (optional)
- Test the final build
- Upload to emberware.io
- Share with the world
Building for Release
Using ember-cli (Recommended)
The ember CLI handles compilation and packaging:
# Build WASM
ember build
# Package into ROM
ember pack
# Or do both
ember build && ember pack
Manual Build
If you prefer manual control:
# Build optimized WASM
cargo build --target wasm32-unknown-unknown --release
# Your WASM file
ls target/wasm32-unknown-unknown/release/your_game.wasm
Game Manifest (ember.toml)
Create ember.toml in your project root:
[game]
id = "my-game" # Unique identifier (lowercase, hyphens ok)
title = "My Game" # Display name
author = "Your Name" # Creator credit
version = "1.0.0" # Semantic version
description = "A fun game" # Short description
[build]
script = "cargo build --target wasm32-unknown-unknown --release"
wasm = "target/wasm32-unknown-unknown/release/my_game.wasm"
# Optional: Assets to include in ROM
[[assets.textures]]
id = "player"
path = "assets/player.png"
[[assets.meshes]]
id = "level"
path = "assets/level.ewzmesh"
[[assets.sounds]]
id = "jump"
path = "assets/jump.wav"
ROM File Format
Emberware ROMs (.ewzx files) bundle:
- Your compiled WASM game
- Pre-processed assets (textures, meshes, sounds)
- Game metadata
Benefits of ROM packaging:
- Faster loading - Assets are already GPU-ready
- Single file - Easy to distribute
- Verified - Content integrity checked
Testing Your Build
Always test the final build:
# Test the WASM directly
ember run target/wasm32-unknown-unknown/release/my_game.wasm
# Or test the packed ROM
ember run my_game.ewzx
Verify:
- Game starts correctly
- All assets load
- No console errors
- Multiplayer works (test with two controllers)
Upload Requirements
Required Files
| File | Format | Description |
|---|---|---|
| Game | .wasm or .ewzx | Your compiled game |
| Icon | 64×64 PNG | Library thumbnail |
Optional Files
| File | Format | Description |
|---|---|---|
| Screenshots | PNG | Game page gallery (up to 5) |
| Banner | 1280×720 PNG | Featured games banner |
Metadata
- Title - Your game’s name
- Description - What your game is about (Markdown supported)
- Category - Arcade, Puzzle, Action, etc.
- Tags - Searchable keywords
Publishing Process
1. Create Developer Account
Visit emberware.io/register
2. Access Dashboard
Log in and go to emberware.io/dashboard
3. Upload Game
- Click “Upload New Game”
- Fill in title and description
- Select category and tags
- Upload your game file
- Upload icon (required) and screenshots (optional)
- Click “Publish”
4. Game Page
Your game gets a public page:
emberware.io/game/your-game-id
Updating Your Game
To release an update:
- Bump version in
ember.toml - Build and test new version
- Go to Dashboard → Your Game → Edit
- Upload new game file
- Update version number
- Save changes
Players with old versions will be prompted to update.
Content Guidelines
Games must:
- Be appropriate for all ages
- Not contain malware or harmful code
- Not violate copyright
- Actually be playable
Games must NOT:
- Contain excessive violence or adult content
- Harvest user data
- Attempt to break out of the sandbox
- Impersonate other developers’ games
Troubleshooting
“WASM validation failed”
Your WASM file may be corrupted or built incorrectly.
Fix:
# Clean build
cargo clean
cargo build --target wasm32-unknown-unknown --release
“Asset not found”
Asset paths in ember.toml are relative to the project root.
Verify:
# Check if file exists
ls assets/player.png
“ROM too large”
Emberware has size limits for fair distribution.
Reduce size:
- Compress textures
- Use smaller audio sample rates
- Remove unused assets
“Game crashes on load”
Usually a panic in init().
Debug:
- Test locally first
- Check console for error messages
- Simplify
init()to isolate the issue
Best Practices
- Test thoroughly before publishing
- Write a good description - help players find your game
- Create an appealing icon - first impressions matter
- Include screenshots - show off your game
- Respond to feedback - engage with players
- Update regularly - fix bugs, add features
Distribution Alternatives
Besides emberware.io, you can distribute:
Direct Download
Share the .wasm or .ewzx file directly. Players load it in the Emberware player.
GitHub Releases
Host on GitHub as release artifacts.
itch.io
Upload as a downloadable file with instructions.
Ready to publish? Head to emberware.io and share your creation with the world!