Nous avons parlé avec Troy Miles - le programmeur de "Neuromancer"

[Troy Miles est un conférencier, auteur et développeur de logiciels avec de nombreuses années d'expérience. Il a commencé sa carrière en écrivant des jeux pour le Commodore 64, Apple II et IBM PC dans le 6502nd x86th Assembler. Deux fois lauréat du prix du jeu de l'année. Il est l'auteur de jQuery Essentials, ainsi que d'un grand nombre d'articles de revues et de publications dans son propre blog. Créateur de vidéos de formation. Programmation en cours d'applications Web et mobiles chez Kelley Blue Book.]


Salut Vous me connaissez peut-être de la série Reversim Neuromant , où je parle de la façon dont nous rétroconcevons et portons un jeu vidéo basé sur le roman du même nom de William Gibson . En raison de son contenu, il s'agit plutôt d'une retombée que de la partie numérique suivante - un matériau indépendant qui ne nécessite pas de préparation supplémentaire de la part du lecteur.


Et cela a commencé par la façon dont viiri , avec les mots: «C'est le programmeur qui a écrit le Neuromancien. Je pense que cela ne le dérangera pas de répondre aux questions », m'a-t-il envoyé un lien vers le compte Twitter d'un homme nommé Troy Miles (photo). Ensuite, j'ai travaillé sur la quatrième partie du cycle et n'y ai pas attaché beaucoup d'importance. Après y avoir réfléchi quelques semaines plus tard, l'idée d'une entrevue avec le développeur m'a semblé si réussie que j'ai immédiatement écrit à Troy pour savoir qui nous sommes, ce que nous faisons et ce que nous attendons de lui. La réponse ne tarde pas à venir, Troy réagit très favorablement à notre engagement et accepte de répondre à mes questions.




- Bonjour, Troy, je pense qu'il est temps de commencer notre courte interview. Pour commencer, je veux que vous vous présentiez à mes lecteurs. S'il vous plaît, Troy, parlez-nous des faits saillants de votre carrière professionnelle.


- Bonjour à tous, mon nom est Troy Miles . Je travaille comme programmeur depuis 1979, alors j'étais encore au lycée. Je suis devenu le quatrième employé embauché par Interplay [après sa fondation] en 1983. Ce furent des moments formidables et des gars formidables. J'ai écrit Neuromancer , Le Seigneur des anneaux , et j'ai aidé au développement de nombreux autres jeux.


J'ai quitté Interplay en 1992. J'aimais toujours cette entreprise, mais j'avais besoin d'un horaire de travail stable. J'ai passé quelque temps chez Phoenix Technologies Ltd , travaillant sur le logiciel système pour les modules PCMCIA . D'une certaine manière, j'ai même écrit un article à ce sujet dans Dr. Le magazine de Dobb .


Après Phoenix, je suis devenu développeur indépendant pendant un certain temps. Réalisation de quelques jeux CDI sous contrat. Ils étaient terribles, pas en termes de programmation - le gameplay était moyen, et le CDI lui-même, en principe, n'était pas une bonne idée.


En 2007, j'ai rejoint le Kelley Blue Book , où je demeure aujourd'hui. Notre site Web est www.kbb.com. Ceci est une ressource sur des sujets automobiles. Sans brillance excessive, mais mes collègues sont assez bons.


Pendant mon séjour à KBB, j'ai recommencé à écrire et, si possible, à tenir de petites conférences. Jusqu'à présent, les rapports concernaient principalement jQuery et jQuery Mobile . Au final, sur jQuery, j'ai même écrit un livre et réalisé un tutoriel vidéo sur Ionic . J'ai également tourné un clip vidéo jQuery Mobile pour Learn Now Online .


L'année dernière, j'ai commencé à faire des vidéos pour LinkedIn Learning / Lynda.com . Aujourd'hui, il y en a 5: deux en C ++ , deux en Kotlin et un sur Bash . Je prévois de faire quelques vidéos C ++ supplémentaires dans un avenir proche.


Pendant mon temps libre, je développe un jeu mobile. Rien de surnaturel, un casual ordinaire, que j'espère finir au premier semestre 2019. Ce sera mon premier match depuis le CDI du milieu des années 90.


Q1
- Salut Troy, je pense qu'il est temps de commencer notre petite interview. Premièrement, je veux que vous vous présentiez à mes lecteurs. S'il vous plaît, Troy, faites-nous passer les étapes de votre carrière professionnelle.

- Salut à tous, je suis Troy Miles . Je suis programmeur rémunéré depuis 1979, alors que j'étais encore au lycée. J'étais employé numéro quatre chez Interplay en 1983. C'était des moments formidables et des gars formidables. J'ai écrit Neuromancer , Lord of the Rings , et aidé de nombreux autres jeux.

J'ai quitté Interplay en 1992. J'aimais toujours l'entreprise, mais je devais travailler régulièrement. J'ai passé quelque temps chez Phoenix Technologies Ltd. Travail sur le logiciel système PCMCIA . Même écrit un article à ce sujet pour le Dr Le magazine de Dobb .

