Lenguajes de programación: cuánto tiempo y qué tipo de complejidad habría estado involucrado en la escritura de Chris Sawyer, la mayoría de las montañas rusas Tycoon en el ensamblador? Software Engineering Stack Exchange, montaña rusa Tycoon: el juego mejor optimizado de todos los tiempos? | PCGAMESN

Tycoon de montaña rusa: el juego mejor optimizado de todos los tiempos

El ensamblaje se complica cuando está haciendo todas esas optimizaciones locas (operaciones de vectorización, haciendo uso de conjuntos de instrucciones especiales (SSE, etc.) Bit Twiddling, etc.) que simplemente no puede hacer desde C. Si estás haciendo esas cosas, entonces el tiempo está realmente en el “Fiddle este bit, ensamblan, mide. Vence este bit, ensamblan, mide. “Loop y no en la codificación real. Con un buen ensamblador macro y un programador experto, entonces escribir ensamblaje no es un enorme Retire de la escritura Código C.

¿Cuánto tiempo y qué tipo de complejidad habría estado involucrado en Chris Sawyer escribiendo la mayor parte del Tycoon de montaña rusa en el ensamblador??

¿Podría haber comenzado escribiéndolo en C, y luego cambiar partes de él al ensamblador según sea necesario para el rendimiento??

Ja, ja, ja, esta es como una pregunta de alguien que ha estado leyendo mis viejos comentarios.

3 respuestas 3

Al leer su biografía, parece dos años (principios de 1997 hasta finales de 1998). Dado que parece ser un proyecto de ‘un proyecto a la vez’ y el conjunto de herramientas y el marco de tiempo no es excelente para el ‘desarrollo del equipo’, supongo que los 24 programadores consecutivos de 24.

En ese momento había sido un programador de juegos profesionales que trabajaba en la asamblea desde 1983, por lo que no equipararía “dos años de Chris” a “dos años de mi” años “de trabajo.

Dado que la mayoría de los juegos profesionales tardan alrededor de 25 años en que se desarrolle un equipo, los años de dos personas para un juego líder de la industria son un logro increíble, prestando la creación de los dichos:

  • Un gran programador es 10 veces más productivo que un buen programador
  • El programador es más importante que el lenguaje de productividad

Entonces, en este caso, ¿cuánto más rápido se escribiría Tycoon? . Probablemente no hubiera importado más que el hecho de que podría haber sido un poco más lento usando un lenguaje de nivel superior con el que no tenía 14 años de experiencia.

Respondido el 18 de noviembre de 2010 a las 23:02
2,331 2 2 insignias de oro 18 18 Insignias de plata 17 17 Insignias de bronce
Grandes puntos, pensé que ese podría ser el caso.

Si piensa en C como poco más que un ensamblador de “alto nivel”, y suponemos que Chris no estaba haciendo optimizaciones locas en su código de ensamblaje en cada rutina, entonces me imagino en términos de % de tiempo más largo, entonces podría no ser mucho más para un programador de ensamblaje hábil.

El ensamblaje se complica cuando está haciendo todas esas optimizaciones locas (operaciones de vectorización, haciendo uso de conjuntos de instrucciones especiales (SSE, etc.) Bit Twiddling, etc.) que simplemente no puede hacer desde C. Si estás haciendo esas cosas, entonces el tiempo está realmente en el “Fiddle este bit, ensamblan, mide. Vence este bit, ensamblan, mide. “Loop y no en la codificación real. Con un buen ensamblador macro y un programador experto, entonces escribir ensamblaje no es un enorme Retire de la escritura Código C.

Aún así, no hubiera podido hacerlo! Me estremezco al pensar en tratar de inicializar DirectX directamente en el ensamblaje! (Editar: Wikipedia me dice que escribió algunas partes en C para “interactuar con el sistema operativo de Windows”, así que supongo que no estaba inicializando a DirectX en el ensamblaje. Uf!)

Tycoon de montaña rusa: el juego mejor optimizado de todos los tiempos?

En un domingo por la mañana temprano de abril de 1999, el diseñador de juegos Chris Sawyer fue encaramado en el Centro de Comando de su sala de estar, una colección de tecnología de los 90 y foros de navegación en línea. A fines de marzo, la montaña rusa inaugural Tycoon había aterrizado en estantes de América del Norte goteando con el contagioso amor de Sawyer por los parques temáticos, y algo parecía haber salido muy mal.

En los foros, los jugadores decían que el juego había perdido de alguna manera su progreso y los envió de regreso al punto de partida en los escenarios del juego, que avanzan secuencialmente los niveles. Después de años de trabajo cuidadoso, el juego parecía haberse autodestruido por razones misteriosas. Pero Sawyer tuvo un presentimiento: anoche, el tiempo de ahorro de verano había entrado en vigencia.

Quizás fue más que una coincidencia. En un par de horas, había descubierto la conexión. Los sellos de tiempo ajustados en los archivos de Guardar juego, allí para salvaguardar contra la manipulación o la corrupción, no coincidían. “Varginantemente, fue un error descarado de mi parte”, dice Sawyer. “O era?”

La llamada del sistema que utilizó debería haber arrojado el tiempo en UTC, sin cambios por el ahorro de la luz del día, creando sin problemas. “Solo por alguna razón”, dice, ” hizo cambiar!”Rápidamente codificó un parche y luego una utilidad para corregir los archivos de Guardar Juego.

