News | Forum | People | FAQ | Links | Search | Register | Log in
NetQuake.io Project Expanding WebQuake
Hello, my first post here, hope. I normally used to post on quakeone.com, but I think here is a better place for this kind of post?

A few users ago, a developer did a line by line conversion of the Quake source code to javascript. I've been intrigued ever since, this port allowed for browser based play like QuakeLive, and also allowed native clients to connect.

The original developer seems content with leaving the original source close to original, so I've forked it and have been quietly toying with it off and on the last few years. The last few months I've been really focused on making something that can be consumed by anyone, and that's the state of today.

Why? When I think of trying to get a friend to run quake, I think of having them install quake, maybe install a quake loader, getting a decent key map, maybe adding command line parameters to get the engine working correctly. WebQuake greatly simplifies all this by allowing me to send a simple link to someone and they can be instantly in-game running a demo, custom map, or multiplayer game. Did I mention platform agnostic? It even runs on mobile!

The downsides to WebQuake -
- Slower than native (this is running webgl, but everything filters through the browser's API)
- Browser may limit key configurations - you there's certain key commands that you can't override in a browser like alt+w
- Require an internet connection to run (can be run offline, might have some options here)

What I've added:
Async/IO - the original source used deprecated blocking IO which isn't compatible with other technologies such as IndexedDB
IndexedDB - Local storage to support adding client pak files. This allows the server to not make pak1.pak public, and allows the user to supply it from their local filesystem, "proving" they bought the game.
ES6 modules - allows the game files to be packaged up in modules

What NetQuake.io offers:
Frontend hosting webquake assets with pak0.pak so you can play shareware out of the box
Master server keeping track of server instances
A couple test instances running on my home server
A CTF server running in AWS Ohio

What I want to do:
- Demo Database - Ability to host/play demos
- Custom map lookup (based on quaddicted's database)
- Add more proquake features to the engine
- Make netquake.io "nicer" - it's currently just a prototype
- Move everything to AWS
- Support local mods

Anyway, that's all. I don't know how useful this might be, so putting out there to gauge interest. Would love to keep a project log here maybe?
First | Previous | Next | Last
 
I've replaced the world/brush rendering code and all lightmap rendering with code from quakespasm. This means most modern maps should load and generally work. Still have a few rendering bugs to work out, but it works pretty well.

Support also added for Fog, Fences, transparent entities, transparent water/lava/slime/teleporters.

I've also moved everything to AWS (Amazon Web Services) and off my home machine, so that should speed up downloads and also the multiplayer instances.

Next is fixing the few rendering bugs I introduced, and support for modern skyboxes 
@efess 
This is all great news. Thanks for all your hard work on this. 
 
Been a while...
Made some updates over the past few months

- SSL all the things, including multiplayer
- faster loading, minimize 404 errors
- backend overhaul (only affects me ($$) really..)
- Styling updates

TODO
better multiplayer experience.
support maps that require other resources (Arcane dimensions)
Performance (everything having to be async is a real drag.. still trying to come up with solutions.)

https://www.netquake.io 
 
thats awesome. how does the backend work? are players connected via P2P? 
 
@jambalayaaaaa the backend runs mostly serverless AWS lambdas with S3 backend. The multiplayer is still client/server with server instances hosted in docker containers. Nginx provides layer7 routing for webquake clients, and udp is still port forwarded for native clients 
First | Previous | Next | Last
You must be logged in to post in this thread.
Website copyright © 2002-2024 John Fitzgibbons. All posts are copyright their respective authors.