Testbericht

Buchvorstellung: Let’s Play Minecraft – Plugins programmieren mit Java

Geschrieben von Oliver Baumann

Wer schon mal Minecraft gespielt hat, der wird vielleicht auch von Mods wie Bukkit, Bedwars und Feed the Beast gehört haben. Wer die ganzen Mods und Plugins toll findet und sich dachte:“Ich würde gerne mal was eigenes erfinden!“, für den hat der mitp-Verlag ein ganz besonderes Buch veröffentlicht. Ob der Titel uns zum Mega-Plugin-Developer macht oder wir am Ende genau so schlau sind wie zuvor, das finden wir jetzt heraus!

Buchcover

Cover des Buches. Mit einem Klick geht’s zur Verlagsseite.

Disclaimer

Bevor es los geht hier noch ein paar vorbereitende Worte. Als erstes möchte ich mich nochmals beim mitp-Verlag bedanken, welche uns ein Exemplar zukommen ließen für diese Rezension.

Der Typ, der hier die Rezension schreibt (also ich), ist tatsächlich studierter Informatiker (so wie der Autor). Das Buch wird daher von jemandem beurteilt, der programmieren kann. Es wird versucht die Anfängerfreundlichkeit zu berücksichtigen. Die Einschätzungen sind jedoch subjektiv, so dass  man als Leser dieses Buches vielleicht an einer Stelle eher ein Problem hat oder dieses Werk gar leichter verständlich ist als ich es einschätze.

Worum geht es?

Let’s Play Minecraft – Plugins programmieren mit Java , erschien in der ersten Auflage am 16. November 2015 und wird vom mipt-Verlag vertrieben. In diesem Sachbuch beschreibt der Autor Daniel Braun wie man ohne jegliche Vorkenntnisse eigene Plugins für Minecraft programmiert. Für die Umsetzung der Plugins im Buch wird die CanaryMod verwendet. Dies ist eine spezielle Version eines Minecraft-Servers.

Die CanaryMod wird im ersten Kapitel vorgestellt. Inhalt sind neben der Vorstellung auch wie man sie betreibt und wie man sich mit seinem Minecraftspiel darauf verbindet. Ebenfalls wird der Umgang mit der Serverkonsole und das Rechtekonzept beschrieben.

Im Anschließenden Kapitel wird die Programmiersprache Java beschrieben. Neben der Funktionsweise steht im Mittelpunkt wie man Java einrichtet und wie man seinen eigenen Quellcode in ein Programm übersetzt.

Ab dem dritten Kapitel wird auf die Grundlagen der Programmierung eingegangen. Dabei hat jedes Element, wie etwa if-Anweisungen, ein eigenes Kapitel. Dazwischen sind auch Kapitel, die sich speziell auf Minecraft beziehen. Darunter gehören Kapitel, die beispielsweise auf den Umgang mit den Chat eingehen oder auch wie man mit Hilfe eines eigenen Plugins Blöcke setzten kann. Neben den Grundlagen der Programmierung werden so auf Themen eingegangen wie etwas das erstellen eigener Rezepte, wie man die KI des Spieles beeinflussen kann und sogar wie eigene Spielmodi erschaffen werden. Letzteres wird am Beispiel einer Schneeballschlacht verdeutlicht. Das Buch ist allgemein so aufgebaut, dass die einzelnen Konzepte an Plugins erklärt werden, die während man das Buch liest, erstellt werden.

In diesem Buch werden verschiedene Aspekte des Spieles behandelt wie etwa die KI von NPCs, der Umgang mit Chatnachrichten und wie man eigene Rezepte entwirft.

In diesem Buch werden verschiedene Aspekte des Spieles behandelt wie etwa die KI von NPCs, der Umgang mit Chatnachrichten und wie man eigene Rezepte entwirft.

