Qui suis-je ?

Éducation

  • Doctorant en informatique à l'université Paris-Saclay
  • Agrégé de mathématiques option informatique en 2014

Expérience

  • Président du concours d'informatique Prologin en 2012 & 2013
  • Président du jury du concours de jeux vidéo organisé par Tangente en 2014

Prologin, le concours national d'informatique

  • Gratuit et ouvert aux jeunes de 20 ans et moins
  • Organisé par des étudiants de l'EPITA, des ENS et de l'École polytechnique
  • La finale est une compétition d'intelligence artificielle
  • Chaque candidat doit programmer un champion qui joue à un jeu vidéo
  • Un tournoi détermine le palmarès
  • Une fille de 15 ans est arrivée 6e en 2012

Le prix Bernard-Novelli, par Tangente

  • Ouvert aux lycéens, notamment spécialité ISN
  • Chaque candidat doit programmer :
    • soit un jeu logique
    • soit un champion qui joue à un jeu logique
  • Klobo de Maxime Gourgoulhon (TS)

    Un dé se balade sur une grille et doit se frayer un chemin dans un labyrinthe

Objectifs

  • Présenter des exemples de géométrie de collège dans les jeux vidéo
  • Application à la construction d'un jeu de casse-briques
  • Initiatives liées à l'expérimentation par les élèves

Les jeux vidéo

95 % des jeunes de 10 à 14 ans jouent à des jeux vidéo

50 % des joueurs sont des filles

La France est le 2e producteur de jeux vidéo

Sources : L'Essentiel du jeu vidéo, Syndicat des éditeurs de logiciels de loisirs (octobre 2014) & Agence française pour le jeu vidéo

Divers types de jeux vidéo

Ceux dont je parlerai

  • Puzzles
  • Jeux de plate-forme
  • Jeux de tir

Ceux dont je ne parlerai pas

  • Sports
  • Stratégie
  • Simulation

Jeux vidéo

Univers

Commandes

Interaction

Univers

Diverses géométries

  • Dans quel univers les éléments du jeu évoluent-ils ?
  • Que se passe-t-il aux frontières ?
  • Quel est le point de vue du joueur ?

Commandes

Actions possibles

  • Comment contrôler le personnage du joueur ?
  • Quelles transformations peut effectuer le joueur ?
  • Qu'est-ce que le joueur peut faire ?

Interaction

Détection de collision

  • Comment se comporte le personnage du joueur face aux autres objets ?
  • Quelles sont les conditions de dégât ou de fin du jeu ?
  • Qu'est-ce que le joueur ne peut pas faire ?

Zelda

  • Univers : grille extensible, vue de haut
  • Contrôle : translation horizontale (← et →︎︎) et verticale (↑ et ↓)
  • Interaction : obstacles, projectiles, objets, tir

Super Mario

  • Univers : continu, vu de côté + translation horizontale (← et →)
  • Contrôle : translation horizontale et verticale (saut)
  • Interaction : sol, obstacles, projectiles, objets, saut

Détection de collision

Collision entre deux rectangles

À partir des coordonnées de deux rectangles $(x_{1a}, y_{1a}, x_{2a}, y_{2a})$
et $(x_{1b}, y_{1b}, x_{2b}, y_{2b})$, déterminer s'ils sont en collision.

Détection de collision

Collision entre deux rectangles

Première intuition

On regarde si l'un des coins d'un rectangle est inclus dans l'autre.











Détection de collision 1D

Collision entre deux segments

À partir des coordonnées de deux segments $(x_{1a}, x_{2a})$ et $(x_{1b}, x_{2b})$,
déterminer s'ils sont en collision.

Si $x_{2a} \leqslant x_{1b}$ ou $x_{2b} \leqslant x_{1a}$
      Il n'y a pas collision
Sinon
      Il y a collision

Détection de collision 2D

Collision entre deux rectangles

À partir des coordonnées de deux rectangles $(x_{1a}, y_{1a}, x_{2a}, y_{2a})$ et $(x_{1b}, y_{1b}, x_{2b}, y_{2b})$,
déterminer s'ils sont en collision.

