Skip to main content
avataralexwoods
Spooky Cookie
1-2

build a multiplayer game played by millions

Your game runs inside the Dusk app with 10 million installs across iOS and Android.

you focus on your game, we handle everything else

Millions playing your game on Dusk
Millions playing your game on Dusk

The Dusk app has more than 10 million installs across iOS and Android.

No need for you to deal with marketing or pay for ads!

Millions playing your game on Dusk

The Dusk app has more than 10 million installs across iOS and Android. No need for you to deal with marketing or pay for ads!

Use your favorite web framework
Use your favorite web framework

Your game can use any web framework such as React, Svelte, Vue, r3f, PixiJS.

It runs smoothly inside the Dusk app using a highly-optimized WebView.

Use your favorite web framework

Your game can use any web framework such as React, Svelte, Vue, r3f, PixiJS. It runs smoothly inside the Dusk app using a highly-optimized WebView.

It’s free for everyone
It’s free for everyone

Dusk is completely free for developers and players alike!

We will cover our costs through a small cut on any money we help devs make.

It’s free for everyone

Dusk is completely free for developers and players alike! We will cover our costs through a small cut on any money we help devs make.

We help you make money (coming soon!)
We help you make money (coming soon!)

Earn money from your game without dealing with ads or purchases.

Dusk's creator fund pays you directly based on your game's stats.

We help you make money (coming soon!)

Earn money from your game without dealing with ads or purchases. Dusk's creator fund pays you directly based on your game's stats.

Voice chat and social built into Dusk
Voice chat and social built into Dusk

The Dusk app has friends, messaging, spectating and voice chat.

Dusk turns your game into an incredible multiplayer experience!

Voice chat and social built into Dusk

The Dusk app has friends, messaging, spectating and voice chat. Dusk turns your game into an incredible multiplayer experience!

no backend needed

Your game logic on Dusk's servers

You write your game logic in JavaScript and Dusk runs it on servers all over the world for low latency. Our predict-rollback approach removes the need for any game networking code and ensures that players have an amazing experience even on bad internet.

multiplayer in 100 lines of JS

Here’s the code for the Tic Tac Toe game above. The game has built-in voice chat, matchmaking, and spectating. All powered by Dusk!

logic.js
client.js
function setup() {
const game = {
cells: new Array(9).fill(null),
lastMovePlayerId: null,
winCombo: null,
freeCells: true
}
return game
}

function claimCell(cellIndex, { game, playerId, allPlayerIds }) {
// Do not allow to claim cell if it's already claimed or if it's not player's turn
if (game.cells[cellIndex] !== null || playerId === game.lastMovePlayerId) {
throw Dusk.invalidAction()
}

game.cells[cellIndex] = playerId
game.lastMovePlayerId = playerId
game.winCombo = findWinningCombo(game.cells)

if (game.winCombo) {
Dusk.gameOver({
players: {
[game.lastMovePlayerId]: "WON",
[allPlayerIds.find((id) => id !== game.lastMovePlayerId)]: "LOST",
},
})
}

game.freeCells = game.cells.findIndex((cell) => cell === null) !== -1
if (!game.freeCells) {
Dusk.gameOver({
everyone: "TIE"
})
}
}

function findWinningCombo (cells) {
return [[0, 1, 2], [3, 4, 5], [6, 7, 8], [0, 3, 6], [1, 4, 7], [2, 5, 8], [0, 4, 8], [2, 4, 6]]
.find(combo => combo.every(i => cells[i] && cells[i] === cells[combo[0]])) || null;
}

Dusk.initLogic({
minPlayers: 2,
maxPlayers: 2,
setup,
actions: { claimCell }
})

use your favorite web framework

Get Started