Après Phoenix, je suis devenu indépendant pendant un certain temps. J'ai fait des CDI , des jeux interactifs sur disque compact sous contrat. Ils étaient tous terribles. Pas à cause de la programmation, mais parce que le CDI n'était pas une bonne idée et le gameplay n'était pas très amusant.

En 2007, j'ai rejoint Kelley Blue Book , où je suis toujours aujourd'hui. Notre site est [www.kbb.com] [www.kbb.com]. Il s'agit d'un site d'évaluation automobile. Pas glamour, mais mes coéquipiers sont intelligents et amusants.

Pendant mon séjour à KBB, j'ai recommencé à écrire et finalement à faire de petites conférences. Pendant un certain temps, la plupart des discussions étaient sur jQuery et jQuery Mobile . J'ai finalement écrit un livre sur jQuery et fait une vidéo sur Ionic . J'ai également réalisé une vidéo pour Learn Now Online , sur jQuery Mobile .

L'année dernière, j'ai commencé à faire des vidéos pour LinkedIn Learning / Lynda.com . Jusqu'à présent, j'ai sorti 5 vidéos. Deux sur C ++ , deux sur Kotlin et un sur Bash . J'ai prévu quelques vidéos supplémentaires sur C ++ au cours des prochains mois.

Pendant mon temps libre, j'ai conçu un jeu mobile. Rien d'extraordinaire, un jeu occasionnel, que j'espère avoir terminé d'ici le premier ou le deuxième trimestre de 2019. Ce sera mon premier match depuis l'ère CDI du milieu des années 90.



- Un palmarès impressionnant! Mais revenons à 1983, lorsque vous êtes arrivé sur Inerplay . Dites-nous comment vous y êtes arrivé et qui étaient ces gars formidables que vous avez mentionnés?



- À San Diego , à environ 100 kilomètres d' Orange , en Californie , j'ai fait mes propres jeux pour Vic 20 et C64 . En 1983, une exposition de jeux informatiques a eu lieu dans un endroit appelé Lion Country Safari [Lagoon Hills, Orange] . Là, j'ai rencontré Brian Fargo . Il a ensuite travaillé pour Boone , qui était dirigé par un gars nommé Michael Boone (il a ensuite créé Boone Boards ). J'ai parlé à Boon de leur permettre de devenir développeur de jeu.Cependant , lorsque la société s'est effondrée, Brian m'a appelé et m'a proposé de rejoindre sa startup - Interplay Prouctions . J'étais d'accord. Notre premier bureau était situé dans la zone industrielle de Newport Beach , juste au-dessus du bureau du fabricant de vêtements Quiksilver .




[Photo fournie par Troy lui-même.] Dans la photo du premier rang [de gauche à droite]: Alan Pavlish , Brian Fargo , moi et Jay Patel . Rangée arrière: Bill Heinman , Troy Warrel et Todd Kamasta . Il s'agit d'une photographie de fin 1984 - début 1985.


À cette époque, nous faisions quelque chose sous licence, sous-traitance et ports pour d'autres entreprises. Nous avons même fait quelque chose pour le ministère de la Défense , par le biais de Loral . Il s'agissait de cartes avec GPS , ce qui était nouveau à l'époque. Pour ce travail, nous avons reçu des remerciements de l'armée américaine. Nous avons également passé un contrat avec l'Université de Californie à Irvine . Ils ont fait des jeux éducatifs sous la direction d'un professeur. Nous avons également réalisé des films d'action d'aventure pour Activison . Parmi eux, MindShadow , Tass Times in Tonetown et Borrowed Time . La prolifération des jeux n'était pas facile à cette époque. Il n'a pas été très difficile de trouver un petit magasin d'informatique qui mettra votre jeu en vente, mais cela a pris beaucoup de temps, de plus, sans un million de dollars dans une banque, il était tout simplement impossible de forcer un grand réseau commercial, comme Sears ou Walmart , à vendre votre produit. Aujourd'hui, c'est beaucoup plus facile. Vous pouvez simplement télécharger votre idée originale sur l'App Store ou la vendre vous-même via votre propre site Web. Donc, avoir Activison en tant qu'éditeur signifiait beaucoup et nous a permis de rester à flot.


Vers 1987, j'ai créé l'application la plus cool qui n'a jamais vu le jour. Il s'appelait Software Studio . L'application vous a permis de créer quelque chose comme un dessin animé sur C64 et Apple II . L'ensemble comprenait un ensemble de scènes et de personnages préparés. Chaque personnage avait son propre jeu d'animations, ils pouvaient marcher, s'asseoir, danser et tout ça. Un moteur d'animation incroyablement efficace y a été utilisé - à peine quelques kilo-octets, vous pourriez adapter une bande dessinée de 5 minutes. Au début, Activision s'est intéressé à l'application, mais plus tard, ils se sont éloignés de ce sujet. Ensuite, nous avons essayé d'intéresser d'autres joueurs, dont Disney . J'ai aimé le programme, mais tout le monde avait peur qu'il soit trop flexible. Disney était particulièrement préoccupé par l'utilisation abusive de ses personnages. En fin de compte, nous avons admis la défaite et abandonné cette entreprise.


