De l’art de la compétition au Canada – Témoignage de W. Dumoulin

William Dumoulin, étudiant Ingénieur industriel, était en mobilité au Canada, où il a effectué un master en bi-diplomation avec l’ETS. Entre janvier et mars, il a participé à des qualifications pour une compétition de programmation. Il nous raconte son expérience avec passion.

 

En janvier, j’ai participé à des qualifications pour une compétition de programmation. J’ai participé pour le fun parce que ça me plait de résoudre des problèmes d’algorithmie et c’était l’occasion de mesurer mon niveau par rapport aux autres étudiants. J’ai été assez surpris de découvrir que j’avais un niveau correct en finissant 7e sur 26 et encore plus surpris d’apprendre que j’étais qualifié pour la compétition qui avait lieu mi-mars à Chicoutimi.

La qualification ne portait que sur un domaine mais la compétition couvre en grand nombre de compétences et chaque personne doit concourir dans 2 ou 3 catégories. Les miennes seront :

  • « Programmation à relais »,
  •  « Développement de jeu vidéo » et
  • « Dessin 3D sur Blender ».

Je maîtrise bien le langage Python et j’ai des bonnes bases en C++. Par contre, je n’ai jamais fait un vrai jeu vidéo et même si j’ai déjà fait du dessin 3D dans ma vie (en plus des cours à Pierrard), disons que j’ai installé Blender pour commencer à l’apprendre.

Je suis assez motivé à l’idée de participer à cette compétition mais ça ne m’arrange pas tellement de devoir ajouter 3 pratiques par semaine (une pour chaque catégorie) dans mon calendrier pour m’entraîner.

J’étais mitigé parce que cela ajoutait des activités dans mon planning déjà surchargé et je n’avais absolument pas le temps de m’entraîner pour avoir les compétences nécessaires. J’ai réussi à trouver 3h pour faire deux dessins sur Blender et j’ai pris 4h sur une soirée pour suivre un tutoriel complet et faire mon premier et dernier jeu sur Unity. Cela est assez peu et j’aurais aimé m’entrainé beaucoup plus.

10 écoles participaient à la compétition, la majorité de Montréal : ETS, UQAM, UDEM, Polytechnique, McGill, Concordia. Et d’autres en région : Sherbrook, UQAC, ULaval, Windsor (Ontario).

Chaque école amène une ou deux équipes de 7 à 10 personnes et chaque école présente son (ou ses) équipe(s) avec une vidéo de quelques minutes nommée « flashout ». Notre tournage avait pour but de nous présenter et voici le rendu :

https://www.youtube.com/watch?v=YBoEW5sfuns&feature=youtu.be&ab_channel=DCI%C3%89TS

Pour donner un peu de contexte à la vidéo, le thème de la compétition était « Atlantis » : « Suite à la pollution de l’air, la population va se cacher sous l’océan tandis que les plus riches prennent des fusées pour aller dans l’espace. » Nous sommes deux équipes : « AéronETS » qui partira dans les airs, et « SubwETS » qui ira dans un sous-marin. Avec par-dessus ça un style vestimentaire inspiré du steam punk.

Du côté de la compétition, elle se déroule dans l’UQAC, Université de Chicoutimi du vendredi 17 mars au dimanche 19 mars. On est logé dans un hôtel à 15 minutes de l’université et on passe la journée dans celle-ci. Toutes les épreuves se font par équipe donc chaque personne participe à 2 ou 3 épreuves, un changement de planning en dernière minute fait que j’ai participé à 4. En sachant qu’un de mes domaines prenaient deux créneaux. Ça fait de moi le seul de l’ETS à avoir participé tout le temps, 5 x 3h de compétition, c’était quand même intense.

