Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ schemaOrg:

Titan ist der Minestom-Server, auf dem unsere Lobby läuft. Dort kommen Spieler an, bevor sie zu einem Minispiel wechseln: Portale, Navigator, Spawn, Sitzen, Jump'n'Run und seit Kurzem eine Lobby-Auswahl. Der Code liegt im [Titan-Repository](https://github.com/OneLiteFeatherNET/Titan) und wird mit Gradle gebaut.

Am 10. Oktober 2026 erschienen die Versionen 2.6.0 und 3.0.0, am selben Tag folgte 3.0.1. Die 3.0.0 ist ein Breaking Change, denn der Start der Lobby hat sich grundlegend geändert. Dieser Beitrag beschreibt den alten Stand, den Weg zum neuen, was schwer war und was wir mitnehmen. Teil zwei der Serie erzählt, was beim Start nach dem Update passiert ist.
Am 10. Oktober 2026 erschienen die Versionen 2.6.0 und 3.0.0, am selben Tag folgte 3.0.1. Die 3.0.0 ist ein Breaking Change, denn der Start der Lobby hat sich grundlegend geändert. Dieser Beitrag beschreibt den alten Stand, den Weg zum neuen, was schwer war und was wir mitnehmen. Teil zwei der Serie erzählt, was beim Start nach dem Update passiert ist. Den Überblick über Titan seit Version 1.0 gibt der [Rückblick](/de/blog/titan-von-1-0-bis-3-0).
<!--more-->

## Vorher: ein Start für beide Varianten
Expand Down
95 changes: 95 additions & 0 deletions content/blog/de/titan-von-1-0-bis-3-0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
---
title: 'Von 1.0 bis 3.0: fünfzehn Monate Titan, unser Lobby-Server'
alternativeTitle: 'Rückblick auf 67 Releases, 696 Commits und einen Umbau'
description: 'Ein Rückblick auf Titan, unseren quelloffenen Minestom-Lobbyserver: von Version 1.0 im Juli 2025 über die 2.x-Features bis zur Plattform-Trennung in 3.0 und dem, was als Nächstes kommt.'
pubDate: '2026-10-13'
releaseDate: '2026-10-13T10:00:00+02:00'
headerImage: 'images/og/blog-de.png'
headerImageAlt: 'Titan: Rückblick von Version 1.0 bis 3.0'
slug: 'titan-von-1-0-bis-3-0'
translationKey: 'titan-1-0-to-3-0'
tags:
- minecraft
- titan
- rückblick
author: themeinerlp

canonical: 'https://onelitefeather.net/de/blog/titan-von-1-0-bis-3-0'
alternates:
- hreflang: 'de'
href: 'https://onelitefeather.net/de/blog/titan-von-1-0-bis-3-0'
- hreflang: 'en'
href: 'https://onelitefeather.net/en/blog/titan-from-1-0-to-3-0'
- hreflang: 'x-default'
href: 'https://onelitefeather.net/en/blog/titan-from-1-0-to-3-0'

schemaOrg:
- type: 'BlogPosting'
headline: 'Von 1.0 bis 3.0: fünfzehn Monate Titan, unser Lobby-Server'
alternativeHeadline: 'Rückblick auf 67 Releases, 696 Commits und einen Umbau'
description: 'Ein Rückblick auf Titan, unseren quelloffenen Minestom-Lobbyserver: von Version 1.0 im Juli 2025 bis zur Plattform-Trennung in 3.0.'
author:
type: 'Person'
name: 'Phillipp Glanz'
datePublished: '2026-10-13T00:00:00+00:00'
---

## Vorwort

Das Erste, was man bei OneLiteFeather sieht, wenn man beitritt, ist [Titan](/de/projects/titan), unser Lobbyserver. Titan ist quelloffen (Apache-2.0), in Java geschrieben und basiert auf [Minestom](https://minestom.net), einer leichtgewichtigen Java-Bibliothek, mit der man Minecraft-Server von Grund auf baut. Dieser Beitrag blickt auf alles zurück, was zwischen Titan 1.0.0 im Juli 2025 und Titan 3.0.1 passiert ist, erschienen am 10. Oktober 2026.
<!--more-->

## Die Zahlen

- **67 GitHub-Releases**, davon 23 stabile, von v1.0.0 bis v3.0.1
- **696 Commits**
- **9 → 285 Testklassen**
- **4 → 25 Gradle-Module**
- **5 Mitwirkende**: @TheMeinerLP, @theEvilReaper, @Joltras, @yannicklamprecht und der Account von OneLiteFeather, dazu ein fleißiger Renovate-Bot

## Version 1: von der einfachen zur vernetzten Lobby (Juli 2025 – September 2026)

Titan 1.0 war eine kleine Minestom-Lobby mit vier Modulen, neun Testklassen und Java 24. Die 1.x-Reihe wuchs auf 55 Releases und legte das Fundament:

- **Elytra-Boost**: in 1.5 eingeführt, in 1.14 mit Feuerwerk so umgesetzt, wie es in Vanilla funktioniert.
- **LuckPerms-Integration** (1.8–1.10): Ränge und Rechte funktionieren in der Lobby genauso wie im restlichen Netzwerk.
- **Java 25** ab 1.9.
- **Tiefe CloudNet-Integration** (1.11–1.13): ein Extension-Bootstrap für CloudNet, ein LuckPerms-basierter Berechtigungsprüfer, saubere Shutdowns und Serverwechsel über die Bridge.
- **Ein AOT-Cache** für schnelleren Start, dazu automatisierte Releases mit release-please.

## Version 2: eine neu gebaute Lobby und viel darin (29. September – 10. Oktober 2026)

**2.0.0 war ein Umbau des Innenlebens.** Titan wurde in eigenständige *Feature-Säulen* aufgeteilt, ein Gradle-Modul pro Feature, verbunden über [Avaje Inject](https://avaje.io/inject/) und konfiguriert über avaje-config-Profile in einer einzigen `application.yaml`. Unsere eigene, handgeschriebene Modulplattform wich einfacher Dependency Injection: weniger Code, weniger Überraschungen.

Auf dieser Grundlage kam in 2.x innerhalb von knapp zwei Wochen ein Spielerfeature nach dem anderen:

- **Portale**, die du durchläufst oder durchfliegst, um den Server zu wechseln (2.0), mit **Live-Spielerzahlen** auf ihren Beschriftungen (2.1).
- **Saisons**: Die Lobby startet zu festen Zeiten in eine saisonale Welt (2.0).
- **Tageszeit nach der echten Uhr** (2.0).
- **Ein Jump'n'Run** in der Lobby (2.2) mit zufällig erzeugten Parcours, Highscores pro Modus und einer Top-3-Anzeige in der Sidebar (2.3). Als Landeblöcke kamen Treppen, Teppiche, Schnee, Köpfe, Blumentöpfe und Kerzen hinzu (2.5), dazu Kletterabschnitte mit Leitern, Ranken und Türmen, die mit deinem Punktestand wachsen (2.6). Die Schwierigkeit folgt einer sanften Kurve: `level = 1 − e^(−score / scale)`. Auf Feedback aus der Community hin verlangt *Medium* keine schmalen Sprünge über Zaun und Kerze mehr.
- **`/spawn`** und ein Spawn-Eintrag im Navigator (2.3).
- **Ein Lobby-Switcher** (2.6): Eine Uhr in deiner Hotbar listet jede Lobby mit ihrer Spielerzahl.

Hinter den Kulissen ergänzte 2.4 **OpenTelemetry-Tracing und Metriken**, damit wir sehen, was langsam ist, bevor du es merkst. 2.6 brachte außerdem einen **Boot-Smoke-Test**: CI startet jetzt das ausgelieferte Jar mit der echten Konfiguration. Er ist eine Konsequenz aus einem Vorfall am Release-Tag, an dem ein Bibliotheksupdate Build und Unit-Tests durchlief, die Lobby aber nicht starten ließ.

## Version 3: ein Kern, mehrere Plattformen (10. Oktober 2026)

**3.0.0 ist ein Breaking Change für alle, die Titan selbst betreiben.** Der Start läuft jetzt über einen kleinen Vertrag `ServerBootstrap`, den Java über den `ServiceLoader` auswählt. Minestom-Extensions, CloudNet und LuckPerms liegen jeweils in einem eigenen **Plattform-Modul**. 3.0.1 folgte am selben Abend und übersetzte den Lobby-Switcher ins Deutsche und Englische. Die Details folgen in zwei Deep-Dives: am 20. Oktober zur Plattform-Trennung in 3.0 und am 27. Oktober dazu, warum grüne Tests keine startende Lobby bedeuten.

## Was als Nächstes kommt

Einige Verbesserungen sind bereits in Review:

- Im Navigator verbindest du dich mit einem Linksklick, ein Rechtsklick teleportiert dich vor das passende Portal.
- Live-Spielerzahlen für jeden Modus im Navigator.
- Ein Fix, der jeder Lobby ihr echtes Spielerlimit an CloudNet meldet.

## Mitmachen

Titan wird wie der Rest unseres Minestom-Ökosystems offen entwickelt, zum Beispiel [Aves](/de/projects/aves), das die Menüs von Titan antreibt, und [Falco](/de/projects/falco), unsere Bibliothek für das Laden von Anvil-Chunks und die Beleuchtung.

- Code: [OneLiteFeatherNET/Titan auf GitHub](https://github.com/OneLiteFeatherNET/Titan)
- Releases: [Titan-Releases](https://github.com/OneLiteFeatherNET/Titan/releases)
- Changelog: [CHANGELOG.md](https://github.com/OneLiteFeatherNET/Titan/blob/main/CHANGELOG.md)

Wenn dir die Lobby, das Jump'n'Run oder unsere Open-Source-Arbeit gefällt, kannst du die Server und die Entwicklungszeit dahinter auf [OpenCollective](https://opencollective.com/onelitefeather) unterstützen. Fehlerberichte, Ideen und Pull Requests sind genauso willkommen, und viele Features aus 2.x haben als Spielerfeedback angefangen. Wir sehen uns in der Lobby!
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ schemaOrg:

## Vorwort

Am 10. Oktober 2026 haben wir Titan 2.6.0 und 3.0.0 veröffentlicht. An diesem Tag ist außerdem etwas passiert, das wir nicht kommen sahen: Nach einem Dependency-Update startete die Lobby nicht mehr, obwohl Build und Unit-Tests grün waren. Dieser Beitrag erzählt, was passiert ist, warum "grün" nicht "lauffähig" heißt und welche Konsequenzen wir gezogen haben. Er setzt den ersten Teil der Serie fort: [Titan 3.0: ein Lobby-Kern, mehrere Plattformen](/de/blog/titan-3-0-lobby-kern-mehrere-plattformen).
Am 10. Oktober 2026 haben wir Titan 2.6.0 und 3.0.0 veröffentlicht. An diesem Tag ist außerdem etwas passiert, das wir nicht kommen sahen: Nach einem Dependency-Update startete die Lobby nicht mehr, obwohl Build und Unit-Tests grün waren. Dieser Beitrag erzählt, was passiert ist, warum "grün" nicht "lauffähig" heißt und welche Konsequenzen wir gezogen haben. Er setzt den ersten Teil der Serie fort: [Titan 3.0: ein Lobby-Kern, mehrere Plattformen](/de/blog/titan-3-0-lobby-kern-mehrere-plattformen). Den Überblick über Titan seit Version 1.0 gibt der [Rückblick](/de/blog/titan-von-1-0-bis-3-0).
<!--more-->

## Was passiert ist
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ schemaOrg:

Titan is the Minestom server that runs our lobby. It is where players arrive before they move on to a minigame: portals, navigator, spawn, sitting, Jump'n'Run and, since recently, a lobby switcher. The code lives in the [Titan repository](https://github.com/OneLiteFeatherNET/Titan) and is built with Gradle.

On 10 October 2026, versions 2.6.0 and 3.0.0 were released, and 3.0.1 followed the same day. 3.0.0 is a breaking change, because the way the lobby starts has changed fundamentally. This post describes the old state, the path to the new one, what was hard, and what we take away from it. The second part of the series covers what happened when the update started running.
On 10 October 2026, versions 2.6.0 and 3.0.0 were released, and 3.0.1 followed the same day. 3.0.0 is a breaking change, because the way the lobby starts has changed fundamentally. This post describes the old state, the path to the new one, what was hard, and what we take away from it. The second part of the series covers what happened when the update started running. The overview of Titan since 1.0 is in [the retrospective](/en/blog/titan-from-1-0-to-3-0).
<!--more-->

## Before: one startup for both variants
Expand Down
95 changes: 95 additions & 0 deletions content/blog/en/titan-from-1-0-to-3-0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
---
title: 'From 1.0 to 3.0: fifteen months of Titan, our lobby server'
alternativeTitle: 'A retrospective on 67 releases, 696 commits and one rebuild'
description: 'A look back at Titan, our open-source Minestom lobby server: from the 1.0 release in July 2025 through the 2.x features to the 3.0 platform split, and what comes next.'
pubDate: '2026-10-13'
releaseDate: '2026-10-13T10:00:00+02:00'
headerImage: 'images/og/blog-en.png'
headerImageAlt: 'Titan: retrospective from version 1.0 to 3.0'
slug: 'titan-from-1-0-to-3-0'
translationKey: 'titan-1-0-to-3-0'
tags:
- minecraft
- titan
- retrospective
author: themeinerlp

canonical: 'https://onelitefeather.net/en/blog/titan-from-1-0-to-3-0'
alternates:
- hreflang: 'de'
href: 'https://onelitefeather.net/de/blog/titan-von-1-0-bis-3-0'
- hreflang: 'en'
href: 'https://onelitefeather.net/en/blog/titan-from-1-0-to-3-0'
- hreflang: 'x-default'
href: 'https://onelitefeather.net/en/blog/titan-from-1-0-to-3-0'

schemaOrg:
- type: 'BlogPosting'
headline: 'From 1.0 to 3.0: fifteen months of Titan, our lobby server'
alternativeHeadline: 'A retrospective on 67 releases, 696 commits and one rebuild'
description: 'A look back at Titan, our open-source Minestom lobby server: from 1.0 in July 2025 to the 3.0 platform split.'
author:
type: 'Person'
name: 'Phillipp Glanz'
datePublished: '2026-10-13T00:00:00+00:00'
---

## Preface

When you join OneLiteFeather, the first thing you see is [Titan](/en/projects/titan), our lobby server. It is open source (Apache-2.0), written in Java and built on [Minestom](https://minestom.net), a lightweight Java library for writing Minecraft servers from scratch. This post looks back at everything that happened between Titan 1.0.0 in July 2025 and Titan 3.0.1, released on October 10, 2026.
<!--more-->

## By the numbers

- **67 GitHub releases**, 23 of them stable, from v1.0.0 to v3.0.1
- **696 commits**
- **9 → 285 test classes**
- **4 → 25 Gradle modules**
- **5 human contributors**: @TheMeinerLP, @theEvilReaper, @Joltras, @yannicklamprecht and the OneLiteFeather account, plus a busy Renovate bot

## Version 1: from a simple lobby to a networked one (July 2025 – September 2026)

Titan 1.0 was a small Minestom lobby: four modules, nine test classes, Java 24. The 1.x series grew into 55 releases and laid the foundation:

- **Elytra boost**, first introduced in 1.5 and made vanilla-accurate with fireworks in 1.14.
- **LuckPerms integration** (1.8–1.10), so ranks and permissions work in the lobby the same way they do on the rest of the network.
- **Java 25** from 1.9 onwards.
- **Deep CloudNet integration** (1.11–1.13): a CloudNet extension bootstrap, a LuckPerms-backed permission checker for CloudNet, clean shutdowns, and server switching routed through the bridge.
- **An AOT cache** for faster startup, and automated releases with release-please.

## Version 2: a rebuilt lobby, and lots to do in it (September 29 – October 10, 2026)

**2.0.0 was a rewrite of the internals.** Titan was split into independent *feature columns*, one Gradle module per feature, wired together with [Avaje Inject](https://avaje.io/inject/) and configured through avaje-config profiles in a single `application.yaml`. Our own hand-written module platform was replaced by plain dependency injection: less code, fewer surprises.

On top of that foundation, 2.x shipped one player-facing feature after another in under two weeks:

- **Portals** you walk or fly through to switch servers (2.0), with **live player counts** on their labels (2.1).
- **Seasons**: the lobby restarts into a seasonal world at fixed times (2.0).
- **Daytime that follows the real clock** (2.0).
- **A lobby jump'n'run** (2.2) with randomly generated courses, per-mode high scores and a top-3 sidebar (2.3). It gained stairs, carpets, snow, heads, flower pots and candles as landing blocks (2.5), and climbing segments with ladders, vines and towers that grow with your score (2.6). The difficulty follows a smooth curve: `level = 1 − e^(−score / scale)`. Thanks to community feedback, *medium* no longer throws narrow fence-and-candle jumps at you.
- **`/spawn`** and a spawn entry in the navigator (2.3).
- **A lobby switcher** (2.6): a clock in your hotbar lists every lobby with its player count.

Behind the scenes, 2.4 added **OpenTelemetry tracing and metrics**, so we can see what is slow before you notice it. 2.6 also brought a **boot smoke test**: CI now starts the shipped jar with the real configuration. It is a direct consequence of an incident on release day, when a library update passed the build and every unit test but kept the lobby from starting.

## Version 3: one core, several platforms (October 10, 2026)

**3.0.0 is a breaking change for anyone running Titan themselves.** Startup now goes through a small `ServerBootstrap` contract, selected via Java's `ServiceLoader`, and Minestom extensions, CloudNet and LuckPerms each live in their own **platform module**. 3.0.1 followed the same evening and translated the lobby switcher into German and English. The details follow in two deep-dive posts: on October 20 about the 3.0 platform split, and on October 27 about why green tests did not mean a lobby that boots.

## What's next

Several improvements are already in review:

- In the navigator, left-click to connect and right-click to teleport in front of the matching portal.
- Live player counts for every mode in the navigator.
- A fix that reports each lobby's real player limit to CloudNet.

## Get involved

Titan is developed in the open, like the rest of our Minestom ecosystem, for example [Aves](/en/projects/aves), which powers Titan's menus, and [Falco](/en/projects/falco), our Anvil chunk loader and lighting engine.

- Code: [OneLiteFeatherNET/Titan on GitHub](https://github.com/OneLiteFeatherNET/Titan)
- Releases: [Titan releases](https://github.com/OneLiteFeatherNET/Titan/releases)
- Changelog: [CHANGELOG.md](https://github.com/OneLiteFeatherNET/Titan/blob/main/CHANGELOG.md)

If you enjoy the lobby, the jump'n'run or our open-source work, you can support the servers and development time behind it on [OpenCollective](https://opencollective.com/onelitefeather). Bug reports, ideas and pull requests are just as welcome, and a lot of the 2.x features started as player feedback. See you in the lobby!
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ schemaOrg:

## Preface

On 10 October 2026 we released Titan 2.6.0 and 3.0.0. The same day, something happened that we did not see coming: after a dependency update, the lobby no longer started, although the build and the unit tests were green. This post tells what happened, why "green" does not mean "runs", and which consequences we drew. It continues the first part of the series: [Titan 3.0: one lobby core, several platforms](/en/blog/titan-3-0-one-lobby-core-several-platforms).
On 10 October 2026 we released Titan 2.6.0 and 3.0.0. The same day, something happened that we did not see coming: after a dependency update, the lobby no longer started, although the build and the unit tests were green. This post tells what happened, why "green" does not mean "runs", and which consequences we drew. It continues the first part of the series: [Titan 3.0: one lobby core, several platforms](/en/blog/titan-3-0-one-lobby-core-several-platforms). The overview of Titan since 1.0 is in [the retrospective](/en/blog/titan-from-1-0-to-3-0).
<!--more-->

## What happened
Expand Down
Loading