Après un certain temps, Brian Fargo m'a demandé si je voulais faire un jeu sur Neuromancer , selon un livre que nous avons tous les deux lu. Les droits sur la version cinématographique semblaient alors appartenir à Sabana Boys [Productions] , et ils ont obtenu le feu vert pour la production. Tim Leary détenait les droits à l'igronisation, mais le développement était au point mort. Tim n'est pas programmeur, mais les codeurs avec lesquels il a travaillé ont abandonné le projet. Nous sommes allés à Bel Air [Los Angeles] , à 60 kilomètres au nord, pour le rencontrer chez lui, mais c'est une autre histoire.


Q2
- Tout à fait un palmarès impressionnant que vous avez. Mais revenons à 1983 lorsque vous êtes arrivé à l' Interplay . Dites-nous en plus sur comment vous y êtes rendu et qui étaient les autres que vous avez mentionnés?

- J'avais fait mes propres jeux pour le Vic 20 et le C64 à San Diego à environ 100 km d' Orange County , tous deux en Californie . En 1983, une expo de jeux informatiques s'est tenue dans un endroit appelé Lion Country Safari . Là, j'ai rencontré Brian Fargo . Il travaillait pour une entreprise appelée Boone , dirigée par un dénommé Michael Boone . (Il allait plus tard créer des Boone Boards .) J'avais parlé avec Boone de son intégration en tant que programmeur de jeux, mais quand ils se sont effondrés, Brian m'a appelé et m'a demandé si je voulais rejoindre sa startup, Interplay Productions . J'ai dit oui. Nos bureaux d'origine étaient situés dans une section industrielle de Newport Beach , au-dessus d'un bureau du fabricant de vêtements Quiksilver .

Sur la photo, au premier rang: Alan Pavlish , Brian Fargo , moi et Jay Patel . Rangée arrière: Bill Heineman , Troy Worrell et Todd Camasta . La photo date de fin 1984 ou début 1985.

À cette époque, nous faisions des titres, des travaux sous contrat et des ports pour d'autres sociétés. Nous avons même travaillé pour le ministère de la Défense , par le biais de Loral . Nous avons reçu une mention élogieuse de l'armée américaine pour notre travail. Cela impliquait de déplacer la carte avec le GPS , ce qui était nouveau à l'époque. Nous avons également réalisé des contrats pour l' Université de Californie à Irvine . Nous avons fait des jeux ludo-éducatifs sous la direction d'un professeur. Et nous avons fait quelques jeux d'aventures d'action pour Activision . Ils étaient MindShadow , Tass Times in Tonetown et Borrowed Time , sans ordre particulier. La distribution de jeux était très difficile à l'époque. Il n'était pas trop difficile d'obtenir de petits magasins d'informatique pour transporter votre jeu, mais cela prenait du temps et il était impossible de faire en sorte que de grands détaillants comme Sears et Walmart ou des chaînes de magasins d'informatique vendent votre produit, sauf si vous aviez des millions de dollars à la banque. Les développeurs d'aujourd'hui ont beaucoup plus de facilité. Vous pouvez simplement télécharger sur une boutique d'applications ou le vendre vous-même sur votre propre site Web. Donc, obtenir Activision pour autoriser nos jeux a été un gros problème et nous a aidés à rester solvables.

Pendant cette période, vers 1987, j'ai créé l'application la plus cool jamais sortie. Il s'appelait Software Studio . Cela vous a permis de faire une sorte de dessin animé sur le C64 et Apple II . Il est venu avec une collection de scènes et de personnages pré-construits. Chaque personnage avait une collection d'animations. Ils pouvaient marcher, s'asseoir, danser, etc. Le tout a utilisé des moteurs d'animation super efficaces. En seulement quelques kilo-octets, vous pourriez faire un dessin animé de 5 minutes. Initialement, Activision était intéressé, mais ensuite ils se sont retirés. Ensuite, nous avons essayé d'intéresser d'autres joueurs, dont Disney . Tout le monde a aimé l'application, mais leur grande préoccupation était que le produit était trop flexible. Disney était particulièrement préoccupé par les gens qui faisaient des dessins animés qui utilisaient de manière inappropriée leurs personnages. Finalement, nous avons admis la défaite et l'avons mise de côté.

Ensuite, Brian Fargo , m'a demandé si j'étais intéressé à faire un jeu basé sur "Neuromancer" . Un livre que nous avions lu tous les deux. Il semble que les Cabana Boys , avaient les droits du film et qu'il avait été donné le feu vert pour la production. Tim Leary avait les droits de jeu sur ordinateur mais le développement du jeu était au point mort. Tim n'est pas un codeur et les codeurs avec lesquels il travaillait avaient abandonné le projet. Nous sommes allés à Bel-Air , à environ 60 km au nord pour le rencontrer chez lui et le reste appartient à l'histoire.



"Une histoire incroyable, Troy." Il est dommage que Software Studio ne soit jamais sorti, il semble que ce fut une percée majeure. Enfant, j'ai utilisé un logiciel similaire. Je ne me souviens pas du nom, quelque chose comme The Simpsons: Cartoon Studio , mais selon les dessins animés soviétiques. Mais c'était le deux millième, et vous l'avez fait il y a 15 ans. Impressionnant.


