RogueBasin
Menu (Edit):
Contents:
  1. Ray casting
    1. What is Ray Casting?
    2. Advantages
    3. Disadvantages
    4. How do I implement it?
    5. What games use it?
    6. What libraries implement it?

Ray casting


What is Ray Casting?


Ray casting is a method for calculating Field of Vision where rays are traced from the center of a source square to a select number of destination squares. Squares are marked as visible as the rays pass through them, and walls will block the rays.

There are a few ways to decide where rays are to be cast:

  • Every potential destination – This method is very slow, but results in a crude approximation of Shadow casting.
  • Every square along the perimeter of the area being checked for Field of Vision – This is faster, but causes an increasing number of artifacts as the radius increases.
  • A fixed number of rays as regular intervals – Provides a tweakable knob that trades off between accuracy and speed.

Advantages


  • Easy to implement
  • Builds intuitively on Line of Sight algorithms.

Disadvantages


  • Slow compared to other methods. Even when casting only a few rays, squares close to the source will be visited many times.
  • Many artifacts, even in common situations

How do I implement it?


What games use it?


Moria

What libraries implement it?


libtcod contains an enhanced version of perimeter raycasting with a post-processing step removing most artifacts and making it equivalent to shadowcasting.