[Epic] Backroom — retrouver les objets perdus dans une dimension persistante #132

Closed
opened 2026-09-01 11:26:13 +00:00 by koka · 0 comments
Owner

Résultat joueur attendu

Ajouter Backroom, une dimension persistante et constructible accessible en dormant dans un lit.

Backroom sert avant tout à retrouver son propre équipement disparu dans le vide ou après le despawn des entités d’objets. Le joueur y entre sans rien : tout ce qu’il porte est livré dans sa Mailbox avant la téléportation. Il apparaît à une position variable de la dimension, cherche ses pertes dans les premiers coffres, puis peut poursuivre l’exploration pour découvrir des objets plus anciens appartenant à d’autres habitants.

La seule manière de quitter Backroom avec le butin porté est de dormir dans un lit. Tous les lits fonctionnent comme sorties, y compris ceux posés par les joueurs.

Priorités de la fonctionnalité

  1. Permettre au joueur de partir rechercher son propre équipement perdu.
  2. Faire circuler les objets perdus entre les expéditions et les habitants.
  3. Permettre la construction de bases et de réseaux de coffres.
  4. Proposer une exploration architecturale singulière.
  5. Donner rarement accès à des objets historiques, étranges ou précieux.

La récupération personnelle ne doit pas être un jackpot extrêmement improbable : tant qu’un joueur possède des pertes récentes, les premiers coffres éligibles qu’il consulte doivent les favoriser nettement.

Boucle de jeu

  1. Un objet disparaît dans le vide ou arrive au terme de son délai de despawn.
  2. Le serveur le retire du monde et l’enregistre exactement une fois dans le registre de Backroom.
  3. Le joueur dort dans un lit pour commencer une expédition.
  4. Tout ce qu’il porte est livré dans sa Mailbox.
  5. Il apparaît sans équipement dans Backroom, à une position variable et sûre.
  6. Les premiers coffres fournissent du matériel élémentaire et favorisent ses propres pertes récentes.
  7. Les coffres suivants donnent progressivement accès aux pertes plus anciennes et à celles d’autres joueurs.
  8. Le joueur peut explorer, construire une base et installer davantage de coffres.
  9. Il dort dans n’importe quel lit de Backroom pour repartir avec ce qu’il porte.
  10. Il réapparaît à son lit de spawn normal.

Entrée et Mailbox

Avant toute téléportation, le serveur transfère atomiquement vers la Mailbox :

  • la hotbar ;
  • l’inventaire principal ;
  • toutes les rangées d’inventaire débloquées ;
  • l’armure ;
  • la main secondaire ;
  • l’emplacement de l’œuf ;
  • l’emplacement de la cape.

Aucun emplacement spécial ne doit permettre d’importer un objet. La téléportation ne commence qu’après confirmation de la livraison complète. Si la Mailbox ne peut pas tout accepter, l’entrée est annulée sans modifier le joueur.

Les objets ainsi livrés restent dans la Mailbox à l’extérieur. Les objets recherchés dans Backroom sont ceux précédemment perdus dans le monde ou pendant une ancienne expédition.

Position d’arrivée et persistance

Chaque entrée choisit une position sûre située à moins de 2 000 blocs du point d’origine de Backroom.

Le système doit varier les positions, éviter le vide et les positions récemment employées, ne jamais écraser une construction et préserver toutes les modifications des joueurs.

Backroom n’est jamais réinitialisée. Les joueurs peuvent :

  • casser et poser des blocs ;
  • établir des bases ;
  • produire des ressources ;
  • construire des routes et des repères ;
  • installer des réseaux de lits ;
  • fabriquer et poser de nombreux coffres ;
  • découvrir les constructions abandonnées d’anciens habitants.

La génération ne modifie que les nouveaux chunks.

Direction architecturale

L’étrangeté vient d’abord de la géométrie et non d’un mélange aléatoire de blocs.

Chaque famille de bâtiments utilise une palette réduite et volontairement composée :

  • villes et mégalopoles principalement en béton, verre, pierre et matériaux routiers ;
  • bureaux principalement en bois, clay, tissus et quelques matériaux techniques ;
  • plaines principalement en terre, herbe et arbres, avec quelques bâtiments isolés ;
  • îles flottantes, immeubles et agglomérats de rooms construits selon plusieurs axes.

