{"id":25893370,"url":"https://github.com/grzelkaw/dungeonexplorer","last_synced_at":"2026-05-31T01:31:45.007Z","repository":{"id":278201884,"uuid":"934835655","full_name":"grzelkaw/DungeonExplorer","owner":"grzelkaw","description":"C++ SFML game","archived":false,"fork":false,"pushed_at":"2025-02-19T12:23:20.000Z","size":85626,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-02T21:38:08.127Z","etag":null,"topics":["cpp","game","rougelike","rpg","sfml"],"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/grzelkaw.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":"2025-02-18T13:35:44.000Z","updated_at":"2025-02-19T17:23:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"24cb9b88-0d85-4aea-ad8d-1abbd84cda85","html_url":"https://github.com/grzelkaw/DungeonExplorer","commit_stats":null,"previous_names":["grzelkaw/dungeonexplorer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/grzelkaw/DungeonExplorer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grzelkaw%2FDungeonExplorer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grzelkaw%2FDungeonExplorer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grzelkaw%2FDungeonExplorer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grzelkaw%2FDungeonExplorer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grzelkaw","download_url":"https://codeload.github.com/grzelkaw/DungeonExplorer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grzelkaw%2FDungeonExplorer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33716338,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["cpp","game","rougelike","rpg","sfml"],"created_at":"2025-03-02T21:33:29.858Z","updated_at":"2026-05-31T01:31:45.002Z","avatar_url":"https://github.com/grzelkaw.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DungeonExplorer\n\u003cp\u003eRouge Like game made in C++ using SFML library. It was an final assignment on first year of studies.\u003c/p\u003e\n\n# How to start\n\u003cp\u003eDownload the 'game' folder, inside you have .exe file. Open the .exe file and game is ready to go. In the 'files' folder there are all .cpp and .h source files if you want to check yourself \u003c/p\u003e\n\n# Starting screen\n\u003cp\u003eOn start we can choose our gamemode, single or multiplayer coop. In multiplayer second player uses keys JIKL to move and Numpad to shot. Also have other color than main player to avoid mistake in steering.\u003c/p\u003e\n\n![image alt](https://github.com/grzelkaw/DungeonExplorer/blob/main/screenshots/7.png?raw=true)\n\n# Gameplay\n\u003cp\u003e\nThe game revolves around exploring rooms, defeating all enemies, and advancing to the next floor. After each enemy encounter, you gain experience, which allows your hero to level up, increasing stats such as damage, speed, and attack frequency.\nThroughout the map, you can find and open chests that may contain gold or stat upgrades. Gold can be spent in special gold rooms to purchase items that provide various effects, such as double-shot, piercing attacks, or healing abilities. The primary objective is to defeat the boss, who typically appears in the final room of each floor, gather his special item, and then repeat the cycle.\n\u003c/p\u003e\n\u003cp\u003eYou can also watch gameplay on video here: https://youtu.be/fwEFi-zKaQQ?si=WnwLEPS5Od3dbDAR\u003c/p\u003e\n\n![image alt](https://github.com/grzelkaw/DungeonExplorer/blob/main/screenshots/1.png?raw=true)\n\n# Code\n\u003cp\u003e Game was programmed in C++ 17 with SFML in version 2.6.2 from 04.2024 to 06.2024. We have here division into classes. Main file combine every other file and run main loop where game is running. \n\n# Classes\nBelow description on most of the used classes in project.\n\n\u003ch3\u003e Player \u003c/h3\u003e\nPlayer class handle things like steering from keyboard, his statistics, list of picked up items or collision detection.\n\n\u003ch3\u003e Animation \u003c/h3\u003e\nHandling animation by slicing the sprite in parts, and then going through every frame to represent animation.\n\n\u003ch3\u003e World \u003c/h3\u003e\nGameTile class is about one 100x100 pixel tile on the world. It provides data like texture, special effects like spikes which deal damage or slime which slow downs player. \nGameWorld class however merges all this single tiles, and put them into the matrix to assemble whole room. In this matricies we input different number where every other number symbols different tile. This class also use DFS algorithm to generate randomly create dungeons using room quota.\n\n![image alt](https://github.com/grzelkaw/DungeonExplorer/blob/main/screenshots/2.png?raw=true)\n\n\u003ch3\u003e Enemy \u003c/h3\u003e\nEnemy is abstract class who is parent to other various classes like enemyZombie, enemyGhost etc. Enemy have parameters like sprite, stats, collision and child classes have their own movement or attack type.\n\n![image alt](https://github.com/grzelkaw/DungeonExplorer/blob/main/screenshots/4.png?raw=true)\n\n\u003ch3\u003e Object \u003c/h3\u003e\nObject class is also abstract simmilar to enemy, but this time is about objects that spawn in the rooms. Classes like objectMedKit or objectChest inherit from object chaning only their action on contact with player.\n\n![image alt](https://github.com/grzelkaw/DungeonExplorer/blob/main/screenshots/5.png?raw=true)\n\n\u003ch3\u003e Item \u003c/h3\u003e\nAbstract class same as object or enemy. Is used to give player different effect after picking item like multi-shot or healing.\n\n![image alt](https://github.com/user-attachments/assets/e98a2257-05a4-4e20-b083-541d7258addb)\n\n# Pause\nWe can also pause the game, where we can turn off music, or save and load game. Save and Load works by saving our stats and items to txt file, and loading it up when we want.\n![image alt](https://github.com/grzelkaw/DungeonExplorer/blob/main/screenshots/8.png?raw=true)\n\n# Summary\n\u003cp\u003eThat's all for now, I ended this project because of lack of free time. Feel free to download, test the game yourself and leave feedback!\u003c/p\u003e\n\u003cp\u003eMade by Wiktor Grzelka\u003c/p\u003e\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrzelkaw%2Fdungeonexplorer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrzelkaw%2Fdungeonexplorer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrzelkaw%2Fdungeonexplorer/lists"}