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:
parent
fc0d320cd3
commit
b4b0962920
1230
Projects/pokrovsk_last_day.md
Normal file
1230
Projects/pokrovsk_last_day.md
Normal file
File diff suppressed because it is too large
Load Diff
406
Projects/vps_tunnel_china.md
Normal file
406
Projects/vps_tunnel_china.md
Normal 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
826
WIP/pokrovsk_overwatch.md
Normal 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*
|
||||
1
anki_tingting/.state.json
Normal file
1
anki_tingting/.state.json
Normal file
@ -0,0 +1 @@
|
||||
{"streak": 1, "last_check_date": "2025-11-07", "days_skipped": 9, "last_skip_date": "2025-11-15"}
|
||||
@ -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
|
||||
|
||||
---
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user