L'adaptateur traduit clavier et manette en actions SEQUA (PlayerInput) ; le Core ne recoit et n'enregistre que ces actions, le rejeu reste exact. - SEQUA 3D : PlayerInput, poll_input(), capacite player_input (interface des adaptateurs en version 2) - protocole Core - rendu 0.2 : render/input, envoye quand les actions changent ; entree remise au neutre si le rendu disparait - Godot : InputMap du projet (ZQSD, fleches, espace, manette) ou script SequaInput.sequa_player_input() pour une correspondance avancee ; entree neutre sans focus ; exemple examples/sequa_input.gd - adaptateur debug : entrees scriptees par numero d'image - Studio : ligne "Entrees du joueur" du panneau Rendu
3.2 KiB
SEQUA 3D
SEQUA Engine en bref
SEQUA : Simulate Environments, Quantify Uncertainty, Adapt. SEQUA Engine est un environnement de création et d'exécution de mondes virtuels, d'abord pour le jeu vidéo, où l'auteur dirige un monde par l'intention, le ressenti et les règles plutôt que par des paramètres. Il est composé de quatre couches : Studio (outil de création web), Core (source de vérité), SEQUA 3D (seule porte vers un moteur 3D) et des moteurs 3D interchangeables (Godot, puis Unreal, puis un moteur maison).
Référence : docs/SEQUA_Engine_resume_complet_v2.md
Rôle de SEQUA 3D dans l'engine
SEQUA 3D est la couche d'interface 3D, propriété de SEQUA. C'est par elle, et par elle seule, que SEQUA parle à un moteur 3D (§7). Elle contient :
- le contrat de données (
NeuralFrameContext, état du monde, commandes, mesures, §5.6) ; - la synchronisation à sens unique du projet SEQUA vers le moteur ;
- la négociation des capacités : chaque moteur déclare ce qu'il sait produire (profondeur, normales, identifiants d'objets…) ;
- l'interface
I3DEngineAdapterque chaque moteur implémente ; - la traduction des mesures (temps, VRAM, confiance) vers un format commun.
Elle n'expose aucun concept propre à un moteur (nœuds Godot, acteurs Unreal). Les adaptateurs vivent dans engines/ (ADR 0007).
État
Phase 0. Bibliothèque sequa::3d (include/sequa/3d/, espace de noms sequa::three_d) :
| Élément | Fichier | Rôle |
|---|---|---|
I3DEngineAdapter, EngineConfig, validate_request |
adapter.hpp |
Interface que chaque moteur implémente : capacités, démarrage, deltas de scène, images, entrées du joueur |
FrameBuffer, BufferSet, EngineCapabilities, negotiate |
capabilities.hpp |
Négociation des capacités : tampons accordés et manquants |
SceneDelta, SceneCommand, SceneState |
scene.hpp |
Synchronisation à sens unique, versions croissantes, tout ou rien, snapshot pour (re)démarrer un moteur |
FrameRequest, FrameResult, FrameMeasurements |
frame.hpp |
Demande d'image et mesures dans un format commun |
PlayerInput, quantize_axis |
input.hpp |
Entrées du joueur déjà traduites en actions par l'adaptateur (poll_input, ADR 0011) |
NullEngineAdapter |
null_adapter.hpp |
SIMULÉ : adaptateur sans moteur, pour les tests et comme référence de comportement |
PROVISOIRE : types C++ écrits à la main, en attendant le format du contrat (Protobuf ou FlatBuffers, voir schema/). Les tampons GPU eux-mêmes n'y sont pas encore : ils arriveront après le prototype d'échange GPU entre rendu et inférence (§5.6). Les visuels se limitent pour l'instant à des primitives.
Construire
Construite avec le reste du dépôt : voir core/README.md.
Licences
- SEQUA 3D : MPL 2.0.
- Aucune dépendance externe pour l'instant.
- Les adaptateurs vers des moteurs propriétaires (Unreal) n'entrent que comme plugins facultatifs, l'adaptateur seul étant ouvert (§10.2).