About the Project: NPC-Simulator: Corporate Escape

Here is the complete story of how NPC-Simulator: Corporate Escape went from a blank canvas to a high-stakes, tactical rogue-lite survival game for the Build with MeDo Hackathon.


💡 The Inspiration

The inspiration came from a simple realization: the modern corporate grind—with its urgent deadlines, fluctuating caffeine levels, and endless meetings—is essentially a brutal rogue-lite survival game. We wanted to take the ironic, widely shared humor of "crunch culture" found on tech Discord servers and combine it with the addictive resource-management mechanics of modern indie games like Balatro or Slay the Spire.

By framing tech roles as distinct RPG character classes (the Burnt-Out Developer, the Over-Caffeinated PM, and the Graphic Designer), we turned daily workplace anxiety into a strategic, highly relatable, and deeply engaging playground.


🛠️ How We Built It

The application was built entirely using natural-language-driven development pipelines on MeDo, leveraging a clean, single-page reactive dashboard with a modern, glassmorphic dark-mode UI.

1. The Architectural Core

At the heart of the game is GameContext.tsx, which serves as our centralized state engine. The engine keeps track of time (advancing in 2-hour intervals), the active day of the week, and three core user metrics:

  • Sanity ($S$)
  • Clout ($C$)
  • Coffee ($C_f$)

2. Algorithmic State & Mechanics

To ensure the game felt like a true tactical rogue-lite rather than a predictable quiz, we engineered several custom logical loops:

  • Bulletproof Scenario Rotation: We built a dedicated array state (playedScenarioIds) that tracks history. The next scenario index ($I$) is selected at random from a filtered subset:

$$\text{Pool} = { s \in \text{Scenarios} \mid s.\text{id} \notin \text{playedScenarioIds} }$$

This entirely eliminated the issue of back-to-back repeating events.

  • Active Inventory Synergy Engine: We transformed static item displays into functional, clickable power-ups that directly alter live parameters, such as a temporary immunity shield or an immediate stat-tradeoff.
  • The Watercooler Shop: A progression loop triggered at 5:00 PM virtual time, allowing players to spend accumulated Clout ($C$) as currency to purchase randomized passive upgrades.

⚠️ Challenges We Faced

Building an application using AI generation in a fast-paced hackathon setting came with highly unique technical hurdles:

  • Tangled State Management: Early iterations suffered from generic state blocks that caused game variables to reset or loop incorrectly. We solved this by executing a massive single-step architectural refactor, forcing the AI to strictly define filtering arrays.
  • Asset & Content Restrictions: The development sandbox had strict content security policies, causing external image generation plugins and random URLs to display as "Offline". We adapted by swapping to a whitelisted, high-speed CDN network (Unsplash) and mapping verified, hyper-stylized cyber-grid and neon vector art directly to our class variables.
  • Balancing the Gameplay Loop: Initial builds felt like boring multi-choice text boxes. We aggressively iterated on the game balance, introducing risk/reward percentages and visual "juice" (screen flashes and text notifications) to provide satisfying mechanical feedback.

🧠 What We Learned

This project was a masterclass in rapid prototyping and credit-efficient prompt engineering. We learned that when building with AI engines, describing bugs sequentially can burn resources rapidly. Instead, diagnosing the root architectural flaw and deploying targeted, multi-fix patches saves immense time and compute.

Furthermore, we proved that excellent game design relies heavily on tight feedback loops. A game becomes instantly fun the moment a player feels the direct impact of their strategy—such as timing a Noise-Canceling Headphone activation perfectly to survive an intense Hell Mode corporate meeting.

Built With

Share this project:

Updates

Submission history