Jaja estaba contestando en el hilo de Argentum, y en lo que he tardado en escribir mi tocho me han cerrado el hilo. Así que escribiré por aquí lo que iba a decir.
Había una pequeña discusión en ese hilo del por qué los programadores de juegos antiguos usaban sus propios motores. Algunos decían que es porque no había disponibles motores como los de ahora, y otros que simplemente es porque antes la gente sabía programar mucho más que ahora.
Llevo haciendo juegos y programas de audio/video más de 20 años (desde la época del 286 en MS-DOS), así que me siento en la obligación de contestar.
[WARNING]: Post bastante largo
Lo primero que hay que entender es cómo eran esos juegos antiguos, y cómo eran los entornos en los que se programaban y las máquinas donde se ejecutaban. Por supuesto, esto depende de hace cuántos años hablemos. Hasta los primeros Windows todavía eran muy comunes los juegos en modo MS-DOS, ya que esto permitía al programador acceder directamente al hardware y usar ensamblador.
Se necesitaba hacer todo esto porque en aquellas máquinas el rendimiento era mucho más limitado. Aunque por otra parte el programa se simplificaba ya que mientras MS-DOS te da total libertad para organizar tu programa, Windows obliga a crear ventanas, usar librerías (GDI, DirectX...) y basar el programa en mensajes. Esto nos obliga a escribir mucho código adicional, y además la estructura del programa será bastante más complicada en comparación.
Por otra parte no usar Windows también tenía desventajas. Al acceder directamente al hardware lo tienes que hacer todo tú mismo. Pero además, como no dispones de drivers ni librerías estandar, lo que estés haciendo no tiene por qué funcionar en todos los PCs. Dependiendo de la tarjeta de video y de audio las cosas se tienen que hacer de forma diferente. Es por eso que en los menús de juegos de MS-DOS lo primero que sueles necesitar hacer es elegir qué modo de video y qué tarjeta de sonido vas a usar.
Ya os podeis imaginar que al tener que hacer las cosas a tan bajo nivel uno mismo (video, audio, joysticks, teclado, timing...) era normal que los programadores de juegos tuvieran bastante conocimiento de sus máquinas. También era habitual encontrar en revistas de la época, como Programación Actual, artículos y CDs que te explicaban cómo programarte tú mismo cosas como cargadores de imágenes, pequeños renderers 2D y 3D, secuenciadores de sonido para crear música básica tipo tracker, etc.
Además, tened en cuenta que los juegos de esa época como es lógico eran mucho, mucho menos complejos que los de ahora. Eso hacía que en muchos casos aún fuera posible desarrollar un juego completo, con calidad comercial, con sólo 1 o 2 personas. Como ellos mismos lo hacían todo, y normalmente podían programarse un pequeño motor en no demasiado tiempo (o incluso ya lo tenían de proyectos anteriores), no había tanta necesidad de motores.
Una vez que fue haciéndose dominante el desarrollo en Windows (más complejo y más estandarizado), y que fue aumentando la complejidad de los juegos especialmente por el 3D, comenzaron a surgir motores ya que el costo de desarrollar un motor de este tipo empezaba a ser prohibitivo. Sin embargo aún tardarían unos años en extenderse. El primer Unreal Engine, por ejemplo, no se lanzó hasta el 98.
Bueno lo dejo, ahí tenéis mi granito de arena