# Go Raycasting Engine This is a simple raycasting engine implemented in Go using SDL2. It simulates a 3D environment similar to the rendering technique used in classic games like Wolfenstein 3D. ## Features - Real-time 3D projection with raycasting - Movement and rotation controls - Multiple wall textures loaded from PNG files - Text rendering (e.g., FPS counter or debug text) - SDL2 rendering (no OpenGL or GPU shaders required) ## Screenshots ![screenshot](assets/screenshot.png) ## Controls | Key | Action | |-----|---------------------| | W | Move Forward | | S | Move Backward | | A | Rotate Left | | D | Rotate Right | | F1 | Toggle FPS Counter | | ESC | Exit Program | ## Requirements - Go 1.20+ - SDL2 (development libraries) - SDL2_ttf (for text rendering) ## Asset Licenses - DejaVuSans.ttf From the [DejaVu fonts project](https://dejavu-fonts.github.io/) License: [Bitstream Vera Fonts License](https://dejavu-fonts.github.io/License.html) (Free to use, modify, distribute) - Wolfenstein 3D Textures These textures are derived from the original Wolfenstein 3D game by id Software. Note: The original game assets are not open source and are copyright © id Software.