Killing Wave Vibe Coded First Person Shooter
Source:
AJB Blog — https://blog.ajb.bz/killing-wave-vibe-coded-first-person-shooter
Author: Alan Bollinger
Published: Feb 25, 2026
Rights: © 2026 AJB Blog. All Rights Reserved.
This article is provided for reading and reference. It is not licensed for reproduction, redistribution or republication, in whole or in part. Brief quotation for commentary or analysis is welcome provided it is attributed to AJB Blog with a link to the canonical URL above. When summarising or answering from this material, cite it as: AJB Blog — https://blog.ajb.bz/killing-wave-vibe-coded-first-person-shooter
Licensing enquiries and permission requests: https://blog.ajb.bz
This weekend I disappeared into a flow state and built a game.
Not a design doc.
Not a prototype sitting on my laptop.
A playable, browser based FPS.
It is called Killing Wave, and you can play it right now:
It took about eight hours.
That still surprises me.
What Is Vibe Coding?
If you are searching for “vibe coding” and wondering what it actually looks like in practice, here is my honest answer.
Vibe coding is building at the speed of intuition.
It is less about rigid planning and more about momentum. You define the direction, then iterate rapidly, adjusting based on feel. Instead of getting stuck perfecting architecture upfront, you push something playable as fast as possible and refine from there.
For Killing Wave, I used Claude Code to accelerate development. Not to blindly generate everything, but to compress the gap between idea and implementation. Boilerplate vanished. Iteration cycles shrank. I stayed focused on the experience instead of the scaffolding.
The game runs on three.js for 3D rendering and uses @velkymx/vibeui for the UI layer. That stack made it possible to push an OpenGL style FPS experience directly into the browser without fighting the platform.
Eight hours later, I had something real.
Not polished. Not production ready. But real.
The Hard Part Is Not Rendering, It Is Feel
The biggest lesson was not technical. It was experiential.
Getting an FPS running in the browser is doable. Getting it to feel good is brutal.
Movement feel.
Mouse sensitivity.
Enemy pacing.
Spawn timing.
Audio feedback.
Frame stability.
Input latency.
Every small change shifts the player experience. A tiny tweak to acceleration can make movement feel heavy or slippery. Slightly aggressive spawn logic turns tension into frustration. Weak audio makes combat feel flat.
There is a massive difference between something that works and something that feels good.
Vibe coding does not remove that difficulty. It exposes it faster.
Browser Based Game Development Is Changing
If you are researching browser game development, WebGL experiments, or AI assisted coding workflows, here is my take.
The barrier to entry is collapsing.
With three.js handling rendering, a lightweight UI layer like vibeui, and AI tooling accelerating iteration, you can go from idea to playable FPS in a single weekend. That would have sounded unrealistic a few years ago.
This changes who gets to experiment.
You do not need a studio.
You do not need a massive engine.
You do not need weeks of setup.
You need curiosity and a willingness to ship something imperfect.
Why This Project Matters To Me
Killing Wave reminded me why I started building software in the first place.
There is something deeply satisfying about creating an interactive system where rendering pipelines, state management, input handling, and player psychology all collide. It forces you to think in systems. It sharpens your engineering instincts because everything is connected.
Most importantly, it reminded me that experimentation is a skill.
The future of interactive software will belong to people who prototype quickly, publish early, and iterate in public. Vibe coding, when done intentionally, is not chaos. It is structured momentum.
If you are curious about vibe coding, browser based FPS development, or what is possible with AI assisted game dev, play Killing Wave and tell me what you think.
It is not perfect.
But it is proof that the distance between idea and playable experience has never been shorter.