Tools and Workflows for Shipping Web Games
James C. Kane works at the intersection of WebXR, AI, and game design, building polished narrative experiences for the browser. In this conversation, he breaks down what kinds of games actually make sense on the web today, how he chooses between different web engines, and what it takes to make immersive experiences feel premium from the first second. He also shares the workflow behind Shadow of the Tsar, from generating and stitching Gaussian splat environments to building interactions, lighting, and sound. Along the way, he explains where AI is genuinely useful in production, where it still falls short, and how it can unlock new gameplay mechanics rather than just speed up development.
Before getting into the interview, I wanted to quickly introduce you to today’s sponsor Gracia AI. Gracia AI is the only app that allows you to experience Animated Gaussian Splatting on a standalone headset, either in VR or MR.
Their 4DGS technology has been used in the latest Muse video, which you should absolutely check out whether you are a Muse fan or not 😉.
Interview with James C. Kane
What type of games can you currently create on the web today?
James C. Kane: I think there is such a huge range. The web does not apply a special limitation over what kind of game you might want to build, so whatever your passion is, you can really follow that. Web tech is really catching up to native platforms in many ways. My own work has focused on narrative experiences and what you can now do in WebXR and VR headsets. One example is The Nanauts, a mixed reality game where three robots enter your home and interact through computer vision, voice, and intent analysis. That feels like a new type of gameplay that only recently became possible.
How do you find your way toward building something polished and worth making, instead of another disposable web game?
James C. Kane: You have to be obsessed with quality in every aspect, from the marketing and positioning to the intro scene, establishing shot, music, sound effects, visual effects, every part of it. You are competing for attention with every other kind of entertainment in the world, from AAA games to endless short videos. Your game has to be good from the first moment and attention grabbing in every way you can think to make it. Then what you make has to come from your own vision and what you find compelling, because that is how you build a real niche audience over time.
How should developers choose the right engine for a web project?
James C. Kane: There are many options, so it can be a little head spinning. I have used three.js, A-Frame, Wonderland, React Three Fiber, PlayCanvas, and SparkJS. They all have different strengths. For example, I made Escape Artist in Wonderland Engine, and one of its biggest strengths is how it handles textures. You can pile many 4K textures into it, and it creates a virtual texture atlas in the browser, streaming only what you need in frame. Managing texture memory in many other web frameworks is a huge pain, so if I were making a texture-heavy app, I would probably go Wonderland.
What stood out to you about Immersive Web SDK and mixed reality development?
James C. Kane: I came into that hackathon organized by Meta cold and had three weeks to figure out what I could make, but I was impressed by how easy Immersive Web SDK made mixed reality features, especially camera passthrough. That is a relatively new feature, and in this framework you can get it more or less out of the box. With that, I could send frames from the mixed reality view to an AI server for analysis and know there is a banana here, a stool here, a lamp here. Once you have the mesh and a semantic understanding of the scene, it unlocks a lot. I am still only scratching the surface of what that means.
Can you tell us about Shadow of the Tzar and its opening scene?
James C. Kane: I think of that opening as the establishing shot. I want to immediately give a sense of quality and the cinematic nature of the title. If you think about great cinema, you are told a lot about the story from the very first shot. Here you get a winding arc through narrow city streets, fog drifting over the scene, black and white imagery, so you are gaining a lot of information very quickly. I also want to make it clear what the user should do, so the interface stays simple. Then once you hit start, the camera drives you into the beginning and the experience starts moving right away.
Why is constant momentum so important in your games?
James C. Kane: That is completely by design and intentional. It is a criticism I have of a lot of web content: you get there, it looks cool, you look around, but that interest fades very quickly. I want something to happen immediately, and then something right after that. There should be moment to moment excitement and interest. In Shadow of the Tsar, even though you only move a short distance down the alley, you run into a cat, then a radio that changes the music and gives you story context, then choices about where to go. It keeps pulling you forward every few seconds.
How did you generate and stitch together the Gaussian splat environments in Shadow of the Tzar?
James C. Kane: The process starts from images, because Marble is an image to 3D Gaussian splat generator. I began with reference photography from public domain classic cinema and film noir. From there I went into ComfyUI and prompted variations, or masked out things I did not want. That gave me stronger input images for Marble. You upload one image and within three or four minutes you get back a fairly high quality scene. For stitching, I experimented with both Blender tools and SuperSplat. I also worked with my friend Noah Ilberry, who helped polish and clean up the stitched scenes so I could focus on the rest of the game.
What is still difficult about editing Gaussian splats today?
James C. Kane: The editing experience is probably still the worst part of working with Gaussians. It is very fiddly. It is difficult to create straight lines when you remove anything. There is not really an ability to paint things unless you are copying and pasting. Even just selecting what you want to delete without grabbing everything behind it is a challenge. I would still say SuperSplat is the best tool I have used for this, but even there it can be a painful part of the process. The quality of generation is moving fast, but the editing tools are still fairly rough.
What did SparkJS unlock for you creatively?
James C. Kane: When I start a project, I look at what the engine or library can actually do and how I can lean into those capabilities while avoiding the pitfalls. With SparkJS, one big advantage was the cutting edge Gaussian splat rendering and the ability to mix GLTF and 3DGS pipelines right next to each other. I was also looking through the Spark examples library, which already had a lot of shaders and effects. That gave me a vocabulary to work from. I could see an effect, ask how it might fit this world or story, and then build around it in a cohesive way instead of starting from nothing.
How do you approach sound design, music, and voice overs?
James C. Kane: Sound is super important for immersion. Your ears are a huge part of how you perceive the world, and that carries into games. Lately I have set a lot of my work between 1900 and 1930, which gives me access to incredible public domain music at good quality. In In Tyrol I used Mahler symphonies from archival recordings, and in Shadow of the Tsar I played with Duke Ellington against Rachmaninoff to reinforce the themes and characters. For sound effects, freesound.org is useful, but I also love recording my own foley. For voices, I record myself into Ableton and use ElevenLabs voice changer to shape different characters.
Where has AI genuinely helped your workflow, and where does it still fall short?
James C. Kane: AI has been a game changer for me, especially on the code side. I can attempt features now that I would not have tried a year ago because I would have assumed they would take too long and blow up my production schedule. Sometimes there is enough well-documented open source code around a feature that AI helps me get it working very quickly. That saves time, and I can spend that time on things like physical props, costumes, acting, performance, and all the extra layers that make a project feel alive. Where it still falls flat for me is music and sound.
What kinds of gameplay become possible when AI is part of the game itself, not just the production process?
James C. Kane: That is exactly what I am trying to emphasize in my work now. In Shadow of the Tsar, there is a drawing sequence where the player has to recreate runes they found in the environment. I trained a custom neural net whose only job is to turn on during that moment and identify whether the player has drawn a star, a lightning bolt, or a circle. The model is tiny, but it powers a real mechanic in the game. On the XR side, semantic understanding of the room opens even more possibilities. Once a system knows there is a laptop here and a lamp there, entirely new interactions start to become possible.
What do you think is the biggest challenge when publishing web games?
James C. Kane: Discovery is probably the biggest challenge of web gaming. Getting people to know your game exists and take the risk with their time to try it is difficult, and I would not claim I have fully solved it. A lot of it starts in pre-production. Before I even lock a concept, I am trying to line up partners and sponsors because I have to support myself while doing this work. Platform sponsorships have been one of the best routes for me. I also think a track record matters a lot. If your portfolio shows strong case studies and consistent quality, people can make a judgment about what your next project is likely to deliver.
What are your thoughts on monetization, from ads to paid access?
James C. Kane: Ad driven monetization is an option, but it is not really what I want to do. A landing page full of ads can instantly create an impression of lower quality, and that first impression matters a lot to me. If I ever do ads, I would rather do them in a diegetic way, like a billboard inside a mini golf world. As for pay to play, my feeling right now is that reach matters more than direct monetization. Some of my WebXR games have been played by millions because Meta distributed them on the new tab page, and at this stage I care more that people try the work and come back than extracting a dollar from each user.
That’s it for today
See you next week