Die Kapitel sind so aufgebaut, dass zu Beginn das Thema des Kapitels vorgestellt wird. Dabei referenzieren sich Kapitel je nachdem auf vorhergehende Kapitel. Beispielsweise bezieht sich das neunte Kapitel auf Klassen und Objekte, welche bereits zu Beginn verwendet wurden, jedoch nicht im Fokus standen. Jedes Kapitel schließt wie folgt ab. Das vorletzte Unterkapitel stellt eine „Rätselsektion“ dar, bei der dem Leser kleinere Aufgaben gestellt werden mit denen das gerade erlernte abgefragt wird. Darauf folgt eine Kurzreferenz mit den Inhalten des jeweiligen Kapitels.

Der Anhang besteht zum einen aus einem Lösungsteil für die Rätsel und zum anderen aus einer Referenz, in der man einzelne Dinge schnell nachschlagen kann. Inhalt der Referenz sind Programmstrukturen, Block- und Gegenstandstypen sowie die Rechte für den Minecraft-Server.

Auf insgesamt 400 Seiten werden elementare Dinge beschrieben um als Leser eigene Plugins schreiben zu können.

The Good, the Bad and the Minecraft

So, nachdem der Inhalt so ungefähr vorgestellt wurde, kommen wir nun zu dem schwierigen Teil: Lob und Kritik. Von daher fangen wir einfach mal mit ein paar Oberflächlichkeiten an.

Das 400-Seiten umfassende Buch im DIN-A5 Format kommt im Softcover. Das Cover ist bunt und farbig. Und das tolle ist, dass auch der Inhalt in Farbe ist. Das Buch verwendet nicht nur Diagramme sondern auch Screenshots, die das Resultat des im jeweiligen Kapitel schrittweise darstellen. So was ist nicht nur toll anzuschauen und im Falle der Screenshots bitter nötig. Farbe an für sich ist toll, wenn sie aber geschickt eingesetzt wird um die Inhalte besser leserlich zu machen, dann ist das ganz toll. Der Quellcode sticht visuell besser hervor. Dieser wird auch besser leserlich durch die unterschiedlich farbige Markierung von beispielsweise Schlüsselwörtern oder von Zeichenketten (Strings), die keinen Programmcode darstellen. Rein äußerlich macht das Buch schon mal einen guten Eindruck.

Das Buch liest sich an für sich recht schnell und angenehm. Der Autor drückt sich die meiste Zeit über deutlich aus und komplizierte Schachtelsätze wurden überwiegend vermieden. Man merkt dem Autor an, dass er sich mit der Materie auskennt und auch, dass dies nicht sein erstes Buch ist (der Autor hat zuvor bereits 2 Bücher zu Lego Mindstorm und 2 zu Minecraft veröffentlich).

Die Methodik ist an für sich eigentlich ganz gut. Der Leser entwickelt im Laufe des Buches nach Anleitung Plugins, mit welchen das Gelernte gut demonstriert wird. Es gibt aber auch ein paar Eigenarten. Oftmals wird auf später in einem Kapitel verwiesen. Hier wäre es schön gewesen, wenn zumindest das betroffene Kapitel referenziert worden wäre. Dass Klassen und Objekte erst in Kapitel 9 erklärt werden, würde ich als zu spät einstufen. Wenn jemand keine Kenntnisse von objektorientierter Programmierung hat, dann wird der Leser den Quellcode des ersten Drittels des Buches nicht vollständig verstehen. Für zukünftige Auflagen wäre meine Empfehlung dieses Kapitel vorzuziehen. Das dritte Kapitel zur Anregung könnte ruhig an dieser Stelle bleiben, anschließend hätte ich erst das Kapitel „Variablen und Konstanten“, anschließend „Klassen und Objekte“ und danach „Funktionen“ angeordnet. Hierbei muss aber auch ganz klar das Zugeständnis gemacht werden, dass so dann das Buch nicht mehr funktionieren könnte und es komplett umgeschrieben würde. Zusammengefasst wäre es schön gewesen, wenn der Autor thematisch nicht so viele Sprünge gemacht hätte auf den Bezug der Kapitel.

Mit Hilfe von Screenshots wird die erklärt, wie sich der Code auf das Spiel ausübt.

