Add initial project files including .gitignore, LICENSE, README, and documentation

This commit is contained in:
2026-05-27 14:36:17 +02:00
commit 9d966364b5
8 changed files with 648 additions and 0 deletions
+166
View File
@@ -0,0 +1,166 @@
# Chemo-Sim Technical Architecture
**Goal:** Build once, deploy to Windows/Linux, release on Steam with minimal overhead.
## Tech Stack (Lean & Mean)
| Component | Choice | Why |
| ------------------- | ------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| **Game Engine** | Godot 4.x (Open Source) | Free, cross-platform native exports, no fees, great 2D/3D hybrid, minimal learning curve |
| **Language** | GDScript | Godot-native; AI tools generate excellent GDScript, no language mixing friction |
| **Build System** | GitHub Actions + Godot Export Templates | Automated builds for all platforms, zero cost, versioning out of the box |
| **Version Control** | Git (GitHub/GitLab) | Standard; integrates with Steam builds |
| **Audio** | Godot's built-in AudioServer | Already integrated, sufficient for ambient + SFX + UI beeps, no licensing cost |
| **Physics/3D** | Godot's built-in Bullet Physics | Already integrated, no external dependency |
| **UI/UX** | Godot Control nodes + custom shaders | No external framework needed; build once, runs everywhere |
| **Analytics** | None initially OR Telemetry to self-hosted server | Consider privacy; avoid Unity/Unreal data-hoarding |
## Project Structure
```txt
YOU_GET_CHEMO/
├── project.godot # Godot project config
├── scenes/ # Game scenes (organized by system)
│ ├── hospital/
│ ├── treatment_ui/
│ ├── symptoms/
│ ├── minigames/
│ └── menus/
├── scripts/ # GDScript code
│ ├── game_systems/
│ ├── ui_controllers/
│ ├── minigame_logic/
│ └── utils/
├── assets/ # Art, audio, fonts
│ ├── models/
│ ├── textures/
│ ├── audio/
│ └── fonts/
├── export_templates/ # Godot export configs for each platform
│ ├── windows.export
│ └── linux.export
├── build/ # Generated build outputs
│ ├── windows/
│ └── linux/
├── ci/ # CI/CD scripts
│ ├── .gitea/workflows/ # GitHub Actions for auto-builds
│ ├── build.sh
│ └── build.ps1 # Windows build script
├── docs/
│ ├── DEVELOPMENT_ROADMAP.md
│ ├── STEAM_RELEASE_CHECKLIST.md
│ ├── BUILD_GUIDE.md
│ └── GAME_DESIGN_DOCUMENT.md
└── README.md
```
## Cross-Platform Strategy
### Windows (x64)
- **Export format:** .exe (standalone)
- **Runtime:** Godot includes all dependencies
- **Signing:** Optional (self-signed or purchased cert for Steam trust)
- **Build time:** ~5 minutes
### Linux (Portable + AppImage)
- **Export format:** Portable executable + AppImage (recommended)
- **Runtime:** Fully portable; ships all libs needed
- **No signing required**
- **Build time:** ~5 minutes
## Build Pipeline (GitHub Actions)
Automated builds on every commit to `main`:
```yaml
# .gitea/workflows/build.yml (pseudocode)
on: [push, pull_request]
jobs:
build:
runs-on: [ubuntu-latest, windows-latest]
steps:
- uses: actions/checkout@v2
- uses: chickensoft-games/setup-godot@v2
- run: godot --export-project YOUR_PLATFORM
- uses: actions/upload-artifact@v2
```
**Result:** Every push generates Windows .exe and Linux .AppImage in GitHub releases.
## Steam Distribution
### Submission Requirements
- **Godot version:** Latest stable (currently 4.x)
- **Build artifacts:** Separate builds for Win/Linux (Steam handles delivery)
- **Depot configuration:** Steamworks SDK includes per-platform depots
- **Build size targets:**
- Windows: ≤500 MB
- Linux: ≤400 MB
### Steam Integration
1. **Steamworks SDK integration** (optional, recommended for achievements):
- Godot has GodotSteam plugin (community-maintained, free)
- Handles achievements, leaderboards, cloud saves, controller support
2. **Build upload:**
- Use Steamworks SDK command-line tools
- OR upload via Steamworks web UI
3. **Testing:**
- Steam provides free depot testing tools
- Beta branch testing before public release
## Performance Targets
| Metric | Target | Notes |
| --------- | ------------------- | --------------------------------------- |
| FPS | 60 stable | First-person game; smooth matters |
| Load time | <5 sec | Hospital scenes are relatively simple |
| Memory | <1 GB | Godot is lean; you'll be fine |
| CPU | Single-core capable | Most indie devs' machines should run it |
## Development & Iteration
### Local Builds
```bash
# Export all platforms locally
godot --export-release Windows "build/windows/YOU_GET_CHEMO.exe"
godot --export-release Linux "build/linux/YOU_GET_CHEMO.x86_64"
```
### Rapid Testing
- Run in Godot editor for quick iteration
- Export to single platform while developing
- Test cross-platform **before** final builds (use GitHub Actions for CI/CD)
## Known Gotchas
1. **Linux distros:** Test on Ubuntu, Fedora, and Arch—most players use one of these.
2. **Controller support:** Godot auto-detects; test with a gamepad if you support it.
3. **Godot versioning:** Lock to a specific Godot 4.x version in your CI/CD. Don't always use "latest."
## Cost Breakdown (Minimal)
| Item | Cost | Notes |
| -------------------- | ----- | --------------------------- |
| **Godot** | $0 | Open source |
| **GitHub** | $0 | Free tier supports CI/CD |
| **Steam Submission** | $100 | One-time per game |
| **Apple Developer** | $0 | macOS dropped from scope |
| **Steamworks** | $0 | Free after submission fee |
| **Total** | ~$100 | One-time; no recurring fees |
## Next Steps
1. Install Godot 4.x
2. Initialize GitHub repo with structure above
3. Set up GitHub Actions for CI/CD (see BUILD_GUIDE.md)
4. Export templates locally to verify each platform works
5. Create Steamworks account, reserve app ID
6. Begin development
See `DEVELOPMENT_ROADMAP.md` for phased shipping strategy.
+76
View File
@@ -0,0 +1,76 @@
# Build Guide
Chemo-Sim — How to build from source.
## Prerequisites
- [Godot 4.x](https://godotengine.org/download) (lock to a specific minor version, not "latest")
- Git
- (Windows) PowerShell 5+
- (Linux) bash
## Quick Start
```bash
git clone <repo-url> chemo-sim
cd chemo-sim
```
Open `project.godot` in the Godot editor, or run:
```bash
godot --editor
```
## Local Export
### Windows
```bash
godot --export-release Windows "build/windows/YOU_GET_CHEMO.exe"
```
### Linux
```bash
godot --export-release Linux "build/linux/YOU_GET_CHEMO.x86_64"
```
## CI/CD (GitHub Actions)
Builds run automatically on push to `main`. See `.github/workflows/build.yml`.
To trigger manually:
1. Go to Actions tab
2. Select "Build" workflow
3. Run workflow
Artifacts appear in the workflow run summary.
## Export Templates
Export templates are in `export_templates/`:
- `windows.export`
- `linux.export`
These configure platform-specific settings (icon, version, etc.). Edit via Godot Editor → Project → Export.
## Versioning
Follow [Semantic Versioning](https://semver.org/): `MAJOR.MINOR.PATCH`
- MAJOR: Breaking changes / major content milestones
- MINOR: New features / new minigames
- PATCH: Bug fixes
Set version in `project.godot``application/config/version`.
## Troubleshooting
| Problem | Fix |
| ----------------------------------- | ------------------------------------------------------------------- |
| Export fails with missing templates | Download export templates in Godot Editor → Manage Export Templates |
| Linux build won't run | `chmod +x build/linux/YOU_GET_CHEMO.x86_64` |
| Godot version mismatch | Check CI config and local Godot version match |
+188
View File
@@ -0,0 +1,188 @@
# Development Roadmap
Chemo-Sim
**Shipping to Steam Early Access Q3 2026**
Timeline assumes 2 devs + heavy AI tool usage. Be realistic about velocity.
## Phase 1: MVP (46 weeks)
_Just Make It Playable_
**Goal:** First-person movement, one chemo treatment, one symptom system, one minigame.
### Deliverables
- [ ] **Core gameplay loop**
- First-person character controller (movement, look around)
- Hospital room scene (basic geometry)
- Sit-down animation, IV insertion sequence
- [ ] **First symptom system: Nausea**
- Screen tilt + color desaturation
- Vomit minigame: hit keys in sequence (like Guitar Hero but gross)
- [ ] **UI skeleton**
- Treatment timer
- Symptom tracker (simple text readout)
- Main menu
- [ ] **Audio placeholder**
- Hospital ambient sound
- UI beeps
- [ ] **Builds for Windows + Linux** (automated via GitHub Actions)
**Success criteria:** You can play start-to-finish in 5 minutes. It's janky. That's fine.
## Phase 2: Core Loop (68 weeks)
_Add Depth & Polish_
**Goal:** 23 complete treatment sessions, 45 symptom systems, minigame variety.
### Deliverables
- [ ] **Multiple symptom systems**
- Nausea ✓ (from Phase 1)
- Hair loss (visual degradation)
- Taste distortion (food looks/sounds wrong)
- Chemo brain (UI glitches, text corruption)
- Fatigue (movement slows)
- [ ] **Expanded minigames**
- Vomit accuracy challenge ✓
- "Eat this food" (taste it wrong)
- Conversation memory test
- Hospital navigation while dizzy
- [ ] **Treatment variety**
- Infusion pump (timed, interactive)
- Different drug regimens (affect symptom severity)
- Radiation room (if you want it)
- [ ] **Progression system**
- Day counter (Week 1 → Week 6+)
- Cumulative effects (symptoms get worse over time)
- [ ] **Audio overhaul**
- Licensed or royalty-free indie soundtrack
- Realistic hospital ambience
- Minigame SFX
- [ ] **Automated testing**
- GUT (Godot Unit Testing) for symptom system interactions
- Prevent regression when multiple symptoms overlap (nausea + chemo brain + fatigue)
- CI runs tests on every push
- [ ] **Art pass**
- Hospital environment refinement
- Character appearance (hair loss progression)
- UI polish
**Success criteria:** 2030 minute playthrough. Feels like a _game_, not a tech demo.
## Phase 3: Dark Humor & Absurdity (46 weeks)
_The Soul of the Game_
**Goal:** Add the comedic/edgy elements that make this _your_ game, not a medical sim.
### Deliverables
- [ ] **Absurd hospital scenarios**
- TV plays surreal content (AI-generated English/gibberish meme-format text)
- NPC dialogue with dark one-liners
- Environmental storytelling (notes from other patients)
- [ ] **Unlockable content**
- Easter eggs (hidden minigames, joke treatments)
- Achievement system (Steam achievements)
- Dark humor unlocks (internal monologues, sarcastic commentary)
- [ ] **Minigame variations**
- "Eat bad food" becomes increasingly absurd
- Conversation minigame gets funnier/sadder
- [ ] **Soundtrack expansion**
- Menu music (ironic, upbeat cancer music)
- Treatment room ambience (hospital + dark humor)
**Success criteria:** Playtester feedback: "I laughed and felt uncomfortable simultaneously."
## Phase 4: Polish & Optimization (23 weeks)
_Make It Shippable_
**Goal:** Stability, performance, accessibility.
### Deliverables
- [ ] **Cross-platform testing**
- Windows: test on 23 configs
- Linux: Ubuntu, Fedora, Arch
- [ ] **Performance optimization**
- Target 60 FPS on mid-range hardware
- Memory profiling
- Load time optimization
- [ ] **Accessibility**
- Colorblind modes
- Subtitle options
- Control remapping
- Difficulty settings (if applicable)
- [ ] **Bug fixes & stability**
- Playtester feedback implementation
- Crash fixing
- Save/load robustness
- [ ] **Steam setup**
- Steamworks account configured
- App ID reserved
- Build depots set up
- Store page content drafted (see STEAM_RELEASE_CHECKLIST.md)
**Success criteria:** No crashes in 1-hour playthroughs. Runs on a 5-year-old laptop.
## Phase 5: Early Access Launch (12 weeks)
_Go Public_
**Goal:** Get it on Steam, gather feedback, iterate.
### Deliverables
- [ ] **Final build verification**
- Download from Steam, play start-to-finish
- Test all platforms
- [ ] **Store page live**
- Screenshots, trailer uploaded
- Description, tags, content warnings finalized
- [ ] **Community channels live**
- Discord server
- Twitter/social presence
- [ ] **Day-1 support plan**
- Hotfix process for critical bugs
- Feedback monitoring
**Success criteria:** Launch day without game-breaking bugs. Early feedback positive.
## Post-Launch (Ongoing)
### Updates (Bi-weekly to monthly)
- [ ] New minigames
- [ ] Additional symptom systems
- [ ] More absurd scenarios
- [ ] Community-requested features
- [ ] Cosmetics (patient gown styles, room decorations)
### Long-term (612 months post-launch)
- [ ] Full release candidate build
- [ ] Content expansion (survivors' stories, alternative treatments)
- [ ] Mod support (if community demands it)
- [ ] Console ports (if budget allows—Switch would be dark comedy gold)
## Total Timeline
**MVP → Full Early Access Launch: ~1619 weeks (~4 months)**
Budget for slippage. You'll hit roadblocks. That's normal. Ship what's fun, not what's perfect.
## Team Velocity Notes
With 2 people + heavy AI tools:
- **Art/Animation:** AI image gen + Godot animation nodes = faster
- **Sound:** AI text-to-speech + royalty-free libraries = minimal cost
- **Code:** AI pair programming (Copilot, Claude) = faster iteration
- **Bottleneck:** Creative decisions and playtesting (can't be automated)
**Protect creative time.** The dark humor is the game. Don't let optimization timelines kill your weird ideas.
+69
View File
@@ -0,0 +1,69 @@
# Game Design Document
Chemo-Sim
## Elevator Pitch
First-person chemo simulator. Painfully accurate. Darkly funny. You don't beat cancer — you survive the treatment.
## Core Pillars
1. **Medical Accuracy** — Symptoms, treatments, and timelines grounded in real chemo regimens
2. **Dark Comedy** — Absurdity, gallows humor, and uncomfortable laughs as coping mechanism
3. **Empathy Through Experience** — Players feel what patients feel, without after-school-special moralizing
## Tone Guide
- **Voice:** First-person internal monologue. Sarcastic, exhausted, occasionally surreal. Think: _Fight Club_ narrator meets hospital discharge paperwork.
- **Humor boundaries:** Joke about the situation, never the patient. Punch up at the healthcare system, the absurdity of side effects, the cosmic unfairness. Never punch down at suffering.
- **"No filter" means:** Honest about bodily functions, honest about fear, honest about the weird places your brain goes. Not edgelord shock content.
- **NPCs:** Nurses are tired professionals with dark humor of their own. Other patients range from gallows-humor veterans to terrified newbies. Doctors are well-meaning but rushed.
## Gameplay Loop
```
Arrive at hospital → Check in → Wait (minigames happen here) → Treatment session → Side effects kick in → Go home → Cope → Repeat
```
Each cycle = 1 treatment day. Side effects accumulate. Mental state degrades. Dark humor escalates.
## Symptom Systems
| Symptom | Mechanic | Visual/Audio Cue |
| ---------------- | --------------------------- | ------------------------------------ |
| Nausea | Screen tilt, vomit QTE | Color desaturation, stomach gurgle |
| Hair loss | Progressive visual | Mirror reflection, clumps in shower |
| Taste distortion | Food minigame becomes wrong | Metallic sheen on food, wrong sounds |
| Chemo brain | UI corruption | Text scrambles, buttons move |
| Fatigue | Movement slows, inputs lag | Heavy breathing, blurred edges |
## Minigames
### Vomit (Phase 1)
Keys appear in sequence. Miss = mess. Hit = clean-ish. Accuracy tracked.
### Eat This Food (Phase 2)
Food appears normal. You remember it tasting different. Choose what's "wrong" — taste, texture, temperature. Always wrong. Gets harder.
### Conversation Memory (Phase 2)
NPC asks questions. You respond. Later, they reference your answers. If chemo brain scrambled it, dialogue branches to confusion.
### Hospital Navigation (Phase 2)
Find your way while dizzy. Controls invert randomly. Screen tilts. Timer counts down.
## Progression
- **Day counter:** Week 1 through Week 6+
- **Cumulative effects:** Each symptom has intensity 0100. Increases per treatment. Some plateau, some don't.
- **Regimen variance:** Different drug combos produce different symptom profiles. Random at start, player can't choose — because patients can't.
- **No win condition.** You finish treatment or you don't. The game ends when the regimen ends.
## Unlockables
- Hidden minigames (absurdist: argue with insurance, decode hospital bill)
- Internal monologue logs (unlock sarcastic commentary on each symptom)
- Achievement names are dark jokes
+56
View File
@@ -0,0 +1,56 @@
# Steam Release Checklist
Chemo-Sim — Everything needed before hitting "Publish."
## Pre-Launch (Phase 4)
- [ ] Steamworks account created
- [ ] App ID reserved ($100 fee paid)
- [ ] Bank/tax info filled in Steamworks
- [ ] Build depots configured (Win x64, Linux)
- [ ] GodotSteam plugin integrated and tested
- [ ] Achievements defined and implemented
- [ ] Cloud saves configured (if using)
## Store Page (Phase 45)
- [ ] Short description (≤300 chars)
- [ ] Full description (formatting, GIFs, feature bullets)
- [ ] Content warnings set (mature themes, medical situations, dark humor)
- [ ] Tags: Indie, Simulation, First-Person, Dark Humor, Singleplayer, Story Rich
- [ ] Genre: Simulation, Indie
- [ ] Screenshots (min 5, showing gameplay variety)
- [ ] Trailer (3090 sec, captures tone)
- [ ] Capsule images:
- Header capsule (460x215)
- Small capsule (231x87)
- Main capsule (616x353)
- Vertical capsule (374x448)
- [ ] Library assets:
- Library capsule (600x900)
- Library hero (3840x1240)
- Library logo (1280x720)
## Build Verification (Phase 5)
- [ ] Fresh install from Steam on Windows
- [ ] Fresh install from Steam on Linux
- [ ] Achievements unlock correctly
- [ ] Save/load works across sessions
- [ ] Controller works (if supported)
- [ ] No crash in 1-hour playthrough
- [ ] Steam overlay works (Shift+Tab)
## Launch Day
- [ ] Set release date in Steamworks
- [ ] Flip store page from "Coming Soon" to "Early Access"
- [ ] Post announcement on Discord/Twitter/TikTok
- [ ] Monitor Steam forums and Discord for first-hour bugs
- [ ] Hotfix branch ready, CI warmed up
## Post-Launch
- [ ] First patch within 48 hours (critical fixes only)
- [ ] Weekly community roundup posts
- [ ] Plan first content update based on feedback