Aucun tirage aléatoire bloc par bloc ne doit produire artificiellement de la variété. La singularité vient des bâtiments imbriqués, des rues verticales, des proportions incorrectes, des fenêtres intérieures et des pièces construites à 90 degrés ou à l’envers.

La gravité globale du joueur reste normale : ce sont les rooms qui sont orientées différemment.

Matériaux d’Another World

Les matières d’Another World, aux textures très marquées, restent rares et intentionnelles. Elles signalent les jointures, fissures, fondations exposées, transitions entre layers et autres anomalies architecturales. Elles ne doivent pas dominer les façades ou remplacer les matériaux ordinaires.

Blocs précieux

Les blocs précieux ne font pas partie des palettes structurelles. Ils peuvent néanmoins être exceptionnellement dissimulés derrière un mur, dans une fondation, une pièce secrète ou au bout d’un passage difficile.

Registre des objets perdus

Le registre persistant conserve au minimum :

  • la pile exacte et ses composants ;
  • son nom et ses enchantements ;
  • son propriétaire d’origine ;
  • la cause et la date de la perte ;
  • son ancienneté ;
  • son état dans le cycle de récupération.

Il reçoit au minimum :

  • les objets tombés dans le vide ;
  • les entités d’objets supprimées après leur délai de despawn ;
  • le butin porté par les joueurs morts dans Backroom.

Les pertes récentes restent prioritairement associées à leur propriétaire. En vieillissant, elles deviennent progressivement accessibles dans le butin historique partagé.

Coffres renouvelables

Tous les coffres générés ou posés dans Backroom participent au système de butin.

Leur contenu n’est pas un stockage persistant fiable. À chaque cycle, un coffre peut être vidé ou renouvelé. Il contient le plus souvent :

  • rien ;
  • de la terre ou des blocs faciles à poser ;
  • des outils simples ou très usés ;
  • de la nourriture élémentaire ;
  • d’autres objets procéduraux médiocres.

Il peut plus rarement contenir :

  • une perte récente du joueur qui l’explore ;
  • une perte plus ancienne d’un autre joueur ;
  • un objet historique ou nommé ;
  • un objet particulièrement intéressant.

Priorité au stuff personnel

Tant que le joueur possède des pertes récentes :

  • les premiers coffres qu’il consulte favorisent ces objets ;
  • ses pertes passent avant le butin historique partagé ;
  • leur probabilité ne doit pas être noyée par la taille du registre global ;
  • la recherche de son propre stuff reste l’usage principal de la dimension.

Le nombre moyen de coffres nécessaire sera fixé par playtest.

Industrialisation assumée

Construire une montagne de coffres est une stratégie autorisée.

À chaque cycle de renouvellement :

  • chaque coffre éligible constitue une tentative supplémentaire ;
  • davantage de coffres signifie davantage de chances qu’un objet perdu apparaisse dans la base ;
  • la majorité des résultats restent vides ou médiocres ;
  • un objet réel ne peut apparaître que dans un seul coffre à la fois.

Cette infrastructure doit être construite avec des ressources obtenues dans Backroom, puisqu’aucun équipement ne peut être importé.

Casser puis reposer immédiatement le même coffre ne force pas de nouveau tirage. Le coffre doit attendre un véritable cycle. Les doubles coffres ne comptent pas deux fois par erreur.

Le renouvellement doit être résolu sans parcourir en permanence tous les coffres de la dimension, par exemple paresseusement lors du chargement ou de l’ouverture.

Un véritable objet perdu non récupéré retourne dans le registre lors du renouvellement au lieu d’être détruit. Les objets abandonnés volontairement dans un coffre peuvent rejoindre le registre historique, avec des règles bornées pour éviter une accumulation infinie de déchets.

Mort et extraction

Lorsqu’un joueur meurt dans Backroom :

  • il ne conserve pas le butin porté ;
  • ses objets sont enregistrés exactement une fois dans le registre ;
  • ils pourront réapparaître dans de futurs coffres ;
  • son inventaire d’entrée reste disponible dans sa Mailbox.

