Histoires autour du moteur SCUMM

image

SCUMM peut être considéré simplement comme «l'un» des moteurs de jeux vidéo, mais ce moteur provoque presque autant de sentiments que les jeux créés sur sa base.

En parlant de l'âge d'or de l'aventure LucasArts, vous ne pouvez pas ignorer le moteur SCUMM, "Script Creation Utility for Maniac Mansion" ("utilitaire de création de script pour Maniac Mansion"), qui était utilisé dans les jeux les plus mémorables de tous les temps, tels que Full Throttle , Day of the Tentacle , Sam et Max prennent la route et, bien sûr, Maniac Mansion .

SCUMM a été écrit par Aric Wilmunder avec le célèbre concepteur de jeux Ron Gilbert, offrant ainsi la possibilité de créer ces jeux. Wilmunder et le journaliste Mike Bevan se sont récemment contactés par e-mail et ont discuté de SCUMM et des histoires qui l'entourent. L'article présente des fragments sélectionnés de cette conversation, enregistrés à partir des paroles de Wilmunder.

Nous avons décidé qu'il était important de transmettre les paroles de Wilmunder, car SCUMM n'est pas seulement un moteur ou une technologie. Pour de nombreux développeurs, c'était une façon de transmettre leur vision artistique à des milliers de personnes dans l'une des périodes les plus mémorables de l'histoire du jeu vidéo.

Evolution du moteur


L'une des caractéristiques qui a distingué LucasArts de la plupart des autres développeurs était que beaucoup d'entre nous provenaient de mainframes, nous avons donc développé des outils et des compilateurs sur les postes de travail Sun, puis créé des équipements qui nous permettaient de télécharger du code et des données sur les plateformes souhaitées. Tout a commencé avec Atari 800, puis Ron [Gilbert] a été embauché pour travailler avec C64, donc un système similaire a été créé pour cette plate-forme.

L'avantage le plus important était que nous pouvions développer des outils en C ou, comme dans le cas de SCUMM, utiliser YACC pour traiter et marquer le code. La plupart des développeurs utilisaient la même machine pour écrire et exécuter du code, de sorte que leurs outils utilisaient les capacités d'une seule plateforme.

Après les premières années de développement de produits pour PC, le PC lui-même est devenu aussi puissant que nos premiers postes de travail, nous avons donc commencé à migrer un par un nos outils et à abandonner progressivement les postes de travail Sun.

L'évolution des opportunités a commencé très tôt. J'étais le premier développeur interne travaillant sur un PC, et à cette époque, les outils et les compilateurs étaient très grossiers. Par exemple, les compilateurs C, en cas d'erreurs, produisaient des descriptions très "détaillées". Sur le PC, vous pouvez obtenir un message du type «Fichier: walk.c Line: 409 Error: 4004», après quoi vous devez entrer dans le code et déterminer le problème, ou obtenir le manuel et transformer le code d'erreur en quelque chose de plus compréhensible. Parfois, les descriptions des erreurs prêtaient également à confusion. Comme nous n'avions pas de bons éditeurs pour écrire du code sur un PC, j'ai utilisé des éditeurs sur Sun, puis transféré des fichiers. Lorsque des erreurs se sont produites sur le PC, j'ai recompilé et débogué le code sur la station de travail Sun. Cela m'a encouragé à écrire un code plus propre qui fonctionnerait sur deux machines très différentes dès le début.

