{"id":27059125,"url":"https://github.com/alberto-paparella/simplefirstpersongame","last_synced_at":"2026-05-18T09:34:03.167Z","repository":{"id":149751292,"uuid":"386684017","full_name":"alberto-paparella/SimpleFirstPersonGame","owner":"alberto-paparella","description":"Repository for the project of the Computer Graphics course @unife, a.y. 2020-21.","archived":false,"fork":false,"pushed_at":"2023-03-04T14:04:30.000Z","size":6060,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-28T17:54:15.195Z","etag":null,"topics":["3d","3d-graphics","camera-movement","cgi","cgi-app","cgi-application","computer-graphics","computer-graphics-opengl","computer-graphics-project","first-person-game","first-person-view","game","labyrinth","labyrinth-game","opengl"],"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/alberto-paparella.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,"zenodo":null}},"created_at":"2021-07-16T15:31:31.000Z","updated_at":"2024-12-28T01:06:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"b6b2273e-a48a-48ff-a2aa-e81f527b8879","html_url":"https://github.com/alberto-paparella/SimpleFirstPersonGame","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/alberto-paparella/SimpleFirstPersonGame","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alberto-paparella%2FSimpleFirstPersonGame","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alberto-paparella%2FSimpleFirstPersonGame/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alberto-paparella%2FSimpleFirstPersonGame/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alberto-paparella%2FSimpleFirstPersonGame/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alberto-paparella","download_url":"https://codeload.github.com/alberto-paparella/SimpleFirstPersonGame/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alberto-paparella%2FSimpleFirstPersonGame/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33172627,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-18T09:27:30.708Z","status":"ssl_error","status_checked_at":"2026-05-18T09:27:28.300Z","response_time":71,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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","3d-graphics","camera-movement","cgi","cgi-app","cgi-application","computer-graphics","computer-graphics-opengl","computer-graphics-project","first-person-game","first-person-view","game","labyrinth","labyrinth-game","opengl"],"created_at":"2025-04-05T12:18:48.721Z","updated_at":"2026-05-18T09:34:03.162Z","avatar_url":"https://github.com/alberto-paparella.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SimpleFirstPersonGame\n\nAn implementation of a simple camera used to navigate into a 3D world.\nIt is possible to rotate the camera moving the mouse, and to move around\nusing W, A, S and D keys (ESC to close the application).\n\nIt can be used, for example, in first person games or in CAD applications.\n\nAs a little showcase, we created a very simple labyrinth.\n\nBoth grass and walls are rendered using shaders.\n\nWe also implemented a collision system, such as the user won't go \"inside\" a\nwall, but it will stop right before it.\n\n## Development\nFinal project for the Computer Graphics course (A.Y. 2020/2021) of the University of Ferrara.\n\n```\nTeacher:  Antonino Casile\n\nStudents: Alberto Paparella   Badge number: 144261\n          Martina Tenani      Badge number: 144739\n```\n\n## About the project          \nThere are two ways to move to a point in space.\n\nThe first is changing the position of the camera and moving it to that point\n(not possible in OpenGL), the other is changing the position of the point\nand bringing it to the camera.\n\nSimply speaking, to produce the effect of moving forward, you either go\nforward yourself, or bring the world backwards.\n\nSo to produce the effect of going to the point (x,y) in space, it is possible\nto translate the world to the point (-x,-y) instead, and it will be\nindistinguishable.\n\nIf you wish to look to the right side, rotate the world to the left.\n\nThat is why we use the negative values of the angles while rotating.\n\nImportant note: always rotate first and then translate.\n\nFor the collission system, we implemented the followuing logic: check if the\nnext step will locate the object around you; if that is the case, don't\nupdate the matrices in that direction.\n \n## How to compile\nGo to the project main directory ```sfpg/``` with the command line and launch\nthe ```make``` command.\n\nThe project will create an executable in the same directory\ncalled ```sfpg``` which can be launched with ```./sfpg```.\n\nAll .o files are stored in the ```obj/``` directory, to keep things clean.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falberto-paparella%2Fsimplefirstpersongame","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falberto-paparella%2Fsimplefirstpersongame","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falberto-paparella%2Fsimplefirstpersongame/lists"}