Depuis l’avènement de l’informatique grand public, à la fin des années 80, bon nombre d’enfants de cette période se sont essayé à la programmation. Il faut dire que les micro-ordinateurs n’étaient pas aussi évolués que nos PC modernes. Souvent basés sur un langage texte, lancer un simple jeu nécessitait de connaitre quelques lignes de commande. Un fonctionnement qui a fait naître quelques passions. Je fais partie de cette génération pour qui la compréhension de l’informatique était essentielle. On ne pouvait pas se servir de l’outil informatique, sans en connaitre les rouages. Une éducation « forcée » qui a amené une poignée de geeks à donner naissance à la Demoscene.

Asembly Demo Party 2002
En 2002, l’Asembly Demo Party rassemblait de très nombreux développeurs. Le but était de proposer des démos techniques pour repousser les limites des machines.

Qu’est-ce que la Demoscene ?

« Repousser les limites techniques des machines » est probablement le meilleur moyen de présenter la Demoscene. Une communauté de développeurs et de hackeurs passionnés, capables de produire des programmes exploitant le plein potentiel des ordinateurs. C’est précisément au début des années 2000 qu’elle est le plus active. L’arrivée de l’Internet et des PC dans les foyers, à cette époque, a grandement favorisé la création de ce genre de communautés qui pouvait se rassembler autour de forums et de tchats. Une mise en commun des savoirs qui a permis la naissance de démos très impressionnantes. Des petits programmes dont le seul but était de montrer que l’on pouvait aller plus loin avec le hardware disponible.

La Demoscene a toujours été très proche de la communauté gaming. Il n’était pas rare que les technologies de programmations découvertes par ces personnes, se retrouvaient dans des jeux vidéo. Je me souviens, par exemple, de ces jeux sur Amstrad CPC qui utilisait le plein écran. Une chose techniquement impossible puisque le processeur imposait une plus faible résolution et une bordure tout autour de l’image. Cette petite prouesse avait été rendue possible par une pirouette de programmation que je serais bien incapable de vous expliquer aujourd’hui. Toujours est-il que le Demoscene a joué un rôle très important pour l’industrie du gaming et a ouvert de nombreuses portes.

.kkrieger : un jeu vidéo en FPS qui pèse seulement 96 ko !
Malgré ses 96 ko, .kkrieger offre de beaux graphismes et un gameplay qui fonctionne parfaitement.

.kkrieger : le jeu qui a secoué toute la communauté gaming

Issu de cette scène mythique, le développeur/éditeur .theprodukkt présente, à la Demoparty Breakpoint de 2004, un jeu exceptionnel. Si ses graphismes n’impressionnent plus trop aujourd’hui, il était tout à fait au niveau d’un Quake ou d’un Unreal Tournament qui faisaient un carton, durant cette période. Le jeu .kkrieger avait la particularité de peser seulement 96 ko. Pour comparaison, une simple photo jpeg en HD pèse largement plus de 100 ko, par exemple. Autant dire que pour faire tenir un jeu vidéo avec si peu de données, c’est un véritable exploit technique.

.kkrieger est un jeu développé en C++ qui utilise les API de DirectX, combinant des fonctionnalités bas niveau et haut niveau pour l’allocation de mémoire, la génération de textures, le graphe de scène et la gestion des composants du monde. Le choix du C++ permet à .theprodukkt d’écrire un code très compact. Sur le plan technique, le titre se distingue par la génération procédurale de graphismes, notamment de textures, permettant d’offrir un contenu graphique riche dans une taille de fichier très réduite. L’utilisation de techniques avancées, telles que la compression de l’exécutable avec kkrunchy, fait de .kkrieger une réalisation impressionnante d’un point de vue technologique. Le jeu explore également la possibilité d’appliquer ses techniques, comme la génération procédurale, dans d’autres contextes, suggérant des pistes comme le streaming de modèles 3D et l’optimisation de la bande passante.

Des technologies avant-gardistes dans .kkrieger

Aujourd’hui, la génération procédurale fait partie de notre quotidien. Difficile de ne pas évoquer Minecraft ou mon chouchou du moment qu’est No Man’s Sky. Bien que .kkrieger ne soit pas exactement à l’origine de ces jeux, d’une certaine manière, il a participé à apporter de nouvelles technologies de développement, tout en optimisant le code pour un rendu efficace. Le streaming de modèles 3D est aussi quelque chose qui est très utilisé dans le jeu vidéo moderne, notamment dans les open worlds comme GTA. Les experts du sujet ne m’en tiendront pas rigueur, mais grosso-modo, le système permet de charger en temps réel ce qui est affiché à l’écran.

À l’époque, la plupart des FPS devaient charger l’ensemble de la map et mettaient à rude épreuve les cartes graphiques balbutiantes. Malgré tout, au moment de sa sortie, .kkrieger demandait une configuration assez solide pour le faire tourner. Ses 96 ko permettaient d’afficher un jeu crédible et aligné aux standards de son époque. De quoi impressionner toute la communauté gaming qui avait du mal à saisir comment tout cela était possible. Encore aujourd’hui, cela reste une vraie prouesse et 20 ans après sa sortie, .kkrieger arrive à nous couper le souffle.

Loin de moi l’idée de vous expliquer en détail comment tout cela a été rendu possible, mais la vidéo de Nostalgia Nerd le fait très bien. Il s’attarde sur de nombreuses techniques de développement utilisées dans .kkrieger et c’est passionnant. Si vous parlez la langue d’Ariana Grande, c’est un petit reportage très intéressant. .kkrieger est un freeware que vous pouvez télécharger ci-dessous et partager comme bon vous semble tant que vous ne modifiez pas l’archive d’origine.

Télécharger le jeu .kkrieger