Mais revenons aux affaires. La question suivante aurait dû porter sur la façon dont Interplay est arrivé à Neuromancer , mais vous y avez déjà répondu :). Mais avant de commencer à parler du jeu lui-même, j'ai quelques questions, dont les réponses m'intéressent personnellement. C'est la chose, Timothy Leary est sans aucun doute une personne exceptionnelle, alors comment c'était de travailler avec lui?


Et une autre question, William Gibson était-il lui-même impliqué dans le développement?


Qui est Timothy Leary?

Tiimoti Francis Leary (22/10/1920 - 31/05/1996) - écrivain américain, psychologue, participant à la campagne de recherche sur les drogues psychédéliques, développeur de logiciels.


À vingt ans, Leary est devenu un étudiant à l' Université de l'Alabama , et après avoir obtenu son diplôme a obtenu un baccalauréat en psychologie . En 1950, il est devenu docteur en psychologie . En 1957, il a créé la méthodologie psycho-diagnostique «Test de Leary sur les relations interpersonnelles» , qui est encore utilisée par les agences de renseignement américaines.


Leary a obtenu sa renommée scandaleuse pour avoir étudié l'influence des psychédéliques sur la psyché humaine et le système nerveux. Leary a activement promu les psychédéliques, donné des conférences et écrit un certain nombre de livres sur l'élargissement des limites de la conscience humaine.


Cette renommée scandaleuse de Leary a conduit à la suppression de ses mérites dans ces domaines de la psychologie, qui ont ensuite été associés à des noms complètement différents.


En 1984, Leary a rejoint le mouvement cyberpunk qui a conquis l'Amérique au cours de ces années. Dans cet environnement aussi, il a réussi à devenir un leader, rassemblant des gens insatisfaits de la réalité autour de lui. En collaboration avec William Gibson, le scientifique a promu la réunion de l'homme et de l'ordinateur, créé plusieurs produits logiciels et écrit un certain nombre de livres.


Le scientifique est décédé en 1996. Il a enregistré le moment de sa mort sur une vidéo connectée à Internet. Ainsi, tout le monde pouvait regarder sa mort. La dernière chose qu'il a dite était: "Pourquoi pas?" .




- Travailler avec Tim Leary était très cool. Il était vraiment cool. Tim nous a invités chez lui pour discuter du projet. Nous nous sommes installés dans son salon, d'où il y avait juste une vue imprenable sur Los Angeles. Après plusieurs canettes de bière, nous lui avons parlé de notre vision du jeu, qui était très différente de sa vision. Nous n'étions pas sûrs de la façon dont il réagirait, mais il aimait l'idée, et il semblait qu'il était extrêmement intéressé à en faire une réalité.


Drôle, Tim , en quelque sorte, "grommelait" à quel point j'étais actif. Il semblait qu'avant cela, il n'avait jamais rencontré un programmeur informatique extraverti. Il a demandé si j'étais un acteur - je ne l'étais pas - mais il voulait juste que je joue dans le film. Ensuite, cela a semblé possible, mais, hélas, ce n'est jamais arrivé au point. J'ai donc raté ma chance de devenir une star de cinéma ;-).


William Gibson n'a pas participé au développement du jeu. Bien que nous nous soyons rencontrés une fois à Santa Monica , lors de sa séance d'autographes. Je n'avais que deux minutes environ pour lui parler. Nous l'avons invité à boire avec nous après la séance, mais il avait déjà des projets. Il semble être un gars cool, et j'apprécie vraiment que malgré le fait qu'il soit occupé, il a pris quelques minutes pour discuter avec nous.


Q3
- Une si belle histoire, Troy. Désolé que votre Software Studio ne soit jamais sorti, il semble que ce soit une sérieuse percée. Je me souviens comment j'utilisais un logiciel similaire quand j'étais enfant. C'était quelque chose comme The Simpsons: Cartoon Studio mais adapté pour les dessins animés soviétiques, je ne me souviens pas comment il s'appelait. Mais c'était dans les années 2000, et vous l'avez déjà fait il y a 15 ans. Tellement impressionnant.

Mais revenons à nos affaires. La question suivante devrait être de savoir comment l' Interplay a créé "Neuromancer" , mais vous y avez déjà répondu :) Quoi qu'il en soit, avant de commencer à parler du jeu réel, j'ai quelques questions dont les réponses sont importantes pour moi personnellement. C'est parti, il ne fait aucun doute que Timothy Leary est un homme exceptionnel, alors comment cela fonctionnait-il avec une telle personne?

Et l'autre question, William Gibson lui-même y a-t-il participé?

- Tim Leary était super cool de travailler avec. Il était vraiment gentil. Il nous a invités chez lui pour parler du projet. Nous nous sommes tous assis dans son salon qui avait une vue spectaculaire sur les toits de Los Angeles . Nous lui avons expliqué notre vision du jeu qui était très différente de la sienne sur quelques bières. Nous ne savions pas vraiment comment il réagirait. Mais il aimait notre idée et semblait excité à l'idée de la concrétiser.

