INS PROD · TECHNOLOGIE INTERNE

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.

Deterministic solverDifficulty model V5Fail-closed release1000/1000 Tidilo verified
AURELIS / PIPELINE MAPREFERENCE VIEW
01INGEST_RULESETfootprints · rotations · zones
02BUILD_CANONICAL_MODELdomains · occupancy masks
03ENUMERATE_CANDIDATEconstraint-guided generation
04PROVE_SOLUTION_SPACEunique / multiple / unsolvable / unknown
05MEASURE_DIFFICULTYstructure · ambiguity · planning
06QUALITY_GATEpacing · diversity · integrity
07CERTIFY_RELEASEproof artifacts · SHA-256
> proof.status = UNIQUE | MULTIPLE | UNSOLVABLE | UNKNOWN> budget_exhausted => UNKNOWN> unknown_is_unique = false> release_gate = FAIL_CLOSED

Schéma de référence — cette vue n’affiche pas l’exécution d’un calcul en direct.

RÉSULTATS DE PREUVE

Quatre statuts. Aucune ambiguïté sur leur sens.

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.

01 / ARCHITECTURE

Une chaîne modulaire, avec des responsabilités séparées.

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.

AGame rules & data
BCanonical model
CCandidate generator
DSolver + metrics
EQuality + release
DATA-DRIVEN

Règles configurables

Objets, empreintes, rotations, groupes, zones, paramètres d’économie de recherche et objectifs de campagne sont séparés du moteur de preuve.

DETERMINISM

Reproductibilité

Une seed et un ruleset donnés doivent produire des candidats et des résultats de vérification 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”. La publication se ferme tant que la preuve attendue n’existe pas.

02 / MODÈLE CANONIQUE

Le solveur ne rejoue pas la solution auteur. Il reconstruit l’espace légal.

Pour pouvoir prouver quelque chose, AURELIS doit d’abord reconstruire le puzzle tel qu’un joueur peut réellement l’explorer : cellules occupables, empreinte de chaque objet, rotations, compartiments, obstacles, objets verrouillés et relations de groupe.

FOOTPRINTS

Empreintes physiques

  • formes par rotation légale
  • positions d’ancrage valides
  • collision avec limites et obstacles
  • normalisation des variantes équivalentes
BITSETS / MASKS

Occupation compacte

Les cellules et placements peuvent être encodés sous forme de masks afin d’accélérer les tests de collision, unions d’occupation et comparaisons d’états.

DOMAINS

Domaines pré-calculés

Chaque objet possède un domaine de placements légaux. Les domaines sont ensuite réduits par l’occupation courante et les contraintes relationnelles.

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, sans confondre limite de calcul et preuve.

UNIQUEUne solution canonique prouvée, espace pertinent épuisé.
MULTIPLEAu moins deux solutions canoniques distinctes détectées.
UNSOLVABLEAucune solution légale dans le modèle exploré exhaustivement.
UNKNOWNLe budget ou le temps ne permet pas de conclure proprement.
SEARCH ORDER

Variable la plus contrainte

Le solveur peut sélectionner en priorité l’objet dont le domaine courant est le plus petit, réduisant le branchement sans modifier la sémantique de la preuve.

PROPAGATION

Réduction après placement

Après chaque placement, les domaines incompatibles sont filtrés. Un domaine vide provoque un backtrack immédiat au lieu d’explorer un sous-arbre déjà mort.

SYMMETRY

Canonicalisation

Les objets structurellement interchangeables ne doivent pas multiplier artificiellement le nombre de solutions. Les états équivalents peuvent être normalisés avant comptage.

MEMOIZATION

Dead states

Les configurations d’occupation déjà prouvées impossibles peuvent être mémorisées pour éviter de refaire le même travail par un chemin différent.

solve(state): if all_objects_placed: record_canonical_solution() object = argmin(current_domain_size) for placement in ordered_domain(object): if compatible(placement, state): next = apply(placement, state) propagate(next) if not dead(next): solve(next) UNKNOWN ≠ UNIQUE. Un budget épuisé reste un résultat incomplet.
04 / MODÈLE DE DIFFICULTÉ V5

La difficulté n’est pas “le nombre de nœuds du solveur”.

AURELIS sépare la difficulté ressentie de la simple difficulté algorithmique. Le modèle agrège 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 sans réécrire le moteur.

STRUCTURE

Domain overlap

Mesure combien de placements concurrents se disputent les mêmes zones et créent des décisions localement plausibles.

CONFLICT

Placement conflict ratio

Quantifie la densité des incompatibilités entre placements possibles.

SPACE

Contested cell fraction

Repère les cellules jouant un rôle dans plusieurs options concurrentes plutôt que les espaces évidents.

GRAPH

Interaction density

Construit un graphe d’interactions entre objets/placements afin d’estimer l’interdépendance du puzzle.

TRAPS

Meaningful bad moves

Compte les choix raisonnables qui dégradent réellement l’état futur au lieu de simples erreurs absurdes.

DELAY

Delayed dead ends

Un mauvais placement qui échoue immédiatement est moins exigeant qu’un choix qui ne révèle son erreur que plusieurs décisions plus tard.

PLANNING

Planning depth

Évalue la profondeur minimale d’anticipation nécessaire pour éviter certains embranchements trompeurs.

ROTATION

Rotation ambiguity

Mesure le rôle réellement décisionnel des rotations, sans récompenser artificiellement des rotations inutiles.

BOTTLENECK

Space pressure

Détecte les zones critiques dont l’occupation trop tôt ferme plusieurs possibilités futures.

