**** BASIC 10-LINER TRIBUTE BOOK ****
READY.
10 PRINT "15 JAHRE BASIC 10-LINER CONTEST"
Für das geplante Tribute Book zum 15-jährigen Jubiläum des BASIC 10Liner Contest (2027) habe ich hier meinen Beitrag zusammengestellt – als Entwurf für die Einreichung.
20 PRINT "WER BIN ICH?"
Sönke Schultz (Contest-Name: Metzelwurst) aus Flensburg, Deutschland. Geboren 1978 in der Nähe von Hamburg. Informatiker, Vater, und seit 2023 wieder leidenschaftlicher C64-BASIC-Programmierer. Mit meinem Zwillingsbruder saß ich Ende der 80er stundenlang vor dem beigen Brotkasten meiner Mutter und tippte BASIC aus dicken Büchern ab – inklusive der obligatorischen SYNTAX ERROR IN LINE 80-Momente. Beruflich bin ich Softwareentwickler (Fachinformatiker). Heute lebe ich mit meiner Familie in Flensburg – und wenn Zeit und Kinder es zulassen, hängt der Commodore wieder am Fernseher und es wird gedattelt.
Selfie / Portrait
30 PRINT "MEIN COMPUTER-WEG"
• 2023 – SnakeStar (PUR-120)
• 2024 – ColorFusion (PUR-120)
• 2025 – SnailRace (PUR-120)
• 2026 – GLOBBER (EXTREM-256)
40 PRINT "EINTRAG 1: SNAKESTAR (2023)"
Das Spiel: Mein erster 10-Liner und ein klassisches Snake-Spiel. Steuere die Schlange, sammle Punkte und vermeide die Wände.
Die Reise: Nach Jahrzehnten ohne C64-Programmierung war das der Neuanfang. Die größte Herausforderung: In nur 10 Zeilen und max. 120 Zeichen pro Zeile (PUR-120) ein spielbares Snakespiel zu bauen.
Coding-Aspekt: Im ersten Spiel wollte ich langsam in die Programmierung in BASIC wieder reinfinden, deswegen programmierte ich zuerst ein leichtes Spiel was jeder kennt.
🔗 snakestar/index.html · itch.io
50 PRINT "EINTRAG 2: COLORFUSION (2024)"
Das Spiel: Ein Puzzle-Spiel rund um Farben und Kombinationen. Der Spieler muss farbige Blöcke von oben nach unten verschmelzen – ein buntes Spiel.
Die Reise: Im zweiten Jahr wollte ich beweisen, dass ich nicht nur Snake kann. ColorFusion war anspruchsvoller: Farblogik, Bewegungen und neue schwierigere Level. Ich musste viel ausprobieren, wieder verwerfen und bei zu langen Zeilen den Code verschieben.
Coding-Aspekt: POKE-Befehle für Zeichen und Farben auf dem Bildschirm, kompakte IF-Abfragen. Es war eine Herausforderung, Farblogik mit Bewegung und Verschmelzungen.
🔗 colorfusion/index.html · itch.io
60 PRINT "EINTRAG 3: SNAILRACE (2025)"
Das Spiel: Ein Renn-Spiel mit Schnecken – humorvoll und überraschend schnell! Mehrere Schnecken rasen über die Strecke, der Spieler setzt auf eine Schnecke und mit etwas Glück gewinnt dann diese.
Coding-Aspekt: Diesesmal wollte ich mich mit bewegten Sprites und Soundeffekten beschäftigen. Zwar ist es ein kurzes Spiel, aber aus diesem Spiel wurde dann ein Prototyp für das nächste Spiel, welches ich im nächsten Jahr eingereicht habe.
Code-Beispiel – Sprite-Animation: Statt eines starren Sprites sollte sich die Schnecke durch wechselnde Frames lebendig über die Strecke bewegen. Technisch braucht man dafür zwei Sprite-Definitionen im Speicher und eine Umschaltung des Sprite-Pointers pro Bewegungsschritt.
Zeile 02 – Zwei Animationsframes in den Sprite-Speicher laden ($0340 / $0380):
02 FORI=0TO34:READX:POKE832+I,X:NEXT:FORI=0TO35:READX:POKE896+I,X:NEXT:...
Die READ/DATA-Blöcke in Zeile 07 und 10 liefern je 12×21 Bit pro Frame. Pointer 13 → Adresse 832 ($0340), Pointer 14 → Adresse 896 ($0380). W=2039 ($07F7) ist die Sprite-Pointer-Tabelle.
Zeilen 06–08 – Frame-Toggle in der Spielschleife:
06 ...T=PEEK(W+S):IFT=13THENT=14:GOTO8 07 T=13:DATA0,3,142,0,4,81,... 08 POKEW+S,T:POKEU+5,190:...
PEEK(W+S) liest den aktuellen Pointer. Ist er 13, wird 14 gesetzt und per GOTO 8 direkt geschrieben – Zeile 07 (Reset auf 13) wird übersprungen. Andernfalls fällt die Ausführung in Zeile 07 durch und setzt den Pointer zurück auf 13. So wechseln die Schnecken bei jedem Zufalls-Schritt zwischen beiden Frames – Zeile 07 erfüllt dabei gleichzeitig die Rolle der DATA-Quelle für Frame 1 (ein typischer 10-Liner-Trick: eine Zeile, zwei Jobs).
🔗 snailrace/index.html · itch.io
70 PRINT "EINTRAG 4: GLOBBER (2026)"
Das Spiel: Du bist GLOBBER, eine mutige Kreatur mit Wackelaugen! Renne über die Rennstrecke voller Steine, sammle Herzen für Punkte, und erreiche das Ziel. Achtung, ab der Streckenmitte ändern die Steine ihre Richtung, also passe auf!
Die Reise: 2026 war mein ambitioniertestes Projekt. Ich wechselte von PUR-120 zu EXTREM-256! Das erlaubte mehr Sprites, mehr SID-Sound, mehrere Variationen der Level und echte Spieltiefe. Monatelange Arbeit, viele Abende/Nächte, und am Ende der 2. Platz. Meine Kinder testeten als Beta-Tester – ehrliches Feedback garantiert!
Code-Beispiel (Zeile 05 – Steinbewegung): Die Steine bewegen sich mit variabler Geschwindigkeit und wechseln ab Levelmitte die Richtung – alles in einer Zeile:
05 POKEV-19,52+Y*32:POKEU+6,40:POKEU+4,17:POKEU+1,INT(RND(1)*3)+5+9*ABS(K):FORI=1TO70:NEXT:POKEU+4,0:FORN=1TOR:D(N)=B:M=9+INT(RND(1)*8):X(N)=X(N)-M+(B*2*M):B=INT(X/150):POKEW+1,T:T=13+(XAND1):IF(X(N)<20)OR(X(N)>255)THENX(N)=255-(B*235):Y(N)=INT(RND(1)*C)+1
🔗 globber/index.html · itch.io · YouTube (Contest)
80 PRINT "WERKZEUGKASTEN"
Ich entwickle mit C64Studio von Georg Rottensteiner, teste im VICE-Emulator und übertrage per USB-Floppy-Adapter auf echte 5,25-Zoll-Disketten. Auf meiner Homepage habe ich eigene Tools gebaut, damit ich mehr Zeit fürs eigentliche Codieren habe:
- 🔗 Konverter – wandelt ausführlichen Code mit Kommentaren und Zeilenumbrüchen in einen gültigen 10-Zeilen-Contest-Code um
- 🔗 Zeichenzähler – zeigt auf einen Klick, welche Zeilen innerhalb des Zeichenlimits liegen
- 🔗 Sprite-Editor und Char-Editor – zum Erstellen der pixeligen Grafiken (hier steckt viel Feinarbeit drin)
🔗 tools/basic.html – Übersicht aller Tools
90 PRINT "FAZIT"
Der BASIC 10Liner Contest hat mich 2023 zurück zum C64 gebracht. Vier Jahre, vier Spiele, jedes Jahr eine neue Herausforderung. Von PUR-120 Snake bis EXTREM-256 GLOBBER – der kleine Junge, der 1988 fliegende ASCII-Raketen programmierte, lebt wieder. Und er hat immer noch Syntax Errors – aber jetzt in nur 10 Zeilen.
99 END