Une note latérale étrange, Tim a en quelque sorte déclenché mon intensité. Il semble qu'il n'ait pas encore rencontré un nerd informatique extraverti. Il voulait savoir si j'étais acteur, je ne le suis pas, mais il veut vraiment que je participe au film. A cette époque, le film était réel, mais hélas il n'a jamais été tourné et ma chance a été célébrée ;-).

William Gibson , n'a joué aucun rôle dans le match. Nous nous sommes rencontrés une fois à Santa Monica , où il faisait une séance de dédicaces. J'ai eu environ 2 minutes pour lui parler. Nous l'avons invité à prendre un verre ou un café après la signature, mais il avait déjà des projets. Il semblait être un gars sympa et j'ai apprécié qu'il ait pris quelques minutes pour discuter avec nous même s'il était occupé.



"Je me demande si Gibson a joué ton jeu?" Pour autant que je sache, il n'était pas fort en informatique :)


Donc, le "Neuromancien" . Je sais que tu étais le seul programmeur du projet. Mais pour l'instant, concentrons-nous sur l'équipe Neuromancer dans son ensemble. Qui d'autre a travaillé sur le jeu? Quels étaient les rôles?


"Pour autant que je sache, Gibson ne l'a pas joué."


Bruce Belfort était producteur et scénariste. Il était le lien qui nous unissait. Très intelligent et sympathique, il était pour nous quelque chose comme un mentor. Le scénariste principal était Michael Stackpole . Il était alors une étoile montante, et maintenant - un auteur reconnaissable de la science-fiction. Charles Wademan III était notre grand artiste. Il a utilisé les outils que j'ai concoctés pour créer l'interface, les personnages et leurs animations. Et enfin, Brian Fargo , chef d' Interplay , a été producteur exécutif et a été très impliqué dans le processus de création du jeu.




[Photos trouvées sur Internet. De gauche à droite: Michael Stackpole, Todd Kamasta, Bill Heinman, Troy Miles, Bruce Belfort, Charles Wademan III.]


Au total, le jeu a duré environ 9 à 10 mois. C'était stressant mais amusant. Le plus cool était de savoir comment nous pouvions nous parler ouvertement et honnêtement sans prendre en compte les critiques. Cela nous a permis de tirer le maximum les uns des autres, ce qui n'a fait que rendre le jeu meilleur.




Q4
- Je me demandais juste si Gibson avait joué le jeu. Pour autant que je sache, il n'aimait pas beaucoup les ordinateurs à l'époque :)

Donc, le "Neuromancien" . Je sais déjà que vous étiez l'unique programmeur d'un jeu, mais pour l'instant concentrons-nous sur toute l'équipe de Neuromancer. Qui d'autre a travaillé sur le jeu? Quels étaient les rôles?

- À ma connaissance, Gibson n'a jamais joué le jeu.

Bruce Balfour était le producteur et écrivain. Il était la colle qui nous tenait ensemble. Très intelligent et aussi aimable. Il était un peu comme un entraîneur. Michael Stackpole était le principal auteur du jeu. Il était alors une étoile montante et est devenu un auteur bien connu de la science-fiction. Charles HH Weidman III était notre artiste génial. Il a pu utiliser les outils que j'ai giflés ensemble pour créer l'interface utilisateur et les personnages, ainsi que leur animation. Et Brian Fargo , le chef d' Interplay , était le producteur exécutif et a été très impliqué dans la création du jeu.

Le jeu a pris environ 9 ou 10 mois au total. C'était stressant mais amusant. La meilleure partie était la façon dont nous avons pu parler ouvertement et honnêtement les uns avec les autres sans que personne ne prenne personnellement les commentaires. Cela a amélioré le jeu et nous a permis de tirer le meilleur parti les uns des autres.



- Un point important, le jeu est sorti sur un certain ensemble de plateformes, donc quand vous parlez du temps qu'il a fallu à Neuromancer , voulez-vous dire une version spécifique (si oui, laquelle), ou tout à la fois? Je demande parce que, par exemple, la version pour Amiga [à gauche], comparée à la version pour MS-DOS [au milieu], ressemble à un jeu complètement différent, sans parler de la version pour C64 [à droite].




- Je ne parle que de C64 . Ports réalisés par d'autres personnes. La C64 était la voiture la plus cool pour son argent, avec une excellente puce audio et vidéo. Le processeur 6502nd était également un gadget intéressant. En raison de sa simplicité, il vous a permis de faire des choses que les processeurs plus puissants ne permettaient pas, comme le code auto-modifiable . Ces monstres ont forcé à transpirer ceux qui ont fait les ports. Le jeu a été entièrement écrit en 6502nd Assembler .


Q5
- Voici un point important, le jeu est sorti sur certaines plateformes. Donc, quand vous parlez du temps qu'il a fallu pour créer Neuromancer , voulez-vous dire une version spécifique (qu'est-ce que c'est si c'est le cas?) Ou toutes à la fois? Je demande parce que, la version Amiga [gauche] par rapport à la version MS-DOS [centre], par exemple, ressemble à un jeu complètement différent, sans parler de la version C64 [droite].

