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.