¿Cómo fue el desarrollo de juegos en Apple II? [cerrado]

14

Hace un tiempo hice una pregunta similar sobre el desarrollo de DOS y obtuve una excelente respuesta: ¿Cuál era la cadena de herramientas típica para el desarrollo de juegos de DOS?

Ahora me pregunto cómo fue el desarrollo del juego en el Apple II a finales de los 70 / principios de los 80. Me interesan principalmente las primeras: II y II +, pero también me gustaría recibir respuestas sobre IIe, etc.

Asi que aqui están mis preguntas:

¿Qué idiomas se usaron?

Supongo que el ensamblador 6502, pero BASIC se incluyó y probablemente también se usó mucho. ¿Puedes pensar en juegos populares escritos en BASIC? ¿Qué tal C?

¿Cómo fue el desarrollo del ensamblador 6502?

Me di cuenta de que puede ingresar códigos operativos directamente si inicia el monitor del sistema, e incluso puede ejecutar el ensamblador directamente con el mini ensamblador. Pero no puedo imaginar que los juegos se escribieran así, ¿hubo editores / IDEs? ¿Cómo se almacenaron los programas en discos / cintas?

¿Cómo fue el desarrollo BÁSICO?

El intérprete BASIC de Apple II no es tan malo, supongo que puedes escribir programas completos allí. También le permite GUARDAR / CARGAR programas, supongo que en disco / cinta. ¿Pero no había editor visual?

¿Hubo alguna API o Middleware?

¿O era necesario hablar directamente con el hardware todo el tiempo si quería dibujar algo o reproducir un sonido? ¿Había alguna biblioteca en absoluto?

¿Algo más diferente de hoy?

Me encantaría escuchar cualquier otra diferencia, como qué formatos de imagen / audio se usaron. Dado que no había realmente un concepto de archivos si lo entendía correctamente, me pregunto cómo funcionó. ¿Tuvo que escribir sus gráficos y sonidos en ensamblador? ¿Cómo funcionó eso en BASIC?

futlib
fuente
La introducción al Libro Negro de Gráficos de Michael Abrash está escrita por John Carmack, y habla sobre lo fácil que fue hacer gráficos: solo hiciste un comando de dibujo y se cambiará automáticamente. Por lo que recuerdo de jugar con él en los años 80, puedes hacer esas llamadas directamente a través de BASIC.
Philip
Ya me he vinculado a esto en otro lugar pero ... de todos modos, Jordan Mechner lanzó el código fuente de la versión Apple II de Prince of Persia . ¡Eso puede ser interesante para ti!
Laurent Couvidou
Una de las peculiaridades más notables de Apple II fue que los gráficos no estaban directamente mapeados en memoria; en cambio, el sistema utilizó un tipo extraño de sistema intercalado donde la fila que siguió a la fila 0 en la memoria no era la fila 1 sino la fila 64; luego la fila 128 siguió eso en la memoria, y solo después de eso aparece la fila 1. Es por eso que ves los extraños efectos de carga 'tri-banda' en los juegos de Apple II.
Steven Stadnicki

Respuestas:

5

Hice mucha programación en Apple (no profesionalmente, pero es lo que aprendí) y Applesoft BASIC y ensamblador sobre dónde estaba para los aficionados. Había otros idiomas disponibles: el logotipo era común, Pascal estaba escrito en todas partes, pero no conozco a nadie que lo usara, no estaba realmente al tanto de que C se usara en ninguna plataforma de Apple hasta que Orca C para Apple IIGS, hubo un Forth intérprete con gráficos estilo tortuga (o llámelo estilo logotipo) flotando también.

Abordaré algunas de sus preguntas y luego ideas básicas:

¿Puedes pensar en juegos populares escritos en BASIC? ¿Qué tal C?

Se escribió una gran cantidad de shareware en BASIC, no solo Applesoft BASIC sino también Integer BASIC (que como su nombre lo indica, no tenía números de coma flotante). Me viene a la mente la serie Eamon, pero realmente no puedo pensar en muchas otras. Además, gran parte del software escrito por Beagle Bros. se realizó en BASIC (principalmente utilidades, no juegos).

Sin embargo, creo que la mayoría del software comercial se escribió en ensamblador.

Pero no puedo imaginar que los juegos se escribieran así, ¿hubo editores / IDEs? ¿Cómo se almacenaron los programas en discos / cintas?

Utilicé Merlin Assembler, para llamarlo un IDE podría estirarlo, pero funcionó bien. Como dijiste, podrías ir al monitor del sistema e ingresar códigos de operación y correr desde allí. Merlín tenía una forma de regresar desde el monitor del sistema (que no recuerdo cómo ahora).

¿Pero no había editor visual?

Había una herramienta de terceros que hacía que el entorno de Applesoft fuera un poco mejor, y le permitía usar sus flechas para desplazarse por la pantalla y realizar ediciones como un editor visual (aún tenía que presionar la tecla de retorno al final de una línea o los cambios no se pegarían). No recuerdo qué fue eso, lo usé bastante.

¿O era necesario hablar directamente con el hardware todo el tiempo si quería dibujar algo o reproducir un sonido? ¿Había alguna biblioteca en absoluto?

En Apple II + / IIe / IIc prácticamente solo estabas hablando con el hardware. Había un par de programas en ROM que podía usar, pero eran muy limitados y, por lo general, PEEK y POKE varias ubicaciones de memoria para cambiar los registros y hacer lo que deseaba, por ejemplo, para cambiar los modos gráficos, poke 49152 para activar el altavoz, etc. .

