viernes, 25 de mayo de 2018

Disponible conferencia Pseudo-3D de Retromadrid 2018

Hola amigos de 8BP

En esta ocasión os traigo el video publicado por retromadrid, con una cuidada post-producción, con la charla de 8BP sobre Pseudo-3D. En la charla se explican los conceptos de Pseudo-3D, asi como el funcionamiento de las maquinas recreativas de los 80 y 90, y el de los juegos pseudo-3D de los ordenadores de 8bit. Tambien se eplican los mecanismos que posee 8BP para que puedas programar tus propios juegos Pseudo-3D. La postproducción realizada incluye carátulas de los juegos comentados y ha quedado francamente bien. Además, la proyección de la presentación se ve perfectamente.

La presentacion de la charla la encontrareis en presentacion Pseudo-3D . Uno de los conceptos mas importantes de Pseudo-3D es que las curvas no son reales. No hay nada que gire, sino simplemente una carretera que se deforma y unas montañas o edificios en el fondo que se mueven de acuerdo a la supuesta curva que estamos tomando.



En el manual de 8BP disponible en https://github.com/jjaranda13/8BP  podreis encontrar informacion detallada de como usar las capacidades Pseudo-3D de 8BP. Aqui os adjunto un breve resumen

Las capacidades que aporta 8BP para poder disponer de pseudo-3D son:

1) Proyeccción 3D: consiste en proyectar un mapa del mundo 2D en 3D, de modo que, aunque lo recorramos en 2D, nos de la sensación de verlo en 3D. Esto lo haremos invocando al comando |3D para configurar los comandos PRINTSPALL y PRINTSP de modo que proyecten en 3D antes de pintar en pantalla. No habrá posibilidad de girar en el plano, siempre “miraremos” hacia delante, pero el efcto combinado de una curva unido a unas casas o montañas en el horizonte que se desplacen, simulará que estamos tomando una curva.




2) Zoom: consiste en poder usar distintas versiones de una misma imagen de un objeto para dar efecto de zoom a medida que nos acercamos a el. Esto simplemente lo haremos en el fichero de imágenes, definiendo 3 versiones de una misma imagen y agrupándolas en una estructura. En la imagen se muestra el típico ejemplo del cartel que se acerca. Los comandos PRINTSPALL y PRINTSP escogerán la versión mas adecuada de la imagen según a la distancia a la que se encuentre, sin necesidad de hacer nada mas que definir la imagen como una imagen de tipo “Zoom”.



3) Segmentos: consiste en poder disponer de sprites de tipo “segmento”, definidos por una sola scanline horizontal (por lo que ocupan muy poco), a los que podamos asociar una longitud y una inclinación. Con ellos podremos construir caminos, ríos, etc y bordes de carreteras. Esto simplemente lo haremos en el fichero de imágenes definiendo un tipo de imagen que además de ancho y alto posee inclinación. Estos segmentos los utilizaremos en la construcción del mapa del mundo.


Los segmentos utilizados en el juego “3D Racing one” son rojos o blancos y aunque sean largos, solo estan definidos por una scanline. Por ejemplo, el segmento blanco izquierdo consiste en unos pocos bytes verdes para el cesped, un par de blancos y otros pocos grises para la carretera. En el momento de imprimirse, el segmento asi definido se replica hasta medir la longitud deseada, y se imprime en perspectiva, por lo que, aunque sea un segmento recto, se mostrará torcido.

Por último, mencionar que en muchas ocasiones será necesaria la actualización dinámica del mapa (comando |UMAP). Gracias a este comando, el mapa puede ser muy grande (lo cual es necesario si creamos un circuito con muchísimos segmentos).



Pronto os presentaré 8BP v33 con avances muy interesantes en los que estoy trabajando que estoy seguro que os van a sorprender!


hasta pronto amigos!


2 comentarios:

  1. Acabo de descubrir la librería y me parece excelente. Poseo conocimientos de Basic, no así de C o ensamblador, y he visto en el manual que es perfectamente posible hacer un juego íntegramente en basic. Es algo sencillamente genial, muchísimas gracias por el trabajo!

    ResponderEliminar
    Respuestas
    1. Me alegro que te guste! y la seguiré mejorando para gente como tu.

      Eliminar