difficulty = F(structure, ambiguity, conflicts, planning, rotation, traps, pseudoHuman, solverCost)F est un modèle composite calibré. Les signaux sont normalisés et contrôlés par des quality gates indépendants : un score élevé ne suffit pas à rendre un niveau publiable.
05 / HEURISTIQUES PSEUDO-HUMAINES

Tester des réflexes plausibles, pas seulement une recherche optimale.

Le solveur canonique répond à “quelle est la vérité mathématique ?”. Les heuristiques pseudo-humaines répondent à une autre question : “à quel point des stratégies intuitives s’en sortent-elles sans exploration exhaustive ?”.

first_fitlargest_firstmost_constrainededge_firstcentre_firstminimal_rotationpreserve_spaceobvious_fit
SUCCESS RATE

Réussite naïve

Un niveau que presque toutes les heuristiques simples résolvent immédiatement ne doit pas être classé difficile uniquement parce que le solveur canonique explore beaucoup.

DIVERGENCE

Écart stratégie / preuve

L’écart entre les chemins intuitifs et la solution peut aider à caractériser l’ambiguïté et la nécessité d’anticipation.

06 / QUALITY GATES

Un score n’autorise jamais seul une publication.

AURELIS utilise des contrôles structurels indépendants du score composite. Un candidat peut atteindre une difficulté cible et être rejeté malgré tout s’il est pauvre, redondant, artificiel ou non certifiable.

SOLVABILITY

Preuve obligatoire

  • solution auteur légale
  • résultat canonique explicite
  • pas d’UNKNOWN accepté pour une certification finale
STRUCTURE

Qualité minimale

  • densité / occupation
  • nombre d’objets cohérent
  • ambiguïté suffisante
  • dead-end et planning non triviaux selon cible
PACING

Place dans la campagne

  • tolérance autour d’une cible
  • progression locale contrôlée
  • respirations intentionnelles
  • pas de chute brutale non voulue
DIVERSITY

Anti-clone

  • signature structurelle
  • comparaison de voisinage
  • réparation ou remplacement des quasi-doublons
Fail-closed : si un artefact de preuve manque, si un candidat sort du modèle attendu ou si la campagne finale ne passe pas ses validations, le publisher ne doit pas transformer ce cas en release valide.
07 / CAMPAIGN ENGINEERING

Une campagne n’est pas une droite de difficulté.

C’est précisément le point important : AURELIS ne cherche pas à tracer une courbe linéaire artificielle. Il travaille avec des bandes cibles, des contraintes locales, des paliers, des respirations volontaires et des contrôles entre segments. Pour Tidilo, la campagne publique est structurée en 10 mondes de 100 niveaux.

WORLD 1foundation + challenge
WORLD 2space pressure
WORLD 3ambiguity
WORLD 4planning
WORLD 5interactions
WORLD 6deeper traps
WORLD 7tighter gates
WORLD 8higher pressure
WORLD 9advanced mix
WORLD 10campaign peak
BREATHERS

Respirations intentionnelles

Certains niveaux peuvent redescendre légèrement pour casser la monotonie, sans remettre à zéro la difficulté acquise ni affaiblir les jalons importants.

LOCAL CHECKS

Contrôles de voisinage

La difficulté et la structure sont examinées sur des fenêtres locales, pas seulement via la moyenne globale d’un monde.

08 / DIVERSITÉ

Éviter 1 000 niveaux techniquement différents mais cognitivement identiques.

La diversité ne se résume pas à changer la seed. AURELIS compare des signatures structurelles : forme des domaines, distribution des objets, conflits, rotations, topologie d’interaction et autres métriques de niveau. Les candidats trop proches peuvent être rejetés ou remplacés.

SIGNATURES

Fingerprint structurel

Un résumé de caractéristiques sert à comparer les niveaux sans nécessiter une comparaison brute de toutes les cellules.

NEAR-CLONES

Distance de similarité

Deux niveaux peuvent avoir des assets différents tout en racontant la même décision. Les contrôles cherchent justement ces similarités de structure.

REPAIR

Réparation de campagne

Quand une zone devient trop répétitive, le pipeline peut sélectionner d’autres candidats au lieu de conserver un doublon simplement parce qu’il est solvable.

09 / CERTIFICATION & RELEASE

La sortie finale doit être prouvable, reproductible et auditable.

Le pipeline de release ne se contente pas d’écrire un JSON. Il assemble le contenu sélectionné, vérifie l’intégrité, produit des artefacts de preuve et contrôle le binaire final qui sera réellement intégré au jeu.

01Selectcandidats retenus
02Canonical provesolution space
03Metricsdifficulté + qualité
04Diversityanti-clone
05Packageartefact cible
06SHA-256identité exacte
07Releasefail-closed
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 // Tidilo public campaign: 1000 / 1000 solver-verified.
CURRENTLY POWERING
Tidilo

TIDILO
La campagne publique de Tidilo est actuellement la mise en œuvre publiée d’AURELIS.

Découvrir Tidilo →
10 / GENERALISATION

AURELIS est conçu pour changer de mécanique sans devenir un nouveau moteur à chaque jeu.

L’objectif futur n’est pas de réutiliser Tidilo tel quel. C’est de conserver les briques génériques — représentation, recherche, métriques, certification, diversité — et de brancher des adaptateurs propres à de nouvelles règles de gameplay.

ADAPTERS

Nouveaux espaces d’états

Changer les règles légales, les transitions et les contraintes sans casser le pipeline de preuve et de QA autour.

RUNTIME

Génération en jeu

Le même principe peut évoluer vers des lots générés au runtime lorsque le budget de calcul, la certification et l’expérience utilisateur le permettent.

MULTI-GAME

Une techno, plusieurs familles

Les futures utilisations peuvent partager le socle sans révéler ni figer publiquement les prochains projets du studio.