Les "démos" (Programmation, pas les jeux!)

Catégorie: Informatique

chronique image

Autres articles de ce chroniqueur

chronique image 01 octobre 2011Internet 101
chronique image 12 juillet 2011Google+
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: http://en.wikipedia.org/wiki/Demo_(computer_programming)'> 19 novembre 2010

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: http://pouet.net/prod.php?which=52938

Video: http://www.youtube.com/watch?v=I5CTFMuFvb0

Animation complète générée en 64ko:

Programme: http://conspiracy.hu/release/64k/chaos_theory/

Video: http://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: http://en.wikipedia.org/wiki/Demo_(computer_programming)