Ayuda para mejorar juego 3D

Estoy intentando hacer un juego tipo Wolfeinstein/Doom , estos juegos utilizan una técnica llamada raycasting para generar esa “ilusión” 3D en un entorno 2D.
La técnica maneja unos "rayos " que salen desde nuestro jugador y calculan la distancia que logran recorrer hasta colisionar con una pared, se almacenan en un array y en base a esta distancia se dibujan los muros/paredes (a mayor distancia - menor altura del muro).

Algunas capturas:
raytracer1
raytracer2

Necesito ayuda para mejorar los colores , la velocidad en la que “rastrea” el entorno y mejorar el dibujado. Cualquier idea es bienvenida

Enlace : https://app.pilas-engine.com.ar/#/proyecto/5cbe2fd2-2027-4ce5-89e4-d0bf4992501e

Hola @Jorge!, se ve impresionante… ¿tenes algún link a documentación para conocer algo más de esta técnica?, conozco los juegos que mencionas pero nunca escribí código para algo así. Se ve interesante!!!

1 me gusta

Hola @hugoruscitti partir de este wiki https://en.scratch-wiki.info/wiki/Raycaster me fui dando una idea de lo que se podía armar con Pilas.

Aqui hice otra versión en la que los rayos salen todos al mismo tiempo, mejora el dibujado, pero el rendimiento cae bastante jeje
https://app.pilas-engine.com.ar/#/proyecto/70362882-09fd-4ba5-a33c-2649ad8ae450

Aquí arregle el dibujado, que no dibujaba bien las paredes cuando el personaje pasaba por ciertos ángulos, corregi el color y logre que los muros mas lejanos se pinten mas oscuros.
https://app.pilas-engine.com.ar/#/proyecto/eeb8bd6c-7952-4372-8eaa-d0fbd1058ef7

1 me gusta