Tous les lits de Backroom permettent de sortir, y compris ceux posés par les joueurs. Dormir dans un lit ne définit pas de spawn dans Backroom : le joueur retourne à son lit de spawn normal, ou à la position vanilla de repli si celui-ci n’existe plus.

Une sortie par lit est la seule extraction réussie permettant de conserver le butin porté.

Propriété et intégration

  • Module propriétaire : Sanctuary.
  • Autres modules appelés : Another World pour ses matières ; éventuellement I Like To Move It pour un contrat public de téléportation ; Ambiance ultérieurement pour les profils sonores, lumineux et atmosphériques.
  • API ou donnée partagée : registre versionné des pertes, intégration Mailbox et éventuel contrat public de téléportation.
  • Impact sauvegarde/réseau : nouvelle dimension, SavedData persistante avec data_version, transactions serveur, données bornées et migrations monotones. Tout changement de payload exige la validation client/serveur et l’incrément du protocole propriétaire.

Sanctuary reste propriétaire des règles et des données de Backroom. Aucun état ne doit être copié dans Another World, I Like To Move It ou Ambiance, et aucun cycle de dépendances ne doit être introduit.

Protection contre les duplications

Un objet ne peut jamais exister simultanément dans le monde d’origine, le registre des pertes, un coffre, l’inventaire d’un joueur et sa Mailbox.

Le système doit :

  • enregistrer avant de retirer ;
  • confirmer avant de téléporter ;
  • identifier chaque perte de manière persistante ;
  • empêcher deux coffres de réclamer la même perte ;
  • survivre aux déconnexions, crashs et redémarrages ;
  • compacter et borner les données anciennes.

Hors périmètre initial

  • réinitialisation des zones visitées ;
  • interdiction de construire ;
  • gravité réellement modifiée ;
  • palettes aléatoires bloc par bloc ;
  • abondance de blocs précieux ;
  • nouvelles créatures propres à Backroom ;
  • garantie de trouver un bon objet dans chaque coffre.

Critères d’acceptation

  • Backroom est persistante et constructible.
  • Les arrivées sûres restent dans un rayon de 2 000 blocs.
  • Inventaire, rangées débloquées, armure, main secondaire, œuf et cape sont livrés exactement une fois dans la Mailbox.
  • Les pertes dans le vide et par despawn rejoignent le registre.
  • Le butin d’un joueur mort dans Backroom retourne dans les coffres.
  • Les premiers coffres favorisent réellement les pertes de leur explorateur.
  • Les pertes personnelles ne sont pas noyées dans le butin historique.
  • Tous les coffres posés ou générés participent aux renouvellements.
  • Une grande quantité de coffres produit davantage de tentatives de récupération.
  • Reposer immédiatement un coffre ne force pas un tirage.
  • Les coffres sont majoritairement vides ou médiocres.
  • Un véritable objet perdu n’est jamais attribué deux fois.
  • Tout lit posé dans Backroom permet une extraction.
  • Seule une sortie par lit conserve le butin.
  • Les constructions des joueurs ne sont jamais régénérées.
  • Les palettes sont cohérentes et composées par famille architecturale.
  • Les matières d’Another World restent rares et intentionnelles.
  • Les blocs précieux sont uniquement des secrets rares.
  • Les sauvegardes utilisent un data_version.
  • Les traductions FR, EN et RU sont présentes.
  • Les tests ciblés et ./gradlew check réussissent.

Découpage proposé

  1. Définir le contrat final d’entrée, de mort et d’extraction.
  2. Créer le registre persistant et versionné des objets perdus.
  3. Intercepter les objets tombés dans le vide et despawnés.
  4. Sécuriser la livraison vers la Mailbox, œuf et cape compris.
  5. Enregistrer la dimension et les arrivées dans un rayon de 2 000 blocs.
  6. Définir les grammaires architecturales et les palettes.
  7. Générer les premiers layers.
  8. Implémenter les coffres renouvelables.
  9. Implémenter la priorité des objets personnels.
  10. Implémenter les réseaux industrialisables de coffres.
  11. Implémenter les sorties par tous les lits.
  12. Réinjecter le butin des morts dans le registre.
  13. Ajouter les objets historiques et les blocs précieux cachés.
  14. Ajouter les diagnostics et les tests anti-duplication.
  15. Équilibrer les renouvellements et probabilités par playtest.
## Résultat joueur attendu Ajouter **Backroom**, une dimension persistante et constructible accessible en dormant dans un lit. Backroom sert avant tout à retrouver son propre équipement disparu dans le vide ou après le despawn des entités d’objets. Le joueur y entre sans rien : tout ce qu’il porte est livré dans sa Mailbox avant la téléportation. Il apparaît à une position variable de la dimension, cherche ses pertes dans les premiers coffres, puis peut poursuivre l’exploration pour découvrir des objets plus anciens appartenant à d’autres habitants. La seule manière de quitter Backroom avec le butin porté est de dormir dans un lit. Tous les lits fonctionnent comme sorties, y compris ceux posés par les joueurs. ### Priorités de la fonctionnalité 1. Permettre au joueur de partir rechercher son propre équipement perdu. 2. Faire circuler les objets perdus entre les expéditions et les habitants. 3. Permettre la construction de bases et de réseaux de coffres. 4. Proposer une exploration architecturale singulière. 5. Donner rarement accès à des objets historiques, étranges ou précieux. La récupération personnelle ne doit pas être un jackpot extrêmement improbable : tant qu’un joueur possède des pertes récentes, les premiers coffres éligibles qu’il consulte doivent les favoriser nettement. ## Boucle de jeu 1. Un objet disparaît dans le vide ou arrive au terme de son délai de despawn. 2. Le serveur le retire du monde et l’enregistre exactement une fois dans le registre de Backroom. 3. Le joueur dort dans un lit pour commencer une expédition. 4. Tout ce qu’il porte est livré dans sa Mailbox. 5. Il apparaît sans équipement dans Backroom, à une position variable et sûre. 6. Les premiers coffres fournissent du matériel élémentaire et favorisent ses propres pertes récentes. 7. Les coffres suivants donnent progressivement accès aux pertes plus anciennes et à celles d’autres joueurs. 8. Le joueur peut explorer, construire une base et installer davantage de coffres. 9. Il dort dans n’importe quel lit de Backroom pour repartir avec ce qu’il porte. 10. Il réapparaît à son lit de spawn normal. ## Entrée et Mailbox Avant toute téléportation, le serveur transfère atomiquement vers la Mailbox : - la hotbar ; - l’inventaire principal ; - toutes les rangées d’inventaire débloquées ; - l’armure ; - la main secondaire ; - l’emplacement de l’œuf ; - l’emplacement de la cape. Aucun emplacement spécial ne doit permettre d’importer un objet. La téléportation ne commence qu’après confirmation de la livraison complète. Si la Mailbox ne peut pas tout accepter, l’entrée est annulée sans modifier le joueur. Les objets ainsi livrés restent dans la Mailbox à l’extérieur. Les objets recherchés dans Backroom sont ceux précédemment perdus dans le monde ou pendant une ancienne expédition. ## Position d’arrivée et persistance Chaque entrée choisit une position sûre située à moins de **2 000 blocs du point d’origine de Backroom**. Le système doit varier les positions, éviter le vide et les positions récemment employées, ne jamais écraser une construction et préserver toutes les modifications des joueurs. Backroom n’est jamais réinitialisée. Les joueurs peuvent : - casser et poser des blocs ; - établir des bases ; - produire des ressources ; - construire des routes et des repères ; - installer des réseaux de lits ; - fabriquer et poser de nombreux coffres ; - découvrir les constructions abandonnées d’anciens habitants. La génération ne modifie que les nouveaux chunks. ## Direction architecturale L’étrangeté vient d’abord de la géométrie et non d’un mélange aléatoire de blocs. Chaque famille de bâtiments utilise une palette réduite et volontairement composée : - villes et mégalopoles principalement en béton, verre, pierre et matériaux routiers ; - bureaux principalement en bois, clay, tissus et quelques matériaux techniques ; - plaines principalement en terre, herbe et arbres, avec quelques bâtiments isolés ; - îles flottantes, immeubles et agglomérats de rooms construits selon plusieurs axes. Aucun tirage aléatoire bloc par bloc ne doit produire artificiellement de la variété. La singularité vient des bâtiments imbriqués, des rues verticales, des proportions incorrectes, des fenêtres intérieures et des pièces construites à 90 degrés ou à l’envers. La gravité globale du joueur reste normale : ce sont les rooms qui sont orientées différemment. ### Matériaux d’Another World Les matières d’Another World, aux textures très marquées, restent rares et intentionnelles. Elles signalent les jointures, fissures, fondations exposées, transitions entre layers et autres anomalies architecturales. Elles ne doivent pas dominer les façades ou remplacer les matériaux ordinaires. ### Blocs précieux Les blocs précieux ne font pas partie des palettes structurelles. Ils peuvent néanmoins être exceptionnellement dissimulés derrière un mur, dans une fondation, une pièce secrète ou au bout d’un passage difficile. ## Registre des objets perdus Le registre persistant conserve au minimum : - la pile exacte et ses composants ; - son nom et ses enchantements ; - son propriétaire d’origine ; - la cause et la date de la perte ; - son ancienneté ; - son état dans le cycle de récupération. Il reçoit au minimum : - les objets tombés dans le vide ; - les entités d’objets supprimées après leur délai de despawn ; - le butin porté par les joueurs morts dans Backroom. Les pertes récentes restent prioritairement associées à leur propriétaire. En vieillissant, elles deviennent progressivement accessibles dans le butin historique partagé. ## Coffres renouvelables Tous les coffres générés ou posés dans Backroom participent au système de butin. Leur contenu n’est pas un stockage persistant fiable. À chaque cycle, un coffre peut être vidé ou renouvelé. Il contient le plus souvent : - rien ; - de la terre ou des blocs faciles à poser ; - des outils simples ou très usés ; - de la nourriture élémentaire ; - d’autres objets procéduraux médiocres. Il peut plus rarement contenir : - une perte récente du joueur qui l’explore ; - une perte plus ancienne d’un autre joueur ; - un objet historique ou nommé ; - un objet particulièrement intéressant. ### Priorité au stuff personnel Tant que le joueur possède des pertes récentes : - les premiers coffres qu’il consulte favorisent ces objets ; - ses pertes passent avant le butin historique partagé ; - leur probabilité ne doit pas être noyée par la taille du registre global ; - la recherche de son propre stuff reste l’usage principal de la dimension. Le nombre moyen de coffres nécessaire sera fixé par playtest. ### Industrialisation assumée Construire une montagne de coffres est une stratégie autorisée. À chaque cycle de renouvellement : - chaque coffre éligible constitue une tentative supplémentaire ; - davantage de coffres signifie davantage de chances qu’un objet perdu apparaisse dans la base ; - la majorité des résultats restent vides ou médiocres ; - un objet réel ne peut apparaître que dans un seul coffre à la fois. Cette infrastructure doit être construite avec des ressources obtenues dans Backroom, puisqu’aucun équipement ne peut être importé. Casser puis reposer immédiatement le même coffre ne force pas de nouveau tirage. Le coffre doit attendre un véritable cycle. Les doubles coffres ne comptent pas deux fois par erreur. Le renouvellement doit être résolu sans parcourir en permanence tous les coffres de la dimension, par exemple paresseusement lors du chargement ou de l’ouverture. Un véritable objet perdu non récupéré retourne dans le registre lors du renouvellement au lieu d’être détruit. Les objets abandonnés volontairement dans un coffre peuvent rejoindre le registre historique, avec des règles bornées pour éviter une accumulation infinie de déchets. ## Mort et extraction Lorsqu’un joueur meurt dans Backroom : - il ne conserve pas le butin porté ; - ses objets sont enregistrés exactement une fois dans le registre ; - ils pourront réapparaître dans de futurs coffres ; - son inventaire d’entrée reste disponible dans sa Mailbox. Tous les lits de Backroom permettent de sortir, y compris ceux posés par les joueurs. Dormir dans un lit ne définit pas de spawn dans Backroom : le joueur retourne à son lit de spawn normal, ou à la position vanilla de repli si celui-ci n’existe plus. Une sortie par lit est la seule extraction réussie permettant de conserver le butin porté. ## Propriété et intégration - **Module propriétaire :** Sanctuary. - **Autres modules appelés :** Another World pour ses matières ; éventuellement I Like To Move It pour un contrat public de téléportation ; Ambiance ultérieurement pour les profils sonores, lumineux et atmosphériques. - **API ou donnée partagée :** registre versionné des pertes, intégration Mailbox et éventuel contrat public de téléportation. - **Impact sauvegarde/réseau :** nouvelle dimension, SavedData persistante avec `data_version`, transactions serveur, données bornées et migrations monotones. Tout changement de payload exige la validation client/serveur et l’incrément du protocole propriétaire. Sanctuary reste propriétaire des règles et des données de Backroom. Aucun état ne doit être copié dans Another World, I Like To Move It ou Ambiance, et aucun cycle de dépendances ne doit être introduit. ## Protection contre les duplications Un objet ne peut jamais exister simultanément dans le monde d’origine, le registre des pertes, un coffre, l’inventaire d’un joueur et sa Mailbox. Le système doit : - enregistrer avant de retirer ; - confirmer avant de téléporter ; - identifier chaque perte de manière persistante ; - empêcher deux coffres de réclamer la même perte ; - survivre aux déconnexions, crashs et redémarrages ; - compacter et borner les données anciennes. ## Hors périmètre initial - réinitialisation des zones visitées ; - interdiction de construire ; - gravité réellement modifiée ; - palettes aléatoires bloc par bloc ; - abondance de blocs précieux ; - nouvelles créatures propres à Backroom ; - garantie de trouver un bon objet dans chaque coffre. ## Critères d’acceptation - [ ] Backroom est persistante et constructible. - [ ] Les arrivées sûres restent dans un rayon de 2 000 blocs. - [ ] Inventaire, rangées débloquées, armure, main secondaire, œuf et cape sont livrés exactement une fois dans la Mailbox. - [ ] Les pertes dans le vide et par despawn rejoignent le registre. - [ ] Le butin d’un joueur mort dans Backroom retourne dans les coffres. - [ ] Les premiers coffres favorisent réellement les pertes de leur explorateur. - [ ] Les pertes personnelles ne sont pas noyées dans le butin historique. - [ ] Tous les coffres posés ou générés participent aux renouvellements. - [ ] Une grande quantité de coffres produit davantage de tentatives de récupération. - [ ] Reposer immédiatement un coffre ne force pas un tirage. - [ ] Les coffres sont majoritairement vides ou médiocres. - [ ] Un véritable objet perdu n’est jamais attribué deux fois. - [ ] Tout lit posé dans Backroom permet une extraction. - [ ] Seule une sortie par lit conserve le butin. - [ ] Les constructions des joueurs ne sont jamais régénérées. - [ ] Les palettes sont cohérentes et composées par famille architecturale. - [ ] Les matières d’Another World restent rares et intentionnelles. - [ ] Les blocs précieux sont uniquement des secrets rares. - [ ] Les sauvegardes utilisent un `data_version`. - [ ] Les traductions FR, EN et RU sont présentes. - [ ] Les tests ciblés et `./gradlew check` réussissent. ## Découpage proposé 1. Définir le contrat final d’entrée, de mort et d’extraction. 2. Créer le registre persistant et versionné des objets perdus. 3. Intercepter les objets tombés dans le vide et despawnés. 4. Sécuriser la livraison vers la Mailbox, œuf et cape compris. 5. Enregistrer la dimension et les arrivées dans un rayon de 2 000 blocs. 6. Définir les grammaires architecturales et les palettes. 7. Générer les premiers layers. 8. Implémenter les coffres renouvelables. 9. Implémenter la priorité des objets personnels. 10. Implémenter les réseaux industrialisables de coffres. 11. Implémenter les sorties par tous les lits. 12. Réinjecter le butin des morts dans le registre. 13. Ajouter les objets historiques et les blocs précieux cachés. 14. Ajouter les diagnostics et les tests anti-duplication. 15. Équilibrer les renouvellements et probabilités par playtest.
koka closed this issue 2026-09-01 14:50:33 +00:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: koka/sanctuary#132