{"id":19731993,"url":"https://github.com/lucasstarsz/slope-ecs","last_synced_at":"2025-04-30T02:31:36.054Z","repository":{"id":54260687,"uuid":"337270870","full_name":"lucasstarsz/Slope-ECS","owner":"lucasstarsz","description":"An Entity Component System written in Java, based on Austin Morlan's C++ ECS.","archived":false,"fork":false,"pushed_at":"2022-03-13T00:46:54.000Z","size":371,"stargazers_count":16,"open_issues_count":5,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T21:51:10.477Z","etag":null,"topics":["entity-component","entity-component-system","java","macos","maven-repository","mit-license","slope-ecs","ubuntu","windows"],"latest_commit_sha":null,"homepage":"","language":"Java","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/lucasstarsz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-02-09T02:35:09.000Z","updated_at":"2025-03-06T08:53:31.000Z","dependencies_parsed_at":"2022-08-13T10:20:20.293Z","dependency_job_id":null,"html_url":"https://github.com/lucasstarsz/Slope-ECS","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasstarsz%2FSlope-ECS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasstarsz%2FSlope-ECS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasstarsz%2FSlope-ECS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasstarsz%2FSlope-ECS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lucasstarsz","download_url":"https://codeload.github.com/lucasstarsz/Slope-ECS/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251629156,"owners_count":21618111,"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":["entity-component","entity-component-system","java","macos","maven-repository","mit-license","slope-ecs","ubuntu","windows"],"created_at":"2024-11-12T00:24:11.990Z","updated_at":"2025-04-30T02:31:35.450Z","avatar_url":"https://github.com/lucasstarsz.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# Slope ECS\n\n### Games, in Java. Crazy thought, isn't it?\n\n[![Windows Build Status][Windows-Build-SVG]][Windows-Build-Action]\n[![Ubuntu Build Status][Ubuntu-Build-SVG]][Ubuntu-Build-Action]\n[![Mac OS Build Status][MacOS-Build-SVG]][MacOS-Build-Action]\n\n[![Javadoc][JavaDoc-SVG]][Javadoc-Link]\n[![Maven Central][Maven-Central-SVG]][Maven-Central]\n\u003c/div\u003e\n\n## About Slope\nSlope is a developer-friendly Entity Component System written in pure Java. It enables developers of all kinds to create games and other software built on a no-nonsense, cross-platform, open-source code library.\n\n## Highlights\n- [x] **Cross Platform** - Fully supports all major desktop platforms (Linux, macOS, Windows)\n- [x] **Developer Friendly**\n    - Robust testing for all supported platforms, ensuring your programs work as you expect.\n    - Well-documented source code, ensuring each part of the library's purpose to be easily understood.\n- [x] **Open Source**\n    - Under the [MIT License][MIT-License], you're free to use and modify this library for your own needs.\n\n## References\n- This ECS is designed based on [Austin Morlan's Entity Component System](https://austinmorlan.com/posts/entity_component_system/) blog post.\n\n## Adding Slope-ECS to your project\nThis repository can be found on [Maven Central][Maven-Central] -- as such, it can be easily added to your project as a dependency through the use of a build tool.\n\n### Requirements\n- [Java 15][AdoptOpenJDK-Link] or later.\n    - **IMPORTANT**: The eventual target Java version will be Java 17.\n- A build tool, such as [Maven][Maven-Link] or [Gradle][Gradle-Link].\n\n### Adding the Dependency\nWhen adding the dependency, **make sure to replace `[latest version here]` with the actual latest version** (you'll find this in the Maven Central link up above).\n\nA few common dependencies are provided below:\n\n- **Maven**\n  ```xml\n  \u003cdependency\u003e\n    \u003cgroupId\u003eio.github.lucasstarsz.slopeecs\u003c/groupId\u003e\n    \u003cartifactId\u003eslope-ecs\u003c/artifactId\u003e\n    \u003cversion\u003e[latest version here]\u003c/version\u003e\n  \u003c/dependency\u003e\n  ```\n- **Gradle**\n    - Groovy:\n      ```groovy\n      implementation 'io.github.lucasstarsz.slopeecs:slope-ecs:[latest version here]'\n      ```\n    - Kotlin:\n      ```kotlin\n      implementation(\"io.github.lucasstarsz.slopeecs:slope-ecs:[latest version here]\")\n      ```\n- **Apache Ivy**\n  ```xml\n  \u003cdependency org=\"io.github.lucasstarsz.slopeecs\" name=\"slope-ecs\" rev=\"[latest version here]\" /\u003e\n  ```\n\n## Learning Slope-ECS\n\n### The Wiki\nI highly recommend Slope's [wiki][Wiki-Link], as it will almost always contain the most up-to-date information on understanding how Slope-ECS works. It _is_ still a work in progress -- as I have more time to work on it, much more will be added to it.\n\n### Code Examples\nAfter getting an understanding of how Slope works, [these example programs](src/examples) are the best way to learn about using Slope in an actual project.\n\n## Building the Source Code\nBuilding Slope's source code is a very easy task. You just need to follow these steps:\n\n1. If you don't already have it, download [Git][Git-Link]. It's a powerful source control tool, and is the same source control that Slope-ECS uses.\n    - You don't need to have Gradle installed to build `Slope-ECS` -- Gradle projects come with the build tool.\n\n2. Using Git, clone the Slope-ECS repository.\n    ```bash\n    git clone https://github.com/lucasstarsz/Slope-ECS.git\n    ```\n\n3. Once you've entered the top directory of the project (`cd Slope-ECS`), build the project using the `gradlew` file.\n    - On Windows, you'll want to use the `gradlew.bat` file. \n    - For Unix-based systems, you'll need to use the `gradlew.sh` file (after giving it proper execution permissions).\n    ```bash\n    ./gradlew build\n    ```\n  _Having trouble accessing the `gradlew` file? Read [this][Terminals Are Different]._\n\n## Legal Information\nThis repository is licensed under the [MIT License][MIT-License].\n\n\n[Windows-Build-Action]: https://github.com/lucasstarsz/Slope-ECS/actions?query=workflow%3ABuild-Windows \"Windows Build Status\"\n[Windows-Build-SVG]: https://img.shields.io/github/workflow/status/lucasstarsz/Slope-ECS/Build-Windows?label=Windows%20Build\u0026labelColor=363e45\u0026logo=windows\u0026logoColor=0078D6\u0026style=for-the-badge\n\n[Ubuntu-Build-Action]: https://github.com/lucasstarsz/Slope-ECS/actions?query=workflow%3ABuild-Ubuntu \"Ubuntu Build Status\"\n[Ubuntu-Build-SVG]: https://img.shields.io/github/workflow/status/lucasstarsz/Slope-ECS/Build-Ubuntu?label=Ubuntu%20Build\u0026labelColor=363e45\u0026logo=ubuntu\u0026logoColor=E95420\u0026style=for-the-badge\n\n[MacOS-Build-Action]: https://github.com/lucasstarsz/Slope-ECS/actions?query=workflow%3ABuild-MacOS \"Mac OS Build Status\"\n[MacOS-Build-SVG]: https://img.shields.io/github/workflow/status/lucasstarsz/Slope-ECS/Build-MacOS?label=Mac%20OS%20Build\u0026labelColor=363e45\u0026logo=apple\u0026logoColor=000000\u0026style=for-the-badge\n\n[Maven-Central]: https://maven-badges.herokuapp.com/maven-central/io.github.lucasstarsz.slopeecs/slope-ecs \"Slope ECS on Maven Central\"\n[Maven-Central-SVG]: https://img.shields.io/maven-central/v/io.github.lucasstarsz.slopeecs/slope-ecs?style=for-the-badge\u0026color=blue\u0026label=Maven%20Central\u0026labelColor=363e45\u0026logo=data:image/png;base64,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\n\n[Javadoc-Link]: https://javadoc.io/doc/io.github.lucasstarsz.slopeecs/slope-ecs \"Slope ECS Documentation\"\n[JavaDoc-SVG]: https://javadoc.io/badge2/io.github.lucasstarsz.slopeecs/slope-ecs/Javadocs.svg?style=for-the-badge\u0026color=blue\u0026labelColor=363e45\u0026logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAFEklEQVR4Xu1bbXLbNhBdgFR6mLoWSSX2AfLVnqYZKW4mR8iHPT1NIjfJTH7Gqi1Rck5TkdjOgoJCyaQIkASoicxf8hDE7j487GIfaQYHfrEDjx/uAbhnwJ4iMOn38WQ+t85Q6wbq4vtvGOGj2dS6f9YN1AVgEkZ4cg/AgTJgEoYIwOBgGUD09xiDwfTG+ha1bsA0B0yCEIExwGQJp7e31v2zbsAYgDBCesYF/cnOXgFA1HcZ/F4BoILnjMFDB3tfMXMvGKCCd736nTNgcnyM4PnrNOFq3+fzUmcMyK961cpfhxEKRDiJZ6372/qEOllfBrQaSA6UnfmvowEiYul9HVtVY5wDkF/5B5xDcHN9x4ebaIApyoJgvRw6BSAfPALC6WyT0t+CADnjTgJ3XgXywTMh4NE83gC/q0rghAEbCa8gmVHvnxHePuW3c4J1APLBlSW8NUCWMv2uRGgdgCpqd7n6Tg5CVQBU3a8qY03vO2NAWX9/MAD4jEFU0OSYnAibrnbR8w4YkMlblQnwZ60CFNeuPj+fBFVSciGHd3IQ0mUBnf9PLTQ+nWwBZfQqjJAAKGp5r4IQGdvcja5aY+s5II860Z3+LqJ4V8nQKQAUPLW4QojC3r6LkugcAAJhGg2wsCSuJHGXPUEnAFCA8eAhbmsB9EYYuAcgEE7m7as/nSZBnUMMCSEkfemWwf7oEmXuRIT4/Pdai1nroV3BBC8vkXs+JMslLC7MnLrqh3haY+UDBQQwmL1/ZhST0eCywKO/PiOKFEjnm79/3sqcOozJj/kBAsDMwIdGzoYvL5WOASkKWJz/0Wi+ncwaXWIKCLc7qK78SYWAxYWeL7UdJqpvP8wYBzJO8s7iQo8JfQIREeiNEFDXwDngWjMGoDkFCog1VjU6+4T0LNmPz/Xs1wYgv1rHwzF6XiZmSuumF2NZoLSNEGFRM6GtGWAwRysAmMZra7wCwFkOsBVInXnDs3/kVqLdE2tuP9V91rFX+kwwGlMzB3PDEtjEiSZVqNUtoJIQneRmDQHoj8bo+T2Yvnm800dl04T2ebDtALBhIUtw9NmLSBOpDKk0Sb8Z94F4K2mzvrPJhzQRsPj7blmjPU8VYt6g/LYKgHI7evUFMU1qs1qWQiFKDzSD11/l/NO3Txr733gC3SiPXoyx5zG5xoIBcGRy1ecGCUvXlsk4ZwCYOOVy7D0ANtBWZaluZrbhU9mcVhiQb5Kk4dxRlwwKpPcE9D0kZYSsShRVASEoR5i11KbgWQGAnFAnM1OHNsYzDrN3T635aOUkuB2wFEi4B6QX7L6Y7ASpIdLp/BoBm3u4FrpSfOBUxgBiQwWmLce35zkafsTvmhpA7ZNgePZJdhuIDOJzM+nJVuBqXtpys3fmPmkzIJ/Y9im7B0PSIDlMa+YKLQD6ZGSld2zQh/uQpMvaAoYpK3598QF7ngfcW+WUkiRJW9SKInQ0+ogP/F+yhJaTre4EwjjQuz5MScVTV/ZrVfiAPpOTxZCOxeoGXz1Hc28rS1RKuQ/L5L/duqDhVtBigM5KHY/GSLqenHBV96W2pyWR0Vkgc4W6O3qGPpS81Uxqvw2pz/AkqKZ5oDUAdEBqa8zRnx+w1/Oz/3ZABMa92p1hawCQEkSr2GaC7A/HyDlRn/Y8vXXItpE6OZq+BClagNYAUJNTH6B+J8sEPI8BU5/EK9EDVSg/pJG1I7QVpEROFZdU4maCRxXrWgegyuC+3f8fARJ0X9/EzrEAAAAASUVORK5CYIIA\n\n[AdoptOpenJDK-Link]: https://adoptopenjdk.net/ \"Download Java from AdoptOpenJDK\"\n[Maven-Link]: https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html \"Maven Build Tool\"\n[Gradle-Link]: https://docs.gradle.org/current/userguide/installation.html \"Gradle Build Tool\"\n[Git-Link]: https://git-scm.com/ \"Git Source Control Manager\"\n[Wiki-Link]: https://github.com/lucasstarsz/Slope-ECS/wiki \"Slope-ECS Wiki\"\n\n[Terminals Are Different]: https://gist.github.com/lucasstarsz/9bbc306f8655b916367d557043e498ad \"Terminals Access Files Differently\"\n\n[MIT-License]: LICENSE.txt \"MIT Licensing\"\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucasstarsz%2Fslope-ecs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flucasstarsz%2Fslope-ecs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucasstarsz%2Fslope-ecs/lists"}