{"id":18497574,"url":"https://github.com/csb6/rougelike","last_synced_at":"2026-04-26T22:31:23.972Z","repository":{"id":115656461,"uuid":"195748491","full_name":"csb6/rougelike","owner":"csb6","description":"A rougelike game written using C++11 and termbox","archived":false,"fork":false,"pushed_at":"2020-07-05T23:24:37.000Z","size":376,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-14T05:23:08.083Z","etag":null,"topics":["ascii","rougelike","teleportation","termbox","terminal","terminal-game"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/csb6.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2019-07-08T06:16:37.000Z","updated_at":"2021-07-11T19:12:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"8b2c8ba1-8a77-4c2f-80bb-74749acccb75","html_url":"https://github.com/csb6/rougelike","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/csb6/rougelike","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csb6%2Frougelike","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csb6%2Frougelike/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csb6%2Frougelike/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csb6%2Frougelike/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/csb6","download_url":"https://codeload.github.com/csb6/rougelike/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csb6%2Frougelike/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32315711,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T21:09:39.134Z","status":"ssl_error","status_checked_at":"2026-04-26T21:09:21.240Z","response_time":129,"last_error":"SSL_read: 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":["ascii","rougelike","teleportation","termbox","terminal","terminal-game"],"created_at":"2024-11-06T13:35:00.662Z","updated_at":"2026-04-26T22:31:23.955Z","avatar_url":"https://github.com/csb6.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rougelike\n\nA fairly basic rougelike game written using C++ and termbox. You are the '@' and explore the map in order\nto pick up items and kill monsters by running into them repeatedly. You can also teleport to anywhere\nvisible and even teleport items into your inventory!\n\n**Note:** There is currently no support for platforms other than macOS. This should expand in the future to include\nall terminal emulators supported by ![termbox](https://github.com/nsf/termbox), regardless of platform.\n\n## Building\n\n### Requirements\n\n- macOS (tested on 10.14.5, but should work on 10.13 and earlier)\n- C++11 compiler (tested on clang Apple LLVM version 10.0.1 (clang-1001.0.46.4), but any other C++11 compiler should work)\n- Python \u003e= 2.5 (any Python 3 version will also work) (runs waf build script)\n- *Optional:* Ruby (any version; tested on 2.5.1) (for running linter tool)\n- *Optional:* clang-tidy (LLVM linting tool)\n\n### Scripts\n\nThere are three different build scripts:\n\n- `./build-full.sh` (run this right after cloning or after updating termbox submodule; subsequent builds use `./build.sh`)\n- `./build.sh` (builds without rebuilding termbox static library; run this to recompile after any changes made to game code)\n- `./run-tests.sh` (builds/runs test suite; cleans up after itself)\n\n`./run-tests.sh` builds/runs a modified build centered around `test-suite.cpp`, which automatically runs several functionality tests. Note that this script won't produce a new executable.\n\n## Playing\n\nrun `./rpg2` or optionally double-click `rpg2` from the Finder.\n\n## Controls\n\n- **arrow keys** Movement; running directly into monsters will melee attack them, with damage to you and\nthe monster dependent on a skill check\n- **i** View inventory\n- **@** View character sheet (mostly empty for now)\n- **e** View equipped item slots (also mostly empty)\n- **E** Equip an item (enter its inventory number, then its equipment slot number); any item\n  can be equipped as armor, even a knife!\n- **D** Deequip an item (enter its equipment slot number, e.g. Head is slot 1, Ranged Weapon is slot 6, etc.)\n- **ESC** Redraw screen. Use this to close inventory/character sheet/hide teleportation cursor\n- **r** Range attack a monster. Pressing **r** will show a cursor on the player's position. After\nmoving the cursor to the monster you want to attack, press **r** again to attack it. Only works if\na ranged weapon is equipped in the proper slot (if non-ranged item equipped in ranged weapon slot,\nit will be thrown at the monster). Also, you can't attack items/walls.\n- **t** Teleport the player. Pressing **t** will show a cursor on the player's position. After\nmoving the cursor to the desired location (see below), press **t** again to teleport there. You cannot\nteleport to a cell where a Wall is present. However, if you set your cursor over an item (**i**) and\nteleport, it will be added to your inventory. Teleporting to a Monster's position causes you to melee the monster\nwithout moving to its position.\n- **arrow keys** Move teleportation/ranged attack cursor once it is shown\n- **Ctrl-x** or **Ctrl-c** Exit game\n\n## Features\n\n- Custom character creation or quickstart\n- A movable/teleportable player character ('@')\n- RNG melee/ranged combat with variable damage\n- Viewable player inventory/character sheet\n- An event log\n- Equippable items\n- Several monster types including Mutant Bears, Marxist Marmots, and Red Imps\n- Monsters attempt to find/kill the player\n- Items ('i'), which can be picked up\n- Walls ('#')\n- Dynamic screen resizing/camera tracking\n- Gorgeous ASCII graphics\n\n## Future\n\nI hope to add a larger variety of monsters, items, and combat to the game. Additionally, I aim to\nimplement a procedural map generator and more levels (right now there is just 1 test map, which is pretty boring),\nas well as some sort of goal as the game's end condition.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcsb6%2Frougelike","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcsb6%2Frougelike","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcsb6%2Frougelike/lists"}