La publication du code VVVVVV a montré à quel point les jeux sont grossiers

image

La semaine dernière, le créateur de Dicey Dungeons , Terry Cavana, a célébré le dixième anniversaire de son jeu de longue date VVVVVV , en publiant son code source [ traduction sur Habré]. Expliqué simplement, cela signifie que tout le monde peut maintenant voir comment le jeu a été créé, car chaque ligne de code peut être soigneusement étudiée.

Cela se produit rarement et la valeur de la publication de ces informations est donc très élevée. Les gens peuvent en tirer des leçons ou améliorer le code. Certains examens du code source VVVVVV ont été terribles - les chercheurs ont vu des choses qui pourraient être mieux écrites. Peut-être que Cavana l'avait prévu - dans son article où il a annoncé la publication du code, Terry admet que «techniquement, le jeu VVVVVV n'est pas très bien pensé! Même selon les normes des développeurs autodidactes indépendants, le code est assez chaotique. »

Il y a une idée fausse selon laquelle l'écriture de code est gracieuse et réfléchie en soi, parce qu'en fin de compte, c'est une sorte de logique d'écriture, n'est-ce pas? Pas étonnant que cela s'appelle l'informatique? Mais en réalité, tout est beaucoup plus compliqué. Très souvent, les histoires de développement de jeux vidéo montrent que, comme il y a tellement d'éléments dans les jeux, de la conception de jeux au son, ils ne sont souvent assemblés en un seul ensemble qu'au dernier moment , voire jamais .


«Il existe un nom pour les jeux dans lesquels le code est à peine connecté, a une architecture stupide, dans laquelle les erreurs sont presque impossibles à corriger et les béquilles sont empilées sur des vélos. Ils sont appelés «jeux sortis».

«Presque tous les jeux sur lesquels j'ai travaillé ont été publiés au moment même où les excréments et les bâtons qui empêchaient la destruction de tout le bâtiment étaient au bord de la catastrophe», a écrit le développeur James Patton lors d'une discussion sur le code du jeu sur Twitter .

Presque tous les développeurs à qui j'ai parlé disent la même chose.

"Les jeux ne sont pas des logiciels ordinaires, mais un mécanisme complexe, dont la publication réussie nécessite la connaissance de nombreuses disciplines, et souvent, pour respecter le délai, vous devez faire des sacrifices", a écrit le développeur du jeu James Simpson dans une lettre. «Je connais de nombreux développeurs qui essaient de rendre leur code parfait. Cet exemple de code open source montre que vous pouvez réussir la sortie d'un jeu sans atteindre ce niveau d'excellence. »

Dans le cas de VVVVVV, une discussion approfondie a été provoquée par un fragment séparé du code source, qui a une structure très chaotique. En fait, cela aide à déterminer l'état du jeu: par exemple, dans une cinématique ou une partie d'un dialogue. Dans une situation normale, beaucoup de ces états sont regroupés séparément - le code des mini-jeux est écrit séparément, disons, de la mécanique du saut - mais pas dans le cas de ce jeu. Par exemple, dans le code Cavan, les états de jeu associés aux cinématiques sont dispersés dans différentes parties du programme et mélangés à des éléments tels que les modes de jeu et le menu principal.


Aujourd'hui, le jeu vidéo VVVVVV est passé à #OpenSource et quelqu'un a découvert une construction de plusieurs centaines de commutateurs dans le code. #programming C'est à la fois beau et dégoûtant.

Zack Gage, qui a travaillé sur des jeux mobiles tels que Pocket-Run Pool et Really Bad Chess , a démantelé ce fameux design de commutateur pour nous, disant que «c'est un excellent exemple de ce que Terry ne savait probablement pas quand il a commencé à écrire le jeu. "combien de cinématiques seront dedans, comment le menu principal fonctionnera, et combien d'états finaux potentiels étranges de modes étranges peuvent apparaître."

Si Cavana voulait rendre le code impeccable, il pourrait arrêter de faire de tels changements et mieux organiser le code. Mais au lieu de cela, il a décidé d'aller de l'avant et de faire ce qui s'est passé, forçant un gigantesque morceau de code à gérer des centaines d'options différentes.

"Au lieu de prendre du recul et de tout arranger, Terry a probablement pensé à quelque chose comme" Oui, je vais simplement ajouter des états à l'énorme déclaration de changement chaque fois que j'ai besoin de quelque chose de nouveau. " C'est 100% normal et essentiellement nécessaire pour la sortie du jeu. "

Gage est très proche d'une telle façon de penser - il nous a dit qu'en regardant le développement du jeu Ridiculous Fishing , "il ne comprend littéralement pas comment le code réussit à fonctionner, car il est si mal écrit". Même les autres membres de l'équipe ne comprennent pas parfaitement le fonctionnement de leur jeu.

Mais tu sais quoi? Ridiculous Fishing a quand même reçu plusieurs récompenses et gagné près d'un million de dollars pendant plusieurs mois . De toute évidence, les développeurs doivent éliminer les bugs qui cassent le jeu et tout ce qui peut empêcher le joueur de profiter du jeu, mais, comme on dit, le meilleur est l'ennemi du bien.

«Les parties imprévues apparaîtront toujours et si vous revenez en arrière pour organiser le code, cela signifie que vous perdrez du temps que vous passerez à écrire du nouveau code, à ajouter de nouvelles fonctionnalités ou à dessiner des illustrations», explique Gage.

Mais malgré tout le snobisme provoqué sur les réseaux sociaux par le jeu VVVVVV , Cavana ne semble pas perdre son sens de l'humour et ses blagues à ce sujet.


Chaque capture d'écran que j'ai vue de terribles défauts dans le code source VVVVVV ne fait que me rendre plus fort.

"Je ne sais pas quoi dire à ce sujet?", A-t-il écrit dans un article sur la publication du code source. «J'étais jeune, et c'était plus intéressant pour moi de créer quelque chose à l'écran que de l'implémenter correctement. La meilleure chose à propos du code source VVVVVV est probablement qu'il a prouvé que vous pouvez créer quelque chose vous-même, même si vous n'êtes pas un très bon programmeur. »



La façon dont les développeurs de jeux résolvent les problèmes à l'aide de hacks rapides se trouve dans la série de traductions «Dirty tricks in the video game code»:

Trucs sales dans le code du jeu

Les développeurs sur les astuces logicielles les plus sales dans les jeux

Cascades sales et RAM

Astuces de développeur de jeux vidéo sales

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


All Articles