top of page
Technik
Technische Beiträge zu Unity, Multiplayer, Servern, Self-Hosting, Open Source, Builds und Entwicklungswerkzeugen.
SignPath hat abgelehnt: unsere Windows-Builds bleiben vorerst unsigniert
Vor ein paar Tagen hatten wir hier im Blog erzählt, dass wir uns beim kostenlosen Open-Source-Programm der SignPath Foundation um ein Code-Signing-Zertifikat für unsere Windows-Installer beworben haben. Jetzt kam die Antwort — und sie ist ein Nein. Weil wir hier im Devblog nicht nur die Erfolge feiern, sondern ehrlich erzählen, wie so ein Projekt wirklich läuft, gehört auch diese Nachricht hierher. Kurz zur Erinnerung: worum ging es? Unsignierte Windows-Programme lösen beim e
Marcel Dütscher
vor 13 Stunden2 Min. Lesezeit
Unser GitHub spricht jetzt: der automatische Developer-Podcast 🎙️
Die Entwicklung von Blocks Beyond The Stars passiert komplett öffentlich auf GitHub — jeder Commit, jeder Pull Request, jedes Release ist dort nachlesbar. Aber Hand aufs Herz: Wer scrollt schon abends durch eine Commit-Liste? Ab sofort gibt es eine bequemere Variante: Man kann sich die Projekt-Neuigkeiten einfach vorlesen lassen. Unser GitHub hat jetzt einen eigenen Podcast. Was ist Podlog? Podlog ist ein Dienst, der ein GitHub-Repository beobachtet und daraus automatisch ein
Marcel Dütscher
vor 3 Tagen2 Min. Lesezeit
Kostenloses Code-Signing für Open Source: unsere Bewerbung bei SignPath 🔏
Wer unser Spiel unter Windows installiert, kennt vielleicht diesen Moment: „Der Computer wurde durch Windows geschützt" — SmartScreen warnt vor einem „unbekannten Herausgeber", und man muss erst auf „Weitere Infos → Trotzdem ausführen" klicken. Das liegt nicht an einem Virus, sondern schlicht daran, dass unsere Installer bisher nicht signiert sind. Diese Warnung wollen wir loswerden — ohne ein teures Zertifikat kaufen zu müssen. Das Problem mit Code-Signing-Zertifikaten. Ein.
Marcel Dütscher
vor 3 Tagen2 Min. Lesezeit
Vom Git-Tag bis auf den Server: unsere Release-Pipeline
Ein Release von Blocks Beyond The Stars besteht heute aus einem einzigen Befehl: einen Git-Tag pushen. Alles danach macht die Maschine. In diesem Artikel zeige ich unsere CI/CD-Pipeline — und warum sich der Aufwand auch für ein Hobby-Projekt lohnt. Der Release-Workflow. Sobald ein Tag wie v0.7.4 gepusht wird, baut GitHub Actions das komplette Paket: Windows-Installer (Setup, Portable, MSI), Linux-Build, WebGL-Build für den Browser und ein Docker-Image für den Server — sechs A
Marcel Dütscher
7. Juli1 Min. Lesezeit
Server-Wartung, ohne Spieler rauszuwerfen
Was passiert eigentlich mit den Spielern, wenn wir den Server aktualisieren müssen? Die einfache Antwort wäre: Stecker ziehen. Die bessere Antwort haben wir gebaut — und sie ist eines meiner Lieblings-Features, obwohl man sie im Idealfall kaum bemerkt. Die Ankündigung. Der Server kann jeder laufenden Welt eine Wartungsnachricht schicken. Im Spiel erscheint dann ein Banner mit Countdown: „Server-Neustart in 10 Minuten." Die Nachricht muss aktiv weggeklickt werden — aber erst n
Marcel Dütscher
6. Juli1 Min. Lesezeit
Passwörter, Rate-Limits und Konten ohne E-Mail
Blocks Beyond The Stars wird auch von Kindern gespielt. Das prägt nicht nur das Spieldesign, sondern auch die Sicherheitstechnik dahinter. Drei Beispiele. Konten ohne E-Mail — mit Absicht. Für ein Spielerkonto bei uns braucht es keine E-Mail-Adresse. Das ist kein fehlendes Feature, sondern eine Entscheidung: Wir wollen so wenig persönliche Daten wie möglich, gerade von jungen Spielern. Was wir nicht speichern, kann auch nicht verloren gehen. (Die ehrliche Kehrseite: „Passwort
Marcel Dütscher
6. Juli1 Min. Lesezeit
Ein kleiner VPS als Spieleserver-Flotte
Alle unsere Online-Welten — das Portal, die offiziellen Welten, die von Spielern erstellten Welten — laufen auf einem einzigen gemieteten Linux-Server (VPS). Kein Rechenzentrum, keine Cloud-Rechnung mit fünf Stellen. In diesem Artikel zeige ich, wie der Server aufgesetzt ist und was wir dabei gelernt haben. Härtung zuerst. Bevor das Spiel auf den Server durfte, kam die Grundsicherung: eine Firewall (ufw), die nur die nötigen Ports öffnet, fail2ban gegen automatisierte Login-V
Marcel Dütscher
5. Juli1 Min. Lesezeit
Wie unsere Hosted Worlds funktionieren
Eine eigene Welt im Internet, auf die Freunde jederzeit joinen können — ohne dass jemand einen Server aufsetzen muss. Das ist die Idee hinter unseren Hosted Worlds, und in diesem Artikel zeige ich, was hinter dem „Spielen"-Knopf im Portal wirklich passiert. Das Herzstück ist der WorldHost: ein kleiner Dienst auf unserem Server, der Welten verwaltet. Jede Welt läuft in ihrem eigenen Docker-Container — komplett isoliert, mit eigenem Speicherstand, eigenem Arbeitsspeicher-Limit
Marcel Dütscher
5. Juli1 Min. Lesezeit
Hinter den Kulissen: Wie wir 28 YouTube-Videos in 30 Minuten produziert haben 🎬
Wie ein Vater, ein Kind und eine KI aus einem Haufen ungeschnittenem Gameplay-Material zwei vollständige Playlists erstellten – ohne eine einzige Stunde in einem Videoeditor zu verbringen. Endlich gibt es einen YouTube-Kanal für Blocks Beyond the Stars – mit 22 Kurzvideos und 6 längeren Let's-Play-/Tutorial-Videos. Und ganz ehrlich? Die Entstehungsgeschichte ist wirklich erzählenswert, denn der eigentliche Schnitt hat nur etwa eine halbe Stunde gedauert. Hier ist der gesamte
Marcel Dütscher
2. Juli3 Min. Lesezeit
Über 1000 Tests für ein Hobby-Spiel — Verschwendung?
Unser Projekt hat inzwischen weit über tausend automatisierte Tests: rund 990 auf der Server-Seite, etwa 120 im Unity-Client. Für ein Familienprojekt klingt das nach Overkill. Es ist das Gegenteil — und hier ist warum. Tests sind unser zweiter Entwickler. Als Solo-Projekt gibt es niemanden, der im Code-Review sagt: „Moment, das bricht doch das Crafting." Die Tests sind dieser Kollege. Jede Spielmechanik — Rezepte, Sauerstoff, Hunger, Kreaturenverhalten, Welt-Passwörter — hat
Marcel Dütscher
2. Juli1 Min. Lesezeit
Ein Voxel-Spiel im Browser
Blocks Beyond The Stars läuft nicht nur als Windows- und Linux-Programm, sondern auch direkt im Browser — ohne Installation, ein Klick im Portal genügt. Der Weg dahin war lehrreicher als gedacht. Unity WebGL ist eine eigene Welt. Unity kann seit Langem ins Web exportieren, aber der Teufel steckt im Detail. Unser größter Stolperstein: Im Browser gibt es keine echten Hintergrund-Threads wie im nativen Build. Unser Terrain-System baut die Landschafts-Meshes normalerweise asynchr
Marcel Dütscher
30. Juni1 Min. Lesezeit
Der Tag, an dem unsere Shader im Build fehlten
Im Unity-Editor sah alles perfekt aus. Im fertigen Build: rosa Flächen und fehlende Effekte. Willkommen bei einer der fiesesten Unity-Fallen — und ein paar ihrer Verwandten. Das Shader-Stripping. Unity wirft beim Bauen alles raus, was scheinbar nicht gebraucht wird — auch Shader. Das Problem: Wer Shader zur Laufzeit per Shader.Find() lädt (wie wir mit unseren über 20 Custom-Shadern für Wasser, Atmosphäre, Hologramme und mehr), für den sieht Unity keine Referenz in einer Szene
Marcel Dütscher
27. Juni1 Min. Lesezeit
Licht in einer Voxelwelt: echte Lichter oder Flood-Fill?
Ein Spieler stellt eine Leuchtlampe in seine Basis. Was passiert technisch? Diese harmlose Frage hat bei uns eine Grundsatzentscheidung ausgelöst — und die Antwort ist ein schönes Beispiel dafür, dass die „modernere" Lösung nicht immer die bessere ist. Option A: echte Unity-Lichter. Jeder Leuchtblock wird eine Punktlichtquelle, die Engine rechnet alles. Sieht toll aus — skaliert aber nicht. Eine Voxelwelt kann hunderte Leuchtblöcke in Sichtweite haben; Echtzeit-Punktlichter i
Marcel Dütscher
27. Juni1 Min. Lesezeit
100% KI-generiert: Unser Workflow mit Unity 6, .NET 8 und Python
Eine der häufigsten Fragen, die wir bekommen, lautet: Wie genau baut man ein komplexes Multiplayer-Voxel-Spiel komplett mit KI? Die kurze Antwort: Mit sehr strengen Leitplanken. Die KI ist fantastisch darin, Code zu schreiben, aber sie verliert schnell den architektonischen Überblick. Deshalb habe ich von Tag 1 an eine strikte Client-/Server-Architektur erzwungen. Unser Tech-Stack im Überblick: Client: Unity 6 für Rendering, Input und das Voxel-Meshing. Server: .NET 8 Dedicat
Marcel Dütscher
26. Juni1 Min. Lesezeit
Der Grafik-Overhaul: mehr Look ohne Engine-Wechsel
Irgendwann stand die ehrliche Diagnose im Raum: Das Spiel spielte sich gut, sah aber nach Prototyp aus. Statt auf eine andere Render-Pipeline oder gar Engine zu schielen, haben wir uns eine Frage gestellt: Wie viel Look steckt noch in Unitys URP, wenn man sie wirklich ausreizt? Die Antwort: erstaunlich viel. Anti-Aliasing (SMAA). Blockwelten bestehen aus Kanten — und flimmernde Kanten ruinieren jeden Screenshot. SMAA glättet sie, ohne das Bild matschig zu machen. Ambient Occl
Marcel Dütscher
26. Juni1 Min. Lesezeit
Von MIT zu AGPL: warum wir die Lizenz gewechselt haben
Blocks Beyond The Stars ist Open Source — das war es von Anfang an. Aber unter welcher Lizenz, das haben wir unterwegs einmal grundlegend geändert: von der freizügigen MIT-Lizenz zur AGPL-3.0. Hier ist das Warum. Was MIT bedeutet hätte: Mit MIT darf jeder unseren Code nehmen, verändern und als geschlossenes Produkt weiterverkaufen — ohne irgendetwas zurückzugeben. Für Bibliotheken ist das oft genau richtig. Für ein komplettes Spiel mit Servern fühlte es sich falsch an: Jemand
Marcel Dütscher
25. Juni1 Min. Lesezeit
KI-Texturen und KI-Sounds in der Asset-Pipeline
Blocks Beyond The Stars hat keinen Grafiker und keinen Sound-Designer. Trotzdem bekommt jeder neue Block eine eigene Textur und jedes neue Feature seinen Klang. Unser Werkzeug dafür: generative KI — mit einem klaren Workflow drumherum. Texturen. Neue Block-Kacheln entstehen mit OpenAI-Bildmodellen. Der Prompt beschreibt Material, Stil und die Voxel-Ästhetik des Spiels; das Ergebnis wird auf die Kachelgröße gebracht und in unseren Block-Atlas einsortiert — eine große Textur, i
Marcel Dütscher
23. Juni1 Min. Lesezeit
Jeder Block ist solide — außer er ist es nicht
Unser Client-Mesher hat eine eiserne Regel: Jeder Block, der nicht Luft ist, wird gerendert und hat Kollision. Punkt. Diese Vereinfachung macht das Meshing schnell und den Code einfach — bis ein Feature kommt, das genau diese Regel brechen will. Das Energie-Tor. Für unsere Energiezäune wollten wir ein Tor: eine schimmernde Membran, durch die Spieler und freundliche NPCs einfach hindurchgehen können, wilde Tiere aber nicht. Ein Block also, der sichtbar ist, aber für manche kei
Marcel Dütscher
22. Juni1 Min. Lesezeit
Netcode-Fallen: Nachrichten, die stumm verschwinden
Multiplayer-Bugs sind eine eigene Gattung: Nichts stürzt ab, nichts loggt einen Fehler — es passiert einfach nichts. Zwei unserer liebsten Fallen aus dem eigenen Netzwerk-Code, als Warnung und Unterhaltung. Falle 1: die unregistrierte Nachricht. Unser Netzwerkprotokoll kennt Nachrichtenklassen — „Block geändert", „Spieler bewegt", „Chat". Jede neue Nachrichtenart muss beim Codec registriert werden, damit sie eine ID bekommt und serialisiert werden kann. Vergisst man das, pass
Marcel Dütscher
21. Juni1 Min. Lesezeit
bottom of page