Smashline
A 100-player arena combat game on Roblox — designed, built and shipped solo in two weeks using my own production pipeline and AI tooling.
The brief I gave myself
Prove that the production pipeline I’ve built over the years — concept → 3D → rig → animation → in-engine integration, plus the AI tooling layered on top — could take a game from zero to MVP fast enough to be commercially relevant. No team, no outsourcing, no shortcuts on architecture. Two weeks, calendar time.
What I built
Smashline is a 100-player arena game with matchmaking, AI bot fill, custom combat feedback, an environment hazard system, mobile controls, and a session loop running across two Roblox places (lobby and arena). Built end-to-end — engineering, 3D, animation, audio, UI, telemetry.
- 3D characters, weapons, environment art
- Custom animation system with state machine
- SmartBone runtime for procedural secondary motion
- Matchmaking and bot-fill loop (100 players cap)
- Combat feedback system with input rate limits
- Cross-platform mobile controls layer
- Lobby ↔ Arena Place architecture
- Quest tracker and progression scaffolding
Architecture highlights
Service Registry + Signal pattern
Decoupled module communication via a typed service registry and a custom Signal event bus. Lets each subsystem (combat, matchmaking, animation, UI) be swapped or tested in isolation.
Environment-aware config
Single source-of-truth GameConfig auto-detects staging vs production, so the same codebase ships to a private test build and the live game without manual swaps.
Modular animation pipeline
AnimationManager + AnimationState + AvatarAdapter abstract Roblox’s animation API. Adding a new character archetype is a config change, not a code rewrite.
Rate-limited input + validated events
Server-authoritative combat with input rate limits and string validation on every remote event. Built defensively so the game survives contact with real players.
AI tooling in the production loop
Generative tooling integrated into the asset pipeline for iteration speed — concept exploration, texture variations, animation reference. The tooling is the reason a 2-week solo build is possible at all.
The 2-week timeline, roughly
Days 1–3: concept, core combat loop prototype, animation system skeleton, place architecture (lobby + arena split).
Days 4–8: 3D production — characters, weapons, arena environment, lava-fall hazard. AI tooling deployed for asset variations and texture iteration.
Days 9–12: matchmaking, bot fill, combat feedback, mobile controls, audio. Quest tracker scaffolding.
Days 13–14: polish, telemetry, environment config, publish to Roblox.
Launch milestones
Beta announced — Feb 28, 2026: “Will launch Smashline next week. Be ready to fight, Gladiators.”
Beta live — Mar 8, 2026: “Smashline Beta is LIVE. I hit 400 KOs. Beat that during the beta and you’ll receive a unique in-game reward.”
Solar Sword mechanic — Mar 19, 2026: “The Solar Sword is now live, exclusive to the beta. It’s embedded in lava in the lobby. The more KOs you earn in the arena, the easier it is to pull out.”
Cross-product integration — Mar 9, 2026: “In Smashline, you can now find the in-game NPC connected to the upcoming Omni Avatar integration.” Smashline became the first integration target for the Omni Avatar identity layer.
What this demonstrates
- End-to-end ownership of a shipping game-dev project
- Production pipeline that works under real time pressure, not just on paper
- AI tooling integrated into a real production flow (not as a demo)
- Defensive engineering — rate limits, validation, environment config — from day one
- Architectural discipline at velocity
Gameplay
Live captures from the shipped build — bot-fill at full server capacity, plus supplementary action clips.
In Roblox Studio — behind the scenes
Editor-side captures: scene assembly, Lua scripting and the workflow I used to keep velocity at two-week shipping pace.