Les "démos" (Programmation, pas les jeux!)
Catégorie: Informatique
La plupart des initiés à l'informatique savent ce que sont des "démos" de programmes ou de jeux vidéos, mais l'article suivant traite d'une autre sorte de "démo".
En informatique, plus précisément dans le domaine de la science informatique, une pratique limitée à quelques experts de la programmation procédurale consiste à créer le plus de contenu avec le moins d'information possible. Cela se traduit en un passe-temps pour plusieurs d'entre eux. Le but des créateurs de "démos" consiste à créer des animations ou des jeux vidéos complets en seulement quelques kilo-octets de données (pour référence, une photo d'une caméra moderne ou une chanson au format mp3 fait environ 2 à 5 milliers de kilo-octets).
Avant d'aller d'expliquer brièvement comment cela fonctionne, voici quelques exemples de "demos" impressionnants:
Animation complète générée en 4ko:
Programme: https://pouet.net/prod.php?which=52938
Video: https://www.youtube.com/watch?v=I5CTFMuFvb0
Animation complète générée en 64ko:
Programme: https://conspiracy.hu/release/64k/chaos_theory/
Video: https://www.youtube.com/watch?v=ZfuierUvx1A
Comment est-ce possible? C'est la magie de la programmation procédurale qui consiste à modéliser l'information (modèles 3d, textures, sons, mouvements des caméras, etc.) en formules mathématiques et/ou procédures informatiques plutôt qu'en données brutes. Par exemple, prenez la suite 0,2,4,6,8,10,12,... jusqu'à 100000. Il y a deux façon d'afficher cette liste sur un ordinateur:
1. Donner la liste des nombres à l'ordinateur et lui demander de l'afficher (peu efficace en mémoire, mais très rapide en exécution)
2. Donner une formule informatique qui dira à l'ordinateur de boucler à chaque multiples de 2 jusqu'à 100000 (de i = 0 jusqu'à i > 50000) {afficher 2i}. Cette formule prend beaucoup moins de mémoire, mais elle doit être traitée.
Si vous appliquez le même genre de raisonnement (mais plus complexe, beaucoup plus complexe) à des animations 3d, vous comprendrez qu'il est possible d'économiser beaucoup d'espace mémoire, au dépens des capacité de traitement.
Source: https://en.wikipedia.org/wiki/Demo_(computer_programming)