Spieleentwicklungsprojekte mit Verwaltung großer Assets mittels Git LFS

Studierende und Lehrende profitieren von einer effizienten Versionskontrolle von Spieleentwicklungsprojekten, die große Assets wie Texturen und Modelle enthalten, unter Verwendung von Git LFS zur Verwaltung von Dateigrößen bei gleichzeitiger Aufrechterhaltung der vollständigen Integration in den Entwicklungs-Workflow.

Idea
Plan
Prototype
Pilot
Live

Übersicht

Mehrwert: Studierende und Lehrende profitieren von einer effizienten Versionskontrolle von Spieleentwicklungsprojekten, die große Assets wie Texturen und Modelle enthalten, unter Verwendung von Git LFS zur Verwaltung von Dateigrößen bei gleichzeitiger Aufrechterhaltung der vollständigen Integration in den Entwicklungs-Workflow.

Problem: Verwendete GitLab-Funktionen: Git LFS für große Binärdateien; GitLab CI/CD für automatisiertes Erstellen und Testen; Meilensteine zur Planung von Phasen; Issues für Verfolgung und Kommunikation; geschützte Branches zur Verhinderung unbefugter Änderungen; GitLab Pages zur Präsentation von Projekten. Anforderungen der Unreal Engine: Git LFS ist aufgrund großer Assets (Texturen, 3D-Modelle) erforderlich. Projekte können über GitLab CI/CD erstellt und exportiert werden.

Lösung: Implementierung der Git LFS (Large File Storage)-Integration mit GitLab, um große Spiele-Assets effizient zu handhaben und gleichzeitig die Vorteile der Versionskontrolle zu nutzen. Automatisierte CI/CD erstellt Unreal Engine-Projekte und generiert bereitstellbare Artefakte.

Wer profitiert

Primär

  • Studierende
    • Effiziente Versionierung großer Dateien
    • Kollaborative Projektentwicklung
    • Automatisierte Build-Prozesse
    • Professionelle Entwicklungs-Workflows
  • Lehrende
    • Einfache Projektüberwachung
    • Standardisierte Entwicklungsumgebung
    • Automatisierte Bewertungsmöglichkeiten
    • Portfolio-Management

Sekundär

  • Systemadministrator*innen
    • Optimierte Speichernutzung
    • Skalierbare Infrastruktur
    • Reduzierte Bandbreitenanforderungen

Wann geeignet

  • Spieleentwicklungskurse
  • Projekte mit großen binären Assets
  • Kollaborative Visual Computing-Projekte
  • 3D-Modellierungs- und Animationsprojekte
  • Projekte, die automatisierte Builds erfordern

Wann nicht geeignet

  • Einfache Code-only-Projekte
  • Kleine Dateigrößen (unter 100 MB insgesamt)
  • Einzelbenutzerprojekte ohne Zusammenarbeit
  • Projekte ohne große Medien-Assets

Prozess

  1. Einrichten des GitLab-Repositories mit aktiviertem Git LFS
  2. Konfigurieren des LFS-Trackings für Asset-Dateitypen
  3. Studierende klonen das Repository und installieren LFS
  4. Entwickeln des Spiels/Visual Computing-Projekts mit großen Assets
  5. Committen von Änderungen, wobei LFS große Dateien automatisch behandelt
  6. CI/CD-Pipeline erstellt und testet das Projekt
  7. Generierte Artefakte werden zum Download/zur Präsentation gespeichert

Voraussetzungen

Personen

  • Studierende
  • Lehrende für Visual Computing
  • GitLab-Administrator*in
  • Technisches Support-Personal

Daten-Inputs

  • 3D-Modelle
  • Texturen und Bilder
  • Audiodateien
  • Animationsdateien
  • Spielprojektdateien

Tools & Systeme

  • GitLab mit Git LFS-Unterstützung
  • Unreal Engine oder ähnlich
  • GitLab CI/CD
  • Hochleistungs-Runner
  • Objektspeicher für LFS

Richtlinien & Compliance

  • Speicherquotenrichtlinien
  • Akademische Softwarelizenzierung
  • Asset-Nutzungsrechte
  • Datenaufbewahrungsrichtlinien

Risiken & Gegenmaßnahmen

  • Hohe Speicherkosten für LFS-Objekte

    • Speicherquotenmanagement
    • Asset-Optimierungsrichtlinien
    • Regelmäßige Bereinigung alter Versionen
    • Effizientes Speicher-Backend
  • Build-Fehler aufgrund fehlender großer Dateien

    • LFS-Integritätsprüfung
    • Automatisierte Abhängigkeitsüberprüfung
    • Validierung der Build-Umgebung
  • Langsame Klon-/Downloadzeiten für Studierende

    • Selektive LFS-Downloads
    • Lokales LFS-Caching
    • Optimierte Netzwerkkonfiguration

Erste Schritte

Um diesen Anwendungsfall zu implementieren, benötigen Sie GitLab mit LFS-Unterstützung, ein geeignetes Speicher-Backend und Build-Runner, die in der Lage sind, große Spieleentwicklungsprojekte zu verarbeiten.

  1. Konfigurieren der GitLab-Instanz mit Git LFS-Unterstützung und Speicher-Backend
  2. Einrichten des Projekt-Repositories mit LFS-Tracking für relevante Dateitypen
  3. Installieren und Konfigurieren der Build-Umgebung für die Game Engine
  4. Erstellen einer CI/CD-Pipeline für automatisiertes Erstellen und Testen
  5. Schulung der Studierenden in Git LFS-Workflows

FAQ

Wie viel Speicher wird typischerweise für Spieleentwicklungsprojekte benötigt?

Projekte können je nach Asset-Komplexität zwischen 1 und 10 GB groß sein. Planen Sie aufgrund der Versionshistorie die 2-3-fache Repository-Größe ein.

Können Studierende von mehreren Standorten aus an Projekten arbeiten?

Ja, Git LFS ermöglicht eine verteilte Entwicklung mit effizienter Synchronisierung großer Assets über verschiedene Standorte hinweg.

Was passiert, wenn die LFS-Speicherquote überschritten wird?

Push-Vorgänge werden blockiert, bis Speicherplatz freigegeben oder die Quote erhöht wird. Überwachen Sie die Nutzung und implementieren Sie Bereinigungsverfahren.

Glossar

Git LFS
Git Large File Storage - Erweiterung zur effizienten Versionierung großer Dateien in Git-Repositories
Binäre Assets
Nicht-Text-Dateien wie Bilder, Modelle und Audio, die nicht effizient verglichen (diff) oder zusammengeführt (merge) werden können
Objektspeicher
Skalierbares Speichersystem, das für die Speicherung großer Mengen unstrukturierter Daten optimiert ist
Unreal Engine
Beliebte Spieleentwicklungsplattform, die die Erstellung von 3D-Spielen und Visual Computing-Anwendungen unterstützt