IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Ubisoft met une IA au service des développeurs de jeux pour prédire les bogues
Et en identifier les causes potentielles

Le , par Stéphane le calme

513PARTAGES

10  0 
Ubisoft, le studio français de développement, d'édition et de distribution de jeux vidéo, a présenté un nouvel outil lors de la conférence Ubisoft des développeurs (UDC) à Montréal. Comme son nom le suggère, Dubbed Commit Assistant a pour objectif d’aider les développeurs à identifier les bogues lors du « commit », la phase pendant laquelle un développeur publie son code à l’ensemble de l’équipe. Pour ce faire, l’outil s’appuie sur l’intelligence artificielle.

« Je pense que comme beaucoup de bonnes idées, on se demande : comment se fait-il que nous n’y avions pas pensé avant ? », explique Yves Jacquier, qui dirige La Forge, la division R&D d’Ubisoft à Montréal. Son département travaille en partenariat avec des universités locales, dont McGill et Concordia. Afin de collaborer sur des recherches visant à faire progresser le domaine de l’intelligence artificielle dans son ensemble, et pas seulement dans l’industrie des jeux vidéo.

La Forge a fourni au « Commit Assistant » une dizaine d’années de code à travers la bibliothèque de logiciels d’Ubisoft. Permettant ainsi d’apprendre où les erreurs ont été historiquement faites, de référencer les corrections appliquées et de prédire quand un développeur pourrait écrire un bogue similaire. « Il s’agit de comparer les lignes de code que nous avons créées dans le passé, les bogues qui y ont été créés et les bogues qui ont été corrigés. Et de trouver un moyen de créer des liens entre eux pour fournir une super-IA pour les développeurs », explique Jacquier.

Les joueurs s'attendent à ce que les jeux vidéo publiés par les grands éditeurs comme Ubisoft soient exempts de bogues. Cependant, éliminer tous les bogues de ces produits peut être laborieux et prendre beaucoup de temps. Une aide supplémentaire n’est donc pas superflue.


Yves Jacquier

Dans la vidéo de présentation, la voix avance :

« Les bogues et les régressions peuvent créer un ralentissement significatif dans un flux de travail complexe. Alors les éliminer aussi vite que possible est devenu une activité critique, car il peut arriver qu’ils absorbent jusqu’à 70 % des coûts de développement. Alors, imaginez être en mesure de prédire et de prévenir les bogues et les régressions avant qu’ils ne deviennent un problème. C’est ici qu’intervient Commit Assistant.

« S’appuyant sur les dernières techniques de machine learning et de big data, nous pouvons analyser tous les bogues et régressions passés et, pour chacun d’eux, déduire une signature unique. Ainsi, quand votre contribution de code est présentée à notre Commit Assistant, s’il trouve une correspondance dans l’une de ces signatures, il se focalise dessus et donne une estimation sur la probabilité que telle portion de code contienne un bogue.

« Commit Assistant va donc lancer une alerte qui est capable de se déclencher sur six bogues sur dix. Il y a tout de même 30 % de faux positifs. Néanmoins, tandis que de nouveaux bogues sont ajoutés, notre Commit Assistant va créer de nouvelles signatures, réduisant ainsi le taux de faux positif. »


Mais ce n’est pas tout. Commit Assistant va plus loin qu’une simple identification de bogues : « Il applique des techniques renforcées de machine learning pour extraire les causes les plus probables d’un problème spécifique puis suggère aux développeurs des corrections et des améliorations pour des résolutions rapides. »

Selon Yves Jacquier, l'IA pourrait permettre aux développeurs de gagner 20 % de leur temps.

Source : Wired

Et vous ?

Que pensez-vous de cette idée ?

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Vulcania
Membre éclairé https://www.developpez.com
Le 06/03/2018 à 7:36
Moi aussi j'ai fait une IA pour éviter aux devs de faire trop bugs :

Code : Sélectionner tout
printf("Faites des deadlines réalistes");
10  1 
Avatar de dancingmad
Membre confirmé https://www.developpez.com
Le 06/03/2018 à 11:58
Citation Envoyé par earhater Voir le message
Il est vrai que le vrai visage de l'industrie du jeu vidéo se dévoile de plus en plus en ce moment et que c'est un secteur où il ne fait vraiment pas bon de travailler ... Sur de la production intellectuelle, un environnement sain permet de réduire une grosse partie des erreurs. Et je plussoie mon VDD sur les deadlines (mais ça c'est valide pour n'importe quel secteur)
On parle de plus en plus des horreurs qui peuvent se passer dans certains studios de jeux (et ça fait avancer les choses positivement) mais crois-moi il existe plein de boîtes qui sont très bien !