Mes épreuves étaient :

  • Programmation à relais : 3 personnes sont séparées dans 3 pièces différentes. Un projet en C++, deux projets en Python. Après 1h, on change de salle sans croiser nos collègues et on reprend le projet d’un collègue, après encore une heure on change à nouveau pour travailler sur le troisième et dernier projet. La compétence principale qui est nécessaire est le fait d’écrire du beau code qui est facile à comprendre et à reprendre par le suivant.
  • Développement de jeu vidéo : 2 ou 3 personnes doivent ajouter des fonctions dans un jeu en 2D et un jeu en 3D. 6h de compétition pour faire ça.
  • Création d’actifs : 2 personnes pour créer un environnement et un personnage de notre imaginaire. 3h.
  • Sport : Tournoi de badminton en équipe de 2.

Les autres épreuves qui existaient :

Gaming, Extreme programming, CTF, Développement Web, Développement Mobile, Trivia, Debug/optimisation, Machine Learning et Emulateur.

C’est ma deuxième compétition avec l’ETS, la première était à Washington en juillet.
Je dois dire que l’esprit de compétition des équipes de l’ETS est vraiment fort. On participe à un club pour le plaisir, on va en compétition avec le sourire, mais on y va pour gagner. Les équipes sont soudées et solidaires. Les compétitions étaient de 9h à 18h. Il y avait différentes navettes qui nous amenaient sur le lieu de compétition, à 7h, 8h et 9h. Toute l’équipe était là à 6h45 pour prendre la navette de 7h, même ceux qui n’avaient pas de compétition le matin. De plus, on a une chemise de compétition que l’on porte pendant toute la durée de la compétition, ce qui nous démarque assez bien des autres équipes. Je dois quand même mentionner que les deux clubs avec lesquels j’ai concouru existent depuis 18 et 21 années, ils sont rôdés.

Tout le week-end s’est passé sans encombre. On a dormi un peu moins qu’on devrait, alors je me suis rattrapé en faisant au moins une sieste par jour… mais ça ne m’a pas tellement dérangé parce que c’était sur un temps assez court.

Je suis ressorti moyennement confiant de mes compétitions : je me disais qu’avec le peu d’entrainement que j’avais, si je visais top 5, c’était déjà très bien, sachant qu’il y avait 18 équipes.

Puis, le jour du banquet et de la remise des prix est arrivé. La seule compétition pour laquelle j’avais un espoir de faire podium était « Création d’actifs »… mais je n’étais pas dessus…

On n’a pas gagné le tournoi de badminton, pas de surprise de ce côté-là.

Pour la programmation à relais, j’ai rendu un code qui ne compilait pas. J’étais convaincu que c’était foutu. Puis le podium tombe, on n’est pas troisièmes, on est pas deuxièmes… On est premiers !!?!?!? Le flux d’émotions positives à ce moment-là a été assez intense. À deux doigts de verser des larmes. Il semblerait que, même si le code que j’ai rendu en C++ ne compilait pas, il y avait quand même des belles fonctions dedans et les deux autres scripts en Python fonctionnaient bien !

Du côté du développement de jeux vidéo, la compétition durait 6h et je m’étais intéressé uniquement au projet en 2D parce que je n’avais jamais fait de 3D. De ce côté-là, j’étais assez confiant sur le fait de monter sur le podium. Puis, encore une fois la tension monte quand on annonce le podium dans l’ordre décroissant. On n’est toujours pas troisièmes, pas deuxièmes non plus. Bon c’est foutu alors…

Et non, once more, on est premiers. Décidément, c’était une très bonne soirée.

Mes camarades ont aussi performé et l’ETS a eu 7 « top 1 », dont 6 pour mon équipe AéronETS, ce qui nous a propulsés en haut du podium et nous a fait gagner les CS Games 2023.

 J’ai ramené 2 « top 1 » sur les 7 de l’ETS. Depuis ce moment, je ne rêve que d’une chose : c’est de refaire de la compétition !

On est rentré de Chicoutimi le lendemain et on a pu aller récupérer nos heures de sommeils.

Depuis, la photo de notre victoire est dans le journal de l’école et on passe sur les télévisions de l’ETS car l’école est toujours fière quand un club ramène une coupe. 

J’ai enfin fini de raconter cette longue histoire, merci d’être allé jusqu’au bout de la lecture !

Actualités et agenda

Voir toutes les actualités