Mit Hilfe von Screenshots wird die erklärt, wie sich der Code auf das Spiel ausübt.

Die Kapitel variieren sehr stark in ihrer Länge. Dies liegt daran, dass der Autor sich auf das Relevante beschränken kann. Wobei man auch hier sagen muss, dass da einige Ungereimtheiten sind. An einer Stelle wird groß und breit erklärt wie man einen Ordner anlegt. Wie man den Server startet, davon wird allerdings kein Wort verloren. Bei der CanaryMod fungiert der Installer auch als Launcher. Dies ist nicht klar. Die Verwirrung trat zudem dadurch auf, dass zu dem Zeitpunkt, als die Installationsanleitung ausprobiert wurde, dieser nicht ohne weiteres funktioniert hat. Der Server musste über die Kommandozeile mit einer Option gestartet werden, die die Oberfläche erzwingt. Dies ist nicht die Schuld des Autors. Dies wäre jedoch bei weitem wichtiger als eine Anleitung dafür wie man einen Ordner anlegt.

Ebenfalls unschön ist, dass das Thema Administration des Servers außen vor gelassen wird. Das Thema wird mit einem „das führt zu weit für dieses Buch“ komplett geschnitten. Dies ist meiner Meinung nach eine Ausrede. Das Buch erklärt einem wie man Plugins für Minecraft schreibt und sogar eigene Spielmodi. Es ist einfach schade, dass dann bewusst sich dagegen entschieden wird zu erklären, wie man den Server dann betreiben kann. Immerhin will man ja als Leser seine eigene Kreationen mit anderen Spielern teilen. Sollte sich der Autor für eine Erweiterung des Buches entscheiden, dann wäre dies ein Kapitel, welches ich wirklich gerne sehen würde. Ich würde sogar liebend gerne mir die Auflage privat kaufen, falls ich den Verlag mit dieser Rezension vergrault habe.

Ein weiteres Problem, das mir aufgestoßen ist, ist das Thema „IDE einrichten ist zu kompliziert! Nehmt diesen von mir vorgeschlagenen Editor und jagt die Sachen von Hand durch den Compiler.“. Es ist nicht mal so sehr, dass unbedingt eine IDE wie NetBeans, Eclipse, IntelliJ oder was auch immer verwendet werden soll. Was so sauer aufstoßt ist der Gedanke, dass man Anfänger jedes Mal dazu auffordert sich von Hand durch die Kommandozeile zu quälen. Das Thema IDE hätte man mit einem kurzen Kapitel abwickeln können. Hier geht es vor allem daran, dass man mit ein paar wenigen Seiten mehr etwas hätte einfügen können, damit der Anwender nicht genervt die Lust daran verliert und das Buch und damit auch das Thema bei Seite legt. Hierbei beziehe ich mich wieder auf absolute Neueinsteiger. Jeder, der schon einige Erfahrungen mit Programmierung hat, wird sich an dieser Stelle es gerade zu instinktiv einfacher gemacht haben.

Eine andere Sache, die mich noch ein bisschen gestört hat wäre die Referenz. Wobei gestört der falsche Begriff ist. Es ist eher so, dass mir in diesem Bezug noch etwas auffiel, was der Autor sich hätte sparen können. Die Referenz ist nämlich 2 mal vorhanden. Zum einen gibt es einen Auszug der Referenz am Ende eines Kapitels und dann nochmal die komplette als Anhang. Diese Redundanz hätte man sich sparen können (und wenn das Druckkosten spart, dann umso besser!). Die Referenz am Ende des Buches ist eine tolle Sache. Als Anfänger hat man eine tolle und auch übersichtliche Stelle um etwa Programmstrukturen und deren Verwendungsweisen nachzuschlagen. Unabhängig der persönlichen Erfahrungen hat man zusätzlich noch eine gute Übersicht über die minecraftspezifischen Sachen wie Blocktypen oder auch die Rechte für den Server. Die Übersicht am Ende soll wohl als Zusammenfassung des Gelernten fungieren. Dieser Effekt bleibt allerdings aus. In vielen Fällen schon alleine deswegen, dass das betroffene Kapitel sehr kurz geraten ist (<=10 Seiten).

