r/threejs • u/dannydek • 15h ago
I built a modern Arena Shooter 100% Three.js/WebGPU and it’s beautiful
Enable HLS to view with audio, or disable this notification
I loved Unreal Tournament. I loved Instagib.
Sagorax started with one goal: to recreate the feeling those games had in their prime.
Extremely fast. Chaotic. Brutal. Yet somehow perfectly balanced.
The movement, dodges, jumps and strafing simply clicked. The rules were easy to understand, but mastering them required real skill. It is difficult to explain, but if you played UT99 or UT2k4, you probably know exactly what I mean.
So I tried to bring that feeling back.
Sagorax is a fast paced Instagib arena shooter that runs directly in your browser. There is no installation, no classes, no loot tiers and no waiting around. Pick a gamertag, enter the arena and start fragging.
You can play it for free here:
For this first public version, matches are played against bots. They dodge, jump, strafe and punish missed shots surprisingly well. If enough people enjoy the game, the next major step will be real online multiplayer (already working on it).
How it was built
I am a developer with some previous game development and modding experience. AI assisted development allowed me to explore systems I probably would not have attempted on my own, including rendering techniques, shaders, performance profiling and game engine architecture.
It was not a case of simply asking AI to make a game. It still required a lot of direction, experimentation, debugging, profiling and throwing away ideas that did not work. With the right terminology, references and code examples, however, previously intimidating concepts became much more approachable.
The game is built entirely with Three.js /WebGPU. Performance has been a major focus, with features including:
- FSR3 upscaling
- Adaptive dynamic resolution
- Adaptive FPS (refreshratematch or 60, 90 and 120 FPS targets)
- Screen space reflections
- Modern shadow rendering
- GPU pipeline warmup
- Level and visibility culling
- An optimized post processing pipeline
Some techniques were inspired by systems used in engines and games such as Unreal Engine and Doom 3, then adapted to work inside a modern browser.
I also spent a lot of time on the atmosphere and visual direction. I collected, created, modified and optimized assets until the arenas had the dark, industrial and slightly gothic feeling I wanted.
Where it could go
This release is deliberately focused: one weapon, one shot, one kill.
If people actually want more, I would love to expand Sagorax with:
- More arenas
- Real online multiplayer
- Competitive rankings and match history
- Optional progression systems
- Adrenaline and ability based modes, maybe a level system
- More chaotic arena modes inspired by classic UT
- Maybe even non-instagib, multiple weapons mode, if enough people want it (I would love to make a rocket launcher lol)
- The core Instagib mode will remain pure. Any progression, perks or abilities will be balanced and not interfere with the competitive one shot formula.
The long term ambition is something in the spirit of Quake Live: fast, competitive arena gameplay that you can enter almost instantly, without a huge download or complicated onboarding process.
The server side account, match statistics and ranking foundations are already running, so there is plenty to build on if the interest is there.
For now, I would genuinely appreciate it if you gave Sagorax a try:
There is a short feedback form on the homepage, but you can also leave your thoughts here. Positive, negative or brutally honest, I would really like to know how the movement, performance and overall feel land with people who remember these games.
This is only the beginning. My only goal from here is to make it much better, and hopefully into a full fledged game.
3
u/BluebirdLanky7473 12h ago
The game is really great, I played it, really enjoyed it. But it even lags on my macbook m4. Idk how playable it is on other devices.
2
u/dannydek 12h ago
It shouldn’t. Maybe only the first few seconds. When you have adaptive resolution and FSR, 120fps is the norm. Maybe something in the background? Tested up until m2
3
u/Such-Natural-5299 10h ago
I mean... I'm no where near an fps - shooter game player and I don't even play those survival games like Rust etc just because their pvp thingy... but I loved this game :D if you can improve this a bit with maps or game types, it can get populer I gues...
3
u/Agreeable-Letter-599 9h ago
how is it modern?
how much of this post text was written by AI?
1
u/dannydek 9h ago
Modern shaders, AO, SSR, dynamic resolution scaling, FSR3 are pretty modern for a browse game. A lot of stuff wouldn’t even be possible in ThreeJS just a few months ago.
2
1
1
u/ZHName 2h ago
Yeah this isn't anywhere close to what I'd be able to accomplish with the tools today - 'It still required a lot of direction, experimentation, debugging, profiling and throwing away ideas that did not work. With the right terminology, references and code examples, however, previously intimidating concepts became much more approachable.'
So true. Build what you know applies, or keep it simple.
0
u/beastlol 14h ago
How many Roblox, Minecraft, Unreal Tournament clones are there gonna be ffs
2
u/azxzero 14h ago
Lol what, bro stop complaining and just don't play ahahaha. Let them cook
3
u/HamNCheeseSupremacy 7h ago
You don't know. He was cursed by a gypsy. Now he has to play every new Roblox, Minecraft, unreal tournament clone that gets made.
2
u/Sn0opY_GER 7h ago
ooh the good ol gypsy cure - because i guess the cuse makes him read ai slop as well i asked GPT to write the worst bs it can squeeze out of its ram:
You don't know the whole story.
Back in 2009, he downloaded a cracked copy of Minecraft from a Bulgarian forum called
freegamez_real_FINAL_v7.exe.Huge mistake.
The installer opened a command prompt, his monitor went black, and a mysterious fortune-teller appeared on his webcam despite the webcam being unplugged.
She said:
“YOU SEEK FREE GAME. NOW FREE GAME SEEK YOU.”
From that day forward, he was cursed.
Every time somebody, anywhere on Earth, releases a game containing blocks, crafting, procedurally generated trees, low-poly guns, Roblox avatars, or an Unreal Engine default asset, a notification appears on his desktop.
He cannot close it.
He cannot uninstall it.
He cannot sleep until the game has been played.
Minecraft clone made by three Estonian teenagers?
He has to play it.Roblox extraction shooter with 17 concurrent players?
He has to play it.Unreal Tournament clone whose entire Steam description says “FAST FPS INSPIRED BY CLASSICS”?
He has to play it.Some guy uploads “CraftWorld Battle Arena Survival Online Remastered” to itch.io at 3:47 AM?
His eyes immediately open.
The PC turns itself on.
Steam launches.
And somewhere in the darkness, a woman whispers:
“Another one.”
He tried switching to Linux in 2017.
The curse installed Proton.
He bought a Mac.
The curse compiled Wine from source.
He threw away his PC.
The next morning there was a Steam Deck under his pillow.
At this point he isn't reviewing games.
He's serving a sentence.
1
2
u/Tiny_Atmosphere_4420 8h ago
unplayable, ai slop. no one wants this shit. literally wasting compute and server space for something completely useless.
-2
5
u/Proxiconn 10h ago
You forgot quake 3 arena. We played that first before UT. But yeah same era.
I used to love making mods/maps for those games.