Nello specifico (Scratch, AppInventor) lo si è fatto usando le librerie per programmazione visuale di Google Blockly:
https://developers.google.com/blockly/
https://en.wikipedia.org/wiki/Blockly
Sotto c'è una API per JavaScript che spiega come associare al "concetto" di blocco la corrispondenza in un linguaggio di programmazione, non è semplicissimo da comprendere ma non impossibile.
Oppure come il mio sistema a nodi simile ad Unreal
Completamente sviluppato in GDI+ fornendo un output serializzato in due modi.
JSON per cross-platform e binario per la lettura ed interpretazione del motore