![]() ![]() zooming in on the circuits of the robot’s brain a la Logic Bots), then RoboCo would need a new interface and systems to support that other editing environment. If the logic blocks were still physical but were attached in some other editing mode separate from normal robot editing (e.g. If RoboCo had logic blocks that were physical parts on the robot, then any robot with complex logic would become big and unwieldy.This is the cumbersome flipside of that puzzle-like thinking. Creating even a moderately complex behavior out of such simple units can require lots and lots of logic blocks strung together.Coding in this way can inspire fun, puzzle-like thinking: How can I combine these simple game pieces to make something powerful? Much like when players use redstone in Minecraft to make 3D printers.Since players are coding with physical blocks in an environment, they may stay more immersed in the game world while coding.It is easy to set up simple behaviors, such as “After this timer counts down to zero, turn on a light.”.Technically, this is still a form of node-based programming like above, but now the nodes occupy physical space in the game world. Connect the output of one block to the input of another block to form a series of instructions. How It Works: Place physical blocks that serve as units of simple code: a timer that counts down, a button that sends a signal when pressed, a logic gate that only lights up when a condition is met. Considering we don’t have any precedent for a node-based interface in RoboCo, this could also have been time consuming to build.This change may make the node-based approach less familiar to the next generation of students. The most notable instance of node-based programming in robotics at the K-12 level was LEGO EV3-G, and LEGO has retired this language in favor of word block programming with its new Spike Prime line of products.Describing complex logic using nodes and lines can quickly lead to spaghetti-like visualizations that are hard to follow. ![]() If you arrange your nodes and lines well, you can view a lot of logic in a compact form on screen at once.Node-based programming is designed to visualize how an input is processed through a series of logical instructions and eventually yields an output, which is pretty much what robot programming is all about.The flow from node to node describes the robot’s behavior. How It Works: Place nodes (the rectangular cards in the picture) and connect them with lines that define their inputs and outputs. Therefore, we evaluated our options by looking for the best overlap between those two audiences, by considering the user experience, and by aiming for the smartest use of development time. In RoboCo’s case, we aim to support both general gaming audiences and education-centric audiences like FIRST robotics teams, and we want to have a strong launch on Steam Early Access. There are valid reasons why a game might use any of the options we considered below. We hope to later extend this with an external Blockly helper tool that will provide a visual programming alternative.īut let’s take a step back and see how we came to that conclusion. We ultimately decided to start with support for written programming in the Python language. Finding the Right ApproachĪs we began design on robot programming, we considered several options for how it could be done. Today, we’re exploring what exactly went into that decision, including why why we decided to go with written code and why we went with Python over other popular languages like Java and C++. However, we didn’t reveal what programming language we decided to go with.Īs you may have gathered from the title, Python is our language of choice. Last week, we announced robot programming was coming to RoboCo and why we thought it was so cool. ![]()
0 Comments
Leave a Reply. |