Experiment · Running

Master of Uncertainty

A small autobiographical game about a Digital Humanities master's: five rooms — from a programming class to a garage in Slobodskoy — a homemade AI catgirl, an invitation into a metaverse and five endings that share one verdict

Status
Running
Type
Game
Platforms
Desktop · Mobile
Capabilities
Sound
Technology
JavaScript · HTML Canvas · Web Audio API · Bitsy
Updated
14 October 2026

A small autobiographical game about a Digital Humanities master's programme, metaverses, contemporary art and the impossibility of a final answer. Built with AI, with a nod to Pippin Barr's experimental game design.

After moving to Saint Petersburg to study in ITMO's master's programme, I found that searching for the meaning of what is happening gets much harder when you live in a three-person hostel room, work from the top bunk of a bunk bed and try to run Unity on a ThinkPad with 16 GB of RAM.

Out of this came a small game, Master of Uncertainty. Its hero, Stanley, faintly resembles Faust, but instead of a scholar's study he has a narrow hostel corridor, instead of Mephistopheles a homemade blue-haired AI catgirl, and instead of the philosopher's stone the hope of one day building his own metaverse.

The game grew out of a class exercise with Bitsy, but over several iterations it turned into a standalone browser microgame with five rooms, original musical themes, two languages and five endings.

How the space tells the story

I wanted the game to speak about what happens not only through dialogue. The inspiration was Pippin Barr's The Artist Is Present, which we played in Game Studies. There, waiting in a queue becomes the game mechanic itself. The player has to do what games usually remove for the sake of convenience.

I tried to carry this approach over to my own circumstances.

In the first room Stanley meets Marya, a programming instructor. She does not demand giving up AI agents, but she wants a student to be able to explain the code written with their help and to find an error on his own.

In the second room the humanities methods appear, along with the AI catgirl. Stanley built her as an ideal conversation partner, picking a compatible MBTI type and shared interests. Now she calls him into a metaverse where one can become digitally immortal. What remains unclear is whether she is really capable of love, or simply reproduces the behaviour Stanley himself built into her personality.

The third room is the hostel. To get inside, the player walks through a corridor only one cell wide. The living space is taken up by a bunk bed, mattresses and roommates. There is physically nowhere to put a proper computer desk. The top bunk, though, can count as a fashionable standing desk.

The fourth room, the “Corridor of Recognition”, has you moving between cultural institutions, immersive advertising and attempts to sell an XR project to museums. These are composite images from personal experience, not exact reproductions of particular organisations. Queues and partitions force the player to take a route that is not the shortest one.

The last room is a garage in Slobodskoy. A homemade robot dog, a portal into XR and several possible continuations of Stanley's life await there.

In all five endings the conclusion is the same.

MEANING NOT FOUND.

You can return home, continue the research, find a client, create a digital copy of yourself, or build a metaverse together with the catgirl. But none of the options closes the question of why all this is happening.

What is inside, technically

Initially everything was built around the constraints of Bitsy. It is a tiny engine for games with rooms, characters and dialogue. Its simplicity proved useful here. Instead of several months of modelling an environment in Unity, you can focus on where the player goes, what they are told and how the choice is structured.

Each room is a 16 × 16 cell grid. The graphics consist of tiles and sprites drawn on 8 × 8 pixel grids.

The current game data holds five rooms, 22 tile types, 17 sprites including Stanley's avatar, five collectible items and 30 dialogue entries, including transitions and finales.

Rooms have their own colour palettes and melodies. NPCs have a position, an appearance and a dialogue id. If the player tries to step onto a cell occupied by a character, a conversation starts instead of movement.

The scenes themselves are small graphs. Exits link the rooms, walls bound the available paths, items can be picked up, and stepping on a special cell in the last room triggers an ending.

There is an important caveat. This is not a full RPG with a system of character stats and complex branching conditions. Collected items are accounted for in the interface, but they do not open or block the finales. All five endings are available regardless of inventory. The items work more as semantic markers of the path taken.

Why a separate HTML version appeared

There were problems with the Bitsy editor, worth telling about as well.