- Je ne parle que du C64 . Les ports ont été effectués par d'autres. Le C64 était une machine incroyable pour le prix. Il avait également d'excellentes puces audio et vidéo. Le processeur 6502 était également une bête intéressante. Parce que c'était si simple, vous pouviez faire des choses que d'autres CPU plus puissants ne pouvaient pas faire, comme du code auto-modifiable .Ce genre de trucs a donné du blues à certains auteurs de port. L'ensemble du jeu a été écrit en assemblage 6502.



- C'est cool! En faisant notre portage, nous avons supposé que le jeu était écrit en assembleur, mais nous ne pensions pas qu'il s'agissait à l'origine du 6502nd . Soit dit en passant, sur les astuces, peut-être vous souvenez-vous et en décrivez quelques autres?


«À l'heure actuelle, trois techniques intéressantes me viennent à l'esprit: le dynamitage , les interruptions et le code auto-modifiant .


Dynamitage . Le C64 peut avoir plusieurs écrans visibles, et vous pouvez choisir celui qui est actif en définissant simplement une valeur spécifique. Utiliser un écran signifie: le nettoyer , le dessiner et le régler pour afficher le résultat. Évidemment, ici, vous avez besoin du moyen le plus rapide pour effacer l'écran. Et le plus rapide s'est avéré mettre la batterie à zéro et écrire séquentiellement la valeur de la batterie dans chaque emplacement de mémoire d'écran. [Troy signifie littéralement une entrée explicite dans chaque cellule: mov ax, 0; mov screen[0], ax; mov screen[1], ax ... mov screen[n], ax mov ax, 0; mov screen[0], ax; mov screen[1], ax ... mov screen[n], ax mov ax, 0; mov screen[0], ax; mov screen[1], ax ... mov screen[n], ax .] Cela a l'air fou, et en tant que programmeur, vous voulez envelopper cela dans une boucle for , mais le branchement ralentit de manière critique l'exécution du code.


Interruptions . L'interruption vidéo en C64 a commencé tous les 30 secondes. Vous pourriez intercepter cette interruption et obtenir quelque chose comme «multitâche pour les pauvres». Quoi que vous fassiez là-bas, ça doit être rapide, sinon l'image va trembler. Mais vous pourriez avoir le temps de faire toutes sortes de choses utiles, telles que le contrôle du son ou les sprites de multiplexage.


Code auto-modifiant . Le 6502nd a pu faire une chose très étrange - changer les instructions avant de l'exécuter. Cela semble fou, mais l'idée est simple: au lieu de vérifier la condition et de passer à la branche de code suivante, laissez une branche et changez simplement son code en fonction de la condition.


 repeat N times { if STATE is 1 increase A by one else decrease A by one do something with A } repeat N times { increase A by one do something with A when STATE has to switch { replace the opcode "increase" above with the opcode to decrease, or vice versa } } 

Soit dit en passant, l'architecture PC au départ était extrêmement mal adaptée aux jeux. Le problème avec le son, un sous-système graphique très simple, et ne rappelons pas la limitation de la mémoire 640K . La plupart des PC étaient alors des 8088 , et ils sont beaucoup plus lents que leurs homologues 8086 . Donc, plus de mémoire et un meilleur processeur n'ont pas fait du PC un meilleur environnement de développement.


Q6
- Incroyable! En faisant notre port, nous avons supposé que le jeu était entièrement écrit en assembleur, mais nous ne savions pas qu'il s'agissait du 6502 . À propos des astuces, pourriez-vous vous en souvenir et en décrire davantage?

- Il y a trois techniques intéressantes auxquelles je peux penser en ce moment: le dynamitage , les interruptions et le code auto-modifiant .

Dynamitage - le C64 peut avoir plusieurs écrans visibles et vous pouvez changer celui qui est actif en définissant une valeur. Pour utiliser un écran, vous devez l' effacer , le dessiner , puis retourner le bit pour l'afficher. De toute évidence, vous voulez une méthode pour effacer l'écran le plus rapidement possible. Le moyen le plus rapide possible consiste à charger l'accumulateur à zéro et à stocker l'accumulateur dans chaque adresse mémoire de l'écran. Il a l'air fou et votre désir en tant que codeur est de le mettre en boucle. Mais l'acte de branche et de vérifier la branche ralentit considérablement le code.

Interruptions - le C64 a une interruption vidéo tous les 30 secondes. Vous pouvez vous accrocher à cette interruption pour effectuer un peu les tâches multiples d'un pauvre homme. Quoi que vous fassiez doit être rapide, sinon l'affichage vidéo se brisera, mais vous pouvez faire des choses utiles comme piloter l'audio ou multiplexer les sprites.

Code auto-modifiable - Une chose très étrange que le 6502 peut faire, est de changer une instruction avant de l'exécuter. Cela semble inutile, mais l'idée est simple plutôt que de comparer et de passer au nouveau code, changez le code une fois que vous connaissez le choix qui doit être fait pour que les passes suivantes n'aient pas besoin de vérifier.

Remarque: l'architecture originale du PC était un environnement de jeu terrible. Le son sur le PC n'était pas inclus, les graphismes étaient très simples, et ne parlons pas du problème de mémoire 640 K. La plupart des PC étaient 8088, ce qui était plus lent que leurs cousins ​​8086. Donc, même si le processeur était meilleur et la mémoire plus grande, cela n'en faisait pas un meilleur environnement de développement.



