{"id":18736886,"url":"https://github.com/bitwizeshift/alloy","last_synced_at":"2025-04-12T19:32:02.213Z","repository":{"id":81485336,"uuid":"166550032","full_name":"bitwizeshift/Alloy","owner":"bitwizeshift","description":"🚧A WIP hobbyist game engine written in modern C++","archived":false,"fork":false,"pushed_at":"2022-10-10T20:49:49.000Z","size":4936,"stargazers_count":10,"open_issues_count":6,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-26T14:01:45.942Z","etag":null,"topics":["cpp","cpp17","entity-component-system","game-development","game-engine","gamedev","open-source"],"latest_commit_sha":null,"homepage":"","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/bitwizeshift.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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-01-19T13:31:42.000Z","updated_at":"2024-10-03T20:54:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"ba96cb5c-1d5d-4821-8d4c-eec3e716380e","html_url":"https://github.com/bitwizeshift/Alloy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitwizeshift%2FAlloy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitwizeshift%2FAlloy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitwizeshift%2FAlloy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitwizeshift%2FAlloy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bitwizeshift","download_url":"https://codeload.github.com/bitwizeshift/Alloy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248621204,"owners_count":21134775,"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":["cpp","cpp17","entity-component-system","game-development","game-engine","gamedev","open-source"],"created_at":"2024-11-07T15:22:52.330Z","updated_at":"2025-04-12T19:32:02.205Z","avatar_url":"https://github.com/bitwizeshift.png","language":"C++","readme":"![Alloy Engine](doc/src/images/alloy-logo.png)\n\n[![Release](https://img.shields.io/github/release/bitwizeshift/Alloy.svg)](https://github.com/bitwizeshift/Alloy/releases/latest)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/bitwizeshift/Alloy/master/LICENSE)\n[![Github Issues](https://img.shields.io/github/issues/bitwizeshift/Alloy.svg)](https://github.com/bitwizeshift/Alloy/issues)\n\n## \u003ca name=\"summary\"\u003e\u003c/a\u003eSummary\n\n**Alloy** is a flexible game-engine and development kit under active\ndevelopment written in C++.\n\nIt is characterized by upholding a strict set of design-goals which\ncenter around maintainability and readability through proper\nsoftware engineering practices. The overall goal for this project\nis to be a well-rounded and easy-to-use, efficient game-engine.\n\nIt is inspired by many great open-source projects that\nhave come before it, the complete list can be seen\n[below](#inspirations).\n\n## Table of Contents\n\n* [Features](#features) \\\n  A summary of all existing features in **Alloy**\n* [Components](#components) \\\n  A brief summary of all components in **Alloy**\n* [API Reference](https://bitwizeshift.github.io/alloy/api/latest/manual.html) \\\n  For doxygen-generated API information\n* [Tutorials](https://bitwizeshift.github.io/alloy/api/latest/tutorials.html) \\\n  For tutorials on how to use **Alloy**\n* [Legal](doc/legal.md) \\\n  Information about how to attribute this project\n* [How to build](doc/building.md) \\\n  Detailed instructions for how to build **Alloy**\n* [Design Goals](doc/design-goals.md) \\\n  The design goals of this library\n* [Contributing Guidelines](.github/CONTRIBUTING.md) \\\n  Guidelines that must be followed in order to contribute to the project\n\n## \u003ca name=\"features\"\u003e\u003c/a\u003eFeatures\n\n* [x] Written with Modern C++ (C++17)\n  * [x] Supports for `constexpr` wherever possible\n* [x] Designed using componentized architecture (easier reuse)\n* [x] Strong focus on readability and design\n* [ ] Supports multiple render systems _(in progress)_\n  * [ ] OpenGL\n  * [ ] DirectX\n  * [ ] Vulkan\n* [ ] Supports multiple audio systems _(in progress)_\n  * [ ] OpenAL\n  * [ ] FMOD\n* [ ] Handles intersections of geometric objects\n* [ ] Easily build scene graphs and skeletons\n* [ ] Manages game objects using entity-component system\n\n## \u003ca name=\"components\"\u003e\u003c/a\u003eComponents\n\n**Alloy** is designed using component-based architecture in order to promote\nbetter logical design and reusability through code-sharing.\n\nThe library and application components are detailed below:\n\n### Libraries\n\n* [`Alloy::Core`](lib/alloy-core/README.md) \\\n  The core library that the rest of **Alloy** is built off of\n* [`Alloy::IO`](lib/alloy-io/README.md) \\\n  The library for managing all IO tasks (filesystem, network, etc)\n* [`Alloy::Render`](lib/alloy-render/README.md) \\\n  The library for managing rendering tasks, and abstracting the\n  underlying rendering system (DX, OpenGL, etc)\n* [`Alloy::Audio`](lib/alloy-audio/README.md) \\\n  The library for managing the audio tasks, and abstracting the\n  underlying mixing system (FMOD, OpenAL, etc)\n* [`Alloy::Engine`](lib/alloy-engine/README.md) \\\n  The library for managing all engine details, including subsystem\n  initialization \u0026 coordination, entity-component management,\n  resource management, etc.\n\n### Applications\n\nTODO detail applications\n\n## \u003ca name=\"inspirations\"\u003e\u003c/a\u003eInspirations\n\n**Alloy** was inspired by a variety of existing open-source projects.\nSome of these projects are listed below:\n\n- [Godot](https://github.com/godotengine/godot)\n- [Blade](https://github.com/crazii/blade)\n- [Ogre](https://github.com/OGRECave/ogre/pulls)\n- [Nomad](https://github.com/taurheim/NomadECS)\n- [easy-engine](https://github.com/callebstrom/easy-engine)\n\n**Note:** _inspired_ does not mean that any code was taken without following\nproper license attribution. It simply means that certain designs and concepts\nmay have been adjusted to align with what other existing projects are\nalready doing.\n\n## \u003ca name=\"tested-compilers\"\u003e\u003c/a\u003eTested Compilers\n\nThe following compilers are currently being tested through\n[continuous integration](#continuous-integration) with\n[Travis](https://travis-ci.com/bitwizeshift/Alloy) and\n[AppVeyor](https://ci.appveyor.com/project/bitwizeshift/Alloy/)\n\n| Compiler              | Operating System  | Architectures |\n|-----------------------|-------------------|---------------|\n| g++-9                 | Ubuntu 18.04      | x86, x86_64   |\n| clang++-9             | Ubuntu 18.04      | x86, x86_64   |\n| clang xcode 11.3      | macOS (Latest)    | x86_64        |\n| Visual Studio 2019    | Windows (Latest)  | x86, x86_64   |\n| clang-cl              | Windows (Latest)  | x86, x86_64   |\n| clang++-9             | Windows (Latest)  | x86, x86_64   |\n\n## \u003ca name=\"continuous-integration\"\u003e\u003c/a\u003eContinuous Integration\n\n| **Build**     | **Status**      |\n|---------------|-----------------|\n| Windows       | [![Windows Build Status](https://github.com/bitwizeshift/Alloy/workflows/build-windows/badge.svg)](https://github.com/bitwizeshift/Alloy/actions?query=workflow%3Abuild-windows) |\n| Linux        | [![Linux Build Status](https://github.com/bitwizeshift/Alloy/workflows/build-linux/badge.svg)](https://github.com/bitwizeshift/Alloy/actions?query=workflow%3Abuild-linux) |\n| macOS         | [![macOS Build Status](https://github.com/bitwizeshift/Alloy/workflows/build-macos/badge.svg)](https://github.com/bitwizeshift/Alloy/actions?query=workflow%3Abuild-macos) |\n\n\n\n## \u003ca name=\"packaging\"\u003e\u003c/a\u003eCurrent Releases\n\n| **Host**            | **Release**      |\n|---------------------|------------------|\n| Github              | [![Release](https://img.shields.io/github/release/bitwizeshift/Alloy.svg)](https://github.com/bitwizeshift/Alloy/releases/latest) |\n| Conan               | [![Release](https://img.shields.io/github/release/bitwizeshift/Alloy.svg)](#)\n\n## \u003ca name=\"license\"\u003e\u003c/a\u003eLicense\n\n\u003cimg align=\"right\" src=\"http://opensource.org/trademarks/opensource/OSI-Approved-License-100x137.png\"\u003e\n\n**Alloy** is licensed under the\n[MIT License](http://opensource.org/licenses/MIT):\n\n\u003e Copyright \u0026copy; 2018 Matthew Rodusek\n\u003e\n\u003e Permission is hereby granted, free of charge, to any person obtaining a copy\n\u003e of this software and associated documentation files (the \"Software\"), to deal\n\u003e in the Software without restriction, including without limitation the rights\n\u003e to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n\u003e copies of the Software, and to permit persons to whom the Software is\n\u003e furnished to do so, subject to the following conditions:\n\u003e\n\u003e The above copyright notice and this permission notice shall be included in all\n\u003e copies or substantial portions of the Software.\n\u003e\n\u003e THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\u003e IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\u003e FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\u003e AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n\u003e LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n\u003e OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n\u003e SOFTWARE.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitwizeshift%2Falloy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbitwizeshift%2Falloy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitwizeshift%2Falloy/lists"}