Programmeur Math 3D
Mise à niveau majeure (programmation Math3D)
Objectifs du mandat
L’objectif général de la consultation est la mise à niveau majeur de la bibliothèque de math3D. Développer des outils et procédures relatives à l’automatisation et la validation de la mise à jour.
A titre de programmeur math3D, effectuer les changements de code migration d’une version à une autre.
— Programmation scientifique d’une bibliotheque Math3D (mise à niveau)
EA Vancouver est un studio majeur du géant américain de jeux Electronic Arts (EA) qui possède de nombreux studios dans le monde entier.
Frostbite est une équipe centralisée, c’est le moteur de développement de jeux multiplateforme de pointe d’EA.
But: restructurer le moteur Frostbite pour permettre la dépréciation des anciennes bibliothèques Math3D qui sont toujours prises en charge dans le code.
Le projet consiste à nettoyer le code existant, à réécrire certains algorithmes, types mathématiques et à fusionner plusieurs versions (3 versions de la bibliothèque sont utilisées par les différents groupes). Il s’agit de convertir le type mathématique d’une API mathématique à un autre.
La bibliothèque mathématique est le cœur du jeu vidéo et est utilisée par tous les composants du jeu (Animation, rendu, physique, caméra, etc.).
Ce projet nécessite de solides compétences en mathématiques (algèbre linéaire) mais également de bonnes compétences en programmation, techniques C++ modernes et de la programmation mathématique 3D.
Processus
En raison de la grande quantité de code à analyser, la refactorisation serait impossible avec une méthode traditionnelle de recherche et de remplacement.
Automatisation mise à niveau se fait en deux parties: d’abord un ensemble de scripts Clang AST (traverse le code et effectue les modifications) et faire les modifications.
Deuxième étape (manuel) (plusieurs changements qui ne sont pas pris en compte par les scripts) nécessite une investigation approfondie du code et d’effectuer des modifications qui demandent des astuces mathématiques mais également une bonne connaissance en programmation C++ (metaprogramming, …).
Finalement, fixer des bugs (par exemple dépendances avec d’autres composantes, également types ou fonctions n’ont pas été modifiés, etc. ..), de réécrire certaines fonctions ou de les adapter, et quelque fois de modifier les scripts une conversion de type assez complexe est requise dans le script. La conversion, par exemple, des systèmes d’animation Frostbite d’une API mathématique à une autre n’est pas triviale.
A propos de
Frostbite est le moteur de développement de jeux multiplateforme de pointe d’EA. Frostbite propulse certains des jeux les plus époustouflants de l’industrie ainsi que des expériences de jeu approfondies
Jean Bélanger est un programmeur scientifique qui agit comme entrepreneur et consultant dans l’industrie informatique depuis 25 ans. Il est également responsable du développement de DamBreak++, un environnement de programmation visant à comprendre la physique via des techniques de modélisation modernes et en utilisant de nouveaux paradigmes de développement logiciel.
Laisser un commentaire
Rejoindre la discussion?N’hésitez pas à contribuer !