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 .cub map 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 .ber map files, and basic sprite rendering.
  • Learnings: Understanding the basic game loop, event-driven programming, and preventing memory leaks with graphical assets.