{"id":20358393,"url":"https://github.com/nicolasgasco/42_cub3d","last_synced_at":"2026-06-07T19:33:06.822Z","repository":{"id":36990024,"uuid":"489753396","full_name":"nicolasgasco/42_cub3d","owner":"nicolasgasco","description":"Group project done by @nicolasgasco and @isolinis. A small Wolfenstein-inspired video game done with raycasting and MiniLibX.","archived":false,"fork":false,"pushed_at":"2022-08-17T10:42:09.000Z","size":2289,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-15T01:44:31.031Z","etag":null,"topics":["3d","c","game","minilibx","raycasting"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nicolasgasco.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-05-07T18:33:45.000Z","updated_at":"2025-01-10T20:01:48.000Z","dependencies_parsed_at":"2022-07-12T16:13:04.919Z","dependency_job_id":null,"html_url":"https://github.com/nicolasgasco/42_cub3d","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicolasgasco%2F42_cub3d","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicolasgasco%2F42_cub3d/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicolasgasco%2F42_cub3d/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicolasgasco%2F42_cub3d/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nicolasgasco","download_url":"https://codeload.github.com/nicolasgasco/42_cub3d/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241895379,"owners_count":20038512,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d","c","game","minilibx","raycasting"],"created_at":"2024-11-14T23:26:45.509Z","updated_at":"2025-03-04T17:48:59.468Z","avatar_url":"https://github.com/nicolasgasco.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Cube3D\n42 group project done by [@nicolasgasco](https://github.com/nicolasgasco) and [@isolinis](https://github.com/isolinis). Small 3D video game inspired by _Wolfenstein 3D_ that leverages [raycasting](https://en.wikipedia.org/wiki/Ray_casting) to create a sense of tridimensionality. Written in C using 42's own graphical API [miniLibX](https://harm-smits.github.io/42docs/libs/minilibx/getting_started.html).\n\n![screencast-nimbus-capture-2022_08_12-17_53_56_lqj089](https://user-images.githubusercontent.com/73175085/184505477-a271ac22-ed26-4a7a-bd68-f12efd6a4ced.gif)\n\n## Project breakdown\nThe project roughly involved:\n- Parsing and validating the scene description file passed as argument to the program, as shown in this example:\n  ```\n  // Textures according to orientation\n  NO ./path_to_the_north_texture\n  SO ./path_to_the_south_texture\n  WE ./path_to_the_west_texture\n  EA ./path_to_the_east_texture\n  \n  // Floor and ceiling colors\n  F 220,100,0\n  C 225,30,0\n  \n  // Map\n  111111\n  100001\n  111111\n  ```\n- Transforming the data in a way that can be easily fed to the graphical API\n- Doing the raycasting calculation to render the scene\n- Adding player movement\n\n## Features\n- Customizable textures (XPM) that vary according to orientation (North, South, West, East)\n- Customizable ceiling and floor colors\n- Player movement (vertical with `W` and `S`, horizontal with `A` and `D`)\n- View rotation with left and right arrow keys in mandatory (`src` folder) and by moving the mouse horizontally in bonus (`bonus` folder).\n\n## Run the program (macOs only)\n```\ngit clone https://github.com/nicolasgasco/42_cub3d.git\ncd 42_cub3d\n\n# For mandatory (player rotation with arrow keys)\nmake\n./cub3D /maps/scene.cub\n\n# For bonus (player rotation with mouse)\nmake bonus\n./cub3D_bonus /maps/scene.cub\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicolasgasco%2F42_cub3d","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnicolasgasco%2F42_cub3d","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicolasgasco%2F42_cub3d/lists"}