Overview
The graphics branch of the 42 curriculum challenges students to build visual applications using a minimalistic graphical library (MiniLibX). While not focusing on modern game development, these projects teach fundamental computer graphics principles, from simple 2D rendering to complex 3D mathematics.
cub3D (Raycasting Engine)
A graphics project that implements a raycasting engine to render a 3D perspective view from a 2D map, heavily inspired by the classic Wolfenstein 3D.
- Features: Raycasting using the Digital Differential Analysis (DDA) algorithm, parsing
.cubmap files, texture mapping for walls, and WASD movement with collision detection. - Learnings: Mathematical ray casting (trigonometry, vector projection, fish-eye correction), texture sampling, and managing a frame-based rendering loop without modern GPU hardware acceleration.
so_long (2D Game)
A small 2D game where the player navigates a map to collect items and reach an exit while avoiding enemies. Note: Information and repository details for this project are combined here to represent the graphics curriculum cohesively.
- Features: Window management, event hooks (keyboard input, window closing), parsing
.bermap files, and basic sprite rendering. - Learnings: Understanding the basic game loop, event-driven programming, and preventing memory leaks with graphical assets.