{"id":13633049,"url":"https://github.com/am1goo/playdate4j","last_synced_at":"2025-04-10T16:52:09.356Z","repository":{"id":221481309,"uuid":"753464586","full_name":"am1goo/playdate4j","owner":"am1goo","description":"Java framework to create games for Playdate console made by Panic Inc.","archived":false,"fork":false,"pushed_at":"2024-09-07T18:17:54.000Z","size":634,"stargazers_count":7,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-05T16:02:31.891Z","etag":null,"topics":["2d","2dengine","api","console","console-game","console-game-engine","framework","gamedev","gamedevelopment","gameengine","java","java16","jdk","playdate","playdate-console","simulator","sprites","wrapper"],"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/am1goo.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":"2024-02-06T07:08:28.000Z","updated_at":"2025-04-03T19:40:22.000Z","dependencies_parsed_at":"2024-09-25T01:41:42.547Z","dependency_job_id":"4cf139ca-5b3f-47d7-a6a4-48e3ab11d2cb","html_url":"https://github.com/am1goo/playdate4j","commit_stats":null,"previous_names":["am1goo/playdate4j"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/am1goo%2Fplaydate4j","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/am1goo%2Fplaydate4j/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/am1goo%2Fplaydate4j/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/am1goo%2Fplaydate4j/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/am1goo","download_url":"https://codeload.github.com/am1goo/playdate4j/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248256203,"owners_count":21073483,"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","2dengine","api","console","console-game","console-game-engine","framework","gamedev","gamedevelopment","gameengine","java","java16","jdk","playdate","playdate-console","simulator","sprites","wrapper"],"created_at":"2024-08-01T23:00:25.904Z","updated_at":"2025-04-10T16:52:09.339Z","avatar_url":"https://github.com/am1goo.png","language":"Java","funding_links":[],"categories":["Game Development"],"sub_categories":["Programming Frameworks \u0026 Languages"],"readme":"# playdate4j\nJava framework to create games on `Playdate` console. \\\n*ATTENTION: it is an experimental version, I don't sure that you should to use it in production purposes right now.*\n\n## What inside?\n- full support of `Playdate API`\n- pretty good works in `Playdate Simulator`\n- easy-to-use `Localization API` for system languages and any others\n\n## C API support\n=100%= `Logging API` \\\n=100%= `System Menu API` \\\n=100%= `Time and Date API` \\\n=100%= `Miscellaneous API` \\\n=100%= `Audio API` \\\n=100%= `Display API` \\\n=100%= `Graphics API` \\\n=100%= `Video API` \\\n=100%= `Input API` \\\n=100%= `Device Auto Lock API` \\\n=100%= `System Sounds API` \\\n=100%= `Sprites API` \\\n=100%= `Sprite Collisions API` \\\nBUT \\\n=000%= `JSON API` (skipped API, package [com.google.code.gson](https://github.com/google/gson) would be better)\n\n## Let me explain what it looks like:\n```java\npublic class ExampleGameCycle implements GameCycle {\n\n    private Graphics.LCDBitmap playerBitmap;\n    private Sprite.LCDSprite player;\n\n    @Override\n    public void start() {\n        playerBitmap = Graphics.loadBitmap(\"images/player\");\n        player = Sprite.newSprite();\n        player.setPosition(lcd_columns / 2, lcd_rows / 2);\n        player.setImage(playerBitmap, Graphics.LCDBitmapFlip.Unflipped);\n        Sprite.addSprite(player);\n    }\n\n    @Override\n    public void loop() {\n        Graphics.clear(Graphics.LCDSolidColor.White);\n        int xDir = 0;\n        int yDir = 0;\n        if (Input.isButton(Input.PDButtons.Up)) {\n            yDir--;\n        }\n        if (Input.isButton(Input.PDButtons.Down)) {\n            yDir++;\n        }\n        if (Input.isButton(Input.PDButtons.Left)) {\n            xDir--;\n        }\n        if (Input.isButton(Input.PDButtons.Right)) {\n            xDir++;\n        }\n\n        float deltaTime = Game.getDeltaTime();\n        float dx = 100 * xDir * deltaTime;\n        float dy = 100 * yDir * deltaTime;\n        player.moveBy(dx, dy);\n\n        Sprite.updateAndDrawSprites();\n    }\n\n    @Override\n    public void stop() {\n        if (player != null) {\n            Sprite.removeSprite(player);\n            Sprite.freeSprite(player);\n            player = null;\n        }\n        if (playerBitmap != null) {\n            Graphics.freeBitmap(playerBitmap);\n            playerBitmap = null;\n        }\n    }\n}\n```\n\n## Roadmap\n- [X] full `C API` coverage\n- [ ] well-automated app creation process\n- [ ] using `Java-to-C` code conversion instead of JavaVM on device\n\n## Requirements\n- `Playdate SDK` 2.5.x version or higher from [official site](https://play.date/dev/)\n- `g++` compiler, like [mingw64](https://github.com/niXman/mingw-builds-binaries/releases)\n- `Java Development Kit` 1.6 version or higher\n\n## Contribute\nContribution in any form is very welcome. Bugs, feature requests or feedback can be reported in form of Issues.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fam1goo%2Fplaydate4j","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fam1goo%2Fplaydate4j","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fam1goo%2Fplaydate4j/lists"}