La era de los "8 bits" de finales de los 80 trajo los videojuegos al hogar con sistemas como NES. Los desarrolladores de juegos de la época produjeron juegos icónicos e introdujeron géneros que todavía nos acompañan hasta el día de hoy, mientras trabajaban con hardware que tenía serias limitaciones. Esta charla explorará cómo los desarrolladores de NES crearon más con menos, analizando las técnicas utilizadas en los juegos de NES desarrollados profesionalmente para manejar la física, la detección de colisiones, la aleatoriedad, la compresión...
|
etiquetas: ensamblador , programación , nes , famicon , años 80 , videojuegos
Libro online del autor del vídeo (HTML, gratis y sin registro): famicom.party/book/
Relacionado: www.youtube.com/watch?v=kXbMCKMJXXQ
"The Atari 2600 was designed to play a game called Combat"
No! era para jugar al Pong! Y los objetos que ouede mover tienen nombres relacionados con eso
De hecho, tanto este como el método del contra no los consideraría "estúpidos", sino formas de ahorrar y aprovechar ciclos de reloj respectivamente (en un caso tendría memoria disponible y querría ahorrar ciclos para los cálculos de los combates y en el segundo caso no dispondría de demasiada memoria como para gastar en tablas y aprovecharía algunos ciclos libres para hacer un truco un poco sucio pero efectivo).
www.elotrolado.net/hilo_tutorial-programacion-nes-basico_1694073
Lo que se conseguía hacer antes con hardware tan limitado, que mérito. Son obras de arte de la creatividad y el entretenimiento.
10 RANDOMIZE TIME
20 X = RND(1)
Y aun así se repetían los números.
Especialmente comparado con lo que hoy se encuentra a veces sobre todo en dispositivos móviles, por mucho que el tipo de interfaz que usan consuma muchos recursos por necesidad.
youtu.be/2nucjefSr6I
Las consolas no tenían roms con rutinas BASIC como los microordenadores, accedían directamente al hard (si acaso tenían alguna ligera capa BIOS o algún mínimo middleware hecho por el fabricante).
Si había un registro de tiempo o de la posición del barrido de pantalla, o la posición de los sprites del jugador, o algún otro registro. Lo jodido era que tuviera un rango amplio, pero para salir del paso valía.
A ver, pregunta con trampa:
secuancia 1 1 1 1 1 1 1 1 1 1 1 1 1
¿Pueden ser números aleatorios?
20 X = RND(-1)
Del manual:
"Da el siguiente número aleatorio de la sucesión en el caso de que la tenga valor positivo o no haya sido especificada.
Si la <expresión numérica> toma valor cero, RND vuelve a dar el anterior número aleatorio generado.
Si la <expresión numérica> toma un valor negativo, se inicia una nueva sucesión aleatoria y RND da su primer número."
EDIT. Error de imprenta, comprobado. El CPC que tenía venía además sin manual al ser de segunda mano, y no sabía de esa instrucción.
#13 #16 Un profe de mates decia a los alumnos que se inventasen numeros aleatorios e hicieran otro tanda con aleatorios de verdad y el descubria cual es cual. Los aletorios tenian repeticiones de numeros mas largas, porque a los alumnos eso no les parecia aleatorio y las hacian mas cortas.
Sumar un valor repetidamente cada ciclo mientras sobren ciclos antes del siguiente refresco de pantalla. Es un método muy sencillo, simple, para generar números aleatorios. Sin ningún alarde técnico o matemático. Una solución "tonta".
Pero como el tipo dice al final del vídeo, el objetivo de la charla era promover que la gente abrace las soluciones tontas. "Embrace stupid". Porque suelen ser sencillas y, al mismo tiempo, solucionar el problema suficientemente bien para dar el pego.
Una oda en contra de la sobreingeniería, más o menos.
¿A ti te parece que la cantidad de segundos que tarda el usuario en encender el ordenador y arrancar el programa puede repetirse fácilmente?