BLINDSPOT
Game Development · Discord Activity · Real-time Multiplayer · In Development

BLINDSPOT

Hunt. Lock. Eliminate.

A real-time multiplayer stealth game where up to seven players can create a match, join with one tap, and play together directly inside Discord. No downloads, no lobbies outside the platform.

StartedMay 2026
CategoryGame Dev
PlatformDiscord Activity
EnginePhaser 3
Match Size2–7 Players
DeploymentRailway
Status● In Development

A tactical game built for where people already are.

BLINDSPOT runs as a Discord Activity. Players open it directly inside a voice channel, no download or account required. Each player sees only what's in their line of sight. Walls block vision. You have to move to see. Discord avatars render on player characters. Everything syncs in real-time across all players in the same channel.

The core mechanic is visibility. In most multiplayer games, you can see the whole map. In BLINDSPOT, you can't see around a corner until you walk around it. That asymmetric information is what creates tension.

BLINDSPOT gameplay showing line-of-sight visibility system running inside Discord

Current development build showing the line-of-sight visibility system, procedural facility map, Discord avatar rendering, and real-time multiplayer infrastructure running natively inside Discord.

Development Status
This screenshot was taken in a single-player development environment while Additional maps, elimination rules, scoring systems, and final gameplay mechanics are still being completed. Movement, visibility rendering, controls, and real-time networking infrastructure are already implemented.

500 million users. No tactical multiplayer games.

Discord has 500M+ registered users already in voice channels together. Every existing Discord Activity is a casual mini-game: trivia, fishing, poker. There is no tactical, skill-based multiplayer experience built for the platform.

The audience exists. The session-start mechanic exists. Nobody has shipped the game.

Built for community engagement.

Working as a community manager for a blockchain project on Discord, I watched engagement drop significantly during a difficult period for the team. Most community tools are passive: announcements, polls, roles. I wanted something that made people actually play together inside the server they were already in.

BLINDSPOT is designed for the one thing Discord does better than Steam or a standalone app: frictionless session starts with people you're already talking to.

What's built. What's next.

✓ Complete
Phaser 3 game engine as Discord Activity
Real-time multiplayer via WebSockets
Wall-occluded line-of-sight visibility system
Discord avatar rendering on characters
Tactical facility map (6 navigation routes)
Procedural environment, 100% canvas-drawn
Joystick controls (mobile) + keyboard
Railway backend deployment
In Progress
Game loop: rounds, scoring, elimination, win condition
Lobby persistence and reconnect handling
Additional maps (2+)
Sound design
Spectator mode
Environment art refinement

How the game systems connect.

BLINDSPOT System Architecture Real-time · Discord-native · No download
Discord Server
Slash Commands · Voice Channels · Discord SDK
Match Codes
Unique per session
BLINDSPOT Match Bot
Slash commands · Lobby creation · Session management
Host Controls
Start · Close · Leave
Player Counts
2–7 · Live updates
Lobby State Manager
Squad tracking · Join/leave · Readiness · Match code validation
Game Rooms
Per-channel sessions
Discord Activity Launch
Lobby state handoff · All players enter simultaneously
LOS Engine
Wall occlusion · Per-frame
Game Engine
Phaser 3
TypeScript · Vite · HTML5 Canvas · Procedural rendering
Input Layer
Keyboard + Joystick
WebSocket Server
Node.js · tsx runtime · Railway · Real-time state sync
Player Rendering
Avatar · Position · Visibility
Map System
Tactical facility · Corridors
Game Loop
Rounds · Score · Win (WIP)

The mechanics that make it tactical.

Line-of-sight visibility — Each player has a visibility cone that is blocked by walls. You can only see what your character can physically see from their position. Moving around a corner reveals new space but exposes you. This creates genuine uncertainty. You don't know if someone is around the corner until you look.

Tactical facility map — The map is a connected system of enclosed rooms and corridors. Six distinct navigation routes, no full-arena sightlines. Every path is a tactical choice. The map is 100% procedurally rendered on canvas with no image assets, every wall, floor texture, and surveillance indicator is drawn at runtime.