- En effet, la version PC a l' air et sonne mal. Cependant, voici un peu sur le son. La bande originale du jeu est basée sur la chanson de Devo «Some Things Never Change» . Avez-vous une histoire expliquant pourquoi cette chanson a été choisie et qui, en principe, était responsable de la conception sonore du jeu?


- Ici, je peux être inexact. Pour autant que je sache, Tim Leary et Mark Mathersbo de Devo [photo] étaient amis. D'une manière ou d'une autre, très probablement via Tim , nous avons eu une introduction et nous avons rencontré Mark dans son studio à Marina Del Rey . Mark est un dur à cuire, très avisé sur le plan technique. Nous avons écouté beaucoup de morceaux du nouvel album de Devo , Mark pensait que "Some Things Never Change" serait le meilleur pour notre projet, et nous étions solidaires avec lui. Mark nous a remis une copie numérique de la chanson. Travailler avec des fichiers audio à la fin des années 80 est toujours un casse-tête. Bill "Burger" Heinman (maintenant Rebecca Heinman ) était un vrai sorcier, il a pu traiter le fichier source et le rendre 8 bits pour C64 et 1 bit pour les autres plates-formes. Puis j'ai entendu pour la première fois une vraie chanson dans un jeu vidéo. Le son n'était pas parfait, mais assez bon pour l'époque.



Q7
- En effet, la version PC a l'air et sonne mal par rapport à ses frères. Quoi qu'il en soit, il y a quelque chose à propos du son, la bande originale du jeu basée sur la chanson "Some Things Never Change" de Devo . Y a-t-il une histoire sur la raison pour laquelle cette chanson a été choisie et qui était responsable de la conception sonore?

- C'est un point sur lequel je suis un peu flou. À ma connaissance, Tim Leary était ami avec Mark Mothersbaugh de Devo . D'une manière ou d'une autre, nous avons eu une introduction, très probablement via Tim , et avons rencontré Mark dans son studio à Marina del Rey . Mark était un gars super cool. Il était également très averti en technologie. Nous avons écouté beaucoup de morceaux sur le nouvel album de Devo . Mark a estimé que "Some Things Never Change" serait la meilleure piste pour notre projet, et nous avons accepté. Il nous a donné une copie numérique de la piste sur un DAT . À la fin des années 80, c'était une immense douleur de travailler avec des fichiers audio. Burger Bill Heineman , maintenant Rebecca Heineman , était l'assistant qui a traité le fichier et l'a rendu 8 bits sur le C64 et 1 bit sur tous les autres. C'était la première fois que j'entendais une chanson réelle dans un jeu vidéo. Ce n'était pas parfait mais c'était cool pour l'époque.



- Je pense que cette chanson convient parfaitement. Mais revenons à la programmation et parlons un peu de l'architecture du jeu. Pour Neuromancer , avez-vous écrit un moteur complètement nouveau ou était-il basé sur votre travail précédent?


- Sur le plan architectural, le Neuromancien se composait de deux parties, l' animation et le gameplay . La partie animation , avec des mises à jour minimales, a migré de Software Studio , ce qui a donné au NPC des réactions animées et des notes de bas de texte. Le moteur de gameplay était complètement nouveau. Au départ, c'était plus complexe, avec une utilisation abondante de nombres aléatoires, mais cette partie a été rejetée - personne n'aime les jeux trop imprévisibles. Le jeu lui-même avait deux outils intéressants. Le premier pouvait enregistrer le gameplay - la sortie était un fichier texte. Si vous lui donnez un jeu, elle a commencé à jouer seule. C'était pour le débogage. De plus, le moteur de jeu était jouable par lui-même, sans partie d'animation. Encore une fois, pour le débogage. La partie gameplay du moteur pourrait également fonctionner sans animation . Tout cela a rendu la vie plus facile aux scénaristes, dont moi, car nous pouvions directement aller sur la bonne scène et travailler avec.


Q8
- Cette chanson me convient parfaitement. Revenons maintenant à la programmation et parlons un peu de l'architecture globale du jeu. La première chose, avez-vous écrit le tout nouveau moteur pour le Neuromancien ou était-il basé sur certains de vos travaux précédents?

- L'architecture de Neuromancer était divisée en deux parties: animation et jeu . L' animation a survécu de Software Studio . Il a donné à tous les PNJ présents des réponses animées et des bulles de texte. Le système n'a eu qu'une mise à jour mineure. Le moteur de jeu était tout nouveau. Au début, cela avait été plus compliqué avec plus d'aléatoire, mais cette partie était atténuée car personne n'aime un jeu trop aléatoire. Le jeu lui-même avait deux outils intéressants. Le premier a été possible d'enregistrer le match. Essentiellement, un fichier texte serait généré et si vous réintroduisiez ce fichier dans le jeu, il se jouerait lui-même. C'était pour le débogage. Et le moteur de jeu était jouable par lui-même sans l'animation. Encore une fois, c'était pour le débogage. Le jeu pourrait également fonctionner sans l' animation . Cela a rendu la tâche plus facile aux scénaristes, y compris moi-même, car nous allons directement à la scène que nous voulions écrire ou éditer.



