human
Programmation de jeux vidéo Je ne comprends pas le concept de base de la façon dont la programmation est faite, je ne comprends pas non plus comment les graphiques sont produits. Je connais un tout petit peu le jargon technique , alors soyez indulgent . Explique comme si j'avais cinq ans.
gpt
Lorsque vous écrivez un logiciel, vous créez essentiellement une liste d'instructions à exécuter par une calculatrice. Vous avez vos opérations : Vous pouvez Additionner, Soustraire, Multiplier, Diviser ou MOD (Obtenir le reste d'une division), deux nombres. ( Il y a aussi beaucoup d' opérations qui modifient les bits à l' intérieur de ces nombres , qui sont utiles pour parler au matériel , ou optimiser certaines opérations ) Vous avez alors des pièces de contrôle : Un mécanisme pour LOAD , STORE , GOTO , IF , BRANCH IF 0 , et vous pouvez faire beaucoup de choses compliquées. Une machine qui peut faire cet ensemble de choses de base est connue sous le nom de Turing Complete . Pratiquement tout ce qui peut être représenté ou modélisé de manière algorithmique peut être modélisé avec une machine Turing Complete, y compris les jeux vidéo. Le faire à un niveau bas est vraiment difficile, donc les gens ont créé des langages de programmation, qui peuvent utiliser des termes plus simples, puis générer un tas d'instructions énumérées ci-dessus qui accomplissent la même chose. Les ordinateurs doivent alors communiquer avec le matériel. Au début, il n'y avait que des ATS, essentiellement des terminaux avec lesquels vous pouviez communiquer via série. Le processeur aurait un matériel qui pourrait activer et désactiver une broche lorsque vous CHARGEZ ou MÉMORISEZ à une adresse spécifique (les adresses seront normalement stockées en mémoire, mais ces adresses magiques communiqueraient plutôt avec le matériel). Par exemple, votre port parallèle est situé à 0x0378. L'écriture d'un nombre à cette adresse définit les broches de votre port parallèle sur 0 V pour un bit 0 ou sur 12 V pour un bit 1 dans le numéro correspondant écrit à cette adresse. Écrivez à une autre adresse, et vous écrivez dans la mémoire, et vous pouvez simplement enregistrer ces données là-bas et les récupérer plus tard. En interfaçant avec ce matériel graphique, vous pouviez créer des caractères anglais, mais il y avait aussi un ensemble prédéfini de toutes sortes d'autres caractères - ASCII. URL_0 Besoin d'un mur de briques ? Le caractère ASCII 178 ferait l'affaire, besoin d'un Lion, 234 me semble assez bien ! Fondamentalement cependant, après une courte période de temps, les gens se rendent compte que ces personnages ne ressemblaient en rien à des lions ou à des murs de briques et ont décidé de commencer à fabriquer du matériel spécifiquement pour faire des graphismes. Le même processus s'applique en dessous, le matériel expose un ensemble de registres pour le configurer, et vous pouvez ensuite faire des choses fantaisistes en utilisant ces mêmes opérations LOAD et STORE pour déposer des données dans la mémoire vidéo. Cette mémoire vidéo sur les cartes graphiques modernes est essentiellement une grosse masse de pixels qui représentent tous les pixels de votre moniteur allant de gauche à droite. Les données que vous mettez dans cette mémoire contrôlent le pixel de couleur affiché sur votre moniteur. Les gens pourraient alors créer un logiciel pour dessiner des images dans ces pixels. Les ordinateurs sont encore massivement lents, et imaginez devoir recalculer la valeur de chacun de ces pixels 60 fois par seconde ? C'est extrêmement éprouvant pour le processeur. Pour ce faire, un matériel a été créé qui peut résumer la manière dont ces pixels sont produits dans un niveau supérieur de concepts. C'est de là que vient le traitement graphique 3D. Fondamentalement, vous pouvez maintenant parler au matériel et dire : "Dessine-moi un polygone, fais-le pivoter de 30 degrés et applique-lui cette transformation 3D, puis place-le dans la mémoire vidéo à cet emplacement." sont situés, la santé d'un personnage, le scénario de l'histoire, etc., ne sont vraiment pas plus sophistiqués maintenant qu'ils ne l'étaient lorsque les gens utilisaient les lions ASCII et les murs de briques. Tout ce qui a changé, c'est la possibilité de rendre l'histoire en utilisant ce matériel 3D spécifique qui donne aux programmeurs un grand contrôle sur la façon d'afficher ces choses.