{"id":15045649,"url":"https://github.com/joafalves/pixel-community","last_synced_at":"2025-07-15T22:09:25.870Z","repository":{"id":42223988,"uuid":"320881920","full_name":"joafalves/pixel-community","owner":"joafalves","description":"High performance and modular Java/Kotlin 2D Game Framework.","archived":false,"fork":false,"pushed_at":"2025-06-22T14:55:01.000Z","size":18194,"stargazers_count":28,"open_issues_count":2,"forks_count":5,"subscribers_count":2,"default_branch":"devel","last_synced_at":"2025-06-22T15:42:16.164Z","etag":null,"topics":["framework","game-2d","game-development","game-engine","game-engine-2d","game-framework","gamedev","java","jvm","kotlin","lwjgl","opengl"],"latest_commit_sha":null,"homepage":"https://discord.gg/mz56tJJU8t","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/joafalves.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/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,"zenodo":null},"funding":{"github":["joafalves"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2020-12-12T17:08:34.000Z","updated_at":"2025-06-22T14:55:06.000Z","dependencies_parsed_at":"2025-01-27T22:27:48.239Z","dependency_job_id":"07cbffcb-c645-47fc-aa01-5fabea3b7081","html_url":"https://github.com/joafalves/pixel-community","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/joafalves/pixel-community","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joafalves%2Fpixel-community","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joafalves%2Fpixel-community/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joafalves%2Fpixel-community/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joafalves%2Fpixel-community/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joafalves","download_url":"https://codeload.github.com/joafalves/pixel-community/tar.gz/refs/heads/devel","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joafalves%2Fpixel-community/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265464148,"owners_count":23770315,"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":["framework","game-2d","game-development","game-engine","game-engine-2d","game-framework","gamedev","java","jvm","kotlin","lwjgl","opengl"],"created_at":"2024-09-24T20:52:07.527Z","updated_at":"2025-07-15T22:09:25.861Z","avatar_url":"https://github.com/joafalves.png","language":"Java","funding_links":["https://github.com/sponsors/joafalves"],"categories":[],"sub_categories":[],"readme":"![Pixel - Java Game Framework](./.github/IMAGES/banner.png)\n\n![](https://img.shields.io/badge/platform-Windows%20%7C%20Linux%20%7C%20MacOS-lightgrey)\n\n## Pixel Framework ##\n\n### What is this repository for? ###\n\nThis repository contains the Pixel Framework and associated modules/dependencies.\n\n### Description ###\n\nThe Pixel Framework aims to provide a high performance and lightweight OpenGL 2D game development workflow. It is\ninfluenced by the popular XNA framework and is built on top of the [LWJGL](https://www.lwjgl.org/) (Desktop) and OpenGL ES (Android).\n\n\u003e :book: For practical details on how to use this framework, please check the [wiki page](https://github.com/joafalves/pixel-community/wiki).\n\nPixel is designed to be modular and easy to extend. Check \n[here](https://github.com/joafalves/pixel-community/wiki/E.-Extensions-Overview) for more details on how to use the \navailable extensions (or how to create your own).\n\n### Examples ##\n\nCheck the :file_folder: [demos folder](https://github.com/joafalves/pixel-community/tree/devel/demos) for examples.\n\n##### Basic example (Drawing a Sprite) #####\n\n```java\npublic class SingleSpriteDemo extends Game {\n\n    private Camera2D gameCamera;\n    private ContentManager content;\n    private SpriteBatch spriteBatch;\n\n    private Texture spriteTex;\n\n    public SingleSpriteDemo(GameWindowSettings settings) {\n        super(settings);\n    }\n\n    @Override\n    public void load() {\n        // load up of resources and game utilities:\n        content = ServiceProvider.get(ContentManager.class);\n        spriteBatch = ServiceProvider.get(SpriteBatch.class);\n        gameCamera = new Camera2D(this);\n\n        // example of loading a texture into memory:\n        spriteTex = content.load(\"\u003ctexture_path\u003e\", Texture.class);\n        // ... or with the built-in 'texture' method: content.loadTexture(...)\n    }\n\n    @Override\n    public void update(DeltaTime delta) {\n        // game update logic goes here\n    }\n\n    @Override\n    public void draw(DeltaTime delta) {\n        // begin the spritebatch phase:\n        spriteBatch.begin(gameCamera.getViewMatrix(), BlendMode.NORMAL_BLEND);\n\n        // sprite draw/put for this drawing phase:\n        spriteBatch.draw(spriteTex, Vector2.ZERO, Color.WHITE);\n\n        // end and draw all sprites stored:\n        spriteBatch.end();\n    }\n\n    @Override\n    public void dispose() {\n        content.dispose();\n        spriteBatch.dispose();\n        super.dispose();\n    }\n}\n```\n\n\u003e Looking for ECS support? Check [this built-in extension!](https://github.com/joafalves/pixel-community/wiki/E1.-ECS-(Entity-Component-System))\n\n### Project structure ###\n\nThe framework functionality is divided into multiple modules which can be imported individually as required.\n\n##### Root directory structure #####\n\n    .build/                         # Bundle .jar files (run 'bundle' gradle task)\n    .demos/                         # Feature showroom and learning examples\n    .extensions/                    # Extensions for the framework (optional)\n        ├── ext-ecs                 # Entity component system extension\n        ├── ext-ecs-extra           # ECS utility components\n        ├── ext-log4j2              # Log4j2 extension\n        ├── ext-network             # Network extension\n        └── ext-tween               # Tween extension\n    .modules/                       # The principal modules of the framework\n        ├── blueprint               # Blueprint configuration classes\n        ├── commons                 # Common utility classes\n        ├── content                 # Common Content classes (Texture, Font, Audio, ...)\n        ├── core                    # Core module (GameContainer, GameSettings, Camera2D, ...)\n        ├── graphics                # Graphics API module\n        ├── math                    # Math module (Vector, Matrix, ...)\n        └── pipeline                # Generic Pipeline processing module\n    .platform/\n        ├── android                 # Android platform implementation (OpenGL ES)\n        └── desktop                 # Desktop platform implementation (LWJGL3)\n    .resources/\n        └── images                  # Project resource images\n    .build.gradle                   # Gradle build file\n    .settings.gradle                # Gradle settings file\n\n##### Inner module structure #####\n\n    .modules/\n        └── *module*                 # Presented file structure similar in all modules\n            ├── build                # Module build directory\n            │   ├── docs             # Generated documentation files (run 'javadoc' gradle task)\n            │   └── libs             # Generated .jar files (run 'jar' gradle task)\n            ├── src                  # Module Source folder\n            │   ├── main             # Module Main Source classes\n            │   └── test             # Module Test Source classes\n            └── build.gradle         # Module Gradle build file (contains inner dependency definitions)\n\n### Runtime requirements ###\n\n- Java 17.x+\n\n### Development requirements ###\n\n- (All Runtime requirements)\n- Gradle 8.x+ (gradle wrapper available)\n\n### Runtime OS compatibility ###\n\nFor desktop, the same support as the [LWJGL](https://www.lwjgl.org/) dependency, which includes:\n\n- Windows (x86, x64, arm64)\n- MacOS (x64, arm64)\n- Linux (x86, x64, arm64, arm32)\n\n\u003e Requires OpenGL 3.3+ support.\n\nThere is also an Android platform implementation available (OpenGL ES) - **Experimental**.\n\n### FAQ ###\n\n1. I'm unable to run Pixel on MacOS due to system error.\n    - Add `-XstartOnFirstThread` as a java VM Option before running your project.\n2. Is Pixel compatible with Kotlin?\n    - Yes, Pixel is fully compatible with Kotlin. Check\n      this [demo](https://github.com/joafalves/pixel-community/tree/devel/demos/kotlin) for an example.\n3. Is Pixel available as a Maven dependency?\n    - Yes, Pixel is available as a public Maven\n      dependency. [Click here](https://github.com/joafalves/pixel-community/wiki/1.-Getting-Started) for more details on\n      how to import using Maven or Gradle.\n4. Is Pixel free?\n    - Yes, Pixel is completely free to use and distribute as an application dependency.\n\n### Who do I talk to? ###\n\n* It's a bug or a feature request? [Please open an issue](https://github.com/joafalves/pixel-community/issues).\n* Repo owner or moderator.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoafalves%2Fpixel-community","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoafalves%2Fpixel-community","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoafalves%2Fpixel-community/lists"}