Si $x_{2a} \leqslant x_{1b}$ ou $x_{2b} \leqslant x_{1a}$
ou $y_{2a} \leqslant y_{1b}$ ou $y_{2b} \leqslant y_{1a}$
      Il n'y a pas collision
Sinon
      Il y a collision

Détection de collision 3D

Collision entre deux parallélépipèdes

À partir des coordonnées de deux parallélépipèdes $(x_{1a}, y_{1a}, z_{1a}, x_{2a}, y_{2a}, z_{2a})$ et $(x_{1b}, y_{1b}, z_{1b}, x_{2b}, y_{2b}, z_{2b})$,
déterminer s'ils sont en collision.

Si $x_{2a} \leqslant x_{1b}$ ou $x_{2b} \leqslant x_{1a}$
ou $y_{2a} \leqslant y_{1b}$ ou $y_{2b} \leqslant y_{1a}$
ou $z_{2a} \leqslant z_{1b}$ ou $z_{2b} \leqslant z_{1a}$
      Il n'y a pas collision
Sinon
      Il y a collision

Tetris

  • Univers : grille unique, délimitée, vue de côté
  • Contrôle : translation horizontale (← et →) et verticale (↓), rotation ± 90°
  • Interaction : murs, autres pièces

Snake

  • Univers : grille en tore bidimensionnel, vu de haut
  • Contrôle : rotation ± 90°
  • Interaction : objets, serpent lui-même

Asteroids

  • Univers : tore bidimensionnel, vu de haut
  • Contrôle : translation vers l'avant et rotation quelconque
  • Interaction : projectiles, astéroïdes

Bomberman

  • Univers : grille unique, délimitée, vue de haut
  • Contrôle : translation horizontale et verticale
  • Interaction : projectiles, astéroïdes

Détection de collision

La propagation du feu dans Bomberman

Première intuition

On regarde si Bomberman se trouve dans l'une de ces cases :

  • $(x + k, y)$ pour $k \in \{-2, -1, 0, 1, 2\}$
  • $(x, y + k)$ pour $k \in \{-2, -1, 0, 1, 2\}$






Détection de collision

Exemple : la propagation du feu dans Bomberman

Un autre cas

Détection de collision

Un algorithme pour la propagation du feu dans Bomberman

Pour tout $(dx, dy)$ parmi $\{(-1, 0), (0, 1), (1, 0), (0, -1)\}$ faire
    $c \gets 0$
    Tant que $c <$ PUISSANCE_DU_FEU et $(x + dx, y + dy)$ est dans la grille faire
        $x \gets x + dx$
        $y \gets y + dy$
        $c \gets c + 1$
        Si $(x, y)$ contient un joueur alors
            Le joueur meurt
        Si $(x, y)$ contient un obstacle alors
            Si l'obstacle est inflammable alors
                L'obstacle disparaît
            Arrêter la boucle Tant que

Warsow (jeu de tir)

  • Univers : 3D
  • Contrôle : avancer, reculer, rotation quelconque
  • Interaction : projectiles, murs, ennemis, objets

Lancer de rayons

  • Trop coûteux d'afficher tout ; seulement ce qui est censé être vu
  • Lancer de rayons depuis l'œil ; seuls les éléments touchés sont traités

Portal

  • Univers : 3D + portails
  • Contrôle : avancer, reculer, rotation quelconque + 2 portails
  • Interaction : projectiles, murs, ennemis, objets + portails

Portal

L'énergie est conservée après téléportation

Portal

Jeux de miroirs

Le jeu de casse-briques

Application

Expérimentation par les élèves : code.org/frozen

Expérimentation par les élèves : code.org/frozen

Expérimentation par les élèves : code.org/frozen

Expérimentation par les élèves : code.org/frozen

Castor informatique : de la 6e à la terminale

Castor informatique : de la 6e à la terminale

Pour moi, coder est comme un superpouvoir car je peux créer quelque chose par moi-même.
Grace Gu
Bibliothèque du comté de Mercer

Merci de votre attention !

Cette présentation est sur http://jill-jenn.net/conferences/

Vous pouvez me contacter à jjv@lri.fr