Skip to content

Blatko1/RayVenture

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RayVenture

showcase1

RayVenture is a game. Check out pixels which helped me learn more about this type of rendering.

Excellent explanations about the raycaster here and here.

NOTE to me: all walls and platforms are being drawn from bottom to top!

Roadmap

  • Implement a working 2D raycaster with a specific FOV
  • Draw walls out of distance values
  • Add textures to walls
  • Add special textures with half transparency or full transparency
  • Add textures to floor and ceiling
  • Add voxel objects
  • Add colors to voxel objects
  • Render objects from closest to furthest while skipping drawing over already drawn full opacity pixels in order to increase performance
  • Implement drawing directly in the ray casting function to avoid memory allocations and preserve performance
  • Add different floor and ceiling textures for different map tiles
  • Add an ability to look freely up and down, moving up and down
  • Improve how map tiles are stored, split the map into three maps, one for regular wall tiles, one for ceiling tiles and one for floor tiles
  • Rotate the canvas by 90 degrees so drawing is more efficient
  • Simplify map creation by making possible creating maps in external .txt files while following a defined format
  • Add portals
  • Add shading/lightning effects
  • Draw a skybox
  • Add different height walls while also their tops sides (floor), if seen from above, and bottom sides (ceilings), if seen from below
  • Reimplement voxel objects again :/
  • Add removable object walls (cool opening or moving animation with voxels)
  • Add collision detection (circle-rectangle collision detection)
  • Add a UI
  • Go unsafe for performance increase after most of the project is finished

Reincarnation

  • Implement a new system for generating a map of rooms instead of the old one with only rng.

Some old comments

  • For the record, I have tried adding FXAA in the fragment shader, which ended up in a weird output, have tried MSAA, but it doesn't work on textures, have tried applying bilinear texture filtering but unnoticeable.