TECH LOG
Auf dieser Seite halte ich technische Fortschritte, Systementscheidungen und Entwicklungsprozesse fest, die auf der Projektseite selbst zu umfangreich oder zu technisch wären. Der Fokus liegt bewusst auf dem Fundament, nicht auf Präsentation.
Hier gebe ich regelmäßig Einblicke darin, wie Features entstehen, wie komplexe Systeme ineinandergreifen und warum bestimmte Entscheidungen im Projekt so getroffen wurden. Gerade bei Mechaniken, die stark voneinander abhängen, entsteht Fortschritt oft nicht durch neue Inhalte, sondern durch Stabilität, saubere Integrationen und das Lösen von Detailproblemen.
Zusätzlich dokumentiere ich Probleme, die während der Entwicklung auftreten, und wie sich mein Workflow als Solo Entwickler anpassen muss, damit wiederholende Aufgaben keine Zeitfresser werden und die Entwicklung langfristig skalierbar bleibt.
Texturing Tool
Material-Erstellung und Auto-Assignment aus Texture Sets
Aktuell verschiebt sich der Schwerpunkt stärker auf Systemarbeit, die im Spiel selbst nicht immer sofort sichtbar ist. Ein Teil davon ist die Vorbereitung auf spielbare Kampfsituationen. Bevor ich dort weitergehe, habe ich zuerst einen Workflow-Engpass gelöst, der mich bei größeren Asset-Packs sonst regelmäßig ausbremst.
Dafür ist ein Texturing Tool entstanden, in C# geschrieben und technisch in zwei Skripten umgesetzt, aber als ein zusammenhängender Ablauf gedacht. Es erstellt automatisch Materialien aus einem Texture Set und weist diese danach den richtigen Meshes und Renderern zu. Selbst 65 Texturen sind manuell keine Sache von drei Minuten. Wenn man es sauber macht, liegt man schnell bei 45 bis 90 Minuten. Mit dem Tool läuft das als Batch in wenigen Minuten durch.
Am Tool selbst habe ich rund zwei Stunden gearbeitet, vor allem für Fehlerfixes, Logik und eine robuste Zuordnung. Ziel war, dass der Ablauf auch bei größeren Asset-Mengen stabil bleibt, ohne dass wiederholende Aufgaben zur Zeitfalle werden.
Combat System
Stabilisierung und Integration in Movement und Animator
In den letzten zwei Wochen lag der Fokus darauf, das Kampfsystem sauber mit dem bestehenden Movement und dem Animator zu verbinden. Genau hier entstehen die typischen Problemzonen: kleine Input Schwankungen sorgen für falsche Zustände, Animationen springen zu früh, und einzelne Mechaniken blockieren sich gegenseitig.
Ein großer Teil der Arbeit bestand deshalb nicht aus neuen Features, sondern aus Stabilität. Prioritäten mussten klar definiert, Übergänge kontrolliert und Randfälle abgefangen werden, damit der Spieler nicht in ungünstige State Kombinationen fällt.
In dieser Phase zeigen sich Probleme oft nicht als klassischer Bug, sondern als falsches Timing, unruhige Übergänge oder ein Combat Flow, der sich nicht sauber anfühlt. Genau deshalb ist eine klare Major Bugliste wichtig. Jeder, der selbst schon Animationen und State Machines integriert hat, kennt diese Stellen und kann anhand der Fixes nachvollziehen, was genau stabilisiert wurde.
Ergänzend folgen hier bald Videos oder Bilder. Ob ich einzelne Bewegungen separat zeige oder den kompletten Combat-Flow als Gesamtblock, entscheide ich spontan.
INPUT, FLOW, PRIORITY
- Input Race Conditions zwischen Movement und Combat entfernt
- Combat besitzt jetzt klare Priorität über Movement
- Attack kann nicht mehr zweimal im selben Frame starten
- Heavy Tap Doppel-Trigger beim Spammen gefixt
- Accept-Window für Attack-Inputs stabilisiert
- Cancel löscht zuverlässig alle Pending-Trigger
- Trigger-Cleanup zentralisiert (Cancel, Exit, Interrupt)
- Input-Flow zwischen Combat, Movement und Kamera entkoppelt
COMBAT LOGIC, COMMIT SYSTEM
- Charged Heavy Release kann nicht mehr hängen bleiben
- Charge-State wird bei Cancel immer korrekt zurückgesetzt
- Ghost-Releases nach Hold entfernt
- Commit-Enter und Commit-Exit feuern deterministisch
- Movement-Lock während Commit zuverlässig
- Turn-Lock während Commit greift korrekt
- RunAttack respektiert Commit-Status vollständig
- Sliding-Impulse während Attack reduziert
- Movement-Dämpfung während Attack stabilisiert
- Re-Slide nach Angriff durch falsche CombatActive-Logik gefixt
MOVEMENT, LOCOMOTION
- Run-Gate eingebaut, damit Mini-Bewegungen keinen Sprint triggern
- Idle zu Run Flackern entfernt
- Walk-Phase für Run-Transitions stabilisiert
- Blend-Rückkehr zu Walk deterministisch gemacht
- Locomotion kehrt nach Attack immer sauber zurück
TURN SYSTEM, 180°, SLIDE
- Turn180 kann nicht mehr während Attack oder Recovery starten
- Turn180-Exit hängt nicht mehr am Sprint-Input
- Turn kehrt stabil in Locomotion zurück
- RunAttack kann Turn-System nicht mehr zerstören
- Orbit, Turn180 und RunAttack Interaktionen synchronisiert
CAMERA, ORBIT, OWNERSHIP
- Orbit-Kamera respektiert Commit-Status korrekt
- Kamera-Turn wird während Attack vollständig gesperrt
- Kamera wird nach Commit sauber freigegeben
- Zuständigkeiten zwischen Kamera, Movement und Combat bereinigt
ANIMATOR, PARAMETER, STATES
- Animator-Trigger bleiben nicht mehr hängen
- State-Cleanup nach Interrupt stabilisiert
- Übergänge zwischen Walk, Run und Attack robuster gemacht
- Animator-Parameter-Handling vereinheitlicht
CODE, STABILITY
- CombatController wieder sauber kompilierbar gemacht
- Ungültige Variablenreferenzen entfernt
- Doppelte Modifier bereinigt
- Safety-Checks unabhängig von Fremdklassen gemacht
- Null-Referenzen im Combat-Flow abgesichert