p.enthalabs

Who needs AI psychosis?! I gave myself VR psychosis 🤠

![Image 1](https://substackcdn.com/image/fetch/$s_!IWJV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cdcaeb5-4a99-4178-a605-de5b1aa16aa9_1790x1278.png)

Modern life is an impossible luxury. You have a king’s ransom of salt and spices in your home, clumpy from neglect. These were once worth their weight in gold, and abundance has relegated them to the slithy toves of ALDI. It took **centuries** of globalisation to transform spice into an everyday commodity.

In the early 2000s, I read a tabloid profile of a lottery winner: _“I might buy my son a video game”_. The journalist guffawed, _“you know you could pay a company to build him his own game!”_ A hilarious extravagance. And yet in the last ~year, something you can just _do_, the price collapsing from $millions down to $20/month.

AI Psychosis has never been so cheap.

When you’re set up properly… you can do some pretty bonkers stuff. I’ve become obsessed with vibe coding VR games, auto deploying them to the web, and playtesting to iterate. In short, I want to share my descent into VR psychosis with you.

Can’t read? Just want to play some VR games? I got you covered:

Play my VR games here

With a game, you know within 10 seconds if you’re into it. A compelling story and overarching goal are great: rescue the princess. But even more critical is an engaging **primary gameplay loop**: jump on a _lot_ of Goombas along the way.

Iterative game generation is the fastest way I’ve found to hone _taste_. In a new world underpinned by agentic engineering, it’s the most defensible skill of all.

Here’s what you might get out of this _(somewhat meandering)_ life story:

- How I ended up regularly shipping VR games from the pub.

- How to set up an auto-deploying web game generation pipeline.

- A rapid, handsfree way to develop taste.

- Fatherhood and Inspo

- The Reluctant Web Developer

- My Automation Pipeline

- Voice Prompting

- Claude Remote Control

- Git, Vercel, and Cloudflare

- VR Psychosis

- The final moving part

- Building my own VR Games

- Star Crusader

- Iterating towards a secondary gameplay loop

- Rampart

- FrostFlame

- Star Miner

- Balloon Thunderdome

- Whoops, I forgot about my kids

- Last Orders 🍺

Allow me to jump back a few months in this deeply untethered narrative.

My first brush with this came not from nascent VR psychosis, but from wanting to be a fun dad. A fun dad _in tech_.

Many parents guiltily give their kids access to electronics when they need a breather. My daughter, between spats of dodgy YouTube slop, is partial to a balloon popping game. On a whim, I thought to myself: _this is total dogsh*t. I could do much better than this_. So I opened Claude and asked it to make a balloon popping iOS app with _**powerups**_.

My fatherly vision of giving my daughter a flavour of this impossible dream: to become equal to a lottery winner, dictating the terms of a video game built before her eyes… might have missed the mark. Teamwork. User research. Bonding.

![Image 2](https://substackcdn.com/image/fetch/$s_!NwOt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bab7333-5534-464d-8fea-d412c1a5dafc_2198x1190.png)

Left: a balloon game that’s hot garbage. The rest: a f*cking rad balloon game.

Did my daughter start playing the upgraded version of her own accord? No. Did she like it more than the _(crap)_ original? Also no. But I got some super useful lessons about performing user research on a 5-year-old:

> _“Make it better. Make it less bad. It’s boring.”_ > —Lyra, 2026. Thanks, Lyra.

Later that weekend, at a kid’s birthday party, while trying to desperately find testers to get in on the balloon action, I had a crushing realisation: I can’t iterate as fast while tied to iOS.

Sitting in my home office, neglecting my kids, as I voice-prompt an agent to build a new power-up, is all well and good, but deeply limiting to iteration speed.

Apple doesn’t exactly help themselves here either. The web, for all its faults, is _(by a drastic margin)_ the easiest way to deploy things.

Easier… after some annoying admin.

Indulge me with another tangent, so I can set the scene. It’s relevant, I’m trying to explain the level of handsfreeness we’re playing with in 2026.

It was May 12th. My birthday. You can send me gifts here btw.

I was at the pub. A friend reminded me of a bit I used to do when I was 18 _(which, for the record, I do **not** remember)_ which I employed in my eternal quest to be really annoying. When I’d make an edgy joke, I’d obnoxiously open an app called “Privilege Checker”™ to l a checklist _(white, straight, cis, etc, etc)_, and, having checked my privilege, would deploy my moderately offensive joke. It’s all about the timing, you see?

I chuckled at the alleged memory, and then, in my brooding, mysterious way, walked outside for a moment. I came back a few minutes later and shoved this web app in my friend’s face.

![Image 3](https://substackcdn.com/image/fetch/$s_!KPNo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff21ffe30-0414-4e5a-a222-68d82585b8a8_1792x1036.png)

I can’t really take credit for this: I own no inference clusters, I have no complex pipeline, and I’m not personally touching Git on a Friday night. I just orchestrate moving parts that greater minds created. I’m just the glue. Specifically, the glue is my mouth.

Typing? Okay, grandad. Back to the nursing home with you.

It’s crazy how much my workflow has changed since adopting voice-dictation tools. The vast majority of my day-to-day work is meanderingly mumbling into a microphone, and then code comes out the other side.

![Image 4](https://substackcdn.com/image/fetch/$s_!YfXw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21f0483b-514c-4752-ba01-8d972e670daf_1784x924.png)

Get on my level, bro

This is great for fast, messy iteration and field research. You emit a stream of consciousness and get something useful out the other side. Assuming there’s a model capable of interpreting your genius.

This is rad for the one-shot approach. But also great for iteration.

I get solid results with Wispr Flow and Granola. Wispr Flow is better for rapid live-testing loops where you’re tasting your own dog food and giving live shot-calling dictation. Granola is better for set-and-forget long-form user research.

This works with Codex too, but I try to save my credits for important stuff.

The **/remote-control** command, alongside caffeinate _(to stop your machine falling asleep),_ become the poor man’s OpenClaw. You can prompt Claude in a folder on your machine from the app.

![Image 5](https://substackcdn.com/image/fetch/$s_!HpXB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64421e53-3455-4dbd-a0e3-ed00549b2b37_2358x1066.png)

I say the poor man’s OpenClaw. It’s probably more like the poor man’s Mac Mini. I don’t _quite_ feel dropping £799 is worth the luxury of not closing my clamshell.

That said, once I got into the throes of VR psychosis, I got close.

![Image 6](https://substackcdn.com/image/fetch/$s_!7xDE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc834272f-e705-4759-89fc-b914158c5b4d_1662x1300.jpeg)

Me trying not to buy a Mac mini after learning I can vibe-code VR games

Unshackled from my home office, I can dictate commands to my agent from the pub. Naturally, my agent has git access, able to push straight up to my repo and deploy.

The 3 amigos.

Frankly, if you held a gun to my head, and told me to explain what Vercel does or you’ll blow my brains out, my last words would be a curse upon Vercel. I kinda reckon it hosts web servers, but don’t take my word for it.

With some slightly annoying admin, you can make it so every git push automatically goes through to Vercel and gets deployed. So… _I guess it’s a CI service?_

![Image 7](https://substackcdn.com/image/fetch/$s_!wZ9p!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb65fbae3-c8eb-4a2e-92c3-dfe24778a4c2_2596x786.png)

Cloudflare is a DDoS protection service, which for some reason also does domain registration. I set up a CNAME for the subdomain **games.jacobstechtavern.com** that keeps my wildest ideas airgapped from my colleagues at Granola.

This basically means for my **jacobstechtavern.com**domain, I can easily create subdomains, and Vercel routes the deployed web pages there.

![Image 8](https://substackcdn.com/image/fetch/$s_!yDha!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F426b66fd-d70b-4c1a-adb5-24c9afaaec65_2998x754.png)

Vercel and Cloudflare work together in ways I simply cannot comprehend, but they steam a good ham.

The point is that, now, the cost of deploying is zero. The cost of implementing is also zero. The cost of putting my thoughts into a computer is reduced to a moment of mumbling. Thus blurs the line between ideas in your head and working software in your hand.

![Image 9](https://substackcdn.com/image/fetch/$s_!N7jF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed47f77e-0cd2-4d1a-86a4-518ad01a2553_1672x941.png)

Now I can explain the worst avoidable motion sickness I’ve ever given myself.

The fan-made Attack on Titan VR game. You fly around and kill big fellas with swords.

![Image 10](https://substackcdn.com/image/fetch/$s_!hjeA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f5ad78f-c65a-49e5-9a0e-686a198a8eaf_2110x1178.png)

There are many degrees of freedom in VR: 2 triggers, plus face buttons, in each hand, with 360° range of motion for each hand.

The traversal mechanics in Attack on Titan VR involved shooting a cable at a wall. The other trigger reels you in, building momentum. The simple physics alone here allowed for incredibly dynamic motion. I couldn’t stop playing, for hours, acrobatically spidermanning through a city, until I was completely _floored_ by the motion sickness that had been building up as my brain fell over trying to reconcile my senses of sight and balance.

I digress. Traversal mechanics are fun. They are a huge component of a primary gameplay loop: the moment-to-moment enjoyment. See Mario 64: the devs spent half of development working on 3D motion, making the space fun to move around in. They didn’t even begin building the levels in Peach’s Castle until they perfected the ability to jump about and handle the camera in a 3D space.

Now, a friend at work showed me something that he vibe coded that ties this all together.

He put a VR headset on my head and showed me a fun little space where I could shoot little Granola logos at targets. _We’ll find a business use case soon, I’m sure._

He gave me an insight I didn’t know before: it turns out that it’s really easy to vibe VR games and deploy them online using Three.js, WebXR, and Vite. Whole VR games.

It’s time to tie these threads together.

Automated web deployment.

Traversal mechanics.

Vibe-coded web-based VR games.

Subscribe for free to continue reading

Enter your email and get every post from Jacob’s Tech Tavern.