{"id":17476693,"url":"https://github.com/cemderv/cerlib","last_synced_at":"2025-09-09T19:08:12.428Z","repository":{"id":258173840,"uuid":"859563609","full_name":"cemderv/cerlib","owner":"cemderv","description":"Lightweight, cross-platform 2D game library for C++ ","archived":false,"fork":false,"pushed_at":"2024-10-23T23:26:11.000Z","size":13915,"stargazers_count":4,"open_issues_count":18,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-24T11:42:45.204Z","etag":null,"topics":["2d","2d-game","2d-game-development","2d-game-engine","2d-game-framework","2d-game-library","2d-graphics","cpp","cpp20","cpp20-library","modern-cpp"],"latest_commit_sha":null,"homepage":"https://cerlib.org","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cemderv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/contributing.md","funding":null,"license":"LICENSE.txt","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":"2024-09-18T22:07:17.000Z","updated_at":"2024-10-23T23:25:43.000Z","dependencies_parsed_at":"2024-10-24T03:27:39.736Z","dependency_job_id":null,"html_url":"https://github.com/cemderv/cerlib","commit_stats":{"total_commits":231,"total_committers":1,"mean_commits":231.0,"dds":0.0,"last_synced_commit":"731228c0951629c4e1b6699d51721b522acad9cc"},"previous_names":["cemderv/cerlib"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cemderv%2Fcerlib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cemderv%2Fcerlib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cemderv%2Fcerlib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cemderv%2Fcerlib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cemderv","download_url":"https://codeload.github.com/cemderv/cerlib/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222576187,"owners_count":17005447,"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":["2d","2d-game","2d-game-development","2d-game-engine","2d-game-framework","2d-game-library","2d-graphics","cpp","cpp20","cpp20-library","modern-cpp"],"created_at":"2024-10-18T19:09:25.719Z","updated_at":"2024-11-01T13:04:33.167Z","avatar_url":"https://github.com/cemderv.png","language":"C++","readme":"# cerlib\n\n\u003cimg src=\"https://github.com/cemderv/cerlib/blob/main/misc/cerlib-logo-startpage.png?raw=true\" width=\"300\"\u003e\n\n#### cerlib is an easy-to-use 2D game library for C++.\n\n- [Homepage](https://cerlib.org)\n- [Getting Started](https://cerlib.org/getting-started.html)\n- [Online Demo](https://cerlib.org/platformer-demo.html)\n\n\u003cimg src=\"https://github.com/cemderv/cerlib/blob/main/misc/cerlib-cover.webp?raw=true\" width=\"600\"\u003e\n\n| Build Status | Next Milestone |\n|:------------:|:--------------:|\n| [![CMake Build](https://github.com/cemderv/cerlib/actions/workflows/cmake-multi-platform.yml/badge.svg)](https://github.com/cemderv/cerlib/actions/workflows/cmake-multi-platform.yml) | ![Next Milestone](https://img.shields.io/github/milestones/progress-percent/cemderv/cerlib/8) |\n\n## Features \n\n- Open Source\n  - Permissive Apache 2.0 license with no royalties attached\n- Cross-platform\n- App framework\n  - Based on latest SDL3\n- Efficient, GPU-based sprite and UTF-8 text rendering\n- Custom sprite shading\n    - Simple \u0026 safe shading language that transpiles to native shading languages\n- Integrated math library\n- Audio playback\n- Content management system\n  - Images: .png, .jpg, .bmp, .dds, .hdr, .tga, .psd, .gif\n  - Fonts: .ttf, .otf\n  - Sounds: .wav, .mp3, .ogg, .flac\n- Particle systems\n- First-class support for [ImGui](https://github.com/ocornut/imgui)\n  - Automatically available in your game, simply `#include \u003cimgui.h\u003e` and use it\n- Compatible with graphics debuggers such as [RenderDoc](https://renderdoc.org)\n\n## What it does not provide\n\ncerlib does **not** provide\n\n- A full-fledged 2D game engine\n- A level editor\n- An entity-component-system or any kind of scene representation\n- A physics API\n- A networking API (candidate for future versions)\n- 3D rendering (candidate for future versions)\n\n---\n\nIn short, cerlib lets you define your game architecture however you desire.\nIt does not impose a strict model on the game's code.\nIt provides every audiovisual aspect necessary to comfortably make a 2D game.\n\n---\n\n## Minimal Example\n\n```cpp\n#include \u003ccerlib.hpp\u003e\n#include \u003ccerlib/Main.hpp\u003e\n\nusing namespace cer;\n\nstruct MyGame : Game\n{\n    void load_content() override\n    {\n      image = Image{\"MyImage.png\"};\n    }\n\n    bool update(const GameTime\u0026 time) override\n    {\n      // Update game logic. Use the time parameter as a reference point for\n      // how much time has passed since the last update:\n      // ...\n      return true;\n    }\n\n    void draw(const Window\u0026 window) override\n    {\n      // Draw game content into 'window':\n      // ...\n      draw_sprite(image, {100, 200}, white);\n    }\n\n    Window window = Window{\"My Game Window\"};\n    Image image;\n};\n\nint main() {\n  // Create and run your game.\n  return run_game\u003cMyGame\u003e();\n}\n```\n\n## Getting Started\n\nFor a detailed introduction, please visit [Getting Started](https://cerlib.org/getting-started.html).\n\n## Platform Support\n\n| OS                    | Architecture           | Graphics Backend                                                       |\n|-----------------------|------------------------|------------------------------------------------------------------------|\n| Windows               | x64, ARM64             | OpenGL ≥ 3.0                                                           |\n| Linux                 | x64, ARM64             | OpenGL ≥ 3.0                                                           |\n| Android               | All ABIs               | OpenGL ES ≥ 3.0                                                        |\n| Web                   | WebAssembly            | WebGL 2                                                                |\n| macOS                 | Intel, Apple Silicon   | OpenGL ≥ 3.0                                                           |\n| iOS, iPadOS, visionOS | ARM64                  | Metal - [In Development](https://github.com/cemderv/cerlib/issues/3)   |\n\n## Supported Compilers\n\ncerlib has been tested and is confirmed to work with the following compilers:\n\n| Compiler         | Required Version  |\n|------------------|-------------------|\n| MSVC             | 2022              |\n| Clang, Clang-cl  | ≥ 16.0.6          |\n| GCC              | ≥ 11.4            |\n| Apple Clang      | ≥ 15              |\n\n## Contributing and Feedback\n\nPlease see [Contributing](https://cerlib.org/contributing.html) for further details on how to contribute to cerlib.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcemderv%2Fcerlib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcemderv%2Fcerlib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcemderv%2Fcerlib/lists"}