Menu

Compétence : Data oriented programming

Concevoir des architectures logicielles performantes en mobilisant des approches orientées données (Data-Oriented Programming, Entity Component System) ou des patterns non orientés objet (table-driven design, CPS, etc.), en vue d'optimiser l'organisation du code, la gestion mémoire et l'exécution parallèle dans des environnements bas niveau.

Niveaux dans la compétence

1 - Identifier les principes fondamentaux des architectures orientées données ou non orientées objet. Exemple : expliquer la différence entre une architecture orientée objet et une architecture type ECS ou data-driven.,2 - Appliquer une architecture orientée données ou non-objet dans un cas simple. Exemple : structurer un système de composants (position, vitesse) mis à jour par un système unique sur un ensemble d'entités.,3 - Adapter une structure logicielle existante pour intégrer un modèle orienté données. Exemple : convertir une classe orientée objet en structure de données plate pour améliorer la localité mémoire.,4 - Concevoir un sous-système complet basé sur une approche ECS ou data-driven. Exemple : implémenter un gestionnaire d'animation ou de physique via une architecture ECS en exploitant des structures SoA.,5 - Reconfigurer un sous-système existant vers une architecture orientée données pour résoudre des limites de performance ou de scalabilité. Exemple : transformer un système de navigation orienté objet en architecture ECS pour permettre un traitement massivement parallèle des entités.,6 - Développer et promouvoir de nouvelles approches d'architecture logicielle orientée données adaptées aux enjeux du moteur temps réel, influençant les pratiques du secteur. Exemple : proposer une méthodologie avancée d'ECS adaptée aux contraintes multi-plateformes AAA, publiée comme référence ouverte et adoptée par d'autres studios.

Activités associées

Conception de l'architecture logicielleConception de l'architecture logicielle
Développement des briques moteurDéveloppement des briques moteur
Maintenance et évolutions du moteurMaintenance et évolutions du moteur
Optimisation des performances Engine et debuggingOptimisation des performances Engine et debugging
Veille technologique ciblée engineVeille technologique ciblée engine

Métiers associés

Engine ProgrammerEngine Programmer