Inspiration

Markets don’t collapse because “prices move.” They collapse because people react to fear, greed, and opportunity—and they react strategically. In a crisis, information becomes a currency: who hears what first, who believes what, and who can amplify or suppress a narrative often matters more than any single candle on a chart. That’s the feeling we wanted to capture with wallstreet-crisis: not a solitary trading sim where you fight the market, but a living, unfair arena where players fight each other under unequal constraints.

What it does

wallstreet-crisis is a real-time financial crisis sandbox built around PvP game theory. Players aren’t just trying to “make money”; they’re trying to win in a world where power is asymmetric. Everyone gets pushed into different levels of difficulty, objectives, and rewards, so strategy isn’t optional—it’s survival. Players can trade directly, negotiate deals, and lock those agreements into rule-based contracts. And because the rules allow deception, the social layer matters: you can bluff, bait, exploit loopholes, or defend against manipulation—without turning the whole thing into chaos.

How we built it

We built the project as a web app with a React + TypeScript frontend and a FastAPI backend. Under the hood, the backend keeps two kinds of “truth” in sync: a fast, deterministic ledger (SQLite) for accounts, positions, orders, trades, and chat persistence; and an event / news graph (Neo4j) for propagation, broadcast, and replayable narrative state. The world runs in real time—market making, news ticks, and agent actions—then streams events to clients so the UI feels like a crisis unfolding, not a turn-based simulator.

Challenges we ran into

The biggest challenge was making the system feel like a game of people, not a spreadsheet with animations. If prices only drift one way, players stop negotiating and start optimizing; if information spreads with no structure, the chat becomes noise; if constraints are too strict, the world feels dead. We also hit very practical production issues: presence and realtime behavior can silently break behind certain network/CDN setups. When the system believes no humans are online, schedulers pause, agents stop, and suddenly the “world” looks empty even though the code is fine. Getting reliability right turned out to be part of game design.

Accomplishments that we're proud of

We’re proud that the simulation has multiple layers that reinforce each other instead of competing: market liquidity supports trading, news shocks create narratives, and contracts let players formalize betrayal or cooperation. The result is a sandbox where the most interesting moves often aren’t purely financial—they’re social and strategic: when to leak, when to lie, when to hedge, when to trap someone with a contract, and when to stay quiet.

What we learned

We learned that “realism” in this genre is less about perfect pricing models and more about incentive design. As soon as you introduce asymmetry—different roles, different goals, different visibility—the market becomes a social game. We also learned to treat infrastructure as part of gameplay: presence tracking, scheduling, and event delivery aren’t just technical plumbing; they determine whether the world feels alive and responsive.

What's next for wallstreet-crisis

Next, we want to deepen the PvP loop so information and trust become first-class mechanics. That means richer task/reward assignment, better tools for verifying (or faking) claims, and clearer ways to profit from narrative control without reducing the experience to spam. On the systems side, we want stronger observability of agent behavior and world state, so it’s easy to see who moved the market and why—because in this game, the “why” is the whole point.

Task status

  • Project Story: rewritten into natural paragraph form (less list-heavy).

Built With

Share this project:

Updates