Des hacks divertissants: une brève histoire
Il est difficile d'énumérer toutes les difficultés rencontrées par les développeurs dans la mise en œuvre de leurs idées - des problèmes inattendus de compatibilité avec le fer, le manque de temps, les bogues irréprochables, aux failles technologiques qui ne vous permettent pas de recréer tout ce que vous voulez, ou des ambitions trop grandes. Après avoir lu une série de révélations post mortem, où les développeurs se plaignaient d'obstacles inattendus qui se dressaient sur leur chemin, on ne peut que se demander en quoi le produit final était intéressant et jouable, même s'il ne contenait même pas la moitié de ce qui avait été conçu. Mais cet article parlera de quelques exemples frappants de l'histoire du développement de jeux célèbres dans lesquels les programmeurs ont réussi à surmonter les difficultés et l'ont fait de manière inhabituelle.En fait, l'intérêt pour la question a été provoqué par des nouvelles récentes selon lesquelles le train dans l'addon pour Fallout 3 n'est pas du tout un train, mais un objet dans la main d'un PNJ qui est porté quelque part sur des rails. Nous l'avons appris tout à fait par accident en regardant les propriétés de l'objet dans l'éditeur. En utilisant un tel hack, Bethesda a économisé beaucoup de temps en introduisant de vrais trains dans le jeu (il n'y a pas de moyen de transport au moins), sans enlever au joueur le sentiment d'immersion dans le monde virtuel des friches post-apocalyptiques ... Mais commençons par le début.
Le wagon bleu se balance ...Les premiers ordinateurs personnels apparus dans la seconde moitié des années 70, d'une part, offraient de nombreuses opportunités qui n'avaient pas accès aux mainframes, d'autre part, étaient déjà très limités à cette époque. À cette époque, Richard Garriott, le conquérant de l'espace et l'ancien seigneur de la Grande-Bretagne, avait déjà réussi à mettre la main sur la création de jeux informatiques. Pas étonnant que son Akalabeth, l'un des premiers RPG pour ordinateur personnel, soit devenu le numéro 28 du palmarès. Et la dernière proposition de Steve Jobs n'a pas pleinement satisfait ses ambitions de meneur de jeu. Les limitations du compilateur intégré Apple Basic et de 64 kilo-octets de RAM ont entraîné le fait que le programme ne tenait pas entièrement en mémoire. Il a dû écrire un sous-programme qui déchargerait des données inutiles (images de monstres ou autre chose) et mettrait à leur place ce qui est nécessaire pour le moment,ne laissant que l'en-tête du fichier, c'est-à-dire qu'il a effectué l'algorithme de swap. Alors que le programme n'a pas remarqué de problème, tout a été synchronisé manuellement, et quand j'ai essayé de le passer par le débogage, il a simplement donné un tas d'erreurs.
De là, tout s'est passé.Ne soyez pas surpris - les jeux modernes utilisent également des techniques similaires pour optimiser le travail avec les ressources. La célèbre série Grand Theft Auto, qui se vante en plus d'une collection de musique grandissante d'année en année et d'une automobile étendue et pas seulement d'une flotte, ne vous laissera jamais l'apprécier dans toute sa diversité. Le fait est que dans la plupart des scènes sur la route dans la quatrième partie (dans les premières, cela se produit également), les épopées ne peuvent être présentes qu'environ 20 modèles de voitures différents, bien que souvent ils soient en fait moins nombreux. De plus, si un personnage à ce moment-là a également loué une voiture, il est très probable que les mêmes voitures glisseront sur sa route comme il l'a fait. Cela est fait pour économiser des ressources. Bien sûr, il existe des moyens de désactiver cet algorithme, mais en même temps d'obtenir un coup dans la zone frame-frame.
Rassemblement de masse? Non - pas assez de mémoire.Un autre classique qui exploitait des hacks inhabituels était Elite, sorti pour la première fois en 1984 et étendu à la plupart des systèmes alors disponibles. Le jeu ambitieux, combinant un simulateur d'action spatiale à la première personne et une partie commerciale, semblait alors aux éditeurs toujours destiné à concurrencer le marché des machines d'arcade, et les développeurs Ian Bell et David Braben ont passé du temps à chercher. Mais Elite s'est avéré être un succès certain et a donné naissance à tout un genre. Mais il est intéressant de noter qu'il était destiné aux mêmes ordinateurs huit bits, où des personnages de plates-formes primitives rampaient sur l'écran. L'espace illimité de la taille de huit galaxies et 256 planètes a captivé l'imagination des joueurs, tout en ne tenant qu'en 25 kilo-octets.
Un espace énorme était caché derrière cet écran.Pour rendre cela possible, les créateurs ont utilisé un langage de programmation d'assembleur de bas niveau, ainsi que leur propre algorithme, où les données ont été prises au hasard dans les tables, générant ainsi un nouveau monde lors de la création d'un nouveau jeu. Ainsi, les taux de change des ressources, les types de planète et d'autres informations ont été sélectionnés. Dans les futurs ports et les versions améliorées, de nombreuses restrictions ont été supprimées, mais l'algorithme de création d'une galaxie demeure.De plus, Space Invaders est un jeu dont tout le monde a entendu parler, sinon tous, alors tout est sûr. L'idée était assez simple - les interventionnistes vedettes ont lentement coulé au bas de l'écran, que le joueur a défendu sur une tourelle en mouvement. Et moins ils devenaient à l'écran, plus vite ils volaient et descendaient. L'idée de l'auteur? Bien sûr. Mais comment cela a été mis en œuvre! La machine de jeu était Intel 8080 - le premier microprocesseur répandu avec une capacité de 300 000 opérations par seconde. Et la différence de vitesse est due au fait qu'il ne pouvait pas faire face aux tâches qui lui étaient assignées - le jeu ralentissait banalement lorsque l'écran était plein. Mais le créateur de Space Invaders, Tomohiro Nishikado, a décidé de laisser cela comme une difficulté supplémentaire, et donc d'avoir passé beaucoup de temps à développer le matériel.Inutile de dire que l'animation fluide du vol ou des graphiques en couleur - ils ont dû être reportés pour les versions ultérieures. Soit dit en passant, dans les ports suivants pour les ordinateurs et les décodeurs, de tels mécanismes sont restés, mais ont été mis en œuvre sans utiliser de processeur de "freinage".
, .
Et après plus de 30 ans, le problème de la fluidité des performances dans les jeux est plus que jamais d'actualité. Pour maintenir une vitesse de jeu constante, diverses technologies sont utilisées, dont l'une est le framebuffer dynamique, vu dans un certain nombre de jeux sur console et sur de nouvelles consoles. L'essence de l'approche est que, selon la charge, la taille de l'image change pour maintenir les 30 ou 60 images par seconde promises. Et il change image par image, à la volée et étiré par le scaler matériel de la console. Mais en même temps, seule la résolution horizontale est ajustée, tandis que la résolution verticale reste la même - 720 ou 1080 pixels. Et, à en juger par les exemples disponibles, dans la première version, il peut aller de 1280 points à 640 (!) Points, dans la seconde - il peut descendre quelque part à 1200 points. De plus, dans les jeux qui fonctionnent sur différentes consoles, la technologie produit différentes résolutions.
Un seul et même cadre, une seule taille d'écran, mais une résolution horizontale complètement différente.Cela a été vu pour la première fois dans Wipeout HD, mais a ensuite été utilisé dans le jeu de tir Rage d'id Software, le jeu de combat Tekken Tag Tournament 2 et d'autres.Parfois, des décisions intéressantes apparaissent à la suite d'études à long terme sur les capacités d'un système particulier. Le Commodore 64 est en plus d'être le modèle d'ordinateur personnel le plus réussi, et aussi l'un des plus anciens, s'étendant dans la même configuration de la 82e à la 94e année. L'un des jeux qui est sorti sous le coucher du soleil de la plate-forme est le plateforme peu connu Mayhem à Monsterland. Cependant, par rapport aux jeux fabriqués avec exactement le même matériel dans les années 80, il a l'air incroyable: défilement rapide et fluide de l'écran, beaucoup de sprites, couleurs vives. Les développeurs d'Apex Software ont utilisé tous les hacks de leur arsenal.
Il est difficile d'imaginer qu'il s'agit d'une capture d'écran d'un jeu à partir d'une plate-forme apparue 3 ans avant NES.
Pour obtenir un défilement aussi rapide, après tout, le jeu est un mélange de Mario et Sonic, et ce dernier n'aurait guère été limité au défilement à 7 pixels à la fois, ce que propose C64, un bug non documenté dans la puce graphique a été utilisé, ce qui a permis de faire défiler jusqu'à 320 pixels, c'est-à-dire largeur d'un écran. Mais ce n'est pas tout. Malgré le fait que le nom de l'ordinateur implique la présence de seulement 64 kilo-octets d'espace d'adressage, le fichier exécutable prend 68. La RAM supplémentaire est prise de la ROM, où pour une raison quelconque de l'espace libre a été laissé, le mode graphique est également un mélange de deux - HIRES (high selon les normes de la 82e) et MULTICOLORE, et pour dépasser la limite du nombre de sprites dans le cadre (il a été fixé au niveau matériel), une image composite est utilisée, où l'image se compose de plusieurs parties du cadre,pour tromper le fer.Bien sûr, l'histoire de l'utilisation des hacks ne s'arrête pas là, mais pour ceux qui veulent regarder les jeux présentés et écouter ceux-ci et d'autres exemples divertissants, nous sommes les bienvenus: notre vidéo.// Virgile et Dimouse Source: https://habr.com/ru/post/fr382877/
All Articles