- Je voudrais m'attarder sur la partie gameplay . En étudiant la version pour MS-DOS, nous avons découvert que le jeu utilise quelque chose comme une machine virtuelle. La machine exécute le code secondaire contenu dans des fichiers de la forme "R% n.BIH" , qui, apparemment, sont des scripts pour le NPC . Ces fichiers sont un mélange de données de contrôle, de bytecode, de code objet 8086 et de lignes ASCII. Toutes ces fonctionnalités sont-elles d'une version spécifique ou font-elles partie de l'architecture d'origine?


- Ce n'est pas que j'ai beaucoup travaillé avec les ports, sauf que j'ai expliqué aux programmeurs le code pour 6502 , mais il semble qu'il soit basé sur des fichiers DAT de jeu. J'ai combiné animation et gameplay dans ces fichiers, en plus, il y avait aussi du code pour les niveaux. N'oubliez pas que le 6502nd Assembler n'avait pas de linker, donc je l'ai écrit.


Q9
- Je veux voir de plus près la partie gameplay de cela. En explorant la version MS-DOS du jeu, nous avons constaté qu'il utilise une sorte de machine virtuelle. La machine exécute le bytecode stocké dans les fichiers de données "R% n.BIH" , qui semble être un script NPC . Ces fichiers sont un mélange fou de données de contrôle, le bytecode, du code objet 8086 et des chaînes ASCII. Est-ce que cela faisait partie de la conception initiale ou est-ce spécifique à la version?

- Je n'ai pas fait grand-chose avec les ports, sauf pour guider le programmeur dans le code 6502, mais il semble qu'il soit basé sur les fichiers de données du jeu. J'ai combiné l'animation et le jeu dans les fichiers de données. Il y aurait également du code pour les niveaux. Gardez à l'esprit que l' assemblage 6502 n'avait pas de lieur, alors j'en ai créé un.



"Eh bien, puisque nous travaillons avec le port, je n'ai pas grand-chose à demander par code, avez-vous quelque chose à ajouter?" Nous avons déjà discuté de certaines techniques de bas niveau, mais vous vous souvenez peut-être de problèmes intéressants liés au travail sur la logique du jeu?


"En fait, en ce moment, je ne me souviens de rien de tel." Bonne chance avec le port, et veuillez m'envoyer des liens vers le jeu et l'article lorsqu'ils seront prêts.


Q10
- Eh bien, puisque nous travaillons avec le port, je n'ai pas grand-chose à demander sur le code. Continuez si vous avez quelque chose à ajouter. Nous avons déjà discuté d'un certain nombre de techniques de bas niveau, mais peut-être vous souvenez-vous de certains problèmes intéressants que vous avez résolus en travaillant sur la logique du jeu?

- Je n'ai vraiment rien d'autre de pertinent auquel je puisse penser en ce moment. Bonne chance avec votre port et envoyez-moi des liens vers votre port et l'article quand ils seront prêts.



"Bien sûr, Troy." Merci pour votre temps. J'espère que vous avez apprécié cette interview. Une dernière question: votre jeu préféré?


"La seule chose que je joue en ce moment est le simulateur X-Plane ." Elle est juste géniale. Parfois, je joue sur mon iPad et j'aime beaucoup les jeux avec une physique intéressante, par exemple Hello Stars . Cela semble être stupide, mais fait avec talent. Parfois, je joue en copiant des jeux 8 bits à l'ancienne, tels que Pitfall et Donkey Kong , mais je n'ai pas fait beaucoup de progrès, il n'a tout simplement pas assez de temps.


Q11
- Ouais, je le ferai. Merci pour votre temps, Troy. J'espère que vous aimez l'interview. Pour finir, il y a une dernière petite question: quel est votre jeu préféré?

- Le seul jeu auquel je joue vraiment de nos jours est une simulation, X-Plane. C'est génial. Je perds parfois du temps à jouer à des jeux sur mon iPad et j'aime beaucoup les jeux basés sur la physique, comme Hello Stars. C'est stupide, mais intelligent. J'ai également joué avec des clones de jeux 8 bits old school comme Pitfall! et Donkey Kong. Ni l'un ni l'autre n'est très loin, ne semble jamais avoir assez de temps.



Une telle histoire. L'interview s'est avérée être de petit volume, mais, à mon avis, très volumineuse en termes de détails. J'ai publié une version anglaise sur mon blog .


En ce qui concerne le jeu, beaucoup a été fait depuis la publication du dernier article: dialogues, inventaire, sauvegarde / chargement, et tout un tas de choses. Si tout se passe bien, alors dans quelques semaines, nous aurons une construction complètement jouable, jusqu'à présent sans cyberespace, mais il sera déjà possible d'avancer un peu dans l'histoire. La prochaine partie de numérotation du cycle sera publiée après avoir obtenu cette version. Mais maintenant, tout de même là, dans mon blog , vous pouvez suivre l'actualité du projet.

Source: https://habr.com/ru/post/fr422625/


All Articles