Hi all. This is a little experiment in onboard programming / visual programming. It takes inspiration from Kodu Game Lab and TileCode. MakeKodu is an onboard game development
environment where you can add little characters to a canvas world and give them behaviors to execute using a visual rule-like programming language.
There is no in-game help yet, so here are some basics:
- Edit mode: You start in “edit mode”. Here you can add characters to your world and program them. Move the cursor around with the dpad. Press A to bring up a character placement menu. Press A on a character to open the character menu.
- Play mode: The “play” button will switch to play mode and your characters will start to execute their code.
- Toggling modes: In play mode, the play button switches to a stop button. Clicking that will take you back to edit mode. But sometimes that’s impossible because your code has control of the dpad input. In this case, you can also press the physical menu button to toggle modes.
- New world: The “new” button in the upper left will start a new world.
-
Programming: The MakeKodu programming language is very simple. It uses a “when this happens, do that” paradigm. For example:
WHEN See Apple DO Move toward
. These are called rules. More detail:- Each character can have multiple rules, even multiple pages of rules, but only one page will be the active at a time.
- You can change the active page using the
switch page
action. For example:WHEN Bump Tree DO Switch page - page 2
-
More programming: You can make a rule more specific by adding filters and modifiers:
WHEN See Apple nearby DO Move toward quickly
. In many cases, filters and modifiers are additive.nearby nearby nearby
would mean “very very nearby”.
Advanced topics
-
Timers: A rule’s WHEN condition can trigger on a timer. It defaults to once per second, but also has some filters to let you control the frequency, they’re called
long
andshort
.long
adds one second, andshort
divides the computed value at that point by 2. So,WHEN Timer long long short long
would expand to Timer (((1 + 1 + 1) / 2) + 1) = 3 / 2 + 1 = 2.5 seconds. -
Rule Conditions: By default, each rule will execute whenever its WHEN condition evaluates to “true”, but different trigger conditions can be set:
- Inverted: “when false”
- Edge triggered: “when becomes true”, “when becomes false”.
- Access these options from the rule’s handle. There’s also a menu there to insert and delete a rule.
Screenshots
World editing
Programming
I’d love to see what people create in MakeKodu. There’s no built-in way to share games yet. Hoping to make that possible one day.