{"id":19529850,"url":"https://github.com/yayuniversal/pacman-3d","last_synced_at":"2026-05-07T01:04:11.243Z","repository":{"id":74738957,"uuid":"429669731","full_name":"yayuniversal/Pacman-3D","owner":"yayuniversal","description":"3D Pacman with C++ and OpenGL","archived":false,"fork":false,"pushed_at":"2021-11-21T21:38:12.000Z","size":1268,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-26T02:43:02.998Z","etag":null,"topics":["cpp","opengl","pacman"],"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/yayuniversal.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-19T04:30:32.000Z","updated_at":"2023-09-22T14:37:05.000Z","dependencies_parsed_at":"2023-07-17T02:17:00.967Z","dependency_job_id":null,"html_url":"https://github.com/yayuniversal/Pacman-3D","commit_stats":null,"previous_names":["yayuniversal/pacman-3d"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yayuniversal%2FPacman-3D","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yayuniversal%2FPacman-3D/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yayuniversal%2FPacman-3D/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yayuniversal%2FPacman-3D/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yayuniversal","download_url":"https://codeload.github.com/yayuniversal/Pacman-3D/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yayuniversal%2FPacman-3D/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259211830,"owners_count":22822379,"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":["cpp","opengl","pacman"],"created_at":"2024-11-11T01:27:53.621Z","updated_at":"2026-05-07T01:04:11.215Z","avatar_url":"https://github.com/yayuniversal.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pacman 3D\n3D version of my [Homemade Pacman](https://github.com/lilianmallardeau/Homemade-Pacman), made with C++ and OpenGL\n\n![pacman_3d_screenshot](https://user-images.githubusercontent.com/56023249/142716704-84f62c4b-0dcc-4153-b0a3-1b204935ffd1.png)\n\n\n## Dependencies\n[ASSIMP](https://github.com/assimp/assimp) (to load the 3D models) and [SFML](https://github.com/SFML/SFML) (to play sounds) are needed to compile the program. For Debian based distributions, they can be installed with this command:\n```\nsudo apt install libassimp-dev libsfml-dev\n```\n\n## Clone\n\nClone the repository with the `recurse-submodules` option to clone the libraries repositories as well: \n```\ngit clone --recurse-submodules https://github.com/lilianmallardeau/Pacman-3D.git\n```\nThen move to the cloned folder.\n\n## Build and run\n```\nmkdir build\ncd build\ncmake ..\nmake\ncd ..\n./build/Pacman_3D levels/level0\n```\nTo run, the current working directory **MUST** be the root folder of the repository, because the program has to load the shaders files in the `src/shaders/` folder and the textures, 3D models and sounds in the `assets/` folder.\n\n## How to play\nThe goal is to collect all the pellets (diamonds) without being eaten by a ghost.\nYou can move forward/backward with the W/S keys (Z/S for AZERTY keyboards), and rotate the camera with the A/D keys (Q/D for AZERTY keyboards).\nThe mouse can also be used to move the camera.\n\n## Changing the game options\nSome game options can be changed in the `src/parameters.h` header file. Although their name is already kind of explicit, here is a brief description of each of them:\n\n| Parameter | Description |\n|:---------:|:-----------:|\n| `FULLSCREEN` | 1 to enable fullscreen, 0 otherwise |\n| `WINDOW_SIZE` | Size of the window if fullscreen is disabled. Ignored if `FULSCREEN` is set to 1. |\n| `PACMAN_SPEED` | Pacman speed  |\n| `GHOSTS_SPEED` | Ghosts speed |\n| `GHOSTS_NUMBER` | Number of ghosts |\n| `MIN_GHOST_INIT_DISTANCE` | Minimum distance between Pacman and the generated ghosts |\n| `BACKGROUND_COLOR` | Background color |\n| `WALLS_TEXTURE` | Texture for the walls |\n| `GROUND_COLOR` | Color of the ground |\n| `{GHOST,PELLET}_MODEL` | 3D model for the ghosts/pellets |\n| `{GHOST,PELLET}_MODEL_SCALING` | Scaling applied when loading ghost/pellet 3D model. Can be a scalar (uniform scaling) or a vector of 3 components |\n| `{GHOST,PELLET}_MODEL_TRANSLATION` | Translation applied when loading the ghost/pellet 3D model |\n| `{GHOST,PELLET}_MODEL_ROTATION` | Rotation applied when loading the ghost/pellet 3D model |\n| `FOV` | Field of view of the camera (degrees) |\n| `ASPECT_RATIO` | Aspect ratio of the window / screen |\n| `PRINT_FPS` | 1 to enable printing the number of processed frames per second at each frame, 0 to disable |\n| `ENABLE_SOUND` | 1 to enable sounds, 0 to disable |","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyayuniversal%2Fpacman-3d","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyayuniversal%2Fpacman-3d","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyayuniversal%2Fpacman-3d/lists"}