{"id":30533322,"url":"https://github.com/eldskald/creative-block","last_synced_at":"2025-08-27T11:27:12.361Z","repository":{"id":205515812,"uuid":"714154841","full_name":"eldskald/creative-block","owner":"eldskald","description":"Just learning C++","archived":false,"fork":false,"pushed_at":"2025-08-15T04:30:57.000Z","size":16233,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-26T11:39:35.910Z","etag":null,"topics":["cpp","game-development","gamedev","games","glsl","graphics","raylib","shaders"],"latest_commit_sha":null,"homepage":"https://eldskald.itch.io/creative-block","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eldskald.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,"zenodo":null}},"created_at":"2023-11-04T04:13:51.000Z","updated_at":"2025-08-23T18:05:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"4b77c89c-32be-451d-b1d2-d175b8a51e10","html_url":"https://github.com/eldskald/creative-block","commit_stats":null,"previous_names":["eldskald/learning-raylib","eldskald/creative-block"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/eldskald/creative-block","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eldskald%2Fcreative-block","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eldskald%2Fcreative-block/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eldskald%2Fcreative-block/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eldskald%2Fcreative-block/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eldskald","download_url":"https://codeload.github.com/eldskald/creative-block/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eldskald%2Fcreative-block/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272325827,"owners_count":24914646,"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","status":"online","status_checked_at":"2025-08-27T02:00:09.397Z","response_time":76,"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-development","gamedev","games","glsl","graphics","raylib","shaders"],"created_at":"2025-08-27T11:27:11.184Z","updated_at":"2025-08-27T11:27:12.338Z","avatar_url":"https://github.com/eldskald.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Creative Block\n\nThis project is me trying to learn C++ with [raylib](https://github.com/raysan5/raylib).\n\nYou can play the game or download it on [eldskald.itch.io/creative-block](https://eldskald.itch.io/creative-block).\n\n## Dependencies\n\nThis project is using the GNU Toolchain for C/C++ development, in particular, the [GNU Compiler Collection](https://www.gnu.org/software/gcc), the [MinGW-w64](https://www.mingw-w64.org/) compilers and [make](https://www.gnu.org/software/make). If you want to make an HTML5 build, you need to install [emsdk](https://emscripten.org/docs/getting_started/downloads.html). See more details on below.\n\nYou'll also need basic libraries used by [raylib](https://github.com/raysan5/raylib) to do graphics and audio. More info on their [wiki](https://github.com/raysan5/raylib/wiki/Working-on-GNU-Linux).\n\nIt's also using [clang-format](https://clang.llvm.org/docs/ClangFormat.html) to format the code, as well as [clang-tidy](https://clang.llvm.org/extra/clang-tidy/) to lint.\n\n## Getting started\n\nAfter cloning the repository, setup your `.env` file by copying the [.env.example](.env.example) and renaming it to `.env`, and then setting the values. The default values are for working on Linux. If you are working on Windows, use WSL.\n\nThen, run the following to install dependencies:\n\n```console\nbin/install-dependencies\n```\n\nThis will install [raylib](https://github.com/raysan5/raylib) on this project so you can compile it. You need [emsdk](https://emscripten.org/docs/getting_started/downloads.html) and its path on `.env` to compile it for web. If you don't have it, it will still work for the desktop versions. More info on the web version later.\n\nTo erase dependencies and builds in case you want to redo everything, run:\n\n```console\nmake clean\n```\n\nTo build the level editor and edit levels, run the following:\n\n```console\nmake editor\n```\n\nIt will compile the binary `level-editor` at the project root, just run and start making levels. You can also drag and drop a level file at the editor and it will load it. Just press save to save it.\n\n## Running and building\n\nTo make a build, run one of these commands:\n\n```console\nmake linux   # Makes a Linux build\nmake windows # Makes a Windows build\nmake web     # Makes a WebGL (HTML5) build\nmake         # All of the above\n```\n\nThis will create `linux.zip`, `windows.zip` and `webgl.zip` that can be sent to anyone to unzip and run the game.\n\nTo build and run a development build, run the following:\n\n```console\nbin/dev\n```\n\nIt will make a build, run it and delete it after you close it. Easy for quickly compiling changes and running the game with them.\n\nYou can also make a development build that won't be ran automatically or deleted after you closing by running this:\n\n```console\nmake dev\nmake web-dev\n```\n\nThis will put the build at the project root. Can be ran on a debugger and can be sent to testers to use with the built-in dev tools. The web version builds it for web, with logging, sanitizing and assertions enabled.\n\nWhen doing a dev build, you can also add a `SCENE` env var to load at the specified level, or `MUTE=1` to launch the game muted, or `NOFULLSCREEN=1` to not launch it at fullscreen, for example:\n\n```console\nSCENE=3 MUTE=1 bin/dev\n```\n\nThis will run the game starting on level 3 with master volume at zero, fullscreen.\n\n```console\nNOFULLSCREEN=1 bin/dev\n```\n\nThis will run the game at the start, windowed at full volume.\n\nThese `SCENE`, `NOFULLSCREEN` and `MUTE` commands only work on dev mode, that is, when running `bin/dev` or `make dev`, won't work on release builds.\n\nTo format and lint the whole project, run the following:\n\n```console\nbin/format\nbin/lint\n```\n\n## Working with a web build\n\nTo make a web build, you will need to have [emsdk](https://emscripten.org/docs/getting_started/downloads.html) version 4.0.10 and `python`. Follow the link on how to install it in this version. Then, update you `.env` file with the directory you installed `emsdk` in.\n\nIf you can't compile either `raylib` or the game, pay attention to the error messages, might be some of these binaries that can't be found.\n\nHaving `raylib` installed for web, you can `make web` or `make web-dev` to make a web build on `build/dev`. Having either build there, you can serve it by running the following:\n\n```console\nbin/serve\n```\n\nThis will serve the web build folder on your `localhost:3000`. The port is set on `.env`, or defaulted to `3000`. You can override it by passing a value manually, as in `PORT=5000 bin/serve`.\n\nIf you just want to quickly make a web build and run, like what happens when you do `bin/dev`, you can run:\n\n```console\nbin/web-dev\n```\n\n## License\n\nThis project is licensed under the [MIT](https://opensource.org/license/mit/) license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feldskald%2Fcreative-block","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feldskald%2Fcreative-block","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feldskald%2Fcreative-block/lists"}