Git Product home page Git Product logo

robot-recharge's Introduction

Robot Recharge

A programming game where the goal is to guide a robot through various levels using programmatic controls.

Features

  • Multi-language programming support (PHP, Python, JavaScript, Lua, Ruby, BASIC, and Google Blockly)
  • Custom code editor
  • Cloud Saves
  • Tutorial Levels
  • Level fast-forwarding
  • UI Themes
  • Robotic Text to Speech for code debugging
  • Android Rewarded ads for level solutions

Links

Web Demo

Get it on Google Play

GameJolt Page

Screenshots

Technical Info

Utilized Libraries

Todo

  • Debug/step through mode
  • Tab to double-space functionality in editor
  • Make the UI not terrible
  • Mobile HTML custom keyboard (Or not if it's not worth it and just disable code editor on mobile browsers)
  • Code testing (JS code transformations, for instance)
  • Level editor
  • Prevent Firefox '/' quick search functionality
  • Robot customization
  • Make Robot.move(int) return distance traveled

Building

GitHub Actions

The github actions workflow for the project builds and packages the releases for each platform, in addition to deploying the web demo to the gh-pages branch, and the Android application to the Google Play Store.

Building From Source

Building the project requires several external libraries depending on which modules you want to build. Regardless of which platform you are building, the Android SDK is required to compile to project. To build without it, it would be necessary to comment out parts of settings.gradle and build.gradle at the project root. To enable debug mode (mostly logging) for the entire project, add debug=true to a local.properties file at the root for the project.

For the Desktop module, the respective JCEF library for your platform is required at <project>/Libraries/jcef/<linux64|win64|mac64> if you intend to use the Google Blockly functionality. To run without Blockly support, simply run the desktop:run gradle task. To run with Blockly, the JCEFDesktopLauncher class needs to be run specifically with the VM option: -Djava.library.path=<project>/Libraries/jcef/<platform>/:<project>/desktop/natives/<platform>. To package the desktop project, a JRE is needed at <project>/Libraries/jre/<platform> or the jrePath values need to be changed in <project>/desktop/build.gradle tasks, and not setting it should use the system default.

For the Android module, a Chaquopy key is required in the local.properties file. The normal Android building methods should work as long as the Android SDK is installed. Google Play Services need to be setup in addition to setting the AdMob IDs in the AndroidGameServies class.

For the HTML subproject, there aren't any additional dependencies. To run the game in a browser, run the html:superDev gradle task and open localhost:8080 in a browser. To package it, just run html:dist.

For IOS, it works, but requires the whole OSX setup and developer account for more than running on a test device. Blockly and text-to-speech aren't supported at present.

For GameJolt cloud support, a gameJoltKey from GameJolt needs to be set in the local.properties file.

Updating Blockly

To build and copy Blockly, run the updateBlockly task.

Updating JCEF

To update to a new JCEF release, download the platform assets from jcefbuild. The 6 native platform JARs in the release archives need to have their native libraries extracted to the desktop/natives directory with the existing format. The desktop/libs directory should have its contents updated from one of the new platform release archives. The Libraries/jcef directory needs to be updated using the archive bin/lib directories.

robot-recharge's People

Contributors

thelogicmaster avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.