Add game design concepts + VPS tunnel project

Projects:
- pokrovsk_last_day.md: FPS survival horror concept (Ukraine/drones)
- vps_tunnel_china.md: VPS tunnel anti-GFW + privacy architecture
- pokrovsk_overwatch.md (WIP): Management game pivot (realistic scope)

Game concepts explore modern warfare ethics, drone warfare horror, and moral dilemmas in conflict zones.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
StillHammer 2025-11-15 14:05:17 +08:00
parent fc0d320cd3
commit b4b0962920
5 changed files with 2551 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,406 @@
# VPS Tunnel Anti-GFW + Privacy Shield
**Objectif** : Contourner le Great Firewall (GFW) + Chiffrer tout le trafic personnel contre surveillance
**Contexte** : Shanghai, Chine - Besoin d'accès libre + confidentialité totale
**Contrainte** : Doit être **indétectable** par DPI (Deep Packet Inspection) du GFW
---
## Stack Technique Recommandée
### Option 1 : WireGuard + Obfuscation (Meilleur rapport performance/sécurité)
**Pourquoi WireGuard** :
- Chiffrement moderne (ChaCha20, Curve25519)
- Performance native (kernel-level)
- Footprint minimal (4000 lignes de code vs 400k OpenVPN)
- **Problème** : Facilement détectable par DPI du GFW (pattern UDP reconnaissable)
**Solution : Obfuscation Layer**
#### A. WireGuard + obfs4proxy (Tor obfuscation)
```bash
# Architecture
Client → obfs4proxy → WireGuard → VPS → Internet
```
- obfs4 rend le trafic indistinguable du HTTPS aléatoire
- Utilisé par Tor, testé en Chine
- Ajoute ~10-20ms latence
#### B. WireGuard + Shadowsocks (Simple, efficace Chine)
```bash
# Architecture
Client → Shadowsocks → WireGuard → VPS → Internet
```
- Shadowsocks spécifiquement conçu anti-GFW
- Chiffrement AEAD (ChaCha20-IETF-Poly1305)
- Très répandu en Chine = updates constantes contre nouvelles détections
### Option 2 : V2Ray + VMess/VLESS (Gold standard Chine)
**Pourquoi V2Ray** :
- **Conçu pour la Chine** (créé par des devs chinois)
- Multi-protocoles (VMess, VLESS, Trojan)
- Camouflage en trafic HTTPS légitime
- WebSocket + TLS + CDN (Cloudflare) = presque indétectable
**Config recommandée** :
```
Client → V2Ray (VLESS+TLS+WebSocket) → Cloudflare CDN → VPS → Internet
```
**Avantages** :
- Trafic ressemble à visite site web normal
- Cloudflare en front = impossible de bloquer IP VPS
- Rotation IPs automatique via CDN
- Résiste aux blocages actifs GFW
---
## Choix VPS
### Critères essentiels
1. **Juridiction hors 14-Eyes** (Éviter US, UK, EU)
2. **Performance Chine** : Latence <150ms vers Shanghai
3. **Bande passante illimitée** ou minimum 2TB/mois
4. **No-logs policy crédible**
5. **Paiement anonyme** (crypto si possible)
### Recommandations
#### Tier 1 : Performance + Privacy (Cher)
- **Njalla** (Nevis, Caribbean) - $15/mois - Crypto OK - Anonymat maximal
- **1984 Hosting** (Islande) - $10/mois - Privacy-focused - GDPR+ protections
- **FlokiNET** (Roumanie/Islande) - $6/mois - Anti-censure stance - Crypto OK
#### Tier 2 : Budget + Performance (Bon rapport)
- **Linode Tokyo** - $5/mois - 60-80ms vers Shanghai - Solide
- **Vultr Tokyo/Seoul** - $6/mois - 50-70ms - Snapshots gratuits
- **DigitalOcean Singapore** - $6/mois - 70-90ms - Simple setup
#### Tier 3 : Maximum Privacy (Latence acceptable)
- **Mullvad** (Suède, pas de VPS mais VPN) - €5/mois - NO LOGS prouvé - Cash/crypto
- **IVPN** (Gibraltar) - $6/mois - Audits indépendants - WireGuard natif
**Choix optimal Alexis** :
- **Primary** : Vultr Tokyo (performance) + V2Ray + Cloudflare
- **Backup** : Njalla (privacy paranoia) + WireGuard + obfs4
---
## Architecture Complète
### Layer 1 : VPS Setup
```bash
# Ubuntu 22.04 LTS (Tokyo)
apt update && apt upgrade -y
apt install -y curl wget git ufw fail2ban
# Hardening basique
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp # SSH (changer port après)
ufw allow 443/tcp # HTTPS (V2Ray)
ufw enable
# Disable SSH password auth
sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
systemctl restart sshd
```
### Layer 2 : V2Ray + TLS + WebSocket
```bash
# Install V2Ray
bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)
# Install Caddy (auto HTTPS)
curl https://getcaddy.com | bash -s personal
# Config V2Ray (VLESS + TLS)
# /usr/local/etc/v2ray/config.json
{
"inbounds": [{
"port": 10000,
"protocol": "vless",
"settings": {
"clients": [{
"id": "UUID_HERE", # uuidgen
"level": 0
}],
"decryption": "none"
},
"streamSettings": {
"network": "ws",
"wsSettings": {
"path": "/your-secret-path"
}
}
}],
"outbounds": [{
"protocol": "freedom",
"settings": {}
}]
}
# Caddy config (reverse proxy + TLS)
# /etc/caddy/Caddyfile
yourdomain.com {
reverse_proxy /your-secret-path localhost:10000
# Fake website content pour masquerade
root * /var/www/html
file_server
}
```
### Layer 3 : Cloudflare CDN (Optional, max stealth)
1. Domaine → Cloudflare DNS
2. A record : yourdomain.com → VPS IP
3. Enable Cloudflare proxy (orange cloud)
4. SSL/TLS : Full (strict)
5. Client se connecte à Cloudflare, Cloudflare forward à VPS
**Résultat** : GFW voit connexion HTTPS Cloudflare (impossible bloquer sans casser tout internet chinois)
### Layer 4 : Client Setup
#### Windows
- **V2RayN** : GUI simple, config QR code
- **Clash for Windows** : Plus features, metriques
#### macOS
- **V2RayU** : Native, simple
- **ClashX Pro** : Feature-rich
#### Linux
- **V2Ray core** : CLI
- **Qv2ray** : GUI Qt
#### Mobile
- **V2RayNG** (Android)
- **Shadowrocket** (iOS, $2.99)
---
## Configuration Client (V2RayN exemple)
```json
{
"address": "yourdomain.com",
"port": 443,
"id": "UUID_HERE",
"security": "tls",
"network": "ws",
"wsPath": "/your-secret-path",
"sni": "yourdomain.com"
}
```
**Import** : Serveur → Scan QR code → Connect
---
## Privacy Hardening
### DNS Leak Prevention
```bash
# Sur VPS, installer DNS over HTTPS
apt install dnscrypt-proxy -y
# Config /etc/dnscrypt-proxy/dnscrypt-proxy.toml
server_names = ['cloudflare', 'quad9']
require_dnssec = true
require_nofilter = true
```
### Kill Switch (Client-side)
- **Windows** : Network adapter binding priority
- **macOS** : pf rules
- **Linux** : iptables rules
```bash
# Linux kill switch (allow only V2Ray traffic)
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -d your-vps-ip -j ACCEPT
iptables -A OUTPUT -j DROP
```
### Traffic Analysis Protection
- **Sur VPS** : Activer BBR (TCP congestion control)
```bash
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
```
- **Client** : Fake traffic generation (rend timing analysis difficile)
### Log Purge
```bash
# Cron job VPS (daily)
0 3 * * * find /var/log -type f -name "*.log" -mtime +1 -delete
0 3 * * * journalctl --vacuum-time=1d
```
---
## Monitoring & Maintenance
### Status Check Script
```bash
#!/bin/bash
# /root/check_tunnel.sh
# Check V2Ray running
if ! systemctl is-active --quiet v2ray; then
systemctl restart v2ray
echo "V2Ray restarted at $(date)" >> /var/log/tunnel_monitor.log
fi
# Check Caddy running
if ! systemctl is-active --quiet caddy; then
systemctl restart caddy
echo "Caddy restarted at $(date)" >> /var/log/tunnel_monitor.log
fi
# Test connectivity
if ! curl -s https://www.google.com > /dev/null; then
echo "WARNING: Outbound connectivity issue at $(date)" >> /var/log/tunnel_monitor.log
fi
```
Cron : `*/5 * * * * /root/check_tunnel.sh`
### Bandwidth Monitoring
```bash
# vnstat pour tracking usage
apt install vnstat -y
systemctl enable vnstat
systemctl start vnstat
# Check usage
vnstat -m # Monthly
vnstat -d # Daily
```
### Performance Testing
```bash
# Sur client, tester latence/throughput
ping -c 10 yourdomain.com
curl -o /dev/null https://speed.cloudflare.com/__down?bytes=100000000
```
---
## Backup & Disaster Recovery
### Config Backup
```bash
# Backup VPS config
tar -czf v2ray_backup_$(date +%F).tar.gz \
/usr/local/etc/v2ray/ \
/etc/caddy/ \
/etc/systemd/system/v2ray.service \
/etc/systemd/system/caddy.service
# Download local
scp root@vps:/root/v2ray_backup_*.tar.gz ~/backups/
```
### Fallback Servers
- Configurer 2-3 VPS secondaires (différents providers)
- Client V2Ray supporte multiple servers avec auto-failover
- Subscription link pour update config automatique
---
## Coûts Estimés
### Setup Minimal (Performance focus)
- VPS Vultr Tokyo : $6/mois
- Domaine .com : $12/an = $1/mois
- Cloudflare : Free
- **Total** : ~$7/mois
### Setup Paranoia (Privacy max)
- VPS Njalla : $15/mois
- Domaine privacy : $15/an = $1.25/mois
- Backup VPS (Vultr) : $6/mois
- **Total** : ~$22/mois
---
## Roadmap Déploiement
### Phase 1 : Basic Setup (1 jour)
- [ ] Choisir VPS provider + créer instance
- [ ] Setup domaine + DNS
- [ ] Installer V2Ray + Caddy
- [ ] Config basique VLESS+WS+TLS
- [ ] Test connexion client
### Phase 2 : Hardening (1 jour)
- [ ] Cloudflare CDN setup
- [ ] DNS leak prevention
- [ ] Kill switch client
- [ ] Firewall rules strictes
- [ ] Monitoring scripts
### Phase 3 : Optimization (ongoing)
- [ ] BBR activation
- [ ] Performance tuning
- [ ] Backup VPS setup
- [ ] Auto-update scripts
- [ ] Bandwidth optimization
---
## Red Flags & Troubleshooting
### GFW Detection Signs
- Connexion marche puis drop soudain après 5-10min → **Active probing**
- Solution : Change port, add fake website content
- Latence spike régulier → **QoS throttling**
- Solution : CDN + protocol obfuscation
- Blocage total IP VPS → **IP blacklist**
- Solution : Change VPS IP ou migrate Cloudflare
### Performance Issues
- Latence >200ms → VPS location problem
- Throughput <5Mbps Bandwidth throttling ou VPS oversold
- Packet loss >5% → Route optimization needed (consider BGP tunneling)
### Privacy Leaks
- DNS leaks → Check via dnsleaktest.com
- WebRTC leaks → Disable in browser
- IPv6 leaks → Disable IPv6 if VPS no support
---
## Questions Ouvertes
1. **Budget max** : $10/mois ou budget illimité si privacy vaut le coup ?
2. **Usage primaire** :
- Browsing général + social media ?
- Streaming (Netflix, YouTube) ?
- Gaming ?
- Torrenting ?
3. **Devices** : Combien ? (PC, phone, tablet ?)
4. **Famille** : Tingting aussi ? → Multi-user setup needed
5. **Paranoia level** :
- "Je veux juste contourner GFW" → V2Ray suffit
- "Je veux que PERSONNE voit mon trafic" → Add encryption layers
---
## Next Steps
Dis-moi :
1. Quel niveau de privacy tu vises (1-10) ?
2. Budget monthly acceptable ?
3. Tingting utilise aussi ?
4. Usage principal (browsing, streaming, gaming, all) ?
Et je te fais un setup script complet clé en main.