En el Apple IIGS, la ROM viene con un conjunto de bibliotecas similares a las que viene con Macintosh, para hacer GUI sofisticadas y otras cosas. Las ROM se actualizaron con el tiempo, y si cargó un disco del sistema que usaba bibliotecas más nuevas, leerían desde el disco en lugar de ROM, lo que provocaría que el tiempo de arranque REALMENTE LENTO. Había ROM 01, 02 y 03, y 02 -> 03 era una actualización gratuita, y había una versión anterior a 01 que también harían una actualización gratuita a 01.

Me encantaría escuchar cualquier otra diferencia, como qué formatos de imagen / audio se usaron. Dado que no había realmente un concepto de archivos si lo entendía correctamente, me pregunto cómo funcionó. ¿Tuvo que escribir sus gráficos y sonidos en ensamblador? ¿Cómo funcionó eso en BASIC?

Hubo archivos, no estoy seguro de lo que quiere decir con eso, y ProDOS no admitió directorios (el DOS anterior no tenía pero aún tenía un concepto de un archivo que reconocería). Usé mapas de bits y .pcx's. No recuerdo ningún archivo de audio en la serie II + / IIe / IIc, pero eso fue porque era difícil hacer ruidos más elegantes que los blips y bloops de videojuegos. Hubo algunos hacks que emitieron sonidos sofisticados (en particular, tenía un disco que tocaba Gun N 'Roses), pero casi siempre se hacía de manera gramatical.

En comparación con los entornos modernos, era francamente primitivo. Pero recuerde, no había soporte para ejecutar múltiples programas al mismo tiempo, por lo que su compilador efectivamente también tenía que ser su editor; realmente no podía discutir los beneficios de vi vs emacs, así que lo que sea que le haya dado su compilador, aprendiste a usar. Creo que fue mucho más fácil que usar bibliotecas apiladas sobre bibliotecas, y hay muchos trucos si trabajas para el hardware y sabes de qué se trata. Por ejemplo, una implementación común de "pausa por un momento" fue "for (int i = 0; i <1000; i ++)" (es diferente en BASIC), que nunca se usa ahora, porque el hardware es tan rápido que usted ' necesitaría un número enorme, e incluso si no fuera así, se ejecutaría en diferentes tipos de máquinas, por lo que sería una pausa diferente para diferentes personas (II +, IIe,

Todo esto es de memoria, no miré ninguna referencia mientras escribía esto, así que me disculpo si mi memoria es defectuosa y te dije cosas incorrectas. Pero espero que esto le dé un poco de sabor y responda algunas de sus preguntas.

laaph
fuente
4

¿Qué idiomas se usaron?

6502 para la mayoría, rara vez C (Aztek), mucho BASIC, algunos Pascal (Apple Pascal).

¿Cómo fue el desarrollo del ensamblador 6502?

Hubo algunos ensambladores y herramientas bastante lindos para 6502: Orca / M, Merlin, y en los últimos días fue posible desarrollar en una PC y un enlace en serie a Apple para la depuración remota. No olvidemos las utilidades de Beagle Bros. Editar + compilar + ejecutar, el mundo nunca cambia ;-)

¿Cómo fue el desarrollo BÁSICO?

Sin editor visual, solo una consola que te permite interactuar con el buffer BASIC al principio. Sin embargo, Beagle Bros. tenía un par de utilidades mágicas que hicieron que la mayor parte del dolor desapareciera. Y luego hubo shells que al menos actuarían como un editor basado en líneas para su escritura. Había una herramienta (Expediter 2) que podía reducir su BASIC a un binario de ensamblaje que se ejecutaba mucho más rápido (un viaje de ida).

¿Hubo alguna API o Middleware?

Hubo algunos, pero en su mayoría de un alcance muy estrecho, nada como lo que llamarías un SDK hoy. Seamos honestos, en 48K no puede permitirse una API de propósito general. En los días posteriores, surgieron dos o tres SDK de propósito específico para juegos de aventuras clicky, juegos basados ​​en mosaicos,

¿Algo más diferente de hoy?

Todo y nada. Las prácticas siguen siendo las mismas, las herramientas mejoraron.

Patrick Hughes
fuente
-1

Intérprete básico nativo: cuando escribe un programa, debe numerar cada línea, ingresar su código y presionar enter. Un programa básico se ve así: 10: INICIO 20: IMPRIME "HOLA MUNDO"

En este ejemplo, INICIO borre la pantalla; si lo necesita, debe ingresar una línea intermedia, por ejemplo:

15: IMPRIME "SALUDOS"

Como salida, debería borrar la pantalla, mostrar SALUDOS HOLA MUNDO

La LISTA de comandos muestra su código (¡sin pausa!) Sin mayúsculas en algunos modos (solo mayúsculas), sin caracteres especiales. No se escribieron juegos profesionales en BASIC, debido al rendimiento, en realidad se podía ver su programa dibujando las líneas.

Solo efectos de sonido, fue difícil reproducir música, solo tenemos un altavoz con un vistazo de ONE bit (no es broma) 49152, cambia su estado, sí, debe controlar incluso la frecuencia y era forma de onda cuadrada.

para ir a la asamblea LLAMAR -151

debería tener que codificar a mano en el monitor sin IDE, ingrese la dirección y su código (HEXA)

Alex
fuente