|
|||||||||||||||||||||||||||||||||||||||||||
|
Note : traduction par David Brunet. Richard Costello est le programmeur des versions Amiga de jeux comme Mortal Kombat, Primal Rage, Terminator 2, Golden Axe et Gauntlet 2. ![]() J'ai commencé la programmation à l'âge de 15 ans à l'école. Après le lycée, j'ai étudié à l'Université de Loughborough où j'ai rencontré un gars du nom de Stuart Gregg. Ce dernier était ami avec un programmeur de jeux vidéo. Stuart a ensuite travaillé pour Gremlin Graphics et m'a recommandé auprès de la société : j'ai commencé en tant que programmeur sur Atari ST. Je suis devenu programmeur indépendant en 1989 et je suis toujours à mon compte. J'ai utilisé les revenus issus de mes jeux sur ordinateur pour me lancer dans les courses automobiles. Je suis d'ailleurs devenu, durant cette période, un instructeur pour les courses automobiles. Aujourd'hui, je travaille en tant qu'instructeur à Silvertone et sur d'autres circuits. De plus, je produis des applications et des sites Web, et je fais aussi un peu de graphisme. ![]() J'ai fait partie de la première génération, au Royaume-Uni, à quitter l'école à 16 ans avec une certaine expérience en informatique. Mon professeur de mathématiques animait un club de programmation en BASIC sur un Tandy TRS80, nous utilisions aussi un gros ordinateur de l'Université voisine. Deux ans après avoir quitté l'école, toutes les écoles du Royaume-Uni possédaient des ordinateurs BBC Micro et la révolution des nouvelles technologies commença. J'ai réussi mon "A-level" (NDLR : examen lors des deux dernières années du secondaire au Royaume-Uni) en informatique et j'ai appris en autodidacte le code machine 6502 sur un VIC-20 de Commodore, puis un BBS Micro Model B que je possède toujours aujourd'hui. ![]() Ce fut lors d'un salon informatique à Birmingham. J'y ai vu la démo avec la balle rebondissante sur un A1000. ![]() Cela a commencé à 15 ans. Mais c'est au lycée (17/18 ans) que j'ai vu que j'avais une aptitude naturelle pour cela. Par rapport aux autres élèves de ma classe, tout ceci me semblait évident. ![]() Je suis un peu "rouillé" maintenant, mais voici la liste des langages que j'ai pratiqués :
![]() ![]() Chez Gremlin Graphics, je développais pour Atari ST. Gremlin était la propriété de US Gold et quand ils ont eu besoin de quelqu'un pour programmer Gauntlet 2 pour Atari ST et Amiga, j'ai réalisé ce travail sur mon temps libre (la journée, je travaillais sur le jeu Ramrod pour Gremlin, qui n'a jamais été publié). Chez Gremlin, j'ai rencontré Kevin Bulmer, un artiste, et Bill Allen, un programmeur : en 1989, nous avons décidé de devenir indépendants et de produire Hotrod pour Activision et Golden Axe pour Probe, les deux pour Amiga et Atari ST. Nous avons commencé la production de Terminator 2 mais Kevin s'est alors séparé du groupe car il voulait créer une société ; j'étais alors content de travailler seul. En raison de mes bonnes relations avec Probe, ils m'ont demandé de produire Mortal Kombat, Mortal Kombat 2 et plus tard Primal Rage qui fut le dernier jeu que j'ai programmé. A cette époque, la 3D commençait à s'imposer et la PlayStation est apparue. J'ai commencé à programmer sur PlayStation mais mon activité dans les courses automobiles est devenue plus importante. L'informatique est alors passée au second plan pour moi jusqu'au jour où je me suis lancé dans la conception de sites Web. J'ai malgré tout pu créer, durant cette période, un système de synchronisation portable multi-voiture sur Psion Organiser 2. Cela avait de la gueule et quelques exemplaires ont été vendus à des équipes. ![]() J'ai toujours programmé en assembleur 68k sur Amiga et Atari ST. ![]() Oui, on utilisait le "Copylock" de Rob Northen si je me souviens bien. Le code vérifiait les secteurs à bits aléatoires sur la disquette (des secteurs qui renvoient des résultats différents à chaque fois qu'ils sont lus), et ceux-ci ne pouvaient être écrits que par l'intermédiaire d'une machine de duplication type "traceuse". ![]() Le manque de mémoire. ![]() Parce que personne ne possédait de disque dur sur Amiga à cette époque. Du moins si, il y en avait quelques-uns, mais le coût de développement de cette fonctionnalité n'aurait pas été couvert par les recettes. De plus, afin d'utiliser le disque dur, j'aurais été contraint d'utiliser le système d'exploitation et tous mes jeux exigent chaque octet de la machine. Passer par le système d'exploitation aurait ainsi demandé une plus grande capacité mémoire, qui était déjà à la limite. ![]() ![]() L'Amiga 1200 n'existait pas quand Mortal Kombat a été créé, et il avait tout juste commencé à apparaître quand Mortal Kombat 2 est sorti, si j'ai bonne mémoire. Donc peu de monde en possédaient. L'utilisateur Amiga moyen disposait d'un A500 avec une extension de 512 ko de mémoire ou bien d'un A600. La CD32 a pointé le bout de son nez et il y eut des discussions concernant le développement ou non Mortal Kombat sur cette console. Mais la plate-forme Amiga allait de toute façon mourir. Pour vous donner une idée, Mortal Kombat a été vendu à 50 000 exemplaires, Mortal Kombat 2 à 125 000 et Primal Rage à 9 000. Quand Primal Rage a été commercialisé, l'Amiga était mort en tant que plate-forme commerciale. Mes jeux font usage de la mémoire supplémentaire et d'un meilleur processeur. Mortal Kombat précharge les fichiers en mémoire supplémentaire si vous en disposez afin d'accélérer les temps de chargement, et tous les jeux fonctionnent de manière plus fluide sur des machines plus rapides. Il faut se rappeler que le fait d'avoir de plus gros graphismes et plus de couleurs nécessite plus de mémoire et plus de disquettes. Primal Rage utilise tous les octets d'un A1200 avec ses 2 Mo de mémoire. Si on avait voulu rendre les graphismes plus attractifs, le jeu aurait nécessité 2 Mo de mémoire supplémentaires. Quasiment personne n'avait 4 Mo de mémoire sur A1200 à l'époque. La quantité de mémoire a toujours été un problème. De plus, c'était un suicide commercial que de vouloir produire plus d'une version d'un jeu pour des plates-formes spécifiques. Donc les jeux Amiga étaient créés pour des machines avec 512 ko de mémoire Chip et 1 Mo de mémoire totale (2 Mo pour le cas de Primal Rage, bien que Probe voulait que le jeu puisse se lancer avec 1 Mo, chose qui était physiquement impossible). Cela ne servait à rien d'utiliser Fat Agnus pour accéder au premier Mo de mémoire de l'A1200. Ceci car tous les graphismes devaient être stockés et compressés et seul le processeur 68k pouvait réaliser une décompression en temps réel, qu'il réalisait avec des tampons de mémoire Chip pour le Blitter afin d'afficher l'écran. Comme je l'ai dit plus haut, le problème était toujours le manque de mémoire. ![]() Moi : tout le code Amiga (assembleur 68k) à une exception près (voir plus bas) et quelques graphismes. Dave Leitch : conversion du code 68020 du jeu d'arcade en 68000 pour la Mega Drive. La version Amiga a utilisé ce code, je l'ai modifié sur certaines choses comme la transformation de Shang Tsung, etc. Jason Green : je crois qu'il était responsable de la conversion graphique des personnages, qui ont été traités à partir de ceux de la version arcade puis retouchés à la main. Terry Ford : je crois que Terry a dessiné les arrière-plans. Allistair Brimble : il a composé la musique, les effets sonores et a programmé le code pour le lecteur audio. Anthony Putson : hmm, je ne suis pas sûr qu'il ait fait quelque chose... à moins qu'il ait aidé Allistair. Les noms manquants : Nic Pelling et Rob Northen. Le premier a réalisé le code pour la compression/décompression en temps réel pour les graphismes des personnages. Ron Northen a conçu la protection contre la copie. ![]() Cela a pris environ 9-10 mois par jeu. ![]() Non. ![]() Non. ![]() Les machines d'arcade Mortal Kombat et Mortal Kombat 2 disposent d'un processeur 68020. La logique a ainsi été reprise directement de ces versions arcade (compte tenu que l'Amiga dispose d'un 68000) mais la différence entre l'arcade et l'Amiga est que tout est en mémoire, tout le temps. Donc le code de la version arcade doit être modifié par endroits pour permettre à la version Amiga de charger en mémoire les personnages depuis la disquette quand cela est nécessaire. J'imagine que ce bogue a été causé par quelque chose qui a été négligé lors du transfert du code de la version arcade vers l'Amiga. Il y a sans doute une table de données quelque part avec une valeur manquante. Le jeu croit que le personnage est toujours en mémoire afin d'éviter de recharger. Je suis surpris que cela ne plante pas plus tôt ! ![]() Aucun personnage caché ne fut jouable pour autant que je me souvienne. Cela aurait nécessité une autre disquette, et donc une augmentation de 30% du budget de la production. ![]() Si je me souviens bien, le personnage de Shang Tsung est constitué d'un petit nombre de trames dans la version arcade car il se transforme souvent en d'autres personnages. J'ai donc combiné les trames de Shang Tsung avec celles de Kintaro. Ainsi, dans la version Amiga, Shang Tsung peut être lui-même ou bien se transformer en Kintaro ou en son adversaire (puisque les trames de ce dernier sont aussi en mémoire). Je ne suis pas sûr concernant la fatalité, elle a pu être désactivée afin d'éviter des bogues. Nous devions modifier la logique de la version arcade à cause de la limitation des trames des personnages. ![]() Regardez cette vidéo. ![]() Tout est possible mais je ne vous recommande pas d'essayer. Le jeu est conçu pour fonctionner avec 1 Mo de mémoire et avec une configuration de la mémoire très spécifique. La taille de l'ensemble des trames des personnages doit être inférieure à 256 ko sinon une grande partie du code doit être modifiée. Cela signifie que toute augmentation de la résolution ou du nombre de couleurs augmenterait trop la taille des fichiers. Le stockage des graphismes est également très complexe. Si je me souviens bien : 1. Chaque fichier graphique consiste en un ensemble de brosses de 16x16 pixels. Chaque brosse est compressée. Ces brosses sont toutes contenues dans un fichier unique, pour chaque personnage. Il y a ensuite un second fichier de correspondance pour chacune des trames des personnages qui renseigne la largeur et la hauteur des brosses plus la position des données. 2. Chaque trame est ensuite construite grâce au fichier de correspondance, chaque brosse est décompressée en temps réel dans un tampon de la mémoire Chip, puis retournée horizontalement ou verticalement selon les besoins ou déplacée de 15 pixels (en utilisant le 68k). 3. Une fois qu'une trame complète a été construite en mémoire Chip, elle est coupée grâce au Blitter pour être affichée à l'écran. Cette copie génère le masque et les ombres des personnages, ce qui exige que les données soient formatées d'une certaine manière (trois octets par pixel) et le quatrième plan est généré pour assurer que la palette du personnage est correctement utilisée. Par conséquent, les routines d'affichage, qui sont très optimisées, reposent sur des données qui sont dans un certain format (huit couleurs). Si la profondeur d'écran est changée, alors l'ensemble des graphismes doit être refait. Vous voyez donc pourquoi je ne recommande pas de les changer... ![]() J'imagine que c'est une censure voulue car pas de sang signifie pas de choses horribles. Le marché principal avec l'option "sang" désactivée était l'Allemagne, ils sont très méticuleux à ce propos là-bas. La version Amiga n'a pas vraiment été limitée, ils ont simplement voulu désactiver par défaut l'option "sang". Mais ils ont ensuite divulgué la manière de l'activer lors de la commercialisation du jeu. J'ai personnellement créé le coeur qui bat que Kano arrache à son adversaire dans Mortal Kombat, la version Amiga est ainsi la seule à avoir cela. Le graphisme issu de la version arcade ressemble plus à un sac à main marron. J'ai donc recolorisé le coeur pour avoir des nuances de sang et réalisé quatre trames d'animation en boucle (0, 1, 2, 1) pour donner l'impression qu'il bat. ![]() C'est enterré dans le code source du jeu en arcade. Je n'ai pas vraiment touché à ça. ![]() Non... le code provient directement de la version arcade car celle-ci dispose d'un 68020. Ce code a été légèrement modifié en raison des changements apportés aux personnages et aux différences entre 68000 et 68020, mais cela reste le même que sur arcade. La version PC aurait été une version hybride écrite en C ou en assembleur x86, donc différente de la version arcade. Le processeur 68k était le meilleur de son époque, bien mieux que l'architecture x86. Motorola a arrêté la série des processeurs 68k uniquement car IBM avait sélectionné les puces Intel pour les PC et que les PC ont gagné en tant que plate-forme car elle pouvait être copiée, et non parce qu'elle était meilleure qu'une autre. Intel a essayé, ces 25 dernières années, de faire face à cette horrible architecture qu'il traîne comme un boulet. Les PC auraient pu être bien meilleurs s'il y avait eu une évolution des 68k plutôt que des x86. ![]() Il aurait été bien de pouvoir utiliser le Copper pour augmenter le nombre de couleurs pour les arrière-plans. Mais à part cela, je suis satisfait de Mortal Kombat et surtout de Mortal Kombat 2. ![]() Tout ce que j'ai programmé l'a été à partir de zéro, et c'est ce que je préfère faire. ![]() Je ne joue pas vraiment aux jeux que j'ai créés. Je n'ai pas le temps durant la phase de développement et une fois achevé, j'en ai ma dose :). C'est aux testeurs de jouer aux jeux. ![]() Ils ont créé cette image en réalisant des captures d'écran durant quelques parties et les ont superposées afin de réaliser un arrière-plan complet. C'est juste une photo créée pour le magazine. Huit combattants, cela pourrait être possible sur la version arcade, pas sur Amiga (pas assez de mémoire, trop lent). ![]() Sur Amiga, c'était de la décoration. Et je pense que sur la version arcade, c'était aussi de la décoration. ![]() Les graphistes ont probablement manqué de temps pour les dessiner, ou ont jugé que cela n'en valait pas la peine et personne ne l'a remarqué à l'époque. La version PC est en 256 couleurs, j'imagine donc que l'arrière-plan a juste été converti depuis la version arcade (qui compte probablement 64 couleurs). Comme la version Amiga utilise 16 couleurs, ces graphismes ont dû être redessinés (en fait, je crois qu'il n'y en a que 12 car le panneau utilise quelques couleurs de la palette de l'arrière-plan). ![]() J'imagine que cela a été supprimé lors de la conversion pour la version Mega Drive (faite par David Leitch). Je ne l'ai pas supprimé dans la version Amiga mais on ne peut pas tirer dessus car cet arrière-plan est une image statique. ![]() Non. A cette époque au Royaume-Uni, les principaux titres n'étaient plus développés pour les machines 8 bits. Le jeu aurait été complètement différent en 8 bits. Par exemple, le code seul est quatre fois plus important que la mémoire du Commodore 64... Du temps de Mortal Kombat, le marché du jeu vidéo au Royaume-Uni était représenté par l'Amiga plus les consoles (Mega Drive et SNES). ![]() Oui, un manque de mémoire, et aussi le fait qu'il n'y a que deux ports manettes en standard. Mais cela aurait peut-être pu être réalisé. ![]() L'Amiga n'était plus une plate-forme viable. Commercialement, elle avait cessé d'exister. ![]() Oui, cela a été considéré, et j'aurais été le programmeur du jeu. Mais comme je l'ai dit plus haut, l'Amiga était mort en tant que plate-forme commerciale. ![]() J'ai passé deux mois à lire la documentation et à bidouiller avec le système de développement de la PlayStation, mais la société pour laquelle je travaillais (Dementia, créée par Kev Bulmer, qui a quitté Gremlin comme moi) a changé ses plans et j'ai donc arrêté de développer sur cette plate-forme. Au même moment, j'ai débuté ma carrière d'instructeur pour les courses automobiles et j'aurais eu besoin de revoir sérieusement mes cours de maths sur la 3D pour développer sur les futures consoles. J'aimais aussi programmer en assembleur (j'avais jeté un oeil sur le processeur MIPS R3000 de la PlayStation), mais tous les outils de développement était conçus pour le C++, un langage de programmation qui ne m'intéressait pas. J'ai donc fait des courses automobiles à la place. Quelques années plus tard, j'ai postulé pour un emploi chez Rare (Nintendo), société qui n'était pas loin de chez moi, afin de programmer sur consoles. Mais en fin de compte, j'ai décidé de rester programmeur indépendant afin de faire ce que je faisais déjà. ![]() J'ai encore les codes sources et les outils de développement que j'ai utilisés. Cependant, je ne dispose pas des droits sur les codes sources, et certaines parties des codes ont été écrites par d'autres personnes. J'ai partagé quelques outils sur un forum sur Internet. Ceci dit, je pourrais vendre mon vieil Atari Mega 4 ST bientôt sur eBay, et si je le fais, je pourrais accidentellement laisser tous les codes sources sur le disque dur. ;) ![]() J'en doute. Les droits sur le code appartiennent aux éditeurs et aux créateurs originels. Primal Rage fut un jeu sur arcade Atari et je crois que c'est Midway pour Mortal Kombat. Acclaim a publié les versions domestiques. C'est donc eux qui détiennent les droits. Ces dernières années, il y a eu beaucoup d'activités juridiques autour des droits des codes sources des versions arcade. Initialement, personne n'était intéressé par de vieux codes sources. Mais maintenant, beaucoup réalisent la valeur qu'ils peuvent avoir lorsque de vieux jeux sont portés sur les téléphones mobiles et autres périphériques modernes (par exemple Pacman sur iPhone). Je pense donc qu'ils sont plus prudents maintenant. ![]() J'ai un Amiga 600 avec 1 Mo de mémoire. Je le sors environ une fois tous les deux ans pour jouer aux jeux que j'ai créés. Mais maintenant, la plupart sont sur YouTube, donc je ne fais que les regarder. :) J'ai aussi un BBC Micro B, un Atari Mega 4 ST et un clavier PC que j'ai utilisé lors de la création de Mortal Kombat, Mortal Kombat 2 et Primal Rage. ![]() Je ne suis pas vraiment surpris. Parmi les domaines d'intérêt, il y a les personnes qui s'intéressent au passé et aux souvenirs. Moi-même, j'aime l'histoire des courses automobiles et les anciens circuits. J'apprécie aussi les vieux jeux d'arcade, particulièrement les jeux 8 bits comme Space Invaders, Tempest, Pacman, etc. qui étaient à la une quand j'étais gamin. ![]() Gauntlet 2, Ramrod (non publié), Hotrod, Golden Axe, Terminator 2, Motorhead... je pense que c'est tout. L'Atari ST n'était pas assez puissant pour Mortal Kombat ou Primal Rage et, à l'époque, l'Amiga était la plate-forme principale avec les consoles Mega Drive et SNES. ![]() Non, j'ai été au plus près à Lausizring en Allemagne (près de Dresde). Et j'imagine que j'ai survolé le pays lors d'un voyage pour la Chine :). Un jour, je pense faire un tour en Europe pour visiter les plus grands monuments historiques, donc j'y passerais peut-être. ![]() Cela a été un plaisir, j'espère que mon entrevue a été intéressante.
|