I've been building on #threejs since 2015.
Back then there was no InstancedMesh, no BatchedMesh. Most of the tools we take for granted today didn't exist.
In 2017, while developing Jamir, I started building my own game engine on top of it. I've spent the years since profiling and optimizing that engine, often chasing performance problems line by line.
That engine became X3JS.
After all this time, the hardest part is still how deeply everything is connected. Even the best AI models today can make a change that looks completely correct, and quietly break something three systems away. An engine like this doesn't forgive that.
So for this test I didn't want a synthetic benchmark. I wanted a real, AAA-looking game scene: cinematics, dialogue, characters, terrain, weather, a boss fight.
The gameplay, the cinematics, the MIDI music, the music and sound selections, the animation choices: all of it was produced by AI through X3JS's MCP tools. Camera work, dialogue, voice casting, triggers, enemy behavior.
Everything in the scene comes from the X3JS asset library and when X3JS releases, users will be able to use all of these assets freely in their own games.
The video shows the exact same scene, side by side:
- GTX 960M, a 2015 laptop GPU
- RTX 4070, a desktop GPU
Two separate gameplay runs never line up perfectly, so I made a few cuts to keep the cinematics in sync between the two sides. The scene, the settings, and the cinematics themselves are identical.
The GTX 960M is still one of my favorite machines to test on and i am lucky to have that. If a heavy scene runs well there, the optimization work is real, not a number on a slide.
And X3JS contributors;
Terrain materials: @polyhaven
Sound archive and AI meta: @selektaudio
X3JS retweeted
I now feel it’s the right time to start @X3JS_app the engine that will power everything I’ve been building for the past 2.5 years. I'll be sharing progress soon..
X3JS retweeted
Turning 38 tomorrow.
It took me almost 9 years to capture a video with 20 players like this without the game freezing, a server error or some stupid issue ruining the moment.
I spent so long building the game engine on top of #threejs that I forgot what it feels like to be a real player and made plenty of mistakes that made old players sad. Sorry for that..
Matches now go from 16 to 32 players and bots are a little smarter. It’s finally fun to play again.
I’ll be transferring all that hard work, 3D and 2D effects, ready effects and knowledge into @x3js, where you’ll be able to create games like this with just a few prompts.
#gamedev #indiedev #indiegames
X3JS retweeted
For a long time I couldn’t figure out why some players could easily destroy everyone else, causing others to quit in frustration.
My old custom BatchedMesh fallback (for WEBGL_multi_draw_extension) was broken for ages without me noticing. Firefox users always hit that path and some abused it.
Instead of being angry and confused all the time, maybe I should’ve just tested the game in Firefox 🤦
Just noticed BatchedMesh now has a built-in fallback. ( i think after r176)
Thanks @garrettkjohnson @onirenaud , made my day!
#threejs #gamedev #indiegame
X3JS retweeted
I’ve been building jamir io since 2017. It’s been my biggest passion for years but it never reached the success I hoped for.
Todays update seems to be the last one.
I thought creating a high graphics game on web would be interesting. Jamir shaped how I think about graphics, optimization, networking and persistence.
Even if the world didn’t notice, it meant a lot to me really.
Thanks #threejs for making it possible..
X3JS retweeted
sometimes i just need a nice spot and chill..
#threejs #gamedev #indiegame #indiedev #indiegames #IndieGameDev
X3JS retweeted
After 8 long years, I realized today that I've been rendering the scene twice whenever I use postprocessing... what a shame 🤦♂️
and one more thing, with bloom enabled, PointsMaterial turns black as opacities drop below zero. 🤷♂️
#threejs #gamedev #gamedevelopment
X3JS retweeted
After about a year of work, V4.0 is finally out and online! 🤠 Built with #threejs , upgrading from r147 to r169😍, this update was a real challenge for me.
Here are some of the biggest challenges I faced along the way;
1- Switching everything to real-world units (objects, particles, their motion etc..)
2- Integrating BatchedMesh into game engine.
3- Crafting custom shaders for fake lighting on moving objects.
4- Updating all the old shaders to work seamlessly with changed lightmap system.
5- Reworking the grass shaders to respond properly to artificial lighting and also for the changed threejs materials.
6- Setting light intensities to align with the new units.
I would be glad if you can try it out. Let me know what you think and hope everything runs smoothly...
#gamedev #indiegame
X3JS retweeted
I just turned 37 today and started this journey when I was 30. After years of building the engine with 💕 and optimizing it, this is the final gameplay running on #webgl with #threejs
After converting Jamir from WebGL to WebGPU, I hope to release the @X3JS_app, built on top of Jamir's game engine, in 2025, initially for creating FPP and TPP games, and make it available for everyone.
New version will be upcoming in a few days, btw! 🥳
#gamedev #gamedevelopment


