Cela fait un bon moment que je me tâte pour cet article car le sujet est assez technique, mais essayons de faire ça correctement. Pour des explications plus précises et technique, je ne peux que vous inviter à un peu de lecture.
Je pense que la plupart d’entre vous pourront se contenter d’une explication quelque peu simplifiée sur ce qu’est du raycasting. Grosso modo, cette technique, apparue dans les années 90 sur PC, était utilisé pour afficher des mondes en 3D dans lesquels les murs étaient couverts de mapping, c’est à dire de motifs ou papiers-peints. Je suis sûr que vous connaissez tous le jeu qui a popularisé cette technique : ça vous dit quelque chose Wolfenstein 3D ?
Comme souvent, ce type d’effet semblait difficile à reproduire sur une machine aussi limitée techniquement parlant que notre Atari ST mais « difficile » ne veut pas dire « impossible » :). Au passage, si vous n’êtes pas familiers avec les mondes en 3D, je vous suggère de commencer par un peu de lecture informative avant de revenir ici pour la suite.
Bien, continuons. Pour dire la vérité, je n’ai pas beaucoup d’exemples de raycasting. Le premier d’entre eux est une démo créée au milieu des années 90 mais sortie seulement en 1999. Il s’agit de Rumpelkammer qui a été imaginée et produite par le groupe allemand Stax.

Ne connaissant pas grand chose à la programmation, je n’ai aucune idée du degré de difficulté exact pour créer un moteur 3D similaire sur un ordinateur des années 80, mais j’imagine facilement que ce n’est pas chose aisée ! C’est peut être la raison pour laquelle il nous a fallu attendre près de 10 ans avant de voir les efforts suivants (la démo ci-dessus date de 1993-1995). C’est donc en 2003 que nos amis de Reservoir Gods nous ont éblouis avec leur démo si unique intitulée Grimey nous offrant leur vision (un peu trouble) du raycasting. D’ailleurs, j’aime tellement cette démo que vous pouvez la retrouver en vidéo dans un coup de coeur.
L’année suivante c’est le groupe Falcon Users Netherlands qui nous a offert Stone Tower, une démonstration courte mais impressionnante, codée par Earx. Je dois ajouter que cette petite production a une place particulière dans mon coeur puisque j’ai humblement participé à sa création (et croyez-moi, elle est revenue de loin).

Mais, il est évident que la palme du raycasting le plus bluffant revient, comme souvent, au groupe Checkpoint avec sa démo Posh! (2003). Alors oui, on ne va pas se voiler la face, tout ça est très pixelisé mais contrairement aux exemples précédents, vous pouvez remarquer que cette fois, non seulement les murs sont couverts de mapping mais aussi le sol et le plafond ! Et si cela n’est pas assez, ajoutez-y des animations sur les murs ! Je me souviens avoir été présent lors de la 1ère présentation de cette démo et comme beaucoup je suis resté sans mot devant cette séquence tellement exceptionnelle !

Avec cet exploit, je suppose que tous les codeurs qui avaient décidé de s’aventurer dans le champ d’expérimentation du raycasting ont du se dire qu’ils ne pourraient jamais égaler ce qu’il venait d’être fait. C’est pourquoi cet article est presque arrivé à sa conclusion, mais presque seulement ! Il est impossible en effet de passer sous silence le dernier fait d’arme d’un codeur de grand talent, j’ai nommé Ray du groupe allemand tSCc : il a décidé de recréer sur Atari ST le père fondateur du raycasting ! Wolfenstein 3D ST a donc vu le jour en 2005 et on a l’impression de jouer (intégralement !) au jeu d’origine sur PC !
Cette fois, c’est fini, enfin plutôt, on termine avec les habituelles vidéo, en commençant avec la démonstration stupéfiante visible dans la démo Posh! du groupe Checkpoint (2003) :
Et maintenant, admirez l’immense travail effectué par Ray du groupe tSCc avec son projet fou reprenant à l’identique Wolfenstein 3D (2005) :