Inspiration
We're all college students and in a couple years we'll be paying rent, utilities, student loans, and whatever random bills come up like a hospital visit. None of us were really taught how to manage any of this. We wanted to build something where you can practice those decisions before you have to make them for real.
What it does
Hold the Line is a VR financial literacy simulator. You live in your first apartment with a checking account, student debt, and a portfolio. Bills physically drop through a mail slot and you pay them by hand. A rotary wall phone connects you to the bank for loan payments, deposits, and withdrawals. You order groceries through that same phone and a delivery truck pulls up outside. Furniture starts out as ghostly translucent objects. Hold the trigger to buy one and it solidifies, boosting the happiness you earn from future events. NPCs call you with scenarios like a parent asking for money or a friend pitching a trip, and you talk to them in free-form voice conversations powered by an LLM. Hunger, happiness, debt, and your checking balance all tick in real time on a wrist watch.
How we built it
Built in Unity 6 with URP, targeting Quest 3 standalone through OpenXR and the XR Interaction Toolkit. Dialogue runs on Groq's llama-3.1-8b-instant, voices are ElevenLabs flash v2.5, and speech-to-text goes through Whisper with VAD. The leaderboard runs on a small Express server backed by Neon Postgres. A lot of the scene (the house exterior, the wall phone with its spiral cord, the yard, the wrist watch) is generated through custom editor builders, which made it easy to rebuild and tweak things as we went.
Challenges we ran into
The food delivery system was the hardest thing to get right. It kept breaking in frustrating ways. The money would deduct from your account, the truck would pull up, but the actual groceries just wouldn't spawn. It turned out to be a lifecycle issue with the controller getting torn down mid-delivery. The fix was moving the delivery logic into a detached coroutine singleton that ran on its own. A lot of smaller VR problems piled up around that too, like getting the delivery box to sit in the right place, making sure the door trigger fired reliably, and keeping everything consistent when the player did things out of order.
Accomplishments that we're proud of
Shipping a finished, working VR product. VR is harder to develop for than a flat game. The tooling is heavier, the iteration loop is slower, and there are a lot more small things that can go wrong. Having something at the end that you can actually put on and play through, with all the systems working together, is what we're most proud of.
What we learned
A lot of what we learned this time was about scope and making systems talk to each other, not any single new tool. Getting a live voice pipeline (speech-to-text, LLM, text-to-speech) to feel responsive inside VR forced us to actually think about latency and fallback states. We also got better at building procedurally in the editor. Once you have a few good builders, rebuilding the scene is cheap, and that makes it easier to throw stuff out and try again.
What's next for Hold the Line
We want to flesh out the story and the characters more. The call scenarios are the core of the experience right now, and there's a lot of room to make those conversations deeper and have them actually matter over time. Longer term, we'd like to open the world up beyond the apartment. Let you walk outside, run errands, visit places, and have your financial decisions play out in a bigger environment instead of staying in one room.
Built With
- c#
- css
- html
- javascript
- quest-3
- unity
- vr
Log in or sign up for Devpost to join the conversation.