# Phaeton Rising, Seconde tentative
## Avant-propos :
Constatant la difficulté à réaliser le prototype engagé à l'automne 2019 (disponibilités), regrettant de n'avoir pu le faire aboutir car trop ambitieux (trop de tâches diverses pour un développeur isolé, débutant sur Unity), mais aussi, se rémémorant les retours positifs qui ont été fait sur la maquette, il m'apparaît dommage de ne pas donner une dernière chance à ce premier projet.
**Interprétations des retours positifs :**
Les retours positifs qui ont été recueillis ont été fait sur la base d'une maquette non jouable (finalisée au moment même du salon, sur place (ajout du décor, changement de caméra > perspective)). Malgré tout, les éléments en présence ont permis une certaine reconnaissance, une identification. Cela tient, me semble-t-il, à :
- La caméra latérale (platformer)
- Les personnages 2D dessinés, animés
- Le décor 3D minimaliste
- **La bascule monde normal / PsyWorld**
## Objectif :
Réaliser une démo jouable sur la base du gameplay proposée.
Il s'agit surtout de :
1. Compléter la partie **UI/UX** (améliorer l'ergonomie)
2. Compléter **animation/FX** (déplacement personnage, cam shake, particules)
3. Développer une **IA basique** (déplacement, attaque)
4. Mais SURTOUT :
\> Permettre une **expérience du psyworld**.
### 1. UI/UX
Améliorer globalement l'érgonomie pour faciliter l'engagement des compétences.
- Réduire l'UI (composants trop gros)
- Meilleur identification de la cible (probablement afficher une ligne reliant l'attaquant à sa/ses cible/s).
### 2. Animation/FX
- Animation :
S'appuyer sur les spritesheets existants.
Retirer le déplacement TP pour un déplacement séquencé (succession de dash).
Animation du dash : existence de spritesheet ? Pas sûr.
\> Envisager solution mix entre déformation du sprite type Skew + FX vitesse (trainée ? faire recherche visuelle).
- FX :
Principalement des effets de particules.
Jouer sur dessins de la particules (spritesheet ?).
Jouer sur la physique (collision avec environnement).
### 3. IA basique
Permettre à l'ennemi de se déplacer et d'attaquer.
- 1 attaque par ennemi (pas de choix pour le moment).
- Déplacement : recherche de la porté optimale (aucune stratégie pour le moment)
### 4. PsyWorld
Tout est là. Le reste est nécessaire, mais suffisant. L'expérience du PsyWorld en revanche peut suffire à créer la différence.
**Enjeux de gameplay & technique :**
- entrée / sortie du PsyWorld (présence de portail ? compétence ?)
- effets du PsyWorld :
- Boost compétences ?
- Raccourcis type TP ?
- Risque lié à l'exposition ? Status Effects ?
Si certains points de gameplay méritent d'être traités rapidement (entrée / sortie), d'autres sont à voir plus tard (effets du PsyWorld).
**Enjeux artistique :**
Il me semble qu'ici réside l'essentiel de la proposition. L'expérience du PsyWorld doit être visuellement bluffante. A l'instar du shader proposé en urgence lors du salon, le PsyWorld doit être une expérience sensible, amener un sentiment esthétique, une émotion.
<img src="https://i.imgur.com/6f7g81k.jpg" width="500">
<video src="https://i.imgur.com/Jf4eayZ.mp4" width="500" autoplay loop muted controls></video>
<br><br>
Comment ?
- En jouant sur le **contraste** (actuellement nuit / jour, probablement à conserver).
- En privilégiant l'**effet "All-Over"** (le décor est entièrement affecté), prévoir sans doute une passe de post-processing pour permettre :
- des effets de compositing locaux (contraste, saturation)
- des effets de déformation (displacement)
- En jouant sur des **effets de flux** (évoquant une réalité organique sous-jacente, englobante, cf shader actuel).
- **En incluant les personnages** dans ces effets de flux (évoquant une relation entre l'individu et le tout).
Ces 4 points me semblent fondamentaux dans la constitution de l'ambition artistique, aussi je les réécris :
1. **Contraste** : réalité alternative / complémentaire
2. **All-Over** : tout, matrice
3. **Flux** : mouvement, vie, respiration
4. **Organisé autour des personnages** : inclusion, interdépendance, connexion
Recherches associées :
- GPU instancing
- Displacement (world noise)
- SDF (signed distance function/field)
## Anticipation de la charge
Une estimation à louche me fait envisager 6 à 7 semaines de travail.
Il me paraît plus judicieux de repartir "from scratch" :
- Cela me permettra de commencer plus rapidement les effets graphiques du PsyWorld.
- From scratch ne veut pas ne rien reprendre de l'ancien projet. Au contraire, il s'agit de réintégrer progressivement l'ancien projet, en profitant de l'opération pour ré-organiser le code, afin de :
- retirer le superflu
- simplifier
- gagner en robustesse
### Organisation *[brouillon]*:
L'idée est de repartir de l'artistique pour revenir progressivement vers le gameplay, en espérant créer une dynamique de travail et d'envie : les réalisations artistiques du PsyWord doivent donner envie de voir la bascule entre les 2 mondes se mettre en place, d'y voir des personnages se déplacer (graph), de manière interactive (IA), d'y jouer finalement.
- Temps 1:
- PsyWorld, recherches artistiques, graphiques.
- Recherche sur pipeline de rendu ?
- Temps 2:
- Réintégration du graph
- UX + Animation/FX lié au déplacement
- Eléments de base du gameplay (Character, StatusEffect, Skill)
- Temps 3:
- Réintégration du gameplay hors UI
- IA basique
- Temps 4:
- FX (damage, status effects)
- UI