Bluprint Teaches Kids to Code JavaScript in the Metaverse
A new app called Bluprint aims to introduce coding to kids who already love building 3D worlds (Minecraft) and playing online games (Roblox).
Jan 21st, 2022 7:02am by
Moving to the Metaverse
That “something different” is Bluprint, the next iteration on Bitsbox. Bluprint not only moves its characters and interface into a three dimensional environment, it also alters its teaching tools to rely less on typing and more on reading and altering existing code — in much the same way developers can read, reuse, and alter code taken from the internet. “There’s probably as much value in learning to read code as there is learning to write it, which is weird, because so much of coding education starts with a blank page,” said Chopra. “That’s not how we teach kids to read human languages. You start reading before you start writing. Everyone does. It’s odd that, to some extent, we teach coding in a very different way.” The Bluprint metaverse comes pre-populated with objects and characters, which have code that can quickly be viewed and altered. It gives users a different way to interact with and learn code, one that can be layered from one level of difficulty to the next. “We can actually scaffold the learning by saying: step one, look at the code and change something little about it (a string, a number) and then see what effect that has on its behavior. Or maybe add a new behavior by adding a couple of methods, or just activating them in some way, and see if that can work,” said Chopra. “It’s about changing something you see, it’s about adding something, and then, eventually, it’s about authoring things from scratch.” The Bluprint metaverse is built with security and privacy in mind for its users (seeing as they’re often below the age of 12), and the worlds that they build are invite-only, with parental controls built-in. In terms of coding safety, Bitsbox and Bluprint co-founder Scott Lininger explained that “Kids can write any JavaScript they like. But… their code runs in a safe sandbox that doesn’t allow them to access private information, modify the webpage, open links, that sort of thing.” Users can build objects in the metaverse itself using a familiar graphical editor, but the code for each object is just a click away, where users can not only edit attributes, but also get into topics such as functions and object-oriented programming.
Differences from Minecraft and Roblox
Chopra explained that Blueprint came partly from seeing how excited kids were about Minecraft, yet unable to code for Minecraft, because doing so was far too difficult. With Bluprint, creating and altering code are intentionally integrated directly into the product; as opposed to coding for Minecraft, which Chopra said was “a little bit of a bolt-on and a bit hard.” Much like its predecessor, Bluprint will teach kids JavaScript, although this time with a much larger and more functional JavaScript API. According to the Kickstarter for Bluprint, the company has taken the JavaScript API it used for Bitsbox and “extended it into 3D, added dozens of new methods, and added a file management system to make complicated projects possible.” At the same time, the JavaScript API for Bluprint is still simple enough to teach kids how to code. Lininger offered a quick comparison between Roblox’s Luau, which provides an API on top of Lua, and Bluprint’s JavaScrip API, noting that “Roblox’s Lua API is fantastic, but it’s not terribly beginner-friendly.” Lininger points to a LUA script in the Roblox documentation that takes 20-something lines of code to show the words “You pressed X” when you do so on the keyboard or a gamepad.
local UserInputService = game:GetService("UserInputService")
local ContextActionService = game:GetService(“ContextActionService”)
local function actionHandler(actionName, inputState, inputObj)
if inputState == Enum.UserInputState.Begin then
print("You pressed X")
end
-- Since this function does not return anything, this handler will
-- "sink" the input and no other action handlers will be called after
-- this one.
end
local navGamepads = UserInputService:GetNavigationGamepads()
for _, gamepad in pairs(navGamepads) do
local supportedKeyCodes = UserInputService:GetSupportedGamepadKeyCodes()
for _, keycode in pairs(supportedKeyCodes) do
if (keycode == Enum.KeyCode.ButtonX) then
ContextActionService:BindAction(“SampleAction”, actionHandler, false, Enum.KeyCode.ButtonX)
end
if (keycode == Enum.KeyCode.X) then
ContextActionService:BindAction(“SampleAction”, actionHandler, false, Enum.KeyCode.X)
end
end
end
function press(button) {
if (button == 'x') {
ui.log('You pressed X')
}
}
A Metaverse Authoring Tool?
Bluprint is currently in development, but Chopra said the team hopes to have an early version of Bluprint available in the coming months. And while Bluprint was first created with teaching kids to code in mind, he said it might just turn out to be something more, as well. “It’s not like we’ve just created this Minecraft-y thing on the web with a really accessible API, so kids can learn to code with it. What we’ve actually done is maybe created the world’s most accessible Metaverse authoring tool,” said Chopra. “What if you actually made a tool so that it was possible for people who had never really programmed before, or made 3D stuff before, to participate in this Metaverse project? Could that be a force for good? And I think we’re sort of convinced that it might be, so at the same time that this is kind of a second product line for Bitsbox and our businesses teaching kids to code, we’ve also sort of developed this set of authoring tools for beginners to be able to build their own little corner of the metaverse.”
YOUTUBE.COM/THENEWSTACK
Tech moves fast, don't miss an episode. Subscribe to our YouTube
channel to stream all our podcasts, interviews, demos, and more.