Block Coding in Godot 2


This is my second reflection on learning Godot through and with the new Block Coding library.

I attempted to innovate on the example game of pong by “mucking about” or experimenting with the blocks and the child nodes.

I was able to create a player character and import a sprite. I had to consult the documentation to figure this out. It is not obvious because the nesting of the nodes is located within collapsed outline heirarchies in the Godot interface. The simple player character node is located three layers within a category that I would never guess to search/expand.

In a nested tree hierarchy, expressed as an outline, the more abstract categories appear first since they are more general cases. The more concrete categories, such as a simple player characte,r are nested two- and three- layers within (or below) the abstract one.

A challenge is that the novices (me) will describe to themselves their goal in concrete terms. If their mental model of abstractions is ignorant of — or in conflict with — that of the creators of Godot then the novices won’t know where to look for their concrete goal (node).

A related challenge with the Block Coding library is that the full repertoire/palette/lexicon of blocks is not available to the programmer (novice or otherwise). This is a decision by Endless Foundation that foregrounds or centers Godot’s way of doing things. This is an echo of the concrete and specific parameters that appear in the Inspector panel/window for each specific node.

In contrast the makers of Scratch (Resnick, et al) chose to display the full lexicon/repertoire/palette of blocks at all times. In this way the novice can know the full range of options and possibilities. This is important for learnability.

I’m sure that there is need for greater subtlety in the Godot. The selection of blocks must be context sensitive. This will create a challenge for learning and imagining what may be programmable with blocks in any child node.

I wonder if one could build a game engine with inspector windows/panels with General Purpose (GP) Blocks (https://gpblocks.org). In which case block coding might be a first class citizen.