Un clone de Doom propulsé par du SQL : exploitation de DuckDB-WASM pour le rendu 3D

2025-04-22
Un clone de Doom propulsé par du SQL : exploitation de DuckDB-WASM pour le rendu 3D

Ce projet explore l’utilisation non conventionnelle de DuckDB-WASM, une base de données analytique fonctionnant dans le navigateur, pour construire un moteur de jeu 3D rudimentaire. L’auteur a créé un clone textuel de Doom où l’état du jeu, incluant la carte, la position du joueur et les ennemis, est stocké dans des tables DuckDB. La logique du jeu et le rendu sont gérés à l’aide de requêtes SQL, réalisant de manière surprenante le raycasting et le rendu de scènes 3D grâce à des CTE récursives. JavaScript sert d’orchestrateur, gérant les entrées, la boucle de jeu et le rendu des sprites. Le processus a nécessité de surmonter des défis liés au chargement de WASM, aux nuances du dialecte SQL, aux problèmes de planificateur de requêtes et aux conditions de concurrence asynchrones. Le jeu résultant atteint 6-7 FPS, démontrant la puissance surprenante du SQL pour des tâches non conventionnelles et les performances impressionnantes de DuckDB-WASM.

Développement moteur de jeu SQL