{"id":21461983,"url":"https://github.com/juku/libgdx-2d-engine","last_synced_at":"2026-05-20T19:11:02.760Z","repository":{"id":144807863,"uuid":"200294608","full_name":"JuKu/libgdx-2d-engine","owner":"JuKu","description":"A small 2D game engine with many utilities, more like a framework","archived":false,"fork":false,"pushed_at":"2020-10-13T15:03:58.000Z","size":864,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-23T14:32:25.268Z","etag":null,"topics":["2d-game","2d-game-engine","game","game-2d","game-dev","game-develop","game-development","game-engine","java","libgdx","libgdx-2d-engine","libgdx-desktop","libgdx-engine","libgdx-framework","opengl"],"latest_commit_sha":null,"homepage":null,"language":"Java","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/JuKu.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-08-02T20:33:47.000Z","updated_at":"2020-06-20T10:07:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"91df9718-4ff3-4a31-b601-8a84a7d2ac1f","html_url":"https://github.com/JuKu/libgdx-2d-engine","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/JuKu%2Flibgdx-2d-engine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuKu%2Flibgdx-2d-engine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuKu%2Flibgdx-2d-engine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuKu%2Flibgdx-2d-engine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JuKu","download_url":"https://codeload.github.com/JuKu/libgdx-2d-engine/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243976503,"owners_count":20377692,"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-game","2d-game-engine","game","game-2d","game-dev","game-develop","game-development","game-engine","java","libgdx","libgdx-2d-engine","libgdx-desktop","libgdx-engine","libgdx-framework","opengl"],"created_at":"2024-11-23T07:12:08.092Z","updated_at":"2026-05-20T19:11:02.682Z","avatar_url":"https://github.com/JuKu.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# libgdx-2d-engine\n\nA small 2D game engine with many utilities, more like a framework\n\n[![Build Status](https://travis-ci.org/JuKu/libgdx-2d-engine.svg?branch=master)](https://travis-ci.org/JuKu/libgdx-2d-engine)\n[![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=com.jukusoft%3Aengine2d-parent\u0026metric=ncloc)](https://sonarcloud.io/dashboard/index/com.jukusoft%3Aengine2d-parent) \n[![Quality Gate](https://sonarcloud.io/api/project_badges/measure?project=com.jukusoft%3Aengine2d-parent\u0026metric=alert_status)](https://sonarcloud.io/dashboard/index/com.jukusoft%3Aengine2d-parent) \n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=com.jukusoft%3Aengine2d-parent\u0026metric=coverage)](https://sonarcloud.io/dashboard/index/com.jukusoft%3Aengine2d-parent) \n[![Technical Debt Rating](https://sonarcloud.io/api/project_badges/measure?project=com.jukusoft%3Aengine2d-parent\u0026metric=sqale_index)](https://sonarcloud.io/dashboard/index/com.jukusoft%3Aengine2d-parent) \n[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=com.jukusoft%3Aengine2d-parent\u0026metric=code_smells)](https://sonarcloud.io/dashboard/index/com.jukusoft%3Aengine2d-parent) \n[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=com.jukusoft%3Aengine2d-parent\u0026metric=bugs)](https://sonarcloud.io/dashboard/index/com.jukusoft%3Aengine2d-parent) \n[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=com.jukusoft%3Aengine2d-parent\u0026metric=vulnerabilities)](https://sonarcloud.io/dashboard/index/com.jukusoft%3Aengine2d-parent) \n[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=com.jukusoft%3Aengine2d-parent\u0026metric=security_rating)](https://sonarcloud.io/dashboard/index/com.jukusoft%3Aengine2d-parent) \n\n[![Sonarcloud](https://sonarcloud.io/api/project_badges/quality_gate?project=com.jukusoft%3Aengine2d-parent)](https://sonarcloud.io/dashboard?id=com.jukusoft%3Aengine2d-parent)\n\n# Deployment\nBuild with `mvn clean install deploy -DperformRelease=true` to use maven-gpg-plugin\n\n# Basic Game Config\n\nSet property for DesktopLauncher in pom.xml:\n```xml\n\u003cproperties\u003e\n    \u003c!-- important! Don't override this, if you don't know, what you do! --\u003e\n    \u003cmainClass\u003ecom.jukusoft.engine2d.desktop.DesktopLauncher\u003c/mainClass\u003e\n\u003c/properties\u003e\n```\n\n```xml\n\u003c!-- ... --\u003e\n\n    \u003cbuild\u003e\n\t\t\u003cplugins\u003e\n\t\t\t\u003c!-- Write the current git revision into ${buildnumber} and populate ${scmBranch} --\u003e\n\t\t\t\u003cplugin\u003e\n\t\t\t\t\u003cgroupId\u003eorg.codehaus.mojo\u003c/groupId\u003e\n\t\t\t\t\u003cartifactId\u003ebuildnumber-maven-plugin\u003c/artifactId\u003e\n\t\t\t\t\u003cversion\u003e1.4\u003c/version\u003e\n\t\t\t\t\u003cexecutions\u003e\n\t\t\t\t\t\u003cexecution\u003e\n\t\t\t\t\t\t\u003cgoals\u003e\n\t\t\t\t\t\t\t\u003cgoal\u003ecreate\u003c/goal\u003e\n\t\t\t\t\t\t\u003c/goals\u003e\n\t\t\t\t\t\u003c/execution\u003e\n\t\t\t\t\u003c/executions\u003e\n\t\t\t\t\u003cconfiguration\u003e\n\t\t\t\t\t\u003c!-- Get the scm revision once for all modules --\u003e\n\t\t\t\t\t\u003cgetRevisionOnlyOnce\u003etrue\u003c/getRevisionOnlyOnce\u003e\n\t\t\t\t\t\u003c!-- Don't fail on modified local resources --\u003e\n\t\t\t\t\t\u003cdoCheck\u003efalse\u003c/doCheck\u003e\n\t\t\t\t\t\u003c!-- Don't update SCM --\u003e\n\t\t\t\t\t\u003cdoUpdate\u003efalse\u003c/doUpdate\u003e\n\t\t\t\t\t\u003c!-- Use short version of git revision --\u003e\n\t\t\t\t\t\u003cshortRevisionLength\u003e7\u003c/shortRevisionLength\u003e\n\t\t\t\t\u003c/configuration\u003e\n\t\t\t\u003c/plugin\u003e\n\n\t\t\t\u003c!-- create jar artifact, add classpath and set main class --\u003e\n\t\t\t\u003cplugin\u003e\n\t\t\t\t\u003cgroupId\u003eorg.apache.maven.plugins\u003c/groupId\u003e\n\t\t\t\t\u003cartifactId\u003emaven-jar-plugin\u003c/artifactId\u003e\n\t\t\t\t\u003cversion\u003e3.0.2\u003c/version\u003e\n\t\t\t\t\u003cconfiguration\u003e\n\t\t\t\t\t\u003carchive\u003e\n\t\t\t\t\t\t\u003cmanifest\u003e\n\t\t\t\t\t\t\t\u003caddClasspath\u003etrue\u003c/addClasspath\u003e\n\t\t\t\t\t\t\t\u003cclasspathPrefix\u003elib/\u003c/classpathPrefix\u003e\n\t\t\t\t\t\t\t\u003cmainClass\u003e${mainClass}\u003c/mainClass\u003e\n\n\t\t\t\t\t\t\t\u003c!-- update dependencie versions in MANIFEST.MF --\u003e\n\t\t\t\t\t\t\t\u003caddDefaultImplementationEntries\u003etrue\u003c/addDefaultImplementationEntries\u003e\n\t\t\t\t\t\t\t\u003caddDefaultSpecificationEntries\u003etrue\u003c/addDefaultSpecificationEntries\u003e\n\t\t\t\t\t\t\u003c/manifest\u003e\n\t\t\t\t\t\t\u003cmanifestEntries\u003e\n\t\t\t\t\t\t\t\u003c!-- https://www.youtube.com/watch?v=Rnmq_Jv-pe4 --\u003e\n\t\t\t\t\t\t\t\u003c!-- http://www.javacreed.com/how-to-add-splash-screen-using-maven/ --\u003e\n\t\t\t\t\t\t\t\u003cSplashScreen-Image\u003esplash_screen.png\u003c/SplashScreen-Image\u003e\n\n\t\t\t\t\t\t\t\u003c!-- http://maven.apache.org/shared/maven-archiver/index.html --\u003e\n\n\t\t\t\t\t\t\t\u003c!-- \u003ckey\u003evalue\u003c/key\u003e --\u003e\n\t\t\t\t\t\t\t\u003cImplementation-Time\u003e${maven.build.timestamp}\u003c/Implementation-Time\u003e\n\n\t\t\t\t\t\t\t\u003cImplementation-Build\u003e${buildNumber}-${scmBranch}\u003c/Implementation-Build\u003e\n\t\t\t\t\t\t\u003c/manifestEntries\u003e\n\t\t\t\t\t\u003c/archive\u003e\n\t\t\t\t\u003c/configuration\u003e\n\t\t\t\u003c/plugin\u003e\n\t\t\u003c/plugins\u003e\n\t\u003c/build\u003e\n```\n\nNext you have to create an `BaseGameFactory` implementation, e.q.:\n```java\npublic class TestBaseGameFactory implements BaseGameFactory {\n\n    @Override\n    public BaseGame createGame() {\n        return new BaseGame(TestBaseGameFactory.class) {\n            @Override\n            protected void addSubSystems(SubSystemManager manager) {\n                //\n            }\n        };\n    }\n\n}\n```\n\nThen you have to register this factory implementation via SPI.\\\nCreate an directory \"META-INF/services\" in resources directory (e.q. src/main/resources/META-INF/service) and create a new file with the exact file name \"com.jukusoft.engine2d.applayer.BaseGameFactory\" (without extra extension) there.\\\nFile content should be your package and class name of your factory implementation, e.q.:\n```java\ncom.jukusoft.engine2d.test.desktop.TestBaseGameFactory\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuku%2Flibgdx-2d-engine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuku%2Flibgdx-2d-engine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuku%2Flibgdx-2d-engine/lists"}