The initial idea
After I had created some simple Java2D games, I decided to work my way towards making 3D games. After some quick browsing I found the mention of raycasting to create really basic 3D games, as used in the original Wolfenstein, Doom and many old classics. Out of curiosity I created a simple 2D tiled map game, and then used some online resources to help me write a renderer using raycasting (a hell of a lot of trigonometry ^^).
The program renders to the display using Java2D, where walls are rendered in strips from the middle, depending on distance, to give the illusion of 3D, the floor and ceiling and created using floorpicking (in the picture both are done, in the video only floor is done and a colour background is drawn behind everything to give the illusion of sky).
- Sprites/entities can also be drawn based on their 2D position
- Rectangle collisions