Minecraft: Spieler integriert Programmiersprache BASIC via Command Blocks

PC Linux MacOS
Bild von Admiral Anger
Admiral Anger 83394 EXP - 27 Spiele-Experte,R10,S9,A10,J10
Dieser User unterstützt GG seit elf Jahren mit einem Abonnement.Alter Haudegen: Ist seit mindestens 10 Jahren bei GG.de registriertAlter Haudegen: Ist seit mindestens 5 Jahren bei GG.de registriertRedigier-Guru: Hat 5000 EXP fürs Verbessern von Beiträgen gesammeltIdol der Massen: Hat mindestens 10.000 Kudos bekommenGold-Jäger: Hat Stufe 11 der Jäger-Klasse erreichtDebattierer: Hat 5000 EXP durch Comments erhaltenMeister-Poster: Sammelte 5000 EXP durch ForumspostsGold-Cutter: Hat 100 Videos gepostetDieser User war an Weihnachten 2020 unter den Top 100 der SpenderDieser User war an Weihnachten 2019 unter den Top 100 der SpenderDieser User war an Weihnachten 2017 unter den Top 100 der Spender

18. Januar 2016 - 14:40 — vor 8 Jahren zuletzt aktualisiert
Dieser Inhalt wäre ohne die Premium-User nicht finanzierbar. Doch wir brauchen dringend mehr Unterstützer: Hilf auch du mit!
Minecraft ab 24,99 € bei Amazon.de kaufen.

Dem Minecraft-Spieler und YouTuber Sethbling ist es gelungen, die Programmiersprache BASIC in den Sandbox-Hit zu integrieren, ohne dabei Modifikationen oder Plugins zu benutzen. Dazu verwendet er Banner für die Darstellung des Quelltextes und eine Menge Command Blocks zum Interpretieren der Befehle. Zusätzlich enthält das Projekt eine im spielinternen Chat umgesetzte Onscreen-Tastatur zur leichteren Eingabe des Codes und fünf Speicherstände für fertige Programme.

Die BASIC-Umsetzung beherrscht nicht nur verschiedene Rechenoperationen, sondern kann auch direkt in die Spielwelt eingreifen. Sethbling zeigt dies anhand einer sogenannten "Mining Turtle" aus der Mod ComputerCraft, die automatisch Blöcke abbauen kann und hier mit einem selbst geschriebenen Programm erzeugt und gesteuert wird. Da die Redstone- und Command-Block-Logik von Minecraft nur 20 Operationen pro Sekunde ausführen kann, laufen Anwendungen allerdings recht langsam.

Das nachfolgende Video zeigt euch den Interpreter in Aktion. Falls ihr das Projekt selbst ausprobieren möchtet, findet ihr auf der Homepage von Sethbling die entsprechende Welt als Download. Auch die Minecraft-Entwickler zeigten sich von der Leistung beeindruckt: Game Designer Michael "Searge" Stoyke kommentierte die Umsetzung via Twitter mit einem begeisterten "*mind blown*".

Video:

falc410 15 Kenner - 3176 - 18. Januar 2016 - 15:53 #

Na wenn das nicht mal ein sinnvolles Beispiel ist welches man in einer Compilerbau Vorlesung bringen kann. Respekt :)

Esketamin 16 Übertalent - 4577 - 19. Januar 2016 - 7:56 #

Compilerbau bleibt on der Kategorie "Arkane Künste" ;-)

Toxe (unregistriert) 18. Januar 2016 - 16:08 #

Ich hatte bisher immer erwartet, daß sich Skynet und unsere zukünftigen Terminator-bauenden AI-Overlords aus einer ganz anderen Ecke heraus entwickeln würden – andererseits verwundert es mich nicht wirklich, daß fooking Minecraft mal irgendwann für den Untergang der Menschheit verantwortlich sein würde... Schnell, zieh irgendjemand den Stecker, bevor es zu spät ist! ;-)

Ganon 27 Spiele-Experte - - 83744 - 20. Januar 2016 - 13:13 #

Mit BASIC und 20 Operationen pro Sekunde? Da überschätzt du das Potenzial der ganzen Geschichte gewaltig. ;-)

Toxe (unregistriert) 20. Januar 2016 - 14:25 #

Und genau so hat Skynet begonnen! ;-)

Unregistrierbar 18 Doppel-Voter - 10829 - 18. Januar 2016 - 16:27 #

10 PRINT "MINECRAFT"
20 GOTO 10

RUN

Sierra 27 Spiele-Experte - 84766 - 18. Januar 2016 - 17:33 #

Warte auf den ersten, der minecraft in minecraft nachbaut...

Admiral Anger 27 Spiele-Experte - P - 83394 - 18. Januar 2016 - 17:54 #

https://www.youtube.com/watch?v=GwHBaSySHmo

xris 15 Kenner - 3236 - 18. Januar 2016 - 17:59 #

