QuakeShack
By the end of 2024 I wanted to nerd on something interesting. I found an old Quake 1 port for the browser and it ran pretty badly, so I started tinkering around with it.
Always being fascinated by Half-Life and how Quake evolved into modern engines of today, I started following a similar path.
After fixing a couple of issues with sound playback, bringing back proper WebSocket support and a few other quality of life improvements, I started reimplementing the complete Quake 1 game logic in modern JavaScript.
At the same time I polished the engine code base and slowly added features I wanted to get my hands dirty with.
Slowly but surely, I added features which are common in the Quake 1 modding community such as RGB support, BSP2 map format, and a few others. But I didn’t stop there, I looked into different approaches on how to load and organize assets, features such as volumetric fog, PBR-based materials, dynamic shadow maps, more modern pathfinding algorithms and much more.
Currently the project is increasingly getting more features and bug fixes and is evolving into a rather neat engine to work with. To implement actually useful features I also started to come up with a mod that is based on QuakeShack: Hellwave.
However, this project is primarily my pet project to learn more about modern JavaScript, game development and computer graphics.
I also use LLMs on it to get an idea how to build actually useful agentic development workflows.
The game can be found at https://play.quakeshack.dev/ and also comes with peer-to-peer multiplayer support with a game lobby.

Credits to lavender.pet for making the comfy logo and big thanks to the Quake 1 modding community on Discord for being patient with me for asking stupid questions.