Skip to content

nanoAgentTeam/developer-survival-simulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Developer Survival Simulator

A terminal-based text adventure game where you play as a junior developer trying to survive your first week at a chaotic startup.

This project was generated by nano_agent_team — a multi-agent collaboration framework based on the blackboard model.

Model: DeepSeek

Query:

Build a terminal-based 'Developer Survival Simulator' — a text adventure game where the player
is a junior dev surviving their first week at a startup. Include:
1) An event engine with 20+ random events (production outage at 3am, PM changes requirements,
   code review rejected, free pizza in the break room, etc.)
2) A stat system tracking Energy, Code Quality, Boss Satisfaction, and Sanity — each event
   shifts the stats with trade-offs
3) A decision system where the player picks from 2-3 options per event, each with different
   consequences
4) A Rich-powered terminal UI with live stat bars, event log, and ASCII art
5) A game-over/victory condition (survive 5 days or get fired)
6) Unit tests for the event engine and stat system.

Post-generation bug fixes:

  1. main.py import errorsfrom src.game.state import GameState referenced a non-existent state.py module (GameState is defined in engine.py); ChoiceSystem was imported but doesn't exist (actual class is ChoiceValidator).
  2. main.py API mismatch — Called engine.run_game() which doesn't exist (should be engine.run()); ui.display_victory() and ui.display_game_over() called with wrong argument types.
  3. ui.py vs ui/ package conflict — Both src/game/ui.py (file) and src/game/ui/ (package) existed simultaneously. Python prioritizes the package, which had a completely different GameUI class missing all methods the engine requires (clear_screen, display_stats, display_event, etc.). Resolved by moving the correct implementation into ui/game_ui.py.
  4. Test logic error in test_ui_old.pytest_get_user_choice_retry used a mock side_effect function that raises ValueError on first call, but pytest.raises(IndexError) expected to catch the second call's error. Mock doesn't auto-retry — the first exception propagated immediately.

Python Version Rich Library License: MIT

Game Overview

You're a junior developer starting your first week at "ChaosCorp", a fast-paced startup where:

  • The coffee machine breaks daily
  • The codebase is held together by duct tape and hope
  • Your boss expects miracles by lunchtime
  • Your colleagues speak in memes and buzzwords

Your goal: Survive all 5 days by balancing four critical stats:

  • Energy - Physical stamina to get through the day
  • Code Quality - How clean and maintainable your work is
  • Boss Satisfaction - Keeping management happy (or at least not angry)
  • Sanity - Your mental well-being in the face of startup chaos

Quick Start

Prerequisites

  • Python 3.10 or higher
  • pip (Python package installer)

Installation

git clone https://github.com/nanoAgentTeam/developer-survival-simulator.git
cd developer-survival-simulator

pip install -r requirements.txt

python main.py play

How to Play

Basic Controls

  • Use number keys (1, 2, 3) to select choices
  • Press Ctrl+C to quit at any time

Game Structure

  1. Day Progression: Each day presents 3 random challenges
  2. Event System: 15 unique workplace scenarios with multiple choice responses
  3. Stat Management: Every choice affects your stats with trade-offs
  4. Consequences: Any stat hitting zero triggers game over

Winning Conditions

  • Survive all 5 days with all stats above zero
  • Perfect Run: All stats > 50 on day 5
  • Survival: Just stay alive!
  • Burnout: Energy reaches 0
  • Fired: Boss Satisfaction reaches 0

Project Architecture

├── main.py                    # Entry point with CLI (typer)
├── requirements.txt           # Dependencies
├── pytest.ini                 # Test configuration
├── src/
│   └── game/
│       ├── engine.py          # Main game engine and loop
│       ├── stats.py           # Player stats system (Energy/CodeQuality/BossSat/Sanity)
│       ├── events.py          # 15 event definitions with 3 choices each
│       ├── choices.py         # Choice & Consequence system
│       └── ui/
│           ├── game_ui.py     # Rich-powered terminal UI
│           ├── adapter.py     # UI compatibility layer
│           └── components.py  # Reusable UI widgets
├── tests/                     # Test suites
│   ├── conftest.py
│   ├── test_stats.py
│   ├── test_events.py
│   ├── test_choices.py
│   ├── test_game_integration.py
│   ├── test_game_loop.py
│   ├── test_integration.py
│   ├── test_real_integration.py
│   └── test_ui.py
└── ui/                        # ASCII art assets
    ├── logo.txt
    ├── character_states.txt
    └── day_transitions.txt

Testing

# Run all tests (203 tests)
pytest tests/

# Run specific test categories
pytest tests/test_stats.py              # Stat system tests
pytest tests/test_events.py             # Event system tests
pytest tests/test_game_integration.py   # Integration tests
pytest tests/test_real_integration.py   # Full integration tests

Screenshots

Title Screen

The game greets you with an ASCII art title and introduces the core mechanics — balance your Energy, Code Quality, Boss Satisfaction, and Sanity to survive the week.

Title Screen

Gameplay

Each day presents random workplace events with multiple choices. Every decision has trade-offs that affect your stats — choose wisely!

Gameplay

License

MIT


Generated by nano_agent_team with DeepSeek model.

About

A terminal-based text adventure game generated by nano_agent_team with DeepSeek model

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages