INS PROD · TECHNOLOGIE INTERNE AURELIS — Level Generation Technology

Générer n’est que
la première étape.

AURELIS est une chaîne d’ingénierie de contenu : modélisation canonique, génération de candidats, preuve de solvabilité, mesure multidimensionnelle de difficulté, contrôle de diversité, quality gates et certification de release.

Entrer dans l’architecture
Deterministic solverDifficulty model V5Fail-closed release
AURELIS / PIPELINE MAPREFERENCE VIEW
  1. 01
    Modéliser

    Règles · empreintes · rotations · zones

  2. 02
    Résoudre

    Explorer l’espace des solutions légales

  3. 03
    Mesurer

    Difficulté · progression · diversité

  4. 04
    Certifier

    Artefacts de preuve · intégrité SHA-256

UNKNOWN ≠ UNIQUEFail-closed release
Schéma de référence — cette vue n’affiche pas l’exécution d’un calcul en direct.
LE CONTENU AVANT PUBLICATIONActuellement utilisé par Tidilo
01 / ARCHITECTURE

Chaque étape a
sa responsabilité.

AURELIS évite de mélanger génération, preuve, scoring et publication dans un unique algorithme opaque. Chaque étape produit des artefacts exploitables par la suivante et peut échouer explicitement sans que l’échec soit converti en succès.

  1. 01RèglesEmpreintes, rotations, zones
  2. 02ModèleDomaines, occupation
  3. 03CandidatsGénération sous contraintes
  4. 04PreuveEspace des solutions
  5. 05MesuresDifficulté et qualité
  6. 06ContrôlesProgression et diversité
  7. 07ReleasePreuves et intégrité
DATA-DRIVEN

Des règles configurables.

Objets, empreintes, rotations, groupes, zones et objectifs de campagne restent séparés du moteur de preuve.

DETERMINISM

Des résultats reproductibles.

Une seed et un ruleset donnés doivent produire des résultats reproductibles lorsque les budgets sont identiques.

FAIL-CLOSED

Pas de faux vert.

Une vérification incomplète, un timeout ou un artefact manquant ne devient pas automatiquement « valide ».

RÉSULTATS DE PREUVE

Quatre statuts.
Un sens précis.

Cette démonstration explique les statuts de sortie du solveur. Elle n’affiche aucun calcul ni niveau en direct.

Une seule solution canonique

Le solveur a épuisé l’espace pertinent et prouvé une solution canonique unique.

UNKNOWN ≠ UNIQUEUn budget épuisé reste un résultat incomplet.
02 / MODÈLE CANONIQUE

Reconstruire le puzzle
tel qu’il peut être joué.

Le solveur ne rejoue pas la solution auteur. Il reconstruit l’espace légal : cellules occupables, empreintes, rotations, compartiments, obstacles, objets verrouillés et relations de groupe.

FOOTPRINTS

Empreintes physiques

Formes par rotation légale, ancrages valides, collisions et normalisation des variantes équivalentes.

BITSETS / MASKS

Occupation compacte

Les masks accélèrent les tests de collision, les unions d’occupation et les comparaisons d’états.

DOMAINS

Domaines pré-calculés

Les placements possibles sont filtrés selon l’occupation courante et les contraintes relationnelles.

REPRÉSENTATION / PSEUDOCODE
placement = { objectId, rotation, anchor, occupiedMask }
state = occupiedMask + placedObjects + groupState
domain(o) = legalPlacements[o] filtered by compatibility(state)

La solution auteur peut servir de référence, jamais de preuve à elle seule.

03 / SOLVEUR CANONIQUE

Explorer assez pour savoir
ce qui est vrai.

Le solveur distingue une solution unique prouvée, plusieurs solutions distinctes, une impossibilité démontrée et une recherche qui ne permet pas de conclure.

SEARCH ORDER

Variable la plus contrainte

Choisir l’objet dont le domaine courant est le plus petit réduit le branchement sans changer le sens de la preuve.

PROPAGATION

Réduire après placement

Un domaine vide déclenche un retour en arrière immédiat, plutôt que l’exploration d’une branche déjà impossible.

SYMMETRY

Canonicaliser les solutions

Les objets interchangeables et les états équivalents ne doivent pas multiplier artificiellement les solutions.

MEMOIZATION

Mémoriser les états impossibles

Un état déjà prouvé impossible peut être réutilisé pour éviter de refaire le même travail.

UNKNOWN ≠ UNIQUE.

Un budget ou un temps de calcul épuisé ne constitue jamais une preuve d’unicité.

04 / MODÈLE DE DIFFICULTÉ V5