La mayor ironía era que el magnate de la montaña rusa se mantuvo como un monumento a lo que una sola persona puede lograr en la programación. Escrito casi por completo en el Código de Asamblea (como el magnate de transporte anterior de Sawyer), la montaña rusa Tycoon y su secuela apretaron y volvieron a expulsar los procesadores del tiempo para simular paseos, economías y hasta miles de visitantes y sus estados mentes. Agarrar a través de tantos números en tiempo real sin engancharse exigió un enfoque delgado e intransigente y no la familia de idiomas más lenta y más fácil de usar en C. Y en el ensamblaje ultra lean, donde las letras se interponen en las que se encuentran y los cerosos, uno habla directamente al procesador.

Es un lenguaje extremadamente difícil de aprender y ha estado pasando de moda desde el desarrollo de Fortran en la década de 1950. En sus primeros días, Sawyer lanzó un puñado de juegos codificados por Z80 a mediados de la década de 1980 y se convirtió en un incondicional para convertir los juegos de Amiga en DOS, incluido el clásico Elite II.

Handsome y Sprightly, luego entró en negocios por sí mismo y creó el magnate del transporte mientras se aferró a sus derechos, un hábito que le ha proporcionado una fuente constante de ingresos. Algunos de ellos fueron a viajar en Europa y Estados Unidos para montar montañas rusas en lugares como Cedar Point en Ohio. Ahora ha montado más de 700 posavasos. Su favorito, Taron en Phantasialand en Alemania, se parece a algo fuera de un juego de magnate.

Sawyer gravitó al ensamblaje x86 naturalmente, apreciando su presentación limpia y la compilación de rayos, y cuando se propuso hacer un magnate de la montaña rusa, manipuló dos PC: una rápida para la codificación y una más lenta para probar. (Los requisitos del sistema del juego luego pidieron un Intel Pentium 90MHz con al menos 16 megabytes de RAM.) También se sentó sobre su puesto de comando era una impresora de matriz de puntos (él cree), una máquina de fax, una guía de bolsillo para el código de ensamblaje X86 y una referencia de escritorio de 500 páginas. Esto fue suficiente para él; Aunque los manuales completos se encuentran con miles de páginas, había memorizado la mayor parte de lo que necesitaba.

“Había estado programando en x86 durante tanto tiempo que rara vez necesitaba mirar las cosas”, dice.

El juego más temprano se parecía al magnate del transporte pero con las montañas rusas, y su artista gráfico Simon Foster creó un sistema más flexible y fotorrealista para que las posavasos parecieran la parte. Gran parte del proceso de diseño inicial fue Freeform e inspirado en algunos predecesores obvios: Will Wright, Peter Molyneux, Sid Meier. Pero, sobre todo, Sawyer tuvo que priorizar el rendimiento. Nuevas características significaban una mayor carga en la lenta PC con timertillería de indias, y aunque algunas de ellas podían lanzar del código, otras tuvieron que quedarse.

Pathfinding fue uno de estos, y se convirtió en el mayor dolor de cabeza. “Es fácil programar un algoritmo de búsqueda de ruta que funcione perfectamente”, dice Sawyer, “pero no sirve de nada si detiene el juego durante segundos o minutos en un momento en que necesita tomar una decisión.”

Se apagaron los algoritmos, se extendió a muchos hombres y mujeres pequeños en los arbustos y por el camino decorativo incorrecto. “Había visitado bastantes parques temáticos grandes en los EE. UU. Para entonces y logré perderse en algunos de ellos yo mismo”, dice. “Así que pensé que probablemente era correcto que los invitados en la montaña rusa Tycoon también tuvieran problemas […] si el diseño del parque estaba mal diseñado.”

Una vez que el juego había evolucionado desde la lista de deseos de desgarrado hasta un templo SVGA a los parques temáticos, Sawyer lo extendió a amigos, vecinos y niños de los vecinos, que respondieron muy positivamente. El editor Hasbro organizó los jugadores de juego profesionales de búsqueda de errores, y Sawyer hizo su propio sondeo sin fin. Y a pesar del tiempo de ahorro de verano, la montaña rusa Tycoon fue el juego de PC más vendido de 1999.

Para la secuela, Sawyer agregó a la base de código original, acercándose a su visión definitiva. “Todavía me encanta ese juego y todo”, dijo a Eurogamer en 2016. Sawyer continuó con Assembly, usándolo casi exclusivamente para codificar la locomoción de Chris Sawyer en 2004, su juego más ambicioso hasta la fecha y también su último título importante de escritorio. Desde entonces, ha retrocedido del desarrollo del juego y autorizó los derechos para los nuevos Juegos de Tycoon de montaña rusa a Atari, esfuerzos que nunca se han acercado al éxito de los dos primeros.

Sawyer simplemente no se lleva bien con la industria como es ahora, aunque aprecia el reciente resurgimiento en Sims de gestión. Hay poca necesidad de un codificador de ensamblaje en estos días (como él está de acuerdo), y trabajar como un lobo solitario es más difícil que nunca. “También siento que ahora he creado todos los juegos que quería crear”, dice, incluidas las versiones móviles de sus juegos clásicos, “y trabajar en los diseños de juegos de otra persona simplemente no me excita.”

Matt Hrodey Matt Hrodey es un escritor de juegos que ha cubierto la montaña rusa Tycoon 2 para PCGamesn.