A propos de ScummVM

From ScummVM :: Wiki
Jump to navigation Jump to search
Languages Langue: English  • Deutsch • français • italiano

Description concise

ScummVM est un logiciel qui vous permet de jouer certain jeux d'aventures et jeux de rôle, à condition que vous possédiez les fichiers de données du jeu. Le plus astucieux: ScummVM remplace juste les exécutables fournis avec les jeux, vous permettant de jouer sur les systèmes pour lesquels ils n'ont jamais été conçus!

Pour plus d'informations sur les personnes qui développent ScummVM, vous pouvez lire L'histoire de ScummVM et la Bios des dévelopeurs.

Une description plus approfondie

Les entrailles des jeux d'aventures et jeux de rôle

Presque tous les jeux d'aventures et jeux de rôle partagent certaines caractéristiques communes. Les plus basiques sont les ressources, qui sont incluses dans les fichiers de données des jeux:

  • Graphiques
    • Personages (les sprites dans le jeu)
    • Images de fond
    • Polices de charactères
    • Animations
    • Objets
    • Séquences vidéos
  • Sons
    • Musique synthétisé (par exemple. MIDI)
    • Effets sonores
    • Voix

Outre les ressources elles-mêmes, presque tous les jeux ont leur propre langage de script. Cela simplifie les choses dans le processus de développement, car il est alors plus facile d'assigner des tâches à des personnes spécifiques. Les programmeurs s'occupent du code lui-même, les concepteurs de jeu s'occupent de l'écriture des scripts en utilisant le langage de script du jeu, les graphistes s'occupent de la partie artistique du jeu, les compositeurs de la musique avec de l'audio et ainsi de suite. Bien que les éléments de base de chaque jeu sont standard, chaque jeu les met en œuvre d'une manière très différente. L'aspect le plus important des jeux d'aventures et jeux de rôle est la façon dont ils travaillent "en coulisses", qui comprend le type de logique utilisée et comment cela est implémenté dans chaque jeu, le type d'interaction attendus de l'utilisateur (par exemple, certains jeux vous permettent d'utiliser des verbes sur des objets tels que «utiliser l'objet 1 avec l'objet 2", tandis que d'autres jeux permettent à l'utilisateur de juste cliquer une fois sur les objets pour les utiliser). Les ressources elles-mêmes ne sont pas du tout utiles, sans la logique du jeu, qui est la partie la plus difficile à mettre en œuvre dans un jeu. En fait, il existe de nombreux visualiseurs de ressources qui peuvent être utilisés pour afficher les ressources d'un grand nombre de jeux différents, mais ils ignorent la logique derrière ces ressources. Une brève introduction sur la façon dont la logique fonctionne dans chaque jeu est donnée dans la prochaine partie.

Le langage de script d'un jeu

Comme mentionné précédemment, chaque jeu utilise son propre langage de script, qui est habituellement contenue dans les fichiers de données du jeu. Il s'agit généralement d'un langage de haut niveau, et l'interprèteur du jeu lui-même (le fichier exécutable du jeu) est responsable de l'analyse des scripts décrivant la logique du jeu, d'en interpréter les commandes et de faire tout le travail réel. Prenons un exemple de script d'un moteur hypothétique, où le jeu devrait charger une scène et traiter un cas où l'utilisateur prendrait un objet A:

 demareScene(1)
 charge_personnages()
 met_personnage(numero_du_perso, X, Y)
 ...
 met_objet(numero_de_l_object, X, Y)
 ...
 si (action_ramasser) {
   si (objet_a_ramasser() == objet_A) {
     personnage_marche(X,Y)
     personnage_fait_action(numero_de_l_action)
     met_objet_dans_inventaire(objet_A)
     supprime_objet_de_la_scene(objet_A)
   }
 }
   
 tant_que (scene_non_termine) {
   gere_action_personnage()
 }
 termineScene()

