{"id":22645871,"url":"https://github.com/thelogicmaster/robot-recharge","last_synced_at":"2025-07-13T13:34:01.666Z","repository":{"id":135985137,"uuid":"316407776","full_name":"TheLogicMaster/robot-recharge","owner":"TheLogicMaster","description":"A LibGDX programming puzzle game.","archived":false,"fork":false,"pushed_at":"2021-04-25T17:13:07.000Z","size":44272,"stargazers_count":14,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-19T07:11:36.653Z","etag":null,"topics":["android","blockly","chaquopy","duktape","gamejolt","gwt","ios","javascript","jcef","jython","libgdx","lua","luaj","marytts","php","programming-game","puzzle-game","python","robot","ruby"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TheLogicMaster.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-11-27T05:25:03.000Z","updated_at":"2025-03-06T07:51:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"f8420192-788d-48c7-9774-005421768361","html_url":"https://github.com/TheLogicMaster/robot-recharge","commit_stats":{"total_commits":75,"total_committers":1,"mean_commits":75.0,"dds":0.0,"last_synced_commit":"06d0fdef1a8fdbf28eaa9c5d9a9d60cfe7432582"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/TheLogicMaster/robot-recharge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheLogicMaster%2Frobot-recharge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheLogicMaster%2Frobot-recharge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheLogicMaster%2Frobot-recharge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheLogicMaster%2Frobot-recharge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheLogicMaster","download_url":"https://codeload.github.com/TheLogicMaster/robot-recharge/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheLogicMaster%2Frobot-recharge/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265151335,"owners_count":23719119,"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":["android","blockly","chaquopy","duktape","gamejolt","gwt","ios","javascript","jcef","jython","libgdx","lua","luaj","marytts","php","programming-game","puzzle-game","python","robot","ruby"],"created_at":"2024-12-09T06:07:41.859Z","updated_at":"2025-07-13T13:34:01.623Z","avatar_url":"https://github.com/TheLogicMaster.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Robot Recharge\nA programming game where the goal is to guide a robot through various levels using programmatic controls.\n\n## Features\n- Multi-language programming support (PHP, Python, JavaScript, Lua, Ruby, BASIC, and Google Blockly) \n- Custom code editor\n- Cloud Saves\n- Tutorial Levels\n- Level fast-forwarding\n- UI Themes \n- Robotic Text to Speech for code debugging\n- Android Rewarded ads for level solutions\n\n## Links\n[Web Demo](https://thelogicmaster.github.io/robot-recharge/)\n\n[![Get it on Google Play](https://badgen.net/badge/icon/googleplay?icon=googleplay\u0026label)](https://play.google.com/store/apps/details?id=com.thelogicmaster.robot_recharge)\n\n[GameJolt Page](https://gamejolt.com/games/robot-recharge/570956)\n\n## Screenshots\n\u003cimg src=\"media/screenshot1.png?raw=true\" height=\"336\" width=\"598\"\u003e\n\u003cimg src=\"media/screenshot2.png?raw=true\" height=\"336\" width=\"598\"\u003e\n\u003cimg src=\"media/screenshot3.png?raw=true\" height=\"336\" width=\"598\"\u003e\n\n## Technical Info\n### Utilized Libraries\n- [LibGDX](https://libgdx.com/) (Game framework)\n- [Blockly](https://developers.google.com/blockly) (Graphical programming)\n- [Jython](https://www.jython.org/) (Desktop Python)\n- [Chaquopy](https://chaquo.com/chaquopy) (Android Python)\n- [LuaJ](https://github.com/luaj/luaj) (Lua)\n- [Quercus](https://www.caucho.com/resin-3.1/doc/quercus.xtp) (PHP)\n- [Duktape Android](https://github.com/TheLogicMaster/duktape-android) (Android JavaScript)\n- [duktape4j](https://github.com/TheLogicMaster/duktape4j) (Desktop JavaScript)\n- [Jasic](https://github.com/munificent/jasic) (BASIC interpreter base code)\n- [JRuby](https://github.com/jruby/jruby) (Ruby)\n- [MaryTTS](https://github.com/marytts/marytts) (Desktop text to speech)\n- [Android MaryTTS](https://github.com/AndroidMaryTTS/AndroidMaryTTS) (Android text to speech)\n- [Project Lombok](https://projectlombok.org/) (Boilerplate generation)\n- [JCEF](https://github.com/chromiumembedded/java-cef) (Desktop embedded browser)\n- [JavaPackager](https://github.com/fvarrui/JavaPackager) (Gradle plugin to package desktop builds)\n\n## Todo\n- Debug/step through mode\n- Tab to double-space functionality in editor\n- Make the UI not terrible\n- Mobile HTML custom keyboard (Or not if it's not worth it and just disable code editor on mobile browsers)\n- Code testing (JS code transformations, for instance)\n- Level editor\n- Prevent Firefox '/' quick search functionality\n- Robot customization\n- Make Robot.move(int) return distance traveled\n\n## Building\n### GitHub Actions\nThe github actions workflow for the project builds and packages the releases for each platform, in addition to deploying\nthe web demo to the gh-pages branch, and the Android application to the Google Play Store.\n\n### Building From Source\nBuilding the project requires several external libraries depending on which modules you want to build. Regardless of\nwhich platform you are building, the Android SDK is required to compile to project. To build without it, it would be\nnecessary to comment out parts of `settings.gradle` and `build.gradle` at the project root. To enable debug mode \n(mostly logging) for the entire project, add `debug=true` to a `local.properties` file at the root for the project. \n\nFor the Desktop module, the respective [JCEF library](https://github.com/jcefbuild/jcefbuild/releases) for your platform is required at\n`\u003cproject\u003e/Libraries/jcef/\u003clinux64|win64|mac64\u003e` if you intend to use the Google Blockly functionality. To run without \nBlockly support, simply run the `desktop:run` gradle task. To run with Blockly, the `JCEFDesktopLauncher` class needs to\nbe run specifically with the VM option: \n`-Djava.library.path=\u003cproject\u003e/Libraries/jcef/\u003cplatform\u003e/:\u003cproject\u003e/desktop/natives/\u003cplatform\u003e`. To package the \ndesktop project, a JRE is needed at `\u003cproject\u003e/Libraries/jre/\u003cplatform\u003e` or the `jrePath` values need to be changed in\n`\u003cproject\u003e/desktop/build.gradle` tasks, and not setting it should use the system default.\n\nFor the Android module, a [Chaquopy](https://chaquo.com/chaquopy) key is required in the `local.properties` file. The \nnormal Android building methods should work as long as the Android SDK is installed. Google Play Services need to be\nsetup in addition to setting the AdMob IDs in the `AndroidGameServies` class.\n\nFor the HTML subproject, there aren't any additional dependencies. To run the game in a browser, run the `html:superDev`\ngradle task and open `localhost:8080` in a browser. To package it, just run `html:dist`. \n\nFor IOS, it works, but requires the whole OSX setup and developer account for more than running on a test device. \nBlockly and text-to-speech aren't supported at present.\n\nFor GameJolt cloud support, a `gameJoltKey` from GameJolt needs to be set in the `local.properties` file.\n\n### Updating Blockly\nTo build and copy Blockly, run the `updateBlockly` task.\n\n### Updating JCEF\nTo update to a new JCEF release, download the platform assets from [jcefbuild](https://github.com/jcefbuild/jcefbuild/releases). \nThe 6 native platform JARs in the release archives need to have their native libraries extracted to the `desktop/natives` \ndirectory with the existing format. The `desktop/libs` directory should have its contents updated from one of the new platform \nrelease archives. The `Libraries/jcef` directory needs to be updated using the archive `bin/lib` directories.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthelogicmaster%2Frobot-recharge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthelogicmaster%2Frobot-recharge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthelogicmaster%2Frobot-recharge/lists"}