Sur quelle plateforme les anciens jeux vidéo TV ont-ils été développés? [fermé]

13

Je suis très impatient de savoir comment les jeux vidéo TV (auxquels nous jouions tous dans notre enfance) ont été développés et sur quelle plateforme.

Je sais comment les jeux sont développés pour les appareils mobiles, les PC Windows et Mac, mais je ne comprends pas comment (à l'époque) Contra, Duck Hunt et tous ces jeux ont été développés. Comme ils ont des graphismes élevés et un grand nombre d'étages. Alors, comment ont-ils réussi à développer des jeux dans un environnement aussi petit et avec une plate-forme de configuration inférieure?

Mihir Palkhiwala
la source
3
Jordan Mechner a publié les sources de Prince of Persia pour l'Apple II il y a quelques mois: consultez-le ici si vous êtes intéressé.
Laurent Couvidou

Réponses:

17

Les très vieux jeux - écrits pour NES, Game Boy, SNES et même des systèmes plus anciens comme la famille Atari - étaient généralement écrits en langage assembleur . Cela était nécessaire car les compilateurs C de l'époque étaient soit inexistants, soit pas à la hauteur de générer un code suffisamment efficace.

Ils ont pu compresser tout cela dans de petites cartouches - pour NES, même 256 Ko représentaient beaucoup de données (bien que des jeux plus importants existaient) - car ils utilisaient des astuces intelligentes, telles que des graphiques à base de tuiles et de faible couleur, permettant beaucoup de données à stocker dans très peu d'espace. De plus, des puces vidéo et audio spécialisées ont permis de gérer ces choses plus efficacement, sans avoir à tout faire dans le logiciel.

Au fil du temps, les compilateurs C sont devenus plus efficaces et les appareils sont devenus plus puissants - les appareils N64, GBA et ultérieurs utilisaient tous C ou même C ++ par défaut - et l'assemblage était réservé aux petits morceaux de code où une optimisation supplémentaire était nécessaire afin de respecter systématiquement les 60FPS cible (ou quelle que soit la fréquence d'images à laquelle le jeu s'exécute).

Michael Madsen
la source
4
@Mihir les anciens jeux n'étaient en aucun cas parfaits. Mais une partie de la raison pour laquelle ils semblent fonctionner mieux que certains jeux récents est parce qu'ils sont également loin, beaucoup moins complexes que leurs homologues modernes.
chaosTechnician
1
@AndroidCoader, ce que vous recherchez s'appelle un émulateur. Ils existent pour de nombreuses plates-formes, émulant la fonction d'anciens systèmes sur des machines modernes, mais il y a souvent beaucoup de problèmes juridiques / zone grise associés à leur utilisation pour jouer à des jeux.
chaosTechnician
Je crois que "Gran Turismo", quand il est sorti pour la première fois sur PS, avait de grandes quantités de code écrit en assemblage à cause de la physique impliquée.
casperOne
3

Je me souviens avoir écrit des jeux simples pour le Commodore 64 / Vic20 au début des années 80. Certains BASIC (croyez-le ou non - certains jeux étaient entièrement encodés BASIC - BASIC était sur la ROM de la machine, donc c'était un cadeau) - mais surtout assembleur. L'assembleur n'était pas cohérent non plus - la plupart des machines avaient plusieurs assembleurs commerciaux disponibles (bien que comme la plupart à l'époque, j'ai écrit le mien). Les graphiques sur le C64 étaient très avancés pour l'époque avec des sprites matériels raster (seulement 8 autorisés à l'écran à la fois - mais ceux-ci pouvaient être dupliqués dans le logiciel avec quelques astuces, donnant des centaines mais seulement 8 variétés à l'écran à la fois). Ils étaient de 16 couleurs (palette - qui pouvait être modifiée au moment de l'exécution, tout comme le sprite). Les sprites étaient 2D bien sûr.

Le premier "ordinateur personnel" avec lequel je jouais (en ignorant les machines scientifiques et commerciales antérieures) était un ZX81 (mon école avait un ZX80 - mais il était enfermé dans une boîte en verre comme une exposition de musée - personne ne savait comment l'utiliser!). Imaginez que vous écriviez un jeu en 1/4 de K (c'est 256 octets!) - maintenant c'est de l'habileté!

Wolf5370
la source
3

Les systèmes de jeux vidéo ou consoles de première génération (avant d'être appelés consoles) de la fin des années 1970 et encore aujourd'hui sont développés un peu comme tout système informatique embarqué .

Un ordinateur intégré est un ordinateur (c.-à-d. Un microcontrôleur ou un microprocesseur) dans un système électronique qui ne ressemble pas à un ordinateur personnel ou à un système informatique multi-utilisateurs plus grand (par exemple, système de partage de temps, mini-ordinateurs et ordinateurs centraux); une différence majeure étant qu'ils manquent généralement de l'entrée / sortie désormais standard via un terminal vidéo et un clavier.

Le développement se fait sur un autre ordinateur, ces jours-ci généralement un développeur PC ou une station de travail utilisant un environnement de développement multiplateforme qui produit des exécutables pour le système cible - le système de jeu vidéo dans ce contexte, qui est souvent une architecture de microprocesseur différente du développement. CPU (ou hôte ) du système.

Deux exemples de systèmes de jeux vidéo actuels sont ceux de la Playstation 3 de Sony, basée sur Sony, Toshiba et IBM. de processeur Cell , et pour les appareils mobiles (téléphones intelligents, tablettes) qui sont souvent ARM microprocesseurs basés.

Comme Michael Madsen indiqué, la majorité de la programmation a été effectuée en assembleur plutôt qu'en langage compilé de haut niveau, tel que C ou Pascal. Cela était nécessaire pour adapter l'intégralité du contenu du jeu dans les limites du système très contraint (très peu de RAM et une capacité ROM de cartouche limitée), ainsi que pour accéder à des co-processeurs tels que le TIA de l'Atari 2600.

mctylr
la source