Introduction à la Demoscene
Par Jérôme GUINOT aka 'JeGX' - The oZone3D Team
jegx [at] ozone3d [dot] net
Version initiale: 30 Septembre 2005
Dernière mise à jour: 03 Janvier 2006
"Sin/Cosine are the humble bricks with which one can build cathedrals, as long as there is enough patience and imagination!"
Navis - Andromeda Software Development
Demo, demoscene, demomaker, demoparty... Tous ces mots sont synonymes de passion, de sacrifice, de nuits blanches (je parle de celles
où l'on voit soudainement, à une heure qui n'en est plus vraiment une, un voile blanc, une sorte de glow sorti d'un rendu hdr, qui se
pose sur la rétine et qui nous dit: vas te coucher, ça ne sert plus à rien...), de dépendance physique vis-à-vis du code, des gfx ou de
la zik, et enfin de paix retrouvée lorsque la prod est là!
Enfin voilà, après cette petite intro qui résume assez bien l'ambiance, je vais essayer de vous présenter un peu ce monde de
passionné(e)s des techniques multimédias et plus particulièrement des démos, terme ayant une signification précise dans cet univers extrême.
ASD - Planet Risk
Tout d'abord clarifions le vocabulaire. La
demoscene est le terme général pour qualifier la scène demo.
Une
demo peut être considérée comme une sorte de clip-video multimédia. Mais, à la différence d'une vidéo, chaque
image (ou frame) d'une demo est générée en temps réel par de la programmation et de l'algorithme! Une demo est un dosage entre
de la programmation (C++ ou autre), des graphismes 2D/3D et de la musique. C'est d'ailleurs la musique qui impose le tempo de la demo!
Petit détail mais qui a son importance: une démo est un programme graphique non-interactif: vous ne pouvez que la contempler...
Un
demomaker est une personne (seule ou faisant partie d'un group - le demogroup) qui participe à la création d'une demo. Les demomakers sont classifiés en 3 catégories.
La première est celle des
coders. Ces êtres étranges sont responsables du codage de la demo, généralement un mélange de C++ / OpenGL / Direct3D.
La seconde catégorie est celle des
graphistes 2D/3D, responsables de la création des médias visuels (textures, modèles 3D). Mais attention,
ces graphistes ont des contraintes liées à la 3D temps réel (textures dans une certaine résolution ou modèles 3D devant respecter des
critères de nombre de polygones, matériaux, textures...) ce qui complique leur travail. Enfin la troisième catégorie est celle des
musiciens,
ceux-là mêmes qui composent les bandes son des demos.
Une
demoparty est un événement réunissant des demomakers et groupes de demos, qui se déroule dans des endroits permettant de
rassembler plusieurs centaines voire milliers (pour les plus importantes demoparties) de passioné(e)s. Ces endroits peuvent être, par exemple,
des gymnases ou salles de fêtes. Parmis les demoparties les plus importantes, on peut citer l'Assembly (Finlande - temple de la demo) qui
rassemble chaque année plusieurs milliers de personnes!
Une demoparty comporte plusieurs types de challenges: 3D temps réel, musique, gfx, tuning/overclocking (il m'a semblé avoir vu à ce sujet
un résultat de + de 14000 points au 3DMark05 lors de l'Assembly 05), wild et d'autres encore dont l'énumération serait inutile et fastidieuse.
Pour ce qui nous interesse, les contests de prog realtime sont répartis en:
- Intro 256: le code exécutable de la demo et ses données tiennent en 256 octets. 100% assembleur!
- Intro 4k: le code exécutable de la demo et ses données tiennent en 4 ko. C/C++ ou assembleur!
- Intro 64k: le code exécutable de la demo et ses données tiennent en 64 ko. C/C++ ou assembleur!
- Demo: la discipline reine. C'est la super production. Il n'y a pas de taille stricte, celle-ci dépendant des demoparties. En moyenne, la taille d'une demo
se situe autour des 10Mo (exe+media).
Voici des liens sur quelques sites de demoparties actives:
Et voici 2 liens intéressants pour compléter ce que je viens de dire:
La première chose à faire pour essayer de comprendre la demoscene est simplement de regarder des demos. Tout d'abord, assurez-vous
que votre machine soit opérationnelle (carte graphique 3D et drivers correctement installés afin d'exploiter OpenGL ou Direct3D). Une fois que c'est ok,
dirigez-vous sur un des sites suivants afin de vous mettre au parfum des dernières actus de la demoscene et surtout d'y télécharger les productions
des dernières demoparties:
Si vous disposez d'une config musclée, alors offrez-vous un spectacle grandiose en regardant les demos du
groupe Andromeda Software Development (
asd.demoscene.gr). Ces prods (Planet Risk ou la toute
dernière Iconoclast - première à l'Assembly05) sont vraiment impressionnantes par leur contenu, surtout si l'on pense que c'est codé en C++ sans pratiquement
l'aide d'aucun logiciel... Ce type de demo place la barre très très haut. Mais en la regardant (pour ceux qui peuvent...) on commence à saisir
la folie créatrice qui règne dans les boîtes craniènnes des demomakers.
ASD - IconoclastUn autre moyen pour regarder facilement un max de démos est de se brancher sur
demoscene.tv. Pour cela il vous
faut le lecteur multimédia
Winamp et le fichier
demoscene_tv_listen.pls
(vous pouvez le downloader à la fin de la page) qui permet la lecture en streaming. Vous chargez ce fichier dans Winamp et vous avez
en continu un flux de démos et intros avec toutes les infos sur les auteurs. Vraiment sympa!
Voici une sélection des sites de quelques demogroups:
Si l'envie de coder votre première demo vous assaillit, il y a plusieurs façons de vous y prendre:
- Vous savez coder en C++. Allez trainer sur les sites de programmation 3D et glaner un maximum de tutoriaux sur la façon de coder des petits
effets en OpenGL ou Direct3D. Un excellent point de départ se situe sur ce site même: OpenGL / Direct3D Tutorials.
Une fois que vous avez les quelques bases de prog 3D, essayez de trouver des codes sources de demos (pas évident à trouver mais certains groupes généreux releasent de temps à autres
les sources complètes de tout leur arsenal) et analysez-les. Ils sont une source inépuisable pour apprendre les techniques de programmation des demos.
- Vous n'êtes absolument pas un gourou du C++: une seule solution: Demoniak3D. La demo suivante Suffocate SB01
a été codée en moins d'une journée. Je vous laisse imaginer ce que vous pouvez arriver à faire avec quelques jours de travail.
Downloads
| Demoscene.tv Winamp stream |