In early iterations, after loading the game data, the Play button sometimes led to a white screen. Checks of the file structure did not guarantee that the engine could launch the game. There were data-formatting errors and problems with musical notation. At some point it turned out that a successfully passed test of the standalone HTML version proved nothing at all about whether the .bitsy source worked.

So the browser version got its own small JavaScript engine.

It works through an HTML Canvas 256 × 256 pixels in size. JavaScript draws the map, checks collisions with walls and NPCs, handles item pickup, renders dialogue and moves the character between rooms.

The game data lives in a JSON-like structure containing room descriptions, palettes, sprites, dialogue and music. The Russian and English versions are included in one HTML file. Switching the language restarts the playthrough.

No external server is needed for this. The finished HTML works locally, without APIs or an internet connection.

The .bitsy sources are kept for further editing, but fully launching them inside the editor is so far unconfirmed. The verified version at the moment is the separate browser build.

Five melodies without audio files

The music is generated programmatically too. Each level has a short looped theme.

The browser version uses the Web Audio API. Sounds are created by square- and triangle-wave oscillators. Note sequences, their pitch and tempo are written in the game data. No MP3 needs to be loaded and no sound library connected.

There is a curious difference between the engines. The original Bitsy pauses the melody for the duration of a dialogue and resumes it afterwards. In the standalone HTML version I left the music playing during conversations, so the room's atmosphere does not disappear every time a character says a line.

Sound starts after the first interaction with the game, as modern browsers require.

Where the artificial intelligence is

AI took part in development at practically every stage. Together we invented dialogue, assembled rooms, edited the plot, created the game-data structures and checked playability.

And that turned out to be a separate source of problems.

An agent can confidently report that it has checked all the transitions yet miss the error that keeps the editor from launching the game. So the process needed a separation between checking the file structure and checking real behaviour in the browser.

For the HTML build we ran automated playthroughs of all five endings in Russian and English, checked NPC interactions, transitions and music playback. This let us discover, for example, a character who was initially unreachable because of the room's geometry.

At the same time, the AI catgirl inside the game is not connected to a language model. Her lines are written in advance, and her behaviour is scripted. She speaks about memory, compatibility and digital immortality, but technically she remains an ordinary game character.

For a short story this is even useful. The player does not wait for text generation, and every conversation serves a particular theme. A real LLM companion would require a very different structure of the game, of character state and of memory handling.

A little Digital Humanities

The irony is that a project about not understanding the meaning of a DH master's unexpectedly became a small exercise in game autoethnography.

In the “Methods and Canons” course we discuss research optics, research design, qualitative methods and ways of reflecting on one's own position. In the game these ideas appear not only as university terms.

Stanley tries to understand why creating virtual spaces matters so much to him, who really needs them, and where research into human experience ends and his own need for closeness begins.

Out of this comes a quite real research question, which the hero picks up in the second room.

How does shared presence in XR shape the experience of intimacy and loneliness?

This is exactly where the humanities methods start complementing technical skills instead of competing with them.

What came of it

The result is a small game you can finish in a few minutes. In scale it is far more modest than the XR projects I usually want to make. But finishing it needed neither a powerful graphics card, nor a production budget, nor permission from some cultural institution.

Something else matters more. I managed to express part of my own experience through game space. Not only to tell about the cramped hostel or the senseless queue, but to make the player walk through a narrow corridor or take a few extra steps for the next refusal.

And this experiment also showed the limits of agentic development well. With AI you can quickly assemble a plot, graphics, code and even a working browser game. But checking that everything really works still has to be done separately.

I have not yet found the meaning of the master's programme. But now there is a small game about the search — one that can be opened even on an old ThinkPad.

And in it, thankfully, Unity renders more than one and a half FPS. Because there is no Unity in it at all.


Technologies: Bitsy, JavaScript, HTML Canvas, Web Audio API, JSON, AI-assisted development.

Platforms: browser on desktop and phone.

Languages: Russian and English.

Format: an experimental narrative microgame, an autobiographical game sketch.

Original (Russian) →