top of page
Writer's pictureWill Baumgartner

Block Coding for Godot: Lowering the Bar of Entry for a Powerful Tool

Updated: Jul 3

By Will Baumgartner

At Endless Foundation, we believe everyone should have access to powerful tools that enable them to learn and create at a higher level. Endless Foundation is launching several initiatives that engage groups of learners in the creation of video games. You can learn more about our game development programs here. However, early stage learners face challenges confronting the complexity of professional game development tools. We are excited to announce our newest project, Block Coding for Godot, as one step to help learners along this journey!


Godot block coding

What is Block Coding?

Professional game development almost always requires writing code. As an alternative, block coding makes it easier for beginners to dive into coding concepts by providing a friendlier user interface than standard programming languages. Instead of dealing with complex syntax and scary error messages, block programming makes it easy to code by snapping together blocks that run just like a normal program would. Even just one block can represent many lines of code, abstracting topics that are important to learn without focusing on syntax.


Block coding was how I was introduced to programming when I was younger, and it certainly ingrained those important concepts that I still use today while being super approachable.


Godot and Block Coding: A Perfect Match

Godot is a cross-platform, free, and open source game engine that has been getting a lot of attention lately - and for good reason. It’s lightweight, but provides all the tools necessary to create well structured games the way you want. At first glance though, Godot is a complex tool.


The first thing I think about when I sit down to make a game is: What do I want to make? And then: How can I accomplish this? When I was a beginner to Godot, it wasn’t exactly clear how I could achieve my goals. For example, if I wanted to play a sound, I would need to load and instantiate an AudioStreamPlayer, load my sound effect, and then call the play function on the new node. As someone not familiar with the engine yet, this was unintuitive to me. This is where blocks can come in!


Instead of coding the Godot way to play a sound line by line, we can abstract away the concept into a single block labeled “Play Sound”. This enables beginners to design the games they want without getting bogged down in Godot syntax. With block coding, we can take Godot concepts, and separate them from many lines of scary syntax by turning them into human readable blocks.



Building a Bridge to a Professional Game-Making Tool

One of our main goals is to make the transition from using our simplified tools to using the Godot engine on its own as seamless as possible. So, as we start to make blocks more abstract than the code itself, it’s important that we stick to the same sort of language that Godot runs on.


As we have designed more and more blocks, we have thought carefully about this balance between lowering the bar of entry with simplified blocks, and trying to teach the concepts intrinsic to Godot. As more people find and experiment with the plugin, we hope to narrow down on this balance to make the transition to working with the real editor as smooth as possible.

Godot block coding

Inspired by Tools That Have Worked

Tools like Scratch, Blockly, and MakeCode have demonstrated that block coding can be much more accessible and intuitive to beginners than textual programming. We are bringing those concepts into Godot to help learners become familiar with some aspects of Godot itself while simplifying the creation of their first games.


One thing that these programs lack however, is this transition to a professional tool that we discussed. The best they can give is a code representation of the blocks, which we have implemented too. In our plugin, we really want to make sure that the learner is prepared with as many conceptual skills as possible so that moving to the actual engine is super intuitive, and we’re working on more ways to make this even smoother.


Looking Forward

As we move forward, we will test, polish and iterate to make the plugin even more friendly and useful for beginners. Now that we are published on the Godot Asset Library, it’s very easy to install the plugin, and anyone who wants to give feedback, or contribute can do so. We look forward to seeing your creations!


To learn more about our game development initiatives, including how we make game creation accessible for early-stage learners, please visit this page.



 

Author: Will Baumgartner, Associate Software Engineer (Summer Intern)

Will is a student at NYU pursuing a joint major in Computer Science/Mathematics and a minor in Finance. He is passionate about software development, systems design, and anything computer programming. He spends his free time working on many projects like web apps and video games as well as learning new things like music and electronics. He also enjoys playing tennis and sailing.

bottom of page