Langages de programmation – Combien de temps et quel type de complexité auraient été impliqués dans Chris Sawyer écrivant la plupart des montagnes russes Tycoon en assembleur? Échange de pile d’ingénierie logicielle, Rollercoaster Tycoon: Le jeu le mieux optimisé de tous les temps? | Pcgamesn
Rollercoaster Tycoon: Le jeu le mieux optimisé de tous les temps
Contents
L’assemblage se complique lorsque vous faites toutes ces optimisations folles (opérations vectorielles, en utilisant des ensembles d’instructions spéciaux (SSE, etc.) Bit Twiddling, etc.) que vous ne pouvez tout simplement pas faire de C. Si vous faites ce genre de choses, alors le temps est en fait dans le “violon ce bit, assembler, mesurer. Fiddle ce bit, assembler, mesurer. “Boucle et non dans le codage réel. Avec un bon assembleur de macro et un programmeur qualifié, l’écriture d’écriture n’est pas un énorme se retirer de l’écriture du code C.
Combien de temps et quel type de complexité aurait été impliqué dans Chris Sawyer écrivant la plupart des montagnes russes en assembleur?
Aurait-il pu commencer par l’écrire en C, puis en changer les parties en assembleur au besoin pour la performance?
Ha, ha, ha, c’est comme une question de quelqu’un qui a lu mes anciens commentaires.
3 Réponses 3
De la lecture de sa biographie rugueuse, cela ressemble à deux ans (début 1997 à fin 1998). Étant donné qu’il semble être un “ projet à la fois ” et que l’ensemble d’outils et le calendrier ne sont pas parfaits pour le “ développement d’équipe ”, je suppose que 24-Montrammes de programme.
À ce moment-là, il était un programmeur de jeux professionnels travaillant en assemblage depuis 1983, donc je n’assimile pas “deux années de Chris” à “deux années de travail”.
Étant donné que la plupart des jeux professionnels prennent environ 25 ans pour une équipe pour se développer, deux ans pour un jeu de premier plan dans l’industrie sont une réalisation incroyable, prêtant la créance aux dictons:
- Un grand programmeur est 10 fois plus productif qu’un bon programmeur
- Le programmeur est plus important que le langage pour la productivité
Donc, dans ce cas, combien de dynamisme de montagnes russes . Cela n’aurait probablement pas eu d’importance autre que le fait qu’il était peut-être un peu plus lent en utilisant un langage de niveau supérieur avec lequel il n’avait pas 14 ans d’expérience.
répondu le 18 novembre 2010 à 23:02
2 331 2 2 badges d’or 18 18 badges en argent 17 17 badges en bronze
Grands points, je pensais en quelque sorte que cela pourrait être le cas.
Si vous pensez à C comme un peu plus qu’un assembleur “de haut niveau”, et nous faisons l’hypothèse que Chris ne faisait pas des optimisations folles à son code d’assemblage en chaque Routine, alors j’imagine en termes de% de temps de plus, alors ce n’est peut-être pas encore plus pour un programmeur d’assemblage qualifié.
L’assemblage se complique lorsque vous faites toutes ces optimisations folles (opérations vectorielles, en utilisant des ensembles d’instructions spéciaux (SSE, etc.) Bit Twiddling, etc.) que vous ne pouvez tout simplement pas faire de C. Si vous faites ce genre de choses, alors le temps est en fait dans le “violon ce bit, assembler, mesurer. Fiddle ce bit, assembler, mesurer. “Boucle et non dans le codage réel. Avec un bon assembleur de macro et un programmeur qualifié, l’écriture d’écriture n’est pas un énorme se retirer de l’écriture du code C.
Pourtant, je n’aurais pas pu le faire! Je frissonne de penser à essayer d’initialiser DirectX directement en assemblage! (Modifier: Wikipedia me dit qu’il a écrit certaines pièces en C pour “Interface avec le système d’exploitation Windows”, donc je suppose qu’il n’a pas initialisé DirectX en assemblage alors. phew!)
Rollercoaster Tycoon: Le jeu le mieux optimisé de tous les temps?
Un dimanche matin tôt en avril 1999, le concepteur de jeux Chris Sawyer a été perché dans son centre de commandement de salon, une collection de techniques des années 90, naviguant en ligne. Fin mars, le premier magnat de montagnes russes avait atterri sur les étagères en Amérique du Nord à dégoulinant de l’amour contagieux des parcs à thème de Sawyer, et quelque chose semblait avoir mal tourné sérieusement.
Dans les forums, les joueurs disaient que le jeu avait perdu leurs progrès et les avait renvoyés à la case à la case dans les scénarios du jeu, qui progressent séquentiellement comme les niveaux. Après des années de travail prudent, le jeu semblait s’être auto-destrucié pour des raisons mystérieuses. Mais Sawyer avait une intuition: la nuit dernière, le temps d’été a pris effet.
C’était peut-être plus qu’une coïncidence. En quelques heures, il avait découvert la connexion. Les stamps de temps ajustés sur les fichiers de jeu de sauvegarde, là pour sauvegarder contre la falsification ou la corruption, ne correspondaient pas. “De façon embarrassante, c’était un bug flagrant de ma part”, dit Sawyer. “Ou était-ce?”
L’appel du système qu’il a utilisé aurait dû donner le temps dans l’UTC, inchangé par les épargnements de la lumière du jour, ne créant aucun problème. “Seulement pour une raison quelconque”, dit-il, ” a fait changement!”Il a rapidement codé un correctif et plus tard un utilitaire pour réparer les fichiers de jeu de sauvegarde.
La plus grande ironie était que le magnat des montagnes russes était autrement un monument à ce qu’une seule personne peut accomplir en programmation. Écrit presque entièrement dans le code d’assemblage (comme le précédent magnat du transport de Sawyer), le magnat des montagnes russes et sa suite ont serré et relâché les processeurs de l’époque pour simuler les manèges, les économies et jusqu’à des milliers de visiteurs et leurs états d’esprit. Berbotage à travers tant de chiffres en temps réel sans être attelé exigeait une approche maigre et sans compromis et non la famille de langues C plus lente et plus conviviale. Et en assemblée ultra-légère, où les lettres représentent celles et les zéros, on parle directement au processeur.
C’est une langue extrêmement difficile à apprendre et se démolit depuis le développement de Fortran dans les années 1950. À ses débuts, Sawyer a sorti une poignée de jeux codés Z80 au milieu des années 80 et est devenu un fidèle pour convertir les jeux Amiga en dos, y compris l’élite classique II.
Beau et épineux, il s’est ensuite mis en affaires pour lui-même et a créé un magnat du transport tout en conservant ses droits, une habitude qui lui a fourni une source constante de revenus. Une partie de ceci est entrée en Europe voyageant et aux États-Unis pour monter des montagnes russes dans des endroits comme Cedar Point dans l’Ohio. Il est maintenant monté plus de 700 sous-verres. Son préféré, Taron à Phantasialand en Allemagne, ressemble à quelque chose d’un jeu de magnat.
Sawyer a gravité à l’assemblage x86 naturellement, appréciant sa présentation propre et sa compilation rapide, et lorsqu’il a décidé de faire des montagnes russes, il a truqué deux PC: un rapide pour le codage et un plus lent pour les tests. (Les exigences du système du jeu ont ensuite demandé un pentium Intel 90 MHz avec au moins 16 mégaoctets de RAM.) Assis également au sommet de son poste de commandement était une imprimante à matrice de points (il croit), une télécopieur, un guide de poche du code d’assemblage x86 et une référence de bureau à 500 pages. C’était suffisant pour lui; Bien que les manuels complets se répercutent sur des milliers de pages, il avait mémorisé la plupart de ce dont il avait besoin.
“Je programmais dans x86 depuis si longtemps j’avais rarement besoin de chercher les choses”, dit-il.
Le premier jeu ressemblait à un magnat du transport, mais avec des montagnes russes, et son graphiste Simon Foster a créé un système plus flexible et photoréaliste pour que les montagnes rustes regardent la pièce. Une grande partie du processus de conception initial était en forme libre et inspirée par quelques prédécesseurs évidents: Will Wright, Peter Molyneux, Sid Meier. Mais surtout, Sawyer a dû prioriser les performances. Les nouvelles fonctionnalités signifiaient un plus grand fardeau sur le lent et le PC de cobaye, et bien que certains d’entre eux puissent être lancés par le code, d’autres devaient rester.
Pathfinding était l’un d’eux, et c’est devenu le plus gros mal de tête. “Il est facile de programmer un algorithme de recherche d’itinéraire qui fonctionne parfaitement”, a déclaré Sawyer, “mais il ne sert à rien si elle cale le jeu pendant des secondes ou des minutes à un moment où il a besoin de prendre une décision.”
Il a ébréché les algorithmes, échouant de nombreux petits hommes et femmes dans les buissons et sur le mauvais chemin décoratif. “J’avais visité pas mal de grands parcs à thème aux États-Unis à ce moment-là et j’ai réussi à me perdre dans certains d’entre eux”, dit-il. «J’ai donc pensé qu’il était probablement juste que les invités du magnat des montagnes russes ont également lutté […] si la disposition du parc était mal conçue.”
Une fois que le jeu est passé de la liste de souhaits délabrée à un temple SVGA aux parcs à thème, Sawyer l’a répandu aux amis, aux voisins et aux enfants des voisins, qui ont répondu très positivement. L’éditeur Hasbro s’est organisé pour des joueurs de jeu professionnels de chasse aux insectes, et Sawyer a fait son propre sondage sans fin. Et malgré le hoquet du temps d’été, le magnat des montagnes russes a continué à être le jeu PC le plus vendu de 1999.
Pour la suite, Sawyer a ajouté à la base de code d’origine, se rapprochant de sa vision ultime. “J’aime toujours ce jeu et tout à ce sujet”, a-t-il déclaré à Eurogamer en 2016. Sawyer a continué à aller avec l’assemblage, l’utilisant presque exclusivement pour coder la locomotion de Chris Sawyer en 2004, son jeu le plus ambitieux à ce jour et aussi son dernier titre de bureau majeur. Il a depuis reculé du développement de jeux et a concédé les droits des nouveaux jeux de dynamisme de montagnes russes à Atari – des efforts qui ne se sont jamais rapprochés du succès des deux premiers.
Sawyer ne s’entend tout simplement pas avec l’industrie telle qu’elle est en ce moment, bien qu’il apprécie la récente résurgence des Sims de gestion. Il n’y a pas besoin d’un codeur d’assemblage ces jours-ci (comme il est d’accord), et travailler comme loup solitaire est plus difficile que jamais. “Je pense aussi que j’ai maintenant créé tous les jeux que je voulais créer”, dit-il, y compris les versions mobiles de ses jeux classiques, “et travailler sur les conceptions de jeux de quelqu’un d’autre ne m’excite pas.”
Matt Hrodey Matt Hrodey est un écrivain de jeux qui a couvert Rollercoaster Tycoon 2 pour PCGamesn.