Modularität ist der wichtigste Pfeiler, wenn es um das Design von AtlasMC geht. Grundlegend kann Atlas in zwei Hauptbestandteile unterteilt werden. Auf der einen Seite haben wir die API, die andere bildet den Core. Bei der Entwicklung von Plugins sollte beachtet werden, möglichst nur mit der API zu interagieren. Die API bietet hierbei viel tiefere Eingriffe in die Systeme der Server: Z.B. direkte Interaktion mit dem Protocol oder Direktzugriff auf die Palette und Indexe der ChunkSections. Der Core von Atlas ist für fast alle Funktionen verantwortlich. Die Standartimplementierung des Cores ist dafür ausgelegt, dass jedes "Teilsystem" ersetzt werden kann, ohne die Funktionalität von Atlas einzuschränken. Dies ist möglich, da alle Coresysteme nur über die API miteinander in Verbindung stehen. Um ein solches System noch zugänglicher zu machen bietet Atlas für Plugins eine Option, diese als CoreModul zu erstellen. Während des Startvorgangs von Atlas wird zunächst nur ein rudimentäres System geladen, welches sämtliche CoreModule lädt. Nachdem alle Module geladen sind, wird die Initialisierung des Systems vorgenommen. Folgend werden alle benötigten Felder initialisiert, wie bspw. Materialien und Entities. Abschließend wird das System erstellt und die Konfiguration und übrigen Plugins geladen. Während der einzelnen Schritte der Initialisierung, können die CoreModule alle Systeme des "Standard Cores" ersetzen oder zusätzliche hinzufügen. Sobald alles Initialisiert wurde, nimmt Atlas den eigentlichen Betrieb auf. Dieses Design ermöglicht es, die einzelnen Nodes noch besser auf die späteren Aufgaben anzupassen.
Im nächsten DevLog werden wir etwas über GUIs in unserer eigenen Serversoftware erfahren!
Ihr habt Fragen, Anmerkungen, Wünsche oder Anderes? Dann registriert Euch gerne bei uns im Forum, besucht uns auf Discord oder schaut auf GitHub vorbei.
Forum-Registrierung Discord GitHub AtlasMC
Nächster DevLog erscheint in