Ich hab dein Tutorial jetzt durch.
Als erste Lektion ist es wirklich sehr gut geeignet und man kommt zu einem schönen Ergebnis. Der Aufbau ist auch erste Sahne. Allerdings sehe ich da zwei gravierende Problemzonen.

1) Es gibt sehr vieles, das du nicht ausreichend bis gar nicht erklärst. Du erläuterst, wie du vorgehst und man kann es problemlos nachbauen, aber an einigen Stellen bleibt u.a. das Verständnis für das, was man da eigentlich tut, auf der Strecke.
Warum z.B. haben wir die Farbe unter den defaultsettings eingestellt? (Genaugenommen nutzen wir diese gar nicht bzw. nicht als solche.) Du erwähnst ja noch den Fall einer möglichen gelben default color. Stattdessen stellen wir die weisse Farbe (im späteren Verlauf) jedes mal auf's Neue manuell ein. An dieser Stelle müsste es so wie bei der Farbe des Schattens geschrieben werden.
Beispielsweise:

c_default = c_white;

Es wäre auch sinnvoll, zu erwähnen, warum man einmal c_white schreibt und ein anderes mal eine Farbe über make_color_rgb festlegt.


2) Für den Anfang sind es zuviele Informationen. Bei dem Teil mit dem Schatten hast du mich komplett verloren.
Die Sache mit dem Skript ist viel zu kompliziert für den Einstieg. Du hast gut erklärt, was in dem Script selbst passiert, aber nicht, wie man dieses verwendet oder wie ein Script an sich funktioniert. Argumente oder die vertauschte Reihenfolge von Argument 3 und 4 (ich kann mir denken warum, aber das wird nicht auf jeden zutreffen) sind hier nicht nachvollziehbar.
Sinnvoller wäre an der Stelle gewesen, es erstmal einfacher, wenn auch weniger elegant zu lösen. Den Text beispielsweise simpel zweimal mit dem gleichen Code-Block zeichnen und nur die Werte usw. anpassen. Hier kann man dann auch gut erwähnen, dass wir das zu einem späteren Zeitpunkt nochmal aufgreifen um es eben eleganter, für ein besseres Verständnis aber erstmal so lösen.
Ich gehe mal davon aus, dass du Scripts bereits eingeführt hast, da wir diese in der nächsten Lektion wieder nutzen werden. Trotzdem finde ich, dass man dies ans Ende der Titelmenüreihe setzen sollte. Viel wichtiger, als es auf Anhieb möglichst ordentlich zu machen, ist, zu verstehen was man tut. Optimierungen sollten zugunsten eines leichteren Einstiegs auf einen späteren Zeitpunkt verlegt werden. Das Tempo ist für die erste Lektion einfach deutlich zu hoch.

Wenn du es unbedingt bereits einführen willst, dann muss es ausreichend erklärt werden. Dein Beispiel eignet sich durchaus gut, um dies in wenigen Worten zu erreichen. Sofern man es nicht doch irgendwie begriffen haben sollte, müsste man sich momentan anderweitig in einem solchen Umfang in das Thema einlesen, dass es den Rahmen des Tutorials sprengen würde. Wenn man es erstmal verstanden hat, ist so ein Script nurnoch eine Kleinigkeit, aber bevor es soweit ist, kann man sich daran die Zähne ausbeissen.
Eine andere Möglichkeit wäre, einmal klar und deutlich zu sagen, dass wir einiges im Rahmen dieser Lektion, um den Lernenden nicht zu überfordern, unkommentiert lassen, mit dem Hinweis, später (gut und gerne auch in einer anderen Lektion) im Einzelnen darauf einzugehen. Dies sollte dann aber auch möglichst bald geschehen, damit der rote Faden nicht verloren geht.


Da es sich um einen Einstiegskurs handelt, muss man es aus der entsprechenden Perspektive betrachten. Du hast bereits ausreichend Erfahrung und weisst natürlich, was du tust. Ebenso werden Leute mit Programmiererfahrung sicher schnell dahintersteigen. Die Wahrscheinlichkeit, dass sich ein Anfänger nicht zurechtfindet, ist aber enorm groß.
Der Sinn eines Tutorials sollte es nicht sein, dem Lernenden zu zeigen, wie man es nachbaut, sondern ihm beizubringen, es hinterher selber bauen zu können. Momentan geht es leider, wenn man es ganz hart ausdrückt, eher in Richtung Malen-nach-Zahlen.