Créer soi-même un simulateur de vol en C++ (1996)
(archive.org)- Ressource anglophone de 1996 sur la programmation de jeux sous DOS, consacrée à la création d’un simulateur de vol en C++
- Les tags de sujet sont principalement MS-DOS, 3D, Gamedev, tutorial, Retrogaming et C++
- Il ne s’agit pas d’un simple document : l’archive inclut aussi une image CD-ROM avec du code d’exemple, préservant ainsi l’environnement de développement de l’époque
- Disponible au téléchargement sur Internet Archive dans plusieurs formats, dont PDF, EPUB, Full Text, ISO Image et Torrent
- Une archive préservée utile pour celles et ceux qui cherchent des ressources sur le développement de jeux rétro et la programmation DOS, avec le livre et ses contenus annexes au même endroit
Ressource enregistrée sur Internet Archive
- La ressource enregistrée dans l’entrée Internet Archive est Build Your Own Flight Sim In C++ (DOS GameDev)
- Les auteurs sont Michael Radtke, Chris Lampton ; il s’agit d’une ressource en anglais publiée en 1996
- L’ISBN est 1-57169-022-0
- Le sujet est classé sous MS-DOS, Programming, 3D, Gamedev, tutorial, Retrogaming et C++
Périmètre de développement couvert par le livre
- L’objectif est de développer soi-même un simulateur de vol en C++
- La ressource se concentre sur la programmation de jeux dans un environnement DOS, avec un contexte d’utilisation lié à la 3D et au développement de jeux rétro
- Le simulateur de vol inclut du son SB16
- Une image CD-ROM contenant le code d’exemple est fournie avec le livre
Contexte de l’enregistrement
- Lors du portage de Retro City Rampage vers DOS, le développeur avait exprimé des regrets : il avait jeté tous les livres de programmation DOS et de développement de jeux qu’il possédait autrefois, et ceux-ci étaient difficiles à retrouver en ligne
- Cette ressource est présentée dans ce contexte comme un livre de développement de jeux DOS enregistré sur Internet Archive
Formats disponibles au téléchargement
- Internet Archive propose plusieurs formats de téléchargement
- PDF : 308,9M
- EPUB : 768,5K
- Full Text : 1,1M
- ISO Image : 11,5M
- Single Page Processed JP2 ZIP : 321,7M
- Torrent : 32,5K
- Des fichiers liés à l’OCR sont également disponibles : CHOCR, HOCR, OCR Page Index et OCR Search Text
Préservation et métadonnées
- La taille de l’entrée est indiquée à 706,7M
- Elle fait partie de la CD-ROM Software Library, de la CD-ROM Software Collection et de The Vintage Software Collection d’Internet Archive
- L’OCR a été traité avec tesseract 5.0.0-alpha-20201231-10-g1236, et la langue détectée est l’anglais
1 commentaires
Avis sur Hacker News
Ah, ce livre ! Ça me rappelle l’époque où, en jouant à Wolfenstein, Ken's Labyrinth et Doom, je me demandais comment diable ils avaient pu faire ça.
Je travaillais dans un « magasin d’informatique » qui ne pouvait pas, ou ne voulait pas, me payer ; un jour, on m’a dit que je pouvais prendre n’importe quel livre du magasin en échange de ma journée de travail, et j’ai pris celui-ci sur un coup de tête.
Dans le bus du retour, j’ai raté mon arrêt, parce que même si c’était un livre sur les simulateurs de vol, les algorithmes et techniques qu’il contenait étaient exactement ce que je voulais savoir sur la programmation 3D.
Je n’ai jamais créé de simulateur de vol, mais les connaissances tirées de ce livre m’ont permis de faire un jeu 3D rudimentaire. Il n’y avait pas de collision avec les murs, les objets en sprites se corrompaient aléatoirement avec le temps, et je n’ai jamais vraiment réussi à comprendre pourquoi il fallait utiliser des multiplications de matrices plutôt que des transformations géométriques, mais ce livre a consolidé mon amour de la programmation à un moment où, sans projet un peu profond, je n’aurais peut-être pas continué.
Le professeur ne connaissait pas les maths, et même quand il enseignait les matrices en algèbre II, il n’arrivait pas vraiment à expliquer à quoi elles servaient dans le « monde réel ».
Mais d’une manière ou d’une autre, j’ai fini par trouver, dans un vieux numéro de Byte datant de quelques années, un article sur le graphisme 3D qui expliquait l’utilisation des matrices et des points pour les rotations, etc.
Avec ça, j’ai fait tourner un cube sur un PET 2001. Dans toute la majesté d’un écran 40x24. En réalité, c’étaient huit points, et si on plissait les yeux dans le noir, ça ressemblait à un cube.
Plus tard, à l’université, j’ai pu utiliser un micro-ordinateur à tube à mémoire Tektronix. Contrairement à un terminal, il était autonome et pouvait rendre un cube assez correctement. J’ai aussi saisi, une par une, avec des instructions DATA du BASIC intégré, une voiture que j’avais soigneusement dessinée sur du papier millimétré.
À cette époque, les premiers livres Foley-Van Dam étaient les ouvrages de graphisme que tout le monde convoitait.
À l’université, j’ai eu C en « Survey of Physics », et les maths visant à modéliser des phénomènes physiques m’ont vraiment donné du fil à retordre. J’étais bon en calcul différentiel et intégral et dans tout ce qui était abstrait, mais je ne sais pas ce que ça dit de moi.
Si cela vous intéresse, le cours en ligne que je suis en ce moment pourrait aussi vous plaire : https://pikuma.com/courses/learn-3d-computer-graphics-progra...
L’instructeur enseigne ce sujet dans une université à Londres, et on sent clairement qu’il a beaucoup d’expérience pédagogique. Jusqu’ici, le rythme est parfait, et c’est exactement ce que décrit la présentation du cours. Quand j’aurai terminé le cours de graphisme, je compte suivre progressivement d’autres cours de cet instructeur.
Il apprend à programmer le graphisme en C à partir de zéro, avec pour seule dépendance SDL2. Au début, on crée une abstraction SDL2 permettant de définir la couleur de pixels individuels, puis tout le reste du cours s’appuie dessus. L’idée est d’apprendre si, dès lors qu’on peut choisir la couleur d’un pixel, on peut aller jusqu’à dessiner un hibou 3D texturé.
De mon côté, je suis ce cours en Rust, en utilisant simplement les bindings SDL2 pour Rust. J’y prends plaisir, et comme je trouve que c’est une offre honnête et un bon cours, j’avais envie de le partager. Je n’ai pas beaucoup vu ces cours mentionnés ailleurs.
Je me souviens avoir possédé ce livre. Je devais avoir 14 ou 15 ans, et je venais de prendre mon premier cours de pilotage, au moment où je commençais vraiment à me passionner pour l’aviation.
J’avais aussi MS Flight Simulator et j’apprenais C++ par moi-même, mais le contenu du livre était un peu au-dessus de mon niveau à l’époque. Cela dit, c’est agréable de repenser à l’excitation que j’ai ressentie en mettant la main dessus, avec l’idée que je pourrais créer mon propre simulateur de vol. Bien sûr, si ma mémoire est bonne, le simulateur construit dans le livre était quasiment injouable.
Ce livre et « The Black Art of 3D Game Programming » étaient mes deux préférés quand j’étais enfant.
https://archive.org/details/BlackArt3DEBook
C’est amusant : en ouvrant au hasard à la page 216, je suis tombé sur une méthode assez élémentaire mais robuste pour mapper des coordonnées de monde 3D sur une sphère, alors que récemment je lisais justement la solution complètement différente de génération de monde utilisée par No Man's Sky.
https://www.polygon.com/2017/3/2/14790028/no-mans-sky-was-fl...
J’aimerais qu’il y ait encore aujourd’hui davantage d’articles comme celui-ci. C’est vraiment génial
En revanche, le lien ePub ne se télécharge pas :
https://ia904505.us.archive.org/epub/index.php?id=build-your...
No valid doc name could be determinedDommage, il faudra se contenter du PDF. C’est aussi dommage que le lecteur web de l’Internet Archive ne soit pas terrible
Lien PDF fonctionnel : https://archive.org/download/build-your-own-flight-sim-in-c-...
J’ai encore les programmes que j’avais écrits en suivant ce livre. L’expérience de donner vie à un monde 3D avait quelque chose de magique. On partait d’un écran noir, on traçait quelques lignes, puis en les déplaçant exactement comme il fallait, soudain un monde apparaissait à l’écran. Aujourd’hui, il est difficile de retrouver cette même sensation
Je crois avoir reçu ce livre pour mon 13e anniversaire, donc une partie des maths était un peu difficile pour moi à l’époque. Mais apprendre l’assembleur et creuser des algorithmes plus complexes comme le clipping de polygones a été un excellent entraînement pour un programmeur débutant
C’est impressionnant de voir combien de pages ce livre consacre à créer un univers. Ce n’était pas encore l’époque où il suffisait d’activer une bibliothèque OpenGL et d’initialiser la pile
Le livre commence par des choses comme les registres à configurer pour mettre correctement la carte VGA dans le bon mode, la lecture des bitmaps et des palettes depuis le disque, l’écriture à la main d’un encodeur par longueurs de séquences pour économiser la mémoire des bitmaps, ou encore les registres à configurer sur le port joystick
J’ai suivi ce livre jusqu’au bout. Comme je travaillais sur Mac, j’ai dû faire quelques modifications, mais j’ai implémenté l’algorithme de Bresenham, le clipping de polygones, l’élimination des faces arrière, etc.
Normalement, j’aurais sans doute été bloqué par les maths que je découvrais pour la première fois, comme les matrices, le produit scalaire et le produit vectoriel, mais par chance je suivais un cours d’été d’algèbre linéaire à l’université, et le contenu du livre s’accordait assez bien avec le cours
Si ma mémoire est bonne, ce livre contenait une disquette 5,25 pouces avec un simulateur permettant de voler autour de montagnes en forme de pyramides. Ça me rappelle de bons souvenirs