Source: https://perso.citi-lab.fr/nstouls/Enseignements/M2RTS/1-Intro.pdf