A few months ago I posted an update here about Q3JS, my browser port of Quake 3.
Since then I've mostly just kept building, fixing things, and watching people play it.
Q3JS has now passed 1 million recorded frags, with over 12,000 players on the scoreboard.
It's pretty wild to see those numbers for something that started as an experiment to see how well Quake 3 could run in a browser.
The part I've enjoyed most is seeing Q3JS turn into an actual little Quake 3 community rather than just a browser port. People are hosting their own servers, playing CPMA and CTF, loading custom maps, climbing the rankings, and coming back to play.
One of the bigger additions recently is push-to-talk voice chat. It's optional, but if you're playing with other people you can now talk directly in-game without needing Discord or anything else running alongside it. It makes jumping into a server and playing together feel a lot more complete.
There are also mobile controls now, so you can actually play Quake 3 on a phone or tablet, as questionable as playing Quake 3 on a touchscreen might sound.
I've kept working on the less visible parts too. Server hosting is easier now, there's a Docker image and hosting documentation, and I've continued improving networking, compatibility, and the general experience of jumping into a game.
The stats side has grown quite a bit too. Player profiles now track weapons, maps, victims, nemeses, and activity, with rankings across different time periods.
It's been great watching this go from a technical experiment into something people actually come back and play.
The project is open source:
https://github.com/lklacar/q3js
Feedback, bug reports, and contributions are always welcome. If you enjoy the project, a GitHub star helps other people discover it.
Just to clarify, Q3JS only uses demo files and does not distribute any original game files that it shouldn't.
Happy fragging.
Ghostfox - Map Team Lead
If the waypoints are wrong, ping me - not the server.