Il s'agit juste d'un exemple de la façon dont un moteur pourrait gérer cette action, mais chaque moteur a tendance à exécuter ces scripts de manière différente (par exemple, certains moteurs ont des scripts pour chaque objet, d'autres peuvent avoir un script général pour faire tout etc).


Un script de jeu peut contenir des éléments de base de la logique du jeu (par exemple si, sinon, tant_que etc) et il peut appeler directement des fonctions de l'exécutable lui-même, que l'on appelle script opcodes.

Quelle est la place de ScummVM dans tous ça ?

ScummVM est un projet dans lequel il ya une tentative de réécrire le fichier exécutable d'origine d'un jeu donné, basé sur le code source d'origine du jeu ou en utilisant des techniques d'ingénierie inverse pour voir le code figurant dans le fichier exécutable du jeu et de le réécrire en C++. Cela signifie que ScummVM peut être utilisé pour remplacer l'exécutable d'origine du jeu, mais bien sûr, les fichiers de données du jeu (graphiques, audio, scripts etc) sont nécessaires pour jouer au jeu lui-même. Par conséquent, ScummVM n'est pas un émulateur d'un système d'exploitation spécifique, comme par exemple DOSBox l'est pour DOS. ScummVM est en réalité une réécriture complète du moteur de chaque jeu, ce qui présente de nombreux avantages:

  • Le jeu peut fonctionner sur plusieurs plates-formes, grâce au système de backend pour plates-formes portable de ScummVM
  • Les graphiques du jeu peuvent être améliorés avec l'utilisation de filtres graphiques (par exemple super2xsai, supereagle, advmame2x, advmame3x, hq2x, hq3x et plus)
  • Quelques bugs qui existaient dans l'exécutable d'origine du jeu (ou des scripts spécifiques) peuvent être fixés
  • Il est possible de ré-encoder les fichiers audio du jeu dans des formats populaires tels que MP3, OGG ou FLAC afin que le jeu lui-même prenne beaucoup moins de place
  • Les jeux LucasArts ont un menu et un système de sauvegarde bien amélioré
  • La plupart des moteurs de jeu permettent au joueur de faire beaucoup plus de sauvegardes que l'exécutable d'origine le permettait
  • Dans certains jeux, ScummVM offre des fonctionnalités supplémentaires qui n'existent pas dans les jeux originaux. Par exemple, il offre un support complet des souris dans les vieux jeux AGI de Sierra, qui ne le supportaient pas
  • Il est possible d'écouter les bandes sons MT-32 d'un jeu (si présent) sans posséder un périphérique MT-32 réel, via un système sophistiqué qui l'émule
  • ScummVM a besoin de beaucoup moins de ressources processeur et système qu'un émulateur, puisque les jeux s'exécutent directement dans ScummVM et non à travers une plate-forme émulé (qui pourrait avoir un processeur différent, une gestion de la mémoire différente et ainsi de suite)

... Et beaucoup plus. L'approche prise lors de l'implémentation d'un jeu dans ScummVM a quelques inconvénients:

  • Parce que le moteur de chaque jeu dans ScummVM a été entièrement réécrit, quelques bugs qui n'étaient pas présents dans l'exécutable d'origine du jeu peuvent exister dans ScummVM. Pour cette raison, il ya une base de bugs dans ScummVM, où les utilisateurs peuvent rapporter de tels bugs à l'équipe de ScummVM, qui en général s'occupe ensuite de les fixer. Ces problèmes existent certainement, comme il est impossible de vérifier chaque aspect de chaque jeu, et une réécriture complète du moteur de jeu signifie qu'il peut y avoir des problèmes qui le développeur n'a pas remarqué à l'origine.

... Et peut-être plus.

Jeux supportés

Pour voir quels jeux sont supportés par ScummVM, vous pouvez regarder la page de compatibilités. Les moteurs de jeux actuellement inclus dans ScummVM sont listés sur la page game engines, et le statut de chaque jeu peut être trouvé sur leur page individuelle.

Sur quelles plates-formes je peux utiliser ScummVM

La réponse est sur la page des plates-formes

Jouer à un jeu

De quoi ais-je besoin pour jouer à un jeu ?

Vous avez besoin des fichiers de données originaux du jeu auquel vous voulez jouer, et de la version de ScummVM pour le système d'exploitation que vous utilisez. Ce dernier peut être récupérer sur notre page de téléchargements.

Quelle est la différence entre les versions "stable" et "unstable" de ScummVM ?

La version stable de ScummVM a été testé pour les bugs, et des gens ont jouer jusqu'à la fin presque tous les jeux supporté par cette version.

La version instable de ScummVM inclut des fonctionnalités améliorées, cependant, quand de nouvelles fonctionnalités sont ajoutées ou des bugs existants sont fixés, d'autres bugs ou plantages peuvent apparaître, qui n'étaient pas présents dans la version stable. Cependant, nous essayons évidemment de faire en sorte que la version instable soit le plus stable possible.

Pour en savoir plus

Ce fut une courte introduction à ScummVM, et nous espérons que nous avons répondu à la plupart de vos questions. Vous pouvez maintenant consulter les pages de ce wiki pour plus d'informations, notre FAQ et notre page de documentation , en particulier le fichier README.