Import initial du projet Survival (UE 5.8)
Boucle de jeu complète : récolte, inventaire, consommation, stats de survie, mort et respawn. Gameplay en C++, Blueprints réservés au câblage d'assets. Assets binaires (.uasset, .umap, textures, audio) suivis via Git LFS. Binaries/, Intermediate/, Saved/ et DerivedDataCache/ sont ignorés : régénérés au build, ils pèsent 3 Go pour 1,3 Go de contenu utile. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
# Discord Rich Presence
|
||||
|
||||
**Plugin made by Mathew Simon.**
|
||||
|
||||
Affiche le jeu dans le statut Discord quand on le lance. Aucune DLL ni SDK externe :
|
||||
le plugin parle directement au named pipe local de Discord (`\\.\pipe\discord-ipc-N`).
|
||||
|
||||
Windows uniquement (`PlatformAllowList: Win64`).
|
||||
|
||||
## 1. Cote Discord
|
||||
|
||||
1. https://discord.com/developers/applications > **New Application**
|
||||
2. Le **nom de l'application** = ce que Discord affichera comme nom du jeu ("joue a XXX").
|
||||
3. Copier l'**Application ID** (= Client ID) sur la page *General Information*.
|
||||
4. Optionnel, pour les images : *Rich Presence > Art Assets* > uploader une image et lui
|
||||
donner un nom. Ce nom est la valeur a mettre dans `LargeImageKey` / `SmallImageKey`.
|
||||
(Les uploads mettent quelques minutes a se propager.)
|
||||
|
||||
## 2. Cote Unreal
|
||||
|
||||
**Edit > Project Settings > Plugins > Discord Rich Presence**
|
||||
|
||||
| Reglage | Role |
|
||||
|---|---|
|
||||
| `Enabled` | Active/desactive tout le plugin |
|
||||
| `Client Id` | L'Application ID copie a l'etape 1 |
|
||||
| `Enable In Editor` | Presence active aussi en PIE (pratique pour tester) |
|
||||
| `Default Activity` | Ce qui est affiche des le lancement |
|
||||
| `Min Update Interval Seconds` | Throttle des envois (Discord limite a 5 / 20 s, ne pas descendre sous 4) |
|
||||
| `Reconnect Interval Seconds` | Frequence des tentatives quand Discord n'est pas lance |
|
||||
|
||||
C'est tout : le sous-systeme demarre avec la GameInstance, se connecte, envoie
|
||||
`Default Activity`, et se reconnecte tout seul si Discord est ferme puis relance.
|
||||
|
||||
## 3. Changer la presence en cours de jeu
|
||||
|
||||
En Blueprint, noeud **Get Discord Rich Presence**, puis :
|
||||
|
||||
- `Set Details And State` — les deux lignes de texte sous le nom du jeu
|
||||
- `Set Activity` — remplace tout (textes + images + party)
|
||||
- `Set Party` — le compteur "(2 sur 4)"
|
||||
- `Reset Elapsed Time` — repart de zero sur le chrono de temps de jeu
|
||||
- `Clear Activity` — retire le jeu du statut
|
||||
- `Is Connected To Discord` — etat de la connexion
|
||||
|
||||
En C++ :
|
||||
|
||||
```cpp
|
||||
#include "DiscordRichPresenceSubsystem.h"
|
||||
|
||||
if (UDiscordRichPresenceSubsystem* Discord = UDiscordRichPresenceSubsystem::Get(this))
|
||||
{
|
||||
Discord->SetDetailsAndState(TEXT("Foret du Nord"), TEXT("Jour 12 - En vie"));
|
||||
}
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- Discord ignore les textes de **moins de 2 caracteres**, ils sont donc omis a l'envoi.
|
||||
- Le chrono de temps de jeu demarre a l'`Initialize` du sous-systeme.
|
||||
- Les changements sont accumules et envoyes au plus une fois par `Min Update Interval
|
||||
Seconds` : appeler `SetDetailsAndState` a chaque frame ne spamme pas Discord.
|
||||
- Si Discord n'est pas lance, il ne se passe rien (pas d'erreur, pas de blocage) et le
|
||||
plugin retente periodiquement.
|
||||
Reference in New Issue
Block a user