doom.mp4
This project is a raycasting game developed in C++ that recreates a 3D environment using the raycasting rendering technique. The game simulates a first-person view where the player navigates through a maze-like world. The project aims to replicate the graphical style of classic games like Wolfenstein 3D.
![]() |
![]() |
---|---|
![]() |
![]() |
![]() |
![]() |
Follow these steps to get the raycasting game running on your local machine:
- Clone this repository to your local machine.
- Ensure you have a C++ development environment set up, including the required libraries, such as SDL2.
- Build the project using your preferred C++ development tools or compile it using a C++ compiler.
Make sure you have the following installed before running the project:
- C++ Development Environment: Ensure you have a C++ development environment configured on your system.
- SDL2: You can get it in /~https://github.com/libsdl-org/SDL/releases
- SDL2_image: You can get it in /~https://github.com/libsdl-org/SDL_image/releases. (Take care to download the developer version)
- Raycasting Rendering: Utilizes raycasting techniques to render a 3D-like environment.
- First-person Perspective: Offers a first-person view for the player to explore the game world.
- Interactive Controls: Allows movement and interaction within the game environment.
- Map Loading: Loads maps from files to create diverse gaming environments.
- Dynamic Textures: Renders textures onto walls based on the map and player location.
main.cpp
: Entry point for the application.raycaster.h
: Contains the raycasting logic and rendering.imageloader.h
: Handles image loading and manipulation.color.h
: Defines color structures and utilities.
- Run the game executable after building the project.
- Navigate through the environment using the arrow keys or other specified controls.
- Interact with the environment based on the game's mechanics (if any).
Contributions to improve the game or add new features are welcome! Follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b feature/new-feature
. - Make your changes and commit them:
git commit -m 'Add a new feature'
. - Push to the branch:
git push origin feature/new-feature
. - Open a pull request.
This project is licensed under the MIT License.