Disclaimer: je bosse chez Ubi mais pas sur Assassin, donc je sais pas comment ça se passe là-bas, mais je peux te dire que l'équipe dans laquelle je suis est super agréable, le projet sympa et même s'il y a des problèmes de prod et des périodes de crunch on est très loin de ce qu'on entend dans certains studios.
2  0 
Avatar de LittleWhite
Responsable 2D/3D/Jeux https://www.developpez.com
Le 06/03/2018 à 22:26
Bonjour,

@dancingmad : Allez-vous avoir accès à cet outil ?

J'ai du mal à voir comment l'« IA » peut fonctionner. Ce n'est pas le problème avec la théorie des réseaux neuronaux ou autre, mais plus de comment elle arrive à trouver les bogues et surtout, quels types de bogues. Sachant qu'il y a la programmation pure du coeur du jeu (et encore, je doute que l'on recode les classes et formules liées aux vecteurs/matrices ou encore le coeur du moteur de rendu tous les matins), ou la programmation plus orientée gameplay.
Et, en partant sur les extrêmes, je me dis que l' « IA » peut considérer un nouveau gameplay comme un bogue.
[TROLL]
Mais ça ne gêne pas, dans un studio qui chaque année ressors un nouvel opus d'une franchise (soit, avec peu de différence de gameplay avec le précédent) .
[/TROLL]

Finalement, si avec dix ans de code, il reste 20 % de faux positifs (et combien de bogues va t-elle laisser passer ?), c'est qu'il n'y a pas assez d'input dans le constitution du modèle de l'IA. Mais dix ans de code, pour Ubisoft, c'est absolument énorme. Faudra t-il 10 ans de plus pour avoir un système bien plus fiable ? Les faux positifs ne font t-ils pas aussi perdre du temps à l'époque ?
Que se passe t-il lorsque l'IA considère un code bogué ? L'auteur doit t-il le relire, le modifier et le commiter à nouveau ? Y a t-il un moyen de forcer le commit de son code après relecture ?
2  0 
Avatar de earhater
Membre éprouvé https://www.developpez.com
Le 06/03/2018 à 10:26
Il est vrai que le vrai visage de l'industrie du jeu vidéo se dévoile de plus en plus en ce moment et que c'est un secteur où il ne fait vraiment pas bon de travailler ... Sur de la production intellectuelle, un environnement sain permet de réduire une grosse partie des erreurs. Et je plussoie mon VDD sur les deadlines (mais ça c'est valide pour n'importe quel secteur)
2  1 
Avatar de dancingmad
Membre confirmé https://www.developpez.com
Le 07/03/2018 à 17:27
Théoriquement oui, mais comme c'est un gros outil à mettre en place ça risque de mettre un peu de temps à arriver.

Il faut voir ça comme un analyseur statique de code amélioré. Au moment de commit son code, l'outil se lance et va analyser les changements faits, essayer de comprendre la sémantique et évaluer le risque.

Par exemple, si j'écris:
Code : Sélectionner tout
printf("Hello %d", "World");
N'importe quel outil d'analyse statique est aujourd'hui capable de voir qu'il y a une erreur, parce que quelque part un codeur a rentré la règle que dans un printf, le symbole %d soit être suivi d'un entier et pas d'une chaîne de caractère. Dans le cas de l'outil fourni par Ubisoft, ces règles peuvent être inférées directement à partir de l'historique même du projet, en comparant les commits qui ont provoqués des erreurs et ceux qui en ont corrigés. Pour que ça marche bien, il faut évidement brancher tout ça sur l'historique Perforce/SVN/Git/etc du projet et sur la base de bugs.

Le but au final c'est qu'au moment de submiter son code, l'outil fasse lève un avertissement pour prévenir le programmeur que quelque chose n'est pas net (dans notre exemple on peut s'attendre à un erreur du genre '"warning: mismatch between string format '%d' and provided argument (char*). Do you mean '%s'?".
1  0 
Avatar de SofEvans
Membre émérite https://www.developpez.com
Le 06/03/2018 à 11:09
Citation Envoyé par Vulcania Voir le message
Moi aussi j'ai fait une IA pour éviter aux devs de faire trop bugs :

Code : Sélectionner tout
printf("Faites des deadlines réalistes");
Le tout petit petit problème, c'est que plus tu laisses de temps à quelqu'un pour faire une tâche, plus la tâche prendra du temps.
Attention, je ne dis pas que les deadlines wtf ça n'existe pas, je dis juste que la limite entre "la deadline est impossible à tenir" et "j'ai 3 mois pour faire ça ? Cool, j'ai tout le temps, je m'y mets demain", et bien elle est assez flou.
0  0