Il y avait de nombreuses difficultés supplémentaires sur le PC, car les commandes, les sons et les graphiques étaient complètement différents. Par exemple, les souris n'étaient pas toujours des équipements standard, donc le contrôle a été conçu pour une souris, des manettes de jeu ou un clavier. Cela a simplifié le transfert du moteur de jeu vers d'autres plateformes, car la gestion est devenue modulaire. Pour le son, nous avons pris en charge le haut-parleur interne, il semble également être une carte son CMS (le prédécesseur d'Adlib), ainsi qu'un système audio pour les ordinateurs Tandy. Les graphiques étaient également modulaires car nous prenions en charge les écrans noir et blanc Hercules, les graphiques CGA quatre couleurs, les EGA 16 couleurs, les VGA en mode 16 couleurs et les graphiques Tandy dans un autre mode graphique. Pour implémenter cela, tous les graphiques ont été rendus dans un tampon mémoire, puis des procédures très spécialisées ont copié le tampon sur la carte vidéo. Nous avons utilisé le système dit des «rectangles sales», qui suit les zones qui ont été mises à jour, nous n'avons donc copié que les parties nécessaires de l'écran.


Arik Wilmunder

Communication sur SCUMM


SCUMM était un langage compilé. Par exemple, la commande walk dr-fred to laboratoire-door a converti la commande Walk en une commande à un octet. L'octet suivant a déterminé pour quel acteur ou personnage cette commande était destinée, et l'objet de porte de laboratoire a été converti en un numéro à deux octets, c'est-à-dire que la commande entière a été réduite à quatre octets de données. Si vous ne le savez pas, un octet est un morceau de mémoire d'ordinateur qui peut contenir une valeur numérique de 0 à 255. Comme nous pouvons le voir, un langage balisé est très efficace. L'interprète n'a jamais su quel acteur était dred-fred; c'était juste le numéro de l'acteur, donc nous avons toujours essayé d'éviter la tâche difficile de toute information spécifique sur le jeu directement dans l'interpréteur.

La seule exception à cette règle dans Maniac était la couleur avec laquelle l'acteur affichait le texte ...

Lors du développement de Maniac , nous avons eu quelques exceptions à la règle selon laquelle l'interprète ne devrait jamais avoir de valeurs de jeu codées. Dans ce document, je devais spécifier les couleurs utilisées pour les acteurs, et la couleur de l'affichage de leurs phrases. Le code source a incorporé ces valeurs dans l'interpréteur. Après le portage de Maniac sur PC et avant la sortie de Zak McKracken , deux nouvelles commandes ont été ajoutées afin que ces valeurs puissent être contrôlées à partir de scripts. «Set-acteur-talk-color» et «set-acteur-color» ont supprimé des commandes de jeu spécifiques de l'interpréteur afin que le script contrôle tout.

Je parle d'un interprète, alors examinons-le de plus près. Un interprète est un programme lancé par un utilisateur final. Il initialise les graphiques et les sons, lit les fichiers à partir du disque et interprète les scripts dans ces fichiers pour exécuter le jeu. À la sortie du jeu, nous avons renommé l'interpréteur «Monkey.exe» ou «Dig.exe», mais pendant le développement, cet outil s'appelait SPUTM, qui signifie «SCUMM Presentation Utility (tm)». Le nom n'est pas en fait une marque déposée (TM), mais nous voulions juste le nommer comme un autre fluide corporel.

SCUMM, ou Script Creation Utility for Maniac Mansion, était un outil pour baliser les scripts et combiner toutes les ressources du jeu dans des fichiers que nous avons publiés sur des disques. La version SCUMM utilisée pour Maniac devait contenir environ 80% des équipes utilisées dans les jeux suivants, comme Full Throttle . Après avoir terminé le développement du langage, les commandes les plus importantes n'ont jamais changé. «Marcher de Bernard à l'horloge» et «Marcher de Ben à moto» étaient essentiellement les mêmes.

SCUMM multitâche


La partie la plus importante de SCUMM était probablement le multitâche. Cela signifiait que plusieurs scripts pouvaient être exécutés en même temps. Vous pouvez créer une horloge murale dans le bureau de Zach McCracken et l'animer. Il y avait un script simple, très simple spécialement pour l'horloge, qui a dit au moteur d'animation de changer une image d'horloge à la suivante, a demandé au moteur sonore de reproduire le son du tic-tac, puis a ordonné le script "dormir pendant 1 seconde" et a répété les actions. Les commandes Sleep étaient des commandes trompeusement simples indiquant au système que le script était terminé et que vous deviez revenir en arrière après un certain temps et continuer à exécuter le script à partir du moment où la sortie a été exécutée. Le sommeil attendait une durée spécifiée.

Il y avait aussi la fonction «Wait». Il était souvent utilisé lorsqu'un acteur recevait l'ordre d'aller vers un objet ou de se tourner dans la bonne direction. Le script a simplement demandé à l'acteur de partir, puis a donné la commande «attendre l'acteur», ce qui a plongé le script dans le sommeil jusqu'à ce que l'acteur atteigne le point souhaité ou se tourne dans la bonne direction. Cela nous a permis d'écrire des scripts dans un style très linéaire, reflétant la séquence d'actions que l'acteur devait exécuter.

Toutes sortes d'outils utiles avec des noms dégoûtants


Avec SCUMM et SPUTM, nous avons développé de nombreux autres outils pour créer des jeux. SPIT était un simple éditeur de polices pour créer différents formats de texte pour différentes parties de l'interface. La boîte de dialogue en haut de l'écran peut avoir une police, l'autre peut être utilisée pour l'écran de sauvegarde et la troisième est utilisée pour les commandes verbales de l'interface en bas de l'écran (Walk-To, Pick-Up, Look At, etc.). FLEM était un outil graphique utilisé pour gérer les salles. Il était possible de marquer des objets dans une pièce, leur statut (portes fermées ou ouvertes) et ainsi créer des espaces définissant les lieux disponibles pour les acteurs en mouvement. FLEM vous permettait également de visualiser des plans de détourage, qui étaient des calques qui masquaient un acteur qui dépassait les objets ou les surfaces. À Maniac, il n'y avait qu'une seule surface, mais dans les jeux suivants, il pourrait y avoir jusqu'à trois avions, derrière lesquels l'acteur pourrait se cacher.


Maniac manoir

MMUCUS était assistant du FLEM. MMUCUS a reçu l'image de la pièce et les données des objets, les données des plans de détourage et des zones dans lesquelles vous pouvez marcher, et compressé les données dans un fichier "pièce" contenant toutes ces informations. C'était important parce que la connexion des données compressées ensemble a permis aux créateurs de script d'apporter des modifications rapides au script, après quoi il était juste nécessaire de le compiler pour que les modifications prennent effet. Le fichier de pièce est resté inchangé, il n'a changé que lors de l'ajout d'objets ou de la modification des zones disponibles pour le mouvement.

BYLE est notre outil d'animation original utilisé pour dessiner et animer des acteurs. BYLE avait un moteur d'animation simple qui pouvait être programmé pour faire défiler l'animation d'une image à l'autre. De plus, il comprenait la «direction», c'est-à-dire qu'il était possible de changer le côté vers lequel l'acteur se tournait. Il était possible de compresser les acteurs de différentes manières, ce qui nous a permis de faire des animations très simples et rapides, comme au début de Day of the Tentacle, de prendre peu de place et pour les personnages multicolores, par exemple, Ben Throttle, un autre méthode de compression nécessaire uniquement avec 16 ou 32 couleurs. Au fil du temps, nous avions besoin d'animations plus complexes, donc un nouvel outil CYST a été développé, qui utilisait le même format de données, mais la gestion des images de grande taille était grandement simplifiée.

Pendant très peu de temps, nous avions un outil appelé SMEGMA. L’un des programmeurs a eu un bébé et il nous a dit que le premier écoulement intestinal du bébé était constitué de cette substance. Il s'est avéré qu'il s'était trompé, et la substance s'appelle Meconium (méconium). Nous n'avons pas découvert ce qu'est Smegma, nous avons juste aimé le nom. Mais une fois qu'ils ont vérifié la signification du mot, et après quelques jours, ils ont changé le nom. Vous pouvez probablement imaginer que se tenir à côté de nous dans la salle à manger était plutôt désagréable, nous avons discuté de SCUMM, BYLE, MMUCUS, FLEM et ainsi de suite. [Remarque trans.: l'une des valeurs d'écume est la graine, la bile est la bile, le mucus est le mucus, le FLEM est en accord avec le flegme est le flegme.]

Mise à jour SCUMM


SCUMM est critiqué pour ne pas avoir apporté de changements révolutionnaires, et au lieu de cela, il a été progressivement amélioré. Les graphiques en sont un exemple clair. Nous avons commencé par prendre en charge les graphiques 16 couleurs avec une résolution de 320x200. Avec l'augmentation du nombre de cartes graphiques, nous sommes passés à 256 couleurs et une résolution de 640x480. Dans le système audio, nous avons commencé avec le haut-parleur interne d'IBM et sommes passés au son stéréo en streaming multicanal. Les caractères qui ne faisaient que quelques pixels de haut pouvaient désormais atteindre presque toute la hauteur de l'écran. Les interfaces ont également évolué: de l'interface initiale avec des commandes verbales à une interface utilisateur complexe basée sur des icônes similaires au style Mac moderne.

L'une des étapes importantes a été l'intégration du moteur INSANE, un système vidéo développé pour Rebel Assault. J'ai d'abord engagé Vince Lee pour travailler sur une version de l'un des jeux SCUMM pour Amiga, mais il a rapidement prouvé ses compétences en programmation sur différentes plateformes. Tout en travaillant sur SCUMM, il m'a vu faire le travail d'isoler les principales parties du système dépendant de la machine pour simplifier la portabilité vers d'autres ordinateurs. Tout en développant INSANE, il a essayé de prendre cette approche à un nouveau niveau et a ajouté la possibilité de diffuser et de brancher des vidéos, nous avons donc considéré qu'il était très important de mettre en œuvre ce système dans SCUMM. Full Throttle a été la première étape de ce processus. Grâce aux bandes sonores rock and roll de Gone Jackals, lorsque quelqu'un a commencé le jeu dans la pièce voisine, d'autres l'ont rapidement remarqué. Le moteur des gaz était clairement imparfait: lorsque INSANE a démarré, le système SCUMM a dû être arrêté. Par conséquent, entre Throttle et Monkey 3, j'ai essayé d'intégrer pleinement ces deux systèmes. J'ai jeté la vidéo d'origine et le système de curseur, même le système de polices, donc SPUTM a en fait couru au-dessus d'INSANE. Il s'est avéré que nous mettions de plus en plus d'œufs dans le même panier, mais les avantages étaient énormes. Par exemple, si j'ai ajouté la prise en charge du japonais ou du coréen, les produits sur le moteur Rebel Assault et les produits sur SCUMM pourraient prendre en charge le japonais et le coréen.

Multiplateforme impressionnante


Grâce à la facilité de portage, les jeux SCUMM ont fonctionné sur plus d'une douzaine de systèmes et une douzaine de langues. Nous avons commencé avec Commodore 64, puis il y avait un PC IBM, Atari ST, Amiga, une console Nintendo à huit bits, Fujitsu Towns, [Fujitsu] FM Marty, Sega CD, CDTV, Mac, et récemment, nous avons également ajouté un iPhone avec iPad. Pas mal pour un système développé il y a 25 ans.

Avec des projets tels que ScummVM, écrits par des fans de l'interpréteur SCUMM, le support de nouvelles plateformes est possible. C'est Monkey Island qui a été choisi comme l'un des cinq jeux exposés au Smithsonian Museum of American Art et prouvant qu'une bonne histoire est souvent plus importante que la nouvelle technologie des jeux d'un jour.

Tout le monde ne savait pas que SCUMM était également la base de nombreux jeux éducatifs populaires tels que Putt-Putt , Freddi Fish et Spy Fox , ainsi que la série Backyard Baseball / Football / Soccer développée par Humongous Entertainment. Si vous regardez à l'intérieur, vous pouvez trouver les mêmes équipes et presque le même code que leurs frères LucasArts.

Apprendre SCUMM


À cette époque, tous les concepteurs étaient également des programmeurs, donc SCUMM, bien qu'il soit unique à bien des égards, était assez simple à apprendre et à coder. Pendant Maniac ou Zak , le moteur n'avait pas de manuel, mais avant Monkey, un groupe de 6-8 nouveaux créateurs de scripts a été embauché. Un guide a été rédigé pour eux et une formation hebdomadaire (Scumm University, "Scumm University"). Pour les cours, Ron a pris le dernier jeu, a tout supprimé sauf une pièce et a placé des objets montrant les capacités du moteur.

De nouveaux créateurs de scripts («talons aiguilles») sont partis de cette salle et ont appris les bases. Pendant plusieurs jours, ils ont appris à ajouter de nouvelles pièces, à créer des zones de mouvement. Certains avaient des compétences artistiques et créaient leurs propres animations, d'autres participaient à la rédaction de dialogues. Habituellement, à la fin de la semaine, nous avions déjà une assez bonne compréhension des compétences des «escrocs», après quoi les responsables de divers projets ont choisi lequel d'entre eux travaillerait dans leurs projets.

Il me semble que la première «Université de Scumm», ou «Scumm U», a commencé avec une interface standard avec des verbes. L'un des premiers projets a toujours été l'analyse de l'interface. Par conséquent, généralement un ou deux créateurs de scripts ont commencé par faire fonctionner le système. Parlant de «stalles» d'entraînement, je me souviens qu'une fois qu'elle avait eu lieu au Ranch [George Lucas Ranch]. Tout le monde s'est réuni au troisième étage du bâtiment principal. Les bureaux de George étaient au deuxième étage, ils devaient donc se comporter très bien.


Secret de l'île aux singes

Avantage SCUMM


Un des plus grands avantages de SCUMM était sa vitesse de prototypage élevée. Le concepteur a proposé des idées de pièces et de lieux, puis le principal artiste de fond a commencé à faire des croquis. Lorsqu'un nombre suffisant d'esquisses était prêt, elles ont été numérisées, ajoutées très rapidement et connectées à l'aide de SCUMM. Habituellement, quelques semaines après le début du processus de conception, il y avait déjà plusieurs dizaines de pièces, parfois ce n'étaient que des croquis au crayon. Nous avons pris des acteurs d'un autre jeu et avons commencé à les assembler. Parfois, il s'est avéré que la pièce devait être retournée ou redessinée si elle ne convenait pas très bien, mais vous pouviez toujours prototyper une grande partie du jeu.

Les créateurs de scripts pouvaient maintenant créer des zones de mouvement préliminaires afin que l'acteur puisse se déplacer dans la pièce, les artistes d'arrière-plan pouvaient commencer à convertir les croquis en graphiques finaux et les animateurs ont commencé à travailler sur l'animation des personnages. Étant donné que les personnages finaux étaient encore en cours de création, à ce stade de développement, il était possible de se promener dans une pièce dessinée au crayon de Full Throttle , mais Guybrush de Monkey Island pourrait remplacer le personnage principal. Ces remplacements ont permis aux concepteurs d'expérimenter et d'apporter des modifications et des améliorations avec des coûts de main-d'œuvre très faibles.

SCUMM longue durée


Je pense qu'aucun d'entre nous ne pensait que les jeux SCUMM seraient avec nous si longtemps. J'ai travaillé sur le système pendant environ douze ans et je me suis constamment efforcé de préparer le code pour une utilisation à long terme, en le testant sur autant de plateformes que possible. Lors du développement sous Windows, je l'ai testé sur Windows NT, même si ce n'était pas une de nos plateformes cibles. Mais NT exigeait des normes de code plus strictes. Par conséquent, si le jeu fonctionnait sous NT, les chances étaient qu'il fonctionnerait sur les futurs systèmes d'exploitation Windows.

J'ai également essayé d'éviter des astuces trop fréquentes dans le code qui pourraient provoquer des plantages sur les ordinateurs du futur. Par exemple, vous pouvez écrire du code auto-changeant, mais avec certaines tailles et types de cache de processeur, cela entraînera un échec. , . , . , . , . . , , , , . C, . , . C , SCUMM , , .

Scumm 2.0 Zak . Maniac 1.0, Zak — 2.0, Monkey — 3.0, Indiana Jones and the Last Crusade — - 3.0 3.1. , . , . 256- Indiana Jones . , 256- , .


- . , Commodore Basic, - . Maniac , , (Chip Morningstar) , . , Habitat , 6502, . . , SCUMM 80 , 0 255. 80, , SCUMM , . Habitat «», . , .



. C, . , . , , .


. …

ó . , , , Exacto. . . , , . , , , . , , , , . .

***

, Industrial Light & Magic, , . - , . . , , , , , - . , , , . , , , . : «, . , ». , . , . .

***

. , , -- . , . , . , , , - .

, . , , , , . , , « », . , «». , . , , . , , . , . , . , - , , . , , . , , , .

***


, , , 1985 ( Mobygames )

- -, . , , , . , . , . , - .

***

- LucasArts, . Maniac Mansion PC, , , 6502 C, , , . , 6502.

***

Mazda RX7 . , , , . . . , . , , .

SCUMM


25 — . , , SCUMM, LucasArts Humongous , , 30-40 . — , SCUMM . , SCUMM — .

, SCUMM. . SCUMM , , SCUMM .

SCUMM, , The Dig , , - . , , , . , . , , - .

image

SCUMM . , . , . : , ? , , Day of the Tentacle Sam and Max , Full Throttle Maniac . , , , .

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


All Articles