Discord-native session start — Players are already in a voice channel together. One person opens the Activity, others join in one tap. Discord avatars appear on player characters, making the game feel personal rather than anonymous.

See it in action.

Demo recorded in development mode. The game is designed for multiplayer servers and normally requires at least two players. For demonstration purposes, the activity was launched directly. Demo recorded in a single-player development environment. Matchmaking and lobby systems are fully implemented, while additional gameplay mechanics and maps are still being completed.

What you'll see:
Game running natively inside Discord
Line-of-sight visibility system
Real-time player movement
Mobile joystick and keyboard controls
Procedural facility map
Discord avatar rendering
Multiplayer infrastructure in active development

How a match actually starts.

01
Player runs /create-match
A slash command inside any Discord server channel triggers the BLINDSPOT bot.
02
Select lobby size
Host selects how many players (2–7). Bot creates the lobby and generates a unique match code.
03
BLINDSPOT bot posts the lobby card
The bot posts a live lobby card in the channel — showing match code, player count, host, and squad. Players join with one button tap.
04
Lobby updates in real time
As players join, the lobby card updates: names appear, player count increments. Everyone in the channel can see the squad filling up.
05
Host starts the match
When ready, the host taps Start Match. The bot validates the lobby state and triggers the Activity launch.
06
Discord Activity launches
All players enter the same game session simultaneously. Lobby state is handed off to the real-time multiplayer environment.
07
Hunt. Lock. Eliminate.
Last player standing wins. Rematch available immediately.

Bot-managed session orchestration.

BLINDSPOT Discord lobby showing match code A2D113, player count, host controls

BLINDSPOT's Discord bot manages match creation, lobby state, player counts, and session orchestration before launching the Discord Activity. Lobbies support 2–7 players and update in real time as players join.

Why the bot exists

Discord Activities do not provide matchmaking or session orchestration out of the box. The BLINDSPOT bot acts as the caretaker of the game, creating lobbies, managing player membership, generating match codes, and launching synchronised sessions inside the Activity. The bot is not a convenience feature. It is the infrastructure that makes the game possible at all.

What was hard to build.

01
Line-of-sight in real-time multiplayer
Computing which walls occlude which players, per-frame, across all clients simultaneously without desync. Each client must compute visibility independently but arrive at the same result. Any inconsistency means a player sees something they shouldn't, or misses something they should see.
02
Discord Activity proxy constraints
Discord avatars must load through a same-origin proxy route or the HTML5 canvas gets tainted and crashes the entire render pipeline. Discord's activity proxy strips path prefixes unpredictably, requiring careful proxy configuration that differs between development and production environments.
03
Procedural environment that reads as a real place
The entire environment (floor concrete, wall materials,, surveillance indicators, room seams) is generated at runtime on canvas with zero image assets. Making procedural geometry feel like a real surveillance facility rather than a prototype room required careful attention to texture patterns, lighting simulation, and environmental detail.
04
Match orchestration between bot and activity
The Discord bot and Activity operate as separate systems. The bot manages lobby state, tracks players joining and leaving, enforces lobby sizes, designates a host, and launches the Activity with the correct session context. The game then reconstructs that lobby state inside the real-time multiplayer environment, ensuring every player who joined the lobby ends up in the same game session.
05
Map design as systems design
Every wall position is a gameplay decision. Corridor widths, doorway counts, and room proportions directly determine whether the game feels tactical or like an obstacle course. Designing the map is not an art problem. It's a systems problem where spatial decisions have direct consequences on game feel.

The stack behind it.

Game Engine & Rendering
Phaser 3 HTML5 Canvas (procedural) TypeScript Vite
Platform & Multiplayer
Discord Embedded App SDK WebSockets (custom) Node.js · tsx runtime Railway
Controls
Phaser Virtual Joystick (mobile) Keyboard (desktop)

What I bring to a team.

BLINDSPOT required solving real-time networking, visibility computation, procedural rendering, and platform-specific constraints simultaneously inside Discord's embedded environment.

Building a game teaches you something no web project does: performance, precision, and the cost of every frame.

BLINDSPOT gameplay