romanwrites / cub3D

📦 Raycasting project inspired by "Wolfenstein 3D" (1992) video game

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

cub3D

cover

Raycasting project (21-school / Ecole 42)

How it looks:

gameplay

Setup and usage

git clone https://github.com/kukinpower/cub3D.git
cd cub3D/cub3D
make
./cub3D map.cub

Controls

W A S D					move
←					turn left
→					turn right

Configuration file map.cub

Config file called `map.cub`

R 					resolution
C					ceiling rgb color
F					floor rgb color
NO SO WE EA				paths to textures
S					path to sprite
					empty lines

valid map is surrounded by walls (1) and can contain these characters
1					wall
0					player can move here
2					sprite/item
N S E W					player position and view direction
space					empty space (player can't see them)

map can't be splitted by empty lines

Example of a valid config file: valid configuration file

🕵🏽‍♀️ Research

Core

I built the graphics engine using this guide: Lode's Computer Graphics Tutorial

And peer2peer communication

Maths

Graphics

Generate BMP

Others (not used in final project)

Texture credits

Author

Roman Kukin

developer
school 21 (Ecole 42) student

linkedin github twitter

About

📦 Raycasting project inspired by "Wolfenstein 3D" (1992) video game


Languages

Language:C 82.0%Language:Swift 11.0%Language:Roff 5.0%Language:Makefile 1.8%Language:CMake 0.2%