Wer selbst Mods erstellt, der sei dazu eingeladen, in den Kommentaren von seinen Projekten zu erzählen:
Mein Ausflug ins Modding ist zwar schon etwas her, aber:
Welche Spiele werden gemoddet, was versucht ihr zu implementieren und wie geht ihr dabei vor?
Bei dem Spiel handelt es sich um die Minecraft Java Edition. Dort habe ich mich an World Generation, Energie-Netzwerken und Maschinen sowie ein paar Sachen die mir gerade in den Kopf gekommen sind, eingefallen.
Die Vorgehensweise war dabei eigentlich immer die selbe. Erst schaut man sich an, ob es zu dem, was man vor hat, Dokumentation, Tutorials od. so gibt. Vielleicht auch andere Mods, die bereits etwas ähnliches machen, wo man sich deren Implementation anschauen kann.
Danach wird die eigene Implementation geplant:
- Wie soll der Code strukturiert werden? (Klassen, Interfaces, etc.)
- Mit welchen Komponenten von Minecraft's Code oder dem Code vom Forge Mod Loader müssen interagiert werden?
- Gibt es Standards über verschiedene Mods hinweg, damit diese miteinander kommunizieren können, welche zu beachten sind?
Anschließend wird das ganze implementiert und dann getestet. Teilweise auch automatisiert mit Unit Tests. Und während der Implementation wird diese immer weiter refined. Bei Sachen, die man noch nie implementiert hat, schreibt man vlt. auch erst einen Prototyp.
Die Problemstellungen sind dabei auch immer andere. Mods mit Energie und so müssen vlt. nur eine Maschine implementieren mit Interface-Design. Implementiert man Kabel, muss man sich noch Gedanken darüber machen, wie man die Energie von A nach B bewegt bekommt und dies möglichst ohne großen Performance-Overhead. World Generation ist dagegen ein Problem, wo der Großteil der Forschungszeit in Mathe hineinfließt. Erst wenn die Mathematik dahinter so einigermaßen verstanden wurde, kann man sich Gedanken über den Rest machen.
Was beim Modding ein nicht unerheblicher Teil der Arbeit ist, ist den eigenen Code immer wieder auf neue Game Versionen anzupassen. Mal ist dies weniger Arbeit und vlt. in ein paar Stunden getan. In anderen Momenten dauert dies auch Wochen und erfordert, dass einige Teile des Mods umgeschrieben od. vielleicht komplett neu geschrieben werden müssen.
Je mehr Versionen eines Games man supportet, desto größer der Aufwand. Wenn man an größeren Features alleine arbeitet, dann dauert der gesamte Research und die Implementierung auch mal gerne so lange, dass man nach der Fertigstellung das Ganze erstmal auf die neuste Minecraft Version portieren darf. Als Beispiel wäre hier World Generation zu nennen.
Aber heutzutage arbeite ich hauptsächlich an anderer Software und habe die Modding Szene verlassen. Ich würde aber sagen, ein so großer Unterschied gibt es da nicht. In beiden Fällen plant man die Struktur und alles so gut wie man kann, damit man so wenig Arbeit bei der Erweiterung oder im Falle von Modding Änderungen durch Game Updates hat. Zudem: testen, testen und testen.
Je mehr man automatisiert testen kann, desto besser.
(Ich hoffe das ist vereinfacht genug beschrieben, dass es für viele verständlich ist und zeitgleich noch genug Einblicke liefert.
)