Le jeu de la vie est un drôle de jeu qui a la particularité de n’avoir pas de joueur. Il se joue de lui-même et produit des configurations qui semblent évoluer de manière autonome, sans intervention extérieure. A partir de règles très basiques, des structures d’une très grande complexité peuvent émerger d’une manière qui évoque l’apparition de la vie sur Terre à partir d’éléments inertes, d’où le nom mystérieux de jeu de la vie.

Comme ce jeu se joue idéalement sur des plateaux sans limite de taille, la question des performances de l’implémentation est capitale. Pour du développement web, cet exemple permet à la fois de voir les limites de JavaScript pour effectuer un grand nombre de calculs et de présenter une solution complémentaire à la réduction de la complexité algorithmique : une implémentation en WebAssembly qui permet de déléguer la charge de calcul à un langage compilé plus performant, Rust.

Par Théo Gianella