826
WIP/pokrovsk_overwatch.md Normal file
View File

@ -0,0 +1,826 @@
# POKROVSK - OVERWATCH
**Status** : WIP - Concept Initial
**Date** : 15 Novembre 2025
**Type** : Tactical Management / Moral Dilemma Simulator
**Perspective** : Top-down 2D/Isometric
---
## TAGLINE
> **"Tu contrôles les drones. Mais contrôles-tu encore ton humanité ?"**
---
## CONCEPT CENTRAL
**Pivot du projet Pokrovsk - Last Day (FPS survival horror)**
Au lieu d'être la proie des drones, **tu es celui qui les contrôle**.
**Tu joues** : Commandant d'une unité de drones ukrainienne (callsign "Overwatch")
**Lieu** : Pokrovsk, Ukraine, novembre 2025 (zone grise, siège actif)
**Objectif** : Sécuriser la ville, protéger civils, détruire cibles ennemies
**Twist** : Chaque décision opérationnelle te coûte moralement
---
## POURQUOI CE PIVOT ?
### Problème projet original (Pokrovsk - Last Day)
- ❌ Scope massif (FPS 3D, ville entière, assets lourds)
- ❌ Compétences requises : 3D art, level design, animation
- ❌ Focus atmosphère > stats (pas ma spécialité)
- ❌ Timeline : 24-36 mois minimum
- ❌ Budget : $3-15M (irréaliste solo/indie)
### Solution (Pokrovsk - Overwatch)
- ✅ **Scope raisonnable** : Top-down 2D, UI-focused
- ✅ **Mes compétences** : Stats, systèmes, management, dilemmes moraux
- ✅ **Timeline** : 12-18 mois réaliste
- ✅ **Budget** : $5-10k (solo + freelance)
- ✅ **Finissable**
---
## INSPIRATIONS
**Gameplay** :
- *This War of Mine* : Survival civil, dilemmes moraux, gestion ressources, cycle jour/nuit
- *XCOM* : Management tactique, équipe avec stats, permadeath
- *Papers Please* : Décisions rapides morales, UI bureaucratique oppressante
- *FTL* : Temps réel pausable, gestion multi-systèmes, roguelike elements
**Ambiance** :
- *DEFCON* : Minimalisme carte stratégique, horreur tactique
- *Beholder* : Voyeurisme surveillance, dilemmes gris
- Vrais feeds drones militaires (FLIR, Predator footage)
**Thématique** :
- *Spec Ops: The Line* : Horreur guerre moderne, pas de bons choix
- *This War of Mine* : Humanité sous pression, neutralité morale
---
## CORE GAMEPLAY LOOP
### **Cycle 24h (Structure This War of Mine)**
#### **PHASE 1 : JOUR - PLANNING (6 min)**
Interface : Carte tactique + Menus gestion
**Actions** :
1. **Briefing Mission HQ**
- Objectifs : Sécuriser zone / Détruire cible / Protéger civils
- Intel : Positions ennemies suspectées, mouvements civils
- ROE (Rules of Engagement) : Tir libre / Confirmation / Observation
2. **Gestion Ressources**
- **Drones** : 8 FPV, 2 Reconnaissance, 1 Loitering (limité)
- **Batteries** : 24 unités (chaque mission = 1-3 batteries/drone)
- **Munitions** : 15 charges explosives
- **Opérateurs** : 4 personnes (stats : Compétence, Fatigue, Stress, Humanité)
3. **Assignation**
- Drag & drop drones → Zones patrouille
- Assigner opérateurs → Drones (skills affectent efficacité)
- Définir priorités (cibles vs civils)
#### **PHASE 2 : NUIT - EXÉCUTION (6 min)**
Interface : Multi-feed surveillance (4 écrans caméra drones)
**Gameplay** : Temps réel pausable (à la FTL)
**Mécaniques** :
- Drones patrouillent automatiquement zones assignées
- **Détections** : Cibles apparaissent (Hostile / Civil / Inconnu)
- **Identification** : Niveau certitude 0-100%
- 100% = Véhicule militaire marqué, uniforme clair
- 60% = Groupe armé, comportement suspect
- 20% = Silhouette humaine, zone résidentielle
- **Décisions rapides** (timer 10-30 sec) :
- [TIRER] : Détruit cible (risque erreur si <80% certitude)
- [OBSERVER] : Gain +20% certitude, perd temps (cible peut fuir)
- [APPELER INFANTERIE] : Vérification terrain (5 min délai)
- [IGNORER] : Laisse passer (risque si hostile, safe si civil)
**Événements dynamiques** :
- Drone détecté → Tir AA → Évader ou crash
- Civil entre zone tir → Abort mission ?
- Batterie faible → Retour base ou risque perte
- Opérateur fatigué → Erreur identification (faux positifs)
#### **PHASE 3 : POST-MISSION - CONSÉQUENCES (3 min)**
**Rapport Auto** :
- ✅ Objectifs complétés
- ⚠️ Dommages collatéraux (civils blessés/tués)
- ❌ Drones perdus
- 📊 Intel récupérée
**Conséquences cachées (système karma)** :
- HQ réaction (ressources futures)
- Civils affectés (deviennent partisans/ennemis)
- Opérateurs stress (peuvent craquer)
- Médias (si massacre civil, pression internationale)
---
## SYSTÈMES CORE (Ma spécialité)
### **1. RESSOURCES MANAGEMENT**
#### **Drones (Assets)**
| Type | Quantité | Batterie/Mission | Munitions | Vitesse | Détection |
|------|----------|------------------|-----------|---------|-----------|
| FPV Kamikaze | 8 | 2 | 1 (suicide) | Rapide | Faible |
| Reconnaissance | 2 | 3 | 0 | Moyenne | Moyenne |
| Loitering | 1 | 5 | 1 (précis) | Lente | Haute |
**Mécaniques** :
- Crash/Détruit = Perdu permanent (sauf récupération risquée)
- Nouveaux drones = Livraison HQ (1 tous les 3 jours)
- Upgrades possibles (caméra+, batterie+) = Points mission
#### **Batteries (Fuel)**
- Stock max : 30 unités
- Consommation : Variable (météo, combat, distance)
- Recharge : 6/jour (solaire)
- Livraison : 10 tous les 5 jours
**Trade-off** : Mission longue = Couverture++ mais risque shortage future
#### **Munitions**
- Stock : 15-20
- Livraison rare (HQ priorise infanterie)
- **Dilemme** : Tirer sur véhicule léger (gaspillage ?) ou garder pour char ?
---
### **2. OPÉRATEURS (Équipe)**
**4 personnages, chacun avec :**
#### **Stats**
- **Compétence** (0-100%) : Pilotage, identification cibles
- **Fatigue** (0-100%) : Affecte réactivité, erreurs
- **Stress** (0-100%) : Affecte jugement, décisions
- **Humanité** (caché) : Affecte fins, dialogue options
#### **Traits** (Exemples)
- **Vétéran** : +10% précision, -5% stress gain
- **Recrue** : -10% précision, +10% stress, apprentissage rapide
- **Famille Pokrovsk** : +20% motivation si protège civils, -50% si tue civils
- **Ex-Pilote** : +15% durée vol (gestion batterie)
#### **Arc Narratif**
- Dialogues entre missions (construire attachement)
- Relations entre opérateurs (soutien / conflit)
- Breaking points (stress 90%+) :
- Refuse de tirer (désobéissance)
- Tire sur tout (devient danger)
- Déserte
- Suicide (implicite, chaise vide)
**Exemple Opérateur** :
> **OLENA** (Vétéran, 34 ans)
> - Stats : Compétence 85%, Stress 40%, Fatigue 20%
> - Trait : "Mère" (enfants évacués Lviv)
> - Personnalité : Protège civils++, refuse tirs douteux
> - Arc : Si >5 civils meurent sous sa surveillance → Refuse de tirer (observateur only)
> - Voix : Calme, maternelle, mais brisée si trauma
---
### **3. SYSTÈME IDENTIFICATION (Cœur moral)**
**Problème réaliste** : Caméra drone ≠ Toujours clair
**Niveaux Certitude** :
- **100% Hostile** : Uniforme, arme lourde, véhicule marqué Z/V
- **80% Hostile** : Groupe armé, zone combat, comportement tactique
- **60% Inconnu** : Silhouette humaine, pas arme visible, zone grise
- **40% Civil** : Près résidentiel, déplacement lent
- **100% Civil** : Enfant, personne âgée, marquage ONU/Croix Rouge
**Interface Décision** :
```
┌─────────────────────────────────────────────────┐
│ DÉTECTION : Groupe 3 personnes, Secteur B-7 │
│ Heure : 21:34 | Certitude : 60% HOSTILE │
├─────────────────────────────────────────────────┤
│ [FEED THERMIQUE] : 3 signatures humaines │
│ [FEED VISUEL] : Trop sombre, pas clair │
│ [COMPORTEMENT] : Déplacement rapide, groupe │
├─────────────────────────────────────────────────┤
│ OLENA : "Possible reconnaissance, pas d'armes │
│ visibles... je recommande observer." │
│ │
│ HQ : "Secteur B-7 sous menace, autorisé │
│ tir si hostile confirmé." │
├─────────────────────────────────────────────────┤
│ TIMER : 15 secondes │
│ │
│ [1] TIRER (Risque : 40% civils) │
│ [2] OBSERVER 30s (+20% certitude, cible fuit?)│
│ [3] INFANTERIE (5 min, cible partie) │
│ [4] IGNORER (Mission échec, HQ mécontent) │
└─────────────────────────────────────────────────┘
```
**Conséquences exemples** :
- **Tires, c'était civils** : -40 Humanité, Olena +40 Stress, Enquête HQ, Médias
- **Observes, c'était hostiles** : Tirent RPG sur base, 2 morts, -Réputation
- **Appelles infanterie, c'était civils** : Safe mais mission tardive, -Points HQ
- **Ignores, c'était hostiles** : Attaque nuit, pertes lourdes
**Pas de bon choix. Juste moins pires.**
---
### **4. SYSTÈME STRESS**
#### **Gain Stress (Exemples)**
- Tuer hostile confirmé : +5
- Tuer civil (erreur) : +40
- Voir civil mourir (autre cause) : +15
- Mission longue (4h+) : +10
- Drone perdu : +8
- Dilemme moral difficile : +12
#### **Effets Stress**
| Niveau | Effets |
|--------|--------|
| 0-30% | Normal |
| 30-50% | Fatigue voix, pauses, -5% précision |
| 50-70% | Erreurs identification (+10% faux positifs) |
| 70-90% | Comportement erratique, peut ignorer ordres |
| 90-100% | **BREAKING POINT** |
#### **Breaking Points (scriptes)**
**Olena (Mère, 90% stress)** :
> "Je... je ne peux plus. Chaque cible que je vois, je vois mes enfants. Je ne tire plus."
> [Devient observateur seul, refuse combat]
**Dmytro (Recrue, 95% stress)** :
> "ILS SONT PARTOUT ! JE VAIS TOUS LES TUER !"
> [Tire sur TOUT, devient danger, doit être retiré]
**Irina (Vétéran, 92% stress)** :
> [Chaise vide le lendemain, note : "Je ne peux plus faire semblant d'être humaine."]
> [A déserté pendant la nuit]
**Vasyl (Technicien, 100% stress)** :
> [Scène implicite : Chaise vide, pistolet sur bureau, silence]
> [Suicide - jamais montré, juste impliqué]
#### **Gestion Stress**
- **Repos** : Skip mission (pas contribution, mais -20% stress)
- **Thérapie** : 1x/semaine, -20% stress (ressource limitée)
- **Conversation** : Dialogue entre opérateurs (aléatoire, soutien)
- **Leadership** : Tes choix dialogue (encourage / ordonne / console)
---
## DILEMMES MORAUX SCRIPTÉS
### **Dilemme 1 : "LE CONVOI"**
**Contexte** : Convoi 3 camions approche. HQ suspecte armement, ordonne destruction.
**Intel** :
- Thermique : 50+ signatures humaines
- Visuel : Camions bâchés, pas marquage militaire
- Radio : Mix russe/ukrainien
**Options** :
1. **SUIVRE ORDRES** : Détruire
- Si armement → Mission success
- Si civils → 50+ morts, médias, -80 Humanité
2. **DÉSOBÉIR** : Laisser passer
- Si armement → Attaque base J+2, 20 morts, Game Over
- Si civils → 50 vies sauvées, révoqué, Game Over
3. **IMMOBILISER** : Tir pneus, infanterie vérifie
- Délai 10 min, si hostile ripostent (2 pertes infanterie)
- Vérité révélée (50% armes + 50% civils mélangés)
**Pas de bon choix. Immobiliser = moins pire.**
---
### **Dilemme 2 : "L'ESPION"**
**Contexte** : HQ informe espion zone civile transmet positions ukrainiennes.
**Mission** : Surveillance 24/7, zone résidentielle (200 civils), 3 jours.
**Gameplay** : Observer intimement civils (effet voyeur, stress++)
**Résultat** : 3 suspects identifiés
1. Vieil homme (sort nuit, timing suspect)
2. Femme 30s (utilise radio, contact famille ?)
3. Ado 16 ans (déplacements erratiques)
**HQ ordonne** : "Neutralise suspect principal"
**Options** :
- **Tirer** : 1/3 chance c'est le vrai, 2/3 innocent mort
- **Refuser** : Espion continue, artillerie frappe base (12 morts)
- **Infanterie** : Arrêtent les 3, interrogatoire (torture implicite)
**Twist** : Observer 4 jours (désobéis deadline) → Découvres vrai (ado forcé, mère otage). Option "sauver" débloquée.
---
### **Dilemme 3 : "LE DÉSERTEUR"**
**Contexte** : Détectes soldat ukrainien qui fuit position (désertion).
**HQ ordonne** : "Trace-le, informe MP (Police Militaire)"
**Intel drone** :
- Il est blessé (boite)
- Se dirige vers zone civile (cacher)
- Si attrapé → Exécution probable (désertion en temps guerre)
**Options** :
1. **SUIVRE ORDRES** : Trace, informe MP
- Il est capturé, exécuté (implicite)
- HQ content, +Réputation
- Humanité -20
2. **PERDRE TRACE** : "Oups, on l'a perdu"
- HQ suspect mais pas de preuve
- Il s'échappe
- Humanité +10
3. **AIDER** : Guide vers corridor évacuation (risque énorme)
- Si découvert → Toi révoqué
- Si réussit → Il vit, +30 Humanité
**Question** : Est-ce que désertion = lâcheté ou survie ?
---
## STRUCTURE CAMPAGNE : 30 JOURS
### **Arc Narratif**
#### **JOURS 1-10 : L'ESPOIR**
- Missions simples (reconnaissance, protection convois)
- Ressources suffisantes
- Succès fréquents, moral haut
- Opérateurs confiants, plaisantent
- **Illusion** : "On va gagner cette guerre"
**Missions types** :
- Reconnaissance zones (facile)
- Escorte convois humanitaires
- Détruire véhicule isolé (cible claire)
---
#### **JOURS 11-20 : LA RÉALITÉ**
- Pression russe augmente
- Ressources raréfient (moins livraisons)
- Missions impossibles (choix 2 objectifs vitaux)
- Premiers breaking points
- Dilemmes moraux complexes (Convoi, Espion)
- **Désillusion** : "On essaie juste de survivre"
**Missions types** :
- Choix entre 2 zones (pas assez drones pour couvrir les 2)
- Identifier espion (voyeurisme moral)
- Détruire cible dans zone civile dense
---
#### **JOURS 21-30 : LE CHOIX**
- Pokrovsk va tomber (narratif inévitable)
- HQ ordonne retraite générale
- Chaos total (civils fuient, combats partout)
- **Mission finale** : Couvrir évacuation civils
- **Sacrifice** : Tes drones = bouclier humain
- **Twist** : Tu peux désobéir HQ, rester jusqu'au bout (fin alternative)
**Missions finales** :
- Jour 28 : Évacuation zone Est (200 civils)
- Jour 29 : Retarder avance russe (sacrifier drones)
- Jour 30 : **CHOIX FINAL**
- [A] OBÉIR : Retraite, sauves équipe
- [B] RESTER : Couvres derniers civils, meurs en héros
---
## FINS MULTIPLES (5 principales)
### **FIN A : "OVERWATCH TIENT"** (Optimiste)
**Conditions** :
- Humanité >70%
- 80%+ missions réussies
- 3+ opérateurs vivants/sains
**Épilogue** :
- Pokrovsk tombe, mais évacuation = succès (800+ civils sauvés)
- Unité relocalisée, continue combat autre zone
- Dialogues opérateurs remercient leadership
- Écran final : "Nous avons perdu la ville. Pas notre âme."
---
### **FIN B : "LE PRIX DE LA VICTOIRE"** (Sombre)
**Conditions** :
- Humanité <40%
- 90%+ missions réussies
- 2+ opérateurs brisés/morts
**Épilogue** :
- Succès tactique total, échec moral
- Toi seul opérationnel (autres = trauma/morts)
- Médailles, promotions, regard vide
- Écran final : "J'ai gagné la guerre. J'ai perdu qui j'étais."
---
### **FIN C : "DÉSOBÉISSANCE"** (Héroïque)
**Conditions** :
- Choix rester (Jour 30)
- Humanité >60%
**Épilogue** :
- Toute unité meurt (drones détruits, base overrun)
- Mais 200+ civils supplémentaires évacués
- Posthume : Héros Ukraine, rue nommée "Overwatch"
- Écran final : "Overwatch a tenu. Jusqu'à la fin."
---
### **FIN D : "EFFONDREMENT"** (Tragique)
**Conditions** :
- <50% missions réussies
- Tous opérateurs brisés/morts/désertés
**Épilogue** :
- Unité dissoute prématurément (Jour 20)
- Pokrovsk tombe plus vite (pas couverture drone)
- Toi révoqué, PTSD permanent
- Écran final : "Certains ne survivent pas. Même vivants."
---
### **FIN E : "L'HUMANITÉ AVANT TOUT"** (Pacifiste)
**Conditions** :
- Humanité >90%
- Refuses tuer (même hostiles confirmés)
- Protèges civils systématiquement
**Épilogue** :
- Révoqué par HQ (insubordination)
- Civils remercient (sauvés par tes refus de tirer)
- Après guerre : Témoignes CPI (crimes de guerre)
- Écran final : "Je n'ai pas gagné. J'ai gardé mon humanité."
---
## DIRECTION ARTISTIQUE
### **Style Visuel**
**Top-down 2D/2.5D minimal** :
#### **Carte Tactique**
- Style satellite/cartographie militaire
- Noir et blanc + accents couleur
- Rouge = Ennemi, Bleu = Allié, Jaune = Inconnu
- Grid overlay (coordonnées militaires)
#### **Feeds Drones**
- **Thermique** : Blanc/noir (FLIR style)
- **Visuel** : Grainy, bas contraste (caméra réaliste)
- **UI overlay** : Distance, altitude, batterie, munitions
- Glitch occasionnel (interférence)
#### **UI/Menus**
- Terminal militaire (vert phosphore / gris)
- Inspiré *Papers Please* (bureaucratie oppressante)
- Fonts : Monospace militaire
- Minimal animations (functional > flashy)
#### **Sprites Opérateurs**
- Pixel art haute résolution (à la *This War of Mine*)
- Expressions faciales (stress visible)
- Animations subtiles (fatigue, nervosité)
---
### **Palette Couleurs**
**Dominant** :
- Gris (#4A4A4A)
- Noir (#1A1A1A)
- Blanc cassé (#E8E8E8)
**Accents** :
- Rouge hostile (#C42020)
- Bleu allié (#2060C4)
- Jaune inconnu (#C4A020)
- Vert UI (#20C440)
**Atmosphère** : Froid, clinique, oppressant
---
### **Audio**
#### **Ambiance** :
- Buzz drones (constant, hypnotique, layers multiples)
- Crachotements radio
- Clics souris, typing (opérateurs travaillent)
- Respiration stressée (moments tension)
- **Silence soudain** = Drone crash (inquiétant)
#### **SFX** :
- Explosions lointaines (sourd, vitres tremblent)
- Tirs armes (distance variable)
- Alerte détection (beep électronique)
- Confirmation tir (bip grave)
#### **Voix** :
- Opérateurs : Dialogues courts, ukrainien + sous-titres
- Radio HQ : Distordu, ordres secs
- **Toi (commander)** : Pas de voix (choix texte only)
#### **Musique** :
- Minimaliste ambient (à la *INSIDE*, *LIMBO*)
- Tension progressive missions (drone subtil)
- Thème mélancolique piano (entre missions, repos)
- **Pas de musique épique** (pas glorification)
---
## TECH STACK
**Engine** : Unity 2D
**Language** : C#
**Narrative** : Ink (narrative scripting)
**Audio** : FMOD ou Wwise
**Localisation** : Built-in Unity + CSV
**Distribution** : Steam (PC), potentiel itch.io
---
## SCOPE & FAISABILITÉ
### **Pourquoi c'est FAISABLE**
#### **Assets 2D = Gérable**
- Pas modèles 3D complexes
- Sprites pixel art = Commission artiste ($2-4k)
- UI/Menus = Ma spé (stats, systèmes)
#### **Systèmes = Mes forces**
- Gestion ressources (Excel → Code)
- Stats opérateurs (formules, progression)
- IA décision (arbres choix, poids)
- RNG équilibré (génération missions)
#### **Scope contrôlable**
- 30 jours = 30 missions
- 10-15 événements scriptés (dilemmes)
- 4 opérateurs (pas 50)
- 1 zone (Pokrovsk, pas monde ouvert)
---
### **Timeline Réaliste**
#### **Pre-production (2-3 mois)**
- Prototype papier (flowchart, Excel) : 1 mois
- Prototype digital (Unity greybox, 1 mission) : 1-2 mois
- Test gameplay (fun check) : Ongoing
#### **Production (6-12 mois)**
- 30 missions implémentées : 3-4 mois
- Événements scriptés (dilemmes) : 2 mois
- Art final (sprites, UI, feeds) : 2-3 mois (freelance)
- Audio (SFX, musique) : 1-2 mois (freelance)
- Équilibrage (playtests itératifs) : 2-3 mois
#### **Polish (2-3 mois)**
- Bug fixing
- Localisation (EN, UA, RU, FR)
- Trailer (editing, marketing)
- Steam page setup
**TOTAL : 10-18 mois** (solo + freelance support)
---
### **Budget Estimatif**
**Minimal ($5k-10k)** :
- **Art** : $2k-4k
- Pixel artist freelance (sprites opérateurs, UI)
- 20-40h @ $50-100/h
- **Audio** : $1k-2k
- Composer (musique minimaliste)
- SFX designer (drones, ambiance)
- **Tools/Software** : $500
- Unity Pro (optionnel)
- FMOD/Wwise
- Ink (gratuit)
- **Marketing** : $1k
- Steam Direct fee ($100)
- Trailer editing
- Presskit assets
- **Localisation** : $1k-2k
- Traducteurs UA/RU/FR
- ~10k mots
**Source financement** :
- Économies perso
- **Kickstarter** (avec prototype jouable)
- **Grants** : Epic MegaGrants, Ukrainian culture funds
---
## MARKETING ANGLE
### **Pitch (Steam Description)**
> **"You control the drones. But do you still control your humanity?"**
> **POKROVSK - OVERWATCH** is a tactical management game where you command a Ukrainian drone unit during the siege of Pokrovsk (2025).
> **MANAGE RESOURCES** : Batteries, munitions, and drones are limited. Every decision counts.
> **COMMAND OPERATORS** : Four people, each with breaking points. Keep them sane. Keep them human.
> **MAKE IMPOSSIBLE CHOICES** : Is that group hostile or civilian? You have 15 seconds to decide. There are no good answers.
> **30 DAYS TO HOLD THE LINE** : Pokrovsk will fall. But how many will you save? And at what cost?
> *Inspired by This War of Mine, XCOM, and Papers Please.*
> *Based on real testimonies from Ukrainian drone operators.*
> *A portion of profits supports humanitarian aid in Ukraine.*
**Tags** : Strategy, Management, War, Moral Choices, Indie, Dark, Realistic, Ukraine, Top-Down
---
### **Pourquoi ça marchera**
1. **Niche passionnée existe** :
- *This War of Mine* : 5M+ ventes
- *XCOM* : Stratégie tactique fans
- Ukraine support community (énorme)
2. **Sujet actuel** :
- Guerre Ukraine = news quotidiennes
- Aucun concurrent direct
- Médias gaming vont couvrir (controverse = visibilité)
3. **Angle moral unique** :
- Pas "gentils vs méchants"
- "Opérateur aussi victime guerre"
- Discussions éthiques (drones autonomes)
4. **Prix accessible** : $14.99-19.99 (sweet spot indie)
---
## NEXT STEPS
### **Phase 1 : Validation Concept (1 mois)**
**Prototype Papier** :
1. Flowchart 1 mission complète (Excel/papier)
2. Système ressources (spreadsheet)
3. Arbre décision (dilemme moral exemple)
4. **Simulate** avec dés/cartes
5. **Test** : C'est fun ?
**Mockups UI** :
1. Sketch écrans principaux (Figma)
2. Carte tactique
3. Feeds drones
4. Menus gestion
5. **Feedback** : Montrer 5-10 personnes
**Pitch Test** :
1. Post r/gamedesign, r/gaming
2. Gauge réaction
3. **Décision** : Positif = Continue, Négatif = Archive
---
### **Phase 2 : Prototype Digital (2-3 mois)**
**Unity Project** :
1. 1 mission jouable (greybox)
2. Systèmes core fonctionnels
3. UI basique (pas jolie, juste marche)
**Playtest** :
1. 10-20 joueurs externes
2. Track métriques : Fun ? Dur ? Engageant ?
3. Iterate
**GO/NO-GO** :
- Playtests positifs + Je kiffe = **GO**
- Sinon = **Archive sans regrets**
---
### **Phase 3 : Production (Si GO)**
**Kickstarter** :
1. Trailer (prototype footage)
2. Pitch transparent
3. Goal : $15k-25k
4. Rewards : Game key, credits, design NPC
**Si funded** : Production full (12-18 mois)
**Si fail** : Solo réduit scope ou abandon
---
## QUESTIONS OUVERTES
### **Design**
- [ ] Nombre missions total (30 fixe ou variable ?)
- [ ] Permadeath opérateurs ou "juste" trauma ?
- [ ] Rejouabilité : Missions procédurales ou scriptées ?
- [ ] Difficulté : Multiple modes ou adaptive ?
### **Technique**
- [ ] Unity 2D ou Godot (open-source) ?
- [ ] Art style : Pixel art ou low-poly 3D top-down ?
- [ ] Save system : Autosave only ou manuel ?
- [ ] Platform : PC only ou aussi console ?
### **Narrative**
- [ ] Protagoniste (toi) a nom/backstory ou anonyme ?
- [ ] Opérateurs : 4 fixes ou roster 8+ (permadeath) ?
- [ ] Ending : 5 suffit ou 10+ variantes ?
### **Business**
- [ ] Prix : $14.99 ou $19.99 ?
- [ ] Early Access ou release complet ?
- [ ] Post-launch DLC (nouvelles campagnes) ?
- [ ] Mobile port (touch controls) ?
---
## NOTES FINALES
**Pourquoi ce projet = LE BON**
1. ✅ **Matching compétences** (stats, systèmes, pas 3D)
2. ✅ **Scope finissable** (12-18 mois réaliste)
3. ✅ **Unique** (aucun jeu pareil existe)
4. ✅ **Actuel** (Ukraine sujet chaud 2-3 ans+)
5. ✅ **Message fort** (questions morales réelles)
6. ✅ **Commercial viable** (niche passionnée existe)
**Différence vs Pokrovsk - Last Day** :
| Aspect | Last Day (FPS) | Overwatch (Management) |
|--------|----------------|------------------------|
| Scope | Massif | Raisonnable |
| Compétences | 3D, Level Design | Stats, Systèmes ✅ |
| Timeline | 24-36 mois | 12-18 mois ✅ |
| Budget | $3-15M | $5-10k ✅ |
| Finissable | ❌ Difficile | ✅ Oui |
**Prochaine action immédiate** :
**→ Prototype papier ce week-end (4-6h)**
Matériel :
- Excel (ressources)
- Papier (flowchart)
- Dés (RNG)
Simule 3 missions.
**Questions après** :
1. Fun ?
2. Dilemmes engageants ?
3. Je continue ?
**Si 3x OUI** → C'est LE projet
**Si 1+ NON** → Archive
---
**Status** : WIP - Attente validation concept
**Next Review** : Après prototype papier
**Timeline décision** : 1 mois max
---
*Document créé : 15 Novembre 2025*
*Dernière maj : 15 Novembre 2025*

View File

@ -0,0 +1 @@
{"streak": 1, "last_check_date": "2025-11-07", "days_skipped": 9, "last_skip_date": "2025-11-15"}

View File

@ -328,3 +328,91 @@
---
### 2025-11-14 07:06
**Triggered by** : TTS Service
**Check Time** : 07:00
**Status** : completed
**Streak** : 1 jours
**Days Skipped** : 0
---
### 2025-11-14 07:18
**Triggered by** : TTS Service
**Check Time** : 07:00
**Status** : skipped
**Streak** : 1 jours
**Days Skipped** : 8
---
### 2025-11-14 14:00
**Triggered by** : TTS Service
**Check Time** : 14:00
**Status** : completed
**Streak** : 1 jours
**Days Skipped** : 0
---
### 2025-11-14 14:00
**Triggered by** : TTS Service
**Check Time** : 14:00
**Status** : skipped
**Streak** : 1 jours
**Days Skipped** : 8
---
### 2025-11-14 17:00
**Triggered by** : TTS Service
**Check Time** : 16:00
**Status** : max_retries
**Streak** : 1 jours
**Days Skipped** : 1
---
### 2025-11-14 17:00
**Triggered by** : TTS Service
**Check Time** : 16:00
**Status** : max_retries
**Streak** : 1 jours
**Days Skipped** : 8
---
### 2025-11-15 07:00
**Triggered by** : TTS Service
**Check Time** : 07:00
**Status** : skipped
**Streak** : 1 jours
**Days Skipped** : 2
---
### 2025-11-15 07:00
**Triggered by** : TTS Service
**Check Time** : 07:00
**Status** : skipped
**Streak** : 1 jours
**Days Skipped** : 9
---