@jamir_io 's WebGL dynamic lights ported to WebGPU. Not just Y calc anymore, better AABB collision per light, all in a #threejs storage buffer. You can pack thousands. #gamedevelopment
Phase 1 done on the #threejs TSL - GPU light system in X3JS.
Lights alone could take at least 20 phases of optimization. Stopping around 7-8 and moving on.
Jamir's light system is about 40% in X3JS. CPU before, GPU now. One storage buffer and #threejs TSL. 100+ PointLights in the same scene, no extra optimizations yet. Going for 1000 tomorrow.
Most of the things are completed. Fun part has arrived. Jamir's 8 years old #threejs game engine (WebGL) is being ported in X3JS Editor, Debug and Production and being remastered with WebGPU only.
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..
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
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
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..
AI integration should be;
the prompt: scary first-person shooter in a dark forest
this is what X3JS should be doing:
▫️choosing the right predefined camera setup
▫️predefined player setup with fps controls
▫️placing realistic objects from its own library to start with which you can change later
▫️setting up lighting & scary environment
▫️building the entire scene fully optimized, ready to run in the engine
no code
just your idea and visual editing from there..
#gamedev#threejs#webgpu#NoCode
A fully canvas-drawn UI rendered at runtime, designed for easy control and maintenance. Built for in-game 2D animations and game menus, eliminating complex HTML structures—just smooth, optimized elements that integrate seamlessly with the game engine.
A self-sufficient physics engine handling floor detection, hitboxes, particle collisions, and more, optimizing collisions intelligently. It should rely on Cannon.js only when absolutely necessary, keeping performance costs low while ensuring accuracy. Unnecessary calculations from Cannon.js should be removed or modified, and all outputs like boxes, quaternions, and other physics data should be efficiently collected and reused to minimize CPU load at all levels.
@AshConnell@threejs Making the game engine is much more fun then the games itself but i am not sure if people building real game engines or object displayers with ai 😩 your work looks great btw
Keep seeing so many new game engines built on top of @threejs that I’ve never heard of before. It looks like there will be a Three.js game engine jam by the end of this summer or sooner 😁