I am making a 2d top-down programming game similar to robocode. There will be up to 1000 walls (lines) in the arena, and up to 50 robots. Each robot can see in a 90 degree arc, and cannot see through walls. I need an efficient way to calculate what each robot can see (other robots and walls). I already have a grid of bins implemented. I was wondering what is the most efficient way to tackle this problem.
It would be nice if the method also includes a way to draw the shadows for visualization, but this is not necessary.
I am using C++ and the Qt framework.
Summary: The main question is how to generate a list of robots and walls that each robot can see. For example:
Robot 1 can see: Robot 6 Robot 15 A wall from (50,60) to (70,80) Robot 2 can see: ...