Ach ja Zeit müsste man haben... Hab ein ähnliches Projekt nie zuende geführt, allerdings war das ein externer Compiler der von einem Lua-Dialect nach Command-Blöcken compiliert hat. Einen ganzen Interpreter in Minecraft zu bauen nötigt mir dann doch Respekt ab.

Freylis 20 Gold-Gamer - 23164 - 18. Januar 2016 - 19:23 #

Hmmm... der Code oben im Teaser sieht eigentlich eher nach Pascal aus, nicht Basic. Da fehlen mir allein schon die basictypischen Laufnummern im Listing. Es sei denn, man hat sie ausgeblendet? Natuerlich koennte ich mich auch irren, weil ich nur wenige Basic Versionen gesehen/programmiert habe (CPC-Amstrad Locomotive Basic, Q-Basic...) und diese hier vielleicht ein Hybrid ist, der sich an Pascal oder C orientiert.

Toxe (unregistriert) 18. Januar 2016 - 19:26 #

BASIC gibt es in ziemlich vielen Variationen und Zeilennummern hatten glaube ich eh nur die wenigsten Dialekte wie zB. Microsoft BASIC vom C64.

Freylis 20 Gold-Gamer - 23164 - 18. Januar 2016 - 19:29 #

Kann natuerlich sein. Allerdings sieht die auf Prozeduren basierende Architektur auch verdaechtig nach Pascal aus. Und den Funktionsbefehl kenne ich in Basic ueberhaupt nicht. - Naja, ist aber auch Korinthenkackerei, denn die werden heute eh alle nicht mehr benutzt. ;)

Toxe (unregistriert) 18. Januar 2016 - 19:55 #

Pascal sah glaube ich so aus (schon ewig her, daß ich das mal benutzt habe):

PROCEDURE MachWas():
BEGIN
tu_was();
noch_was();
END;

Und:

FUNCTION MagDasHinkommen():
BEGIN
MagDasHinkommen := TRUE;
END;

Oder so in der Art, wenn ich mich recht entsinne.

Freylis 20 Gold-Gamer - 23164 - 18. Januar 2016 - 20:00 #

Stimmt, da waren immer so total aus der Mode gekommene Semikolons nach jeder Zeile. Schon schlimm, was der Herr Pascal sich da ausgedacht hatte... ^^

Der Marian 21 AAA-Gamer - P - 29626 - 18. Januar 2016 - 23:32 #

Basic setzt schon siet den frühen 90ern keine Zeilennummern emhr voraus (QBasic von MS bspw.).
Das Function-Statement ist Teil der Subroutinen in den Basic-Dialekten der 90er. Basic kann funktional.

Myxim 18 Doppel-Voter - P - 9435 - 18. Januar 2016 - 20:06 #

Edit: falsche gedrückt. Sollte an Toxe dran.

Die ; sollten die Lesbarkeit erhöhen, da man ja Befehle auch über mehrere Zeilen schreiben kann.

Mal den Code verbessert basierent auf Borland:

PROCEDURE MachWas;
BEGIN
tu_was; // wenn man keine Parameter übergibt kommen keine () hin.
noch_was;
END;

Und:

FUNCTION MagDasHinkommen: Boolean
BEGIN
result := TRUE;
END;

Freylis 20 Gold-Gamer - 23164 - 18. Januar 2016 - 20:10 #

Also doch Pascal??

Der Marian 21 AAA-Gamer - P - 29626 - 18. Januar 2016 - 23:35 #

Nö, definitiv BASIC (s. o.). Habe selber damals zu Beginn der 90er schon in solch einem "moderneren" BASIC Programmieren gelernt. Da geht einiges, was die Strukturieren der Programme mit SUBS und Funktionen angeht. War dann final Quickbasic 7.1, da ging einiges. :D

Freylis 20 Gold-Gamer - 23164 - 19. Januar 2016 - 2:40 #

Na Gott sei Dank. Ich fand die Zeilennummern damals schon immer affig. ;)

pbay 18 Doppel-Voter - 9251 - 18. Januar 2016 - 23:19 #

Beeindruckend.

nitroblade 12 Trollwächter - 1048 - 22. Januar 2016 - 8:32 #

Kann ich ja mal endlich meinen Fahrstuhl aus der Schule nachbauen, mit GWBasic :-D :-D :-D :-D

Kreativ-Baukasten
7
18.11.2011 (PC, MacOS, Linux) • 07.10.2011 (Android) • 17.11.2011 (iOS) • 09.05.2012 (Xbox 360) • 18.12.2013 (Playstation 3) • 05.09.2014 (Playstation 4, Xbox One) • 15.10.2014 (PSVita) • 10.12.2014 (Windows Phone) • 17.12.2015 (WiiU) • 13.09.2017 (New 3DS) • 21.06.2018 (Switch)
Link
8.2
AndroidBrowser3DSiOSLinuxMacOSPCPS3PS4PSVitaSwitchWiiUandere360XOne
Amazon (€): 44,99 (), 69,95 (), 129,95 (), 24,99 (Nintendo Switch)