Als letzten Punkt meiner Nörgelei habe ich noch eine Frage: Warum ausgerechnet CanaryMod? Was sind die Alternativen? Kann ich nur für Server Plugins erstellen? Wie schaut es aus mit dem Client? Kann ich nicht mit Plugins spielen, weil ich steht’s im Singleplayer unterwegs sein möchte? Ist es möglich auch neue Dinge wie etwa Grafiken in das Spiel einzubauen oder kann ich nur mit den Dingen arbeiten, die das Spiel mir bietet? Zugegeben, das sind mehrere Fragen. Sie deuten allerdings alle auf eine Sache hin: Man macht direkt den Sprung in die CanaryMod. Zumindest eine kurze Übersicht oder eine etwas allgemeinere Einführung wäre nett gewesen. Klar, an irgendeinem Punkt muss man sich festlegen und es mag einfacher sein, wenn man einen festen Rahmen vorgibt. Allerdings sehe ich da eine verpasste Chance. Wie schaut es zum Beispiel mit Minecraft Forge aus? Ein kurzer Blick über den Tellerrand hätte auch das Thema besser abgesteckt und den Unterschied zwischen Modding und dem Entwickeln von Plugins deutlich gemacht.

Wem würde ich das Buch empfehlen?

Eines vorweg: Obwohl man die wichtigsten Elemente zum Programmieren lernt, denke ich nicht, dass es für einen absoluten Anfänger reicht um etwas anderes als Plugins zu entwickeln. Es ist aber als Einstiegspunkt in das Thema Programmierung ideal. Dass diese mit Minecraft kombiniert wurde, ist meiner Meinung nach ein großer Motivationsfaktor.

Wer also noch nie auch nur eine Zeile Quellcode gelesen oder geschrieben hat, aber unbedingt mal ein eigenes Minecraft-Plugin schreiben will, dem kann ich dieses Buch mit gutem Gewissen empfehlen.

Wer schon Programmierkenntnisse hat und sich nun mit Minecraft-Plugins beschäftigen will, dem kann ich dieses Buch als schnellen Einstieg empfehlen. Der Grund dafür liegt darin, dass man alles relevante um direkt loszulegen auf dem Silbertablett serviert bekommt.

[amazon box=”395845139X”]

Fazit

Gibt es Punkte, bei denen man nachbessern kann? Ja. ABER! Das Buch als ganzes ist wirklich gut. Es wird verständlich herüber gebracht um was es geht, wie die vorgestellten Sachen funktionieren und das Buch geht praxisorientiert vor. Als Leser wird man eingeladen mitzumachen und das nicht nur vom Aufbau des Inhaltes und der starken Kopplung der Kapitel an die Beispiele. In diesem Buch habe ich mich selbst wiedererkannt und zwar als jemand, der einem Anfänger das Thema herüber bringen will.

Der Autor redet mit dem Leser und schmeißt ihm nicht einfach nur Informationen an den Kopf. Die Heranführung an die Themen ist in einem guten Tempo, auch wenn es hier und da ein paar kleine Patzer gibt. Eine Anleitung um den Server zu starten ist dann doch wichtiger als eine Erklärung, wie man einen Ordner anlegt. Es wurde allerdings verstanden wie man die Themen „Minecraft und Plugins“ und „Wie man programmiert“ miteinander bearbeitet. Viele Bücher, beispielsweise im Bereich der Spiele-Entwicklung, gehen einfach hin und klatschen ein liebloses Kapitel über die zu verwendende Programmiersprache hin. Dass der Leser am Ende genau so schlau wie vorher ist, interessiert dabei nicht. In diesem Buch ist eben genau dies NICHT so. Und dafür muss ich einfach ein Lob aussprechen. So sollte es sein und so ist es leider viel zu selten.

gold