Mesurer la décision,
pas seulement le calcul.

La difficulté n’est pas « le nombre de nœuds du solveur ». AURELIS combine des signaux structurels, des ambiguïtés locales, des conflits et des comportements pseudo-humains. Les poids et seuils restent centralisés pour pouvoir être recalibrés.

01 / STRUCTURE

Domain overlap

Des placements concurrents se disputent les mêmes zones.

02 / CONFLICT

Placement conflict ratio

La densité des incompatibilités entre placements possibles.

03 / SPACE

Contested cell fraction

Des cellules critiques pour plusieurs options concurrentes.

04 / GRAPH

Interaction density

L’interdépendance des objets et de leurs placements.

05 / TRAPS

Meaningful bad moves

Des choix plausibles qui dégradent réellement la suite.

06 / DELAY

Delayed dead ends

Une erreur dont l’impasse apparaît plusieurs décisions plus tard.

07 / PLANNING

Planning depth

L’anticipation nécessaire pour éviter les branches trompeuses.

08 / ROTATION

Rotation ambiguity

Le rôle décisionnel réel des rotations.

09 / BOTTLENECK

Space pressure

Des zones dont l’occupation ferme d’autres possibilités.

Un score élevé ne suffit pas à rendre un niveau publiable. Les quality gates restent indépendants du modèle de difficulté.

05 / HEURISTIQUES PSEUDO-HUMAINES

Tester des réflexes plausibles.

Le solveur canonique recherche la vérité mathématique. Les heuristiques pseudo-humaines évaluent des stratégies intuitives sans exploration exhaustive : leur taux de réussite et leur écart avec la preuve aident à caractériser l’ambiguïté et l’anticipation.

  • first_fit
  • largest_first
  • most_constrained
  • edge_first
  • centre_first
  • minimal_rotation
  • preserve_space
  • obvious_fit
06 / QUALITY GATES

Un score n’autorise
jamais seul une publication.

Un candidat peut atteindre une difficulté cible et être rejeté s’il est pauvre, redondant, artificiel ou non certifiable.

01

Solvabilité

Solution auteur légale, résultat canonique explicite, aucun UNKNOWN accepté pour une certification finale.

02

Structure

Densité, occupation, objets, ambiguïté, impasses et profondeur de planification cohérents avec la cible.

03

Progression

Bandes cibles, contrôles locaux, respirations intentionnelles et absence de chute brutale non voulue.

04

Diversité

Signatures structurelles, comparaisons de voisinage et remplacement des quasi-doublons.

Fail-closed.

Si une preuve manque ou si la campagne échoue aux validations, le publisher ne transforme pas ce cas en release valide.

07 / CAMPAIGN ENGINEERING

Une campagne a un rythme.

La difficulté ne suit pas une droite artificielle. AURELIS travaille avec des bandes cibles, des contraintes locales, des paliers et des respirations volontaires. Pour Tidilo, la campagne publique est structurée en 10 mondes de 100 niveaux.

10MONDES
100NIVEAUX PAR MONDE
1 000NIVEAUX VÉRIFIÉS

Les fenêtres locales permettent de vérifier la difficulté et la structure sans se limiter à la moyenne d’un monde.

08 / DIVERSITÉ

Changer la seed
ne suffit pas.

Deux niveaux peuvent avoir des assets différents tout en racontant la même décision. AURELIS compare leurs signatures structurelles : domaines, objets, conflits, rotations et topologie d’interaction. Les candidats trop proches peuvent être rejetés, réparés ou remplacés.

09 / CERTIFICATION & RELEASE

Une sortie prouvable,
reproductible et auditable.

La release assemble le contenu sélectionné, produit les artefacts de preuve et contrôle l’intégrité du binaire final réellement intégré au jeu.

TIDILO / CONDITIONS DE RELEASE
for level in campaign[1..1000]:
  require proof.status == UNIQUE
  require proof.canonicalSolutionCount == 1
  require proof.exhausted == true
  require proof.authoredSolutionValid == true
  require qualityGates(level) == PASS

La campagne publique de Tidilo : 1 000 / 1 000 niveaux vérifiés par le solveur.

CURRENTLY POWERINGTidilo

La mise en œuvre publiée d’AURELIS.

Tidilo
10 / GÉNÉRALISATION

Un socle conçu pour évoluer.

Représentation, recherche, métriques, diversité et certification peuvent être conservées, avec des adaptateurs propres à de nouvelles règles de gameplay. La génération au runtime reste une évolution possible, selon le budget de calcul, la certification et l’expérience utilisateur.

Rencontrer le studio