¿Cuál era la cadena de herramientas típica para el desarrollo de juegos de DOS? [cerrado]

15

Me pregunto cómo la gente solía escribir juegos de DOS (como Doom), no puedo encontrar mucho sobre esto, pero me encantaría aprender más sobre los primeros días del desarrollo del juego.

¿Qué idioma se usó predominantemente?

¿Supongo que ya era C. o C ++?

¿Qué IDE (o editores / compiladores) fueron populares?

Microsoft Visual C / C ++ (o Microsoft C / C ++ como creo que solía llamarse) no existía en aquel entonces AFAIK. Entonces, ¿qué usaba la gente? editar y un compilador de línea de comandos de Intel o algo así?

¿Qué APIs se usaron?

¿Qué era común para los juegos 2D? ¿Qué pasa con los juegos 3D como Doom y Tomb Raider?

¿Algo más diferente de hoy?

Me encantaría escuchar cualquier otra diferencia, como qué formatos de imagen / audio se usaron.

futlib
fuente
Estoy bastante seguro de que tu intención era investigar un poco para esta tarea de clase. Quizás gdcvault.com/play/1014627/Classic-Game-Postmortem pueda darle un comienzo.
Daniel Carlsson
No es una tarea, estoy fuera de la escuela / universidad. Hice google por un tiempo pero no pude encontrar mucho.
futlib
Recuerdo haber leído una nota de uno de los chicos de ID sobre Watcom C ++. Borland siempre fue bastante popular porque sus compiladores estaban volviendo loco RÁPIDAMENTE. (He usado para reconstruir tres o cuatro veces seguidas porque no estaba convencido de que nada había sucedido realmente.)
3Dave

Respuestas:

19

Lenguaje: predominaba C, pero C ++ estaba presente y se usaba.

Herramientas de desarrollo: los entornos de desarrollo incluyeron los de Borland y Watcom (casi desconocidos hoy en día) entre otros. Tanto Borland como Watcom tenían sus propios compiladores y sus propios IDE. Borland fue, con mucho, el más popular en general, aunque Watcom tenía fama de producir programas compilados más rápidos, iirc.

API: pocas API existieron o se utilizaron. La programación de video a menudo consistía en escribir píxeles directamente en el framebuffer VGA. Incluso los juegos en 3D fueron rasterizados por software. La API de sonido de Miles se usó para audio, que incluía controladores internos ya que el sistema operativo no tenía su propio marco de audio o controladores. La entrada del teclado y el mouse generalmente se leía directamente del sistema. Hubo un par de extensores de memoria populares para el modo de 32 bits que fueron muy populares y necesarios hacia el final del reinado de DOS. Afortunadamente, el hardware era simple, pero definitivamente era un dolor en los juegos de escritura a tope que funcionaban en una variedad de hardware. No existían bibliotecas para tratar todas las cosas simples de bajo nivel (como SDL, SFML, GLFW, etc.),

En una nota al margen del punto anterior, Doom no era 3D como lo conocemos hoy. Es decir, impuso enormes limitaciones en los entornos 3D debido a su algoritmo de rasterización de software altamente especializado, y los personajes y elementos eran todos sprites.

Formatos de archivo: los formatos de los activos eran tan exclusivos del motor como lo son ahora. Recuerdo vagamente que Bink estaba en ese entonces para video (lo cual era muy raro, generalmente solo en secuencias de apertura y cierre), y creo que Creative tenía algunos formatos de sonido especializados. No estoy seguro de qué fuente o formatos intermedios eran populares para sonido o video en ese entonces, pero TGA era bastante popular para imágenes.

Sean Middleditch
fuente
1
El omnipresente middleware que muchos licenciaron para audio fue Miles , que proporcionó la abstracción del controlador para muchos dispositivos. Si no usaste Miles, probablemente solo admitiste Adlib o SoundBlaster compatibles. Para habilitar el soporte VESA en tarjetas heredadas, algunos juegos usaron UniVBE .
Lars Viklund
¡Así es! ¡Buena memoria! :)
Sean Middleditch
Puedo estar equivocado, pero creo que la referencia que estás tratando de hacer fue para Watcom , no para Watson . Crearon un excelente compilador de C y un servidor SQL liviano llamado Watcom SQL, un predecesor de SQLite, que me gustó mucho.
Bob Mc
De hecho, tienes razón. Mi memoria definitivamente se está volviendo más confusa en mi vejez.
Sean Middleditch
ASM probablemente fue más común que ahora. Necesitabas reducir el rendimiento adicional y los optimizadores del compilador no eran tan buenos como lo son ahora. Es decir, la mayoría todavía está en C pero los motores probablemente tenían piezas ASM.
edA-qa mort-ora-y
4

Como complemento de la publicación de Sean, desde que mencionó Doom: hay un buen blog de Fabien Sanglard, quien realizó una revisión sobre la parte del código utilizado para hacer Doom (el de 1993). La revisión está aquí: http://fabiensanglard.net/doomIphone/doomClassicRenderer.php

PD: El blog tiene muchas revisiones de código relacionadas con Doom / Quake, y es una buena lectura para un desarrollador de juegos ver cómo otros diseñaron un juego desde cero

Timotei
fuente