I used to joke that Voxel Quest was just a fancy 3d graphing calculator. I think the entryway for a lot of students to become interested in math is to make rendering more accessible. Shadertoy is one step towards this, but SDF equations are much more difficult to grok than binary on/off voxel plotting, and they have to be mathematically sound or you get buggy looking results.
Another interesting environment to explore related to Minecraft is an open-source clone of that game: Minetest [1].<p>It allows extensions in the form of Lua scripts. There is an extension [2] that opens up a TCP socket which can be used to modify the environment in any language across the network. There is an accompanying Python library [3] that is quite accessible (I had to use the 2to3 tool to seamlessly convert it to Python 3 because of some dependency problem).<p>I've been trying to get it to work in WebAssembly (some notes here [4]) and maybe connect Blockly / Scratch to it, but unfortunately the WebAssembly shared memory model is postponed due to the Spectre and Meltdown debacle [5].<p>[1] <a href="https://www.minetest.net/" rel="nofollow">https://www.minetest.net/</a><p>[2] <a href="https://github.com/sprintingkiwi/pycraft_mod" rel="nofollow">https://github.com/sprintingkiwi/pycraft_mod</a><p>[3] <a href="https://github.com/sprintingkiwi/pycraft_lib" rel="nofollow">https://github.com/sprintingkiwi/pycraft_lib</a><p>[4] <a href="https://news.ycombinator.com/item?id=14855176" rel="nofollow">https://news.ycombinator.com/item?id=14855176</a><p>[5] <a href="https://github.com/WebAssembly/meetings/blob/master/2018/CG-01-09.md#update-on-webassembly-atomics" rel="nofollow">https://github.com/WebAssembly/meetings/blob/master/2018/CG-...</a>
Lots of fun stuff you can program in Minecraft Pi Edition.<p>My son and I made a minecraft version of snake/tron where each player would leave behind a trail of TNT blocks as they ran around a closed arena. Hitting a TNT would set off such huge chain reaction of explosions that the raspberry pi couldn't handle it. After a few rounds of these explosions the minecraft world looks like a total wasteland.
This is fantastic. Minecraft is one of the big factors that made me want to learn Java (back when the game first came out), and indirectly spurred a lot of my own personal development. The easier they can make it, the better.
Snap! is an awesome scheme-like visual programming language that runs in the browser, which is a lot like Scratch (visual Logo), but like Scheme in that everything is first class, including functions, lexical closures, continuations, macros, special forms, user defined functions, control structures, etc.<p><a href="https://snap.berkeley.edu" rel="nofollow">https://snap.berkeley.edu</a><p>ProgKids is a Russian site that integrates Snap! (and Python) with Minecraft, so kids can visually program 3d turtles that move around in the world and build things!<p><a href="https://progkids.ru" rel="nofollow">https://progkids.ru</a><p>ProgKids. Строим дом, а потом ещё пару (Building a house, then another couple)<p><a href="https://www.youtube.com/watch?v=muNpsk4UH7c" rel="nofollow">https://www.youtube.com/watch?v=muNpsk4UH7c</a><p>ProgKids. Куда же без зверей? (Why do you not have animals?)<p><a href="https://www.youtube.com/watch?v=1iBFwaUSDYI" rel="nofollow">https://www.youtube.com/watch?v=1iBFwaUSDYI</a><p>ProgKids. Как работает Snap? (How does Snap work?)<p><a href="https://www.youtube.com/watch?v=lh0mrqxFImQ" rel="nofollow">https://www.youtube.com/watch?v=lh0mrqxFImQ</a>
Minecraft added a full set of command blocks (impulse, repeat, and chain) back in version 1.9 which allow players to make similar modifications to worlds, as well as create and equip entities with various items and behaviors. Basically you add a command to a command block in game, and then it executes when the command is activated. I think command blocks are an easier foray into coding in Minecraft although it would be nice to see more capabilities added in the future.
If you own the Minecraft Windows 10 Edition, you can download their "Code Connection" server and start coding right away in JavaScript.<p>Links:<p><a href="https://minecraft.makecode.com/setup" rel="nofollow">https://minecraft.makecode.com/setup</a><p><a href="https://aka.ms/meeccwin10" rel="nofollow">https://aka.ms/meeccwin10</a>
A related project, not limited to the Raspberry Pi: <a href="https://teachcraft.net/" rel="nofollow">https://teachcraft.net/</a>