Projeler'e Geri Dön

Modular Inventory System

  • Unreal Engine 5
  • C++
  • Gameplay Tags
  • Multiplayer

Item, envanter, ekipman ve silahlar için oyundan bağımsız, kompozisyon tabanlı ve multiplayer destekli bir framework: yeni bir item, yeni bir class değil, fragment'lardan oluşan bir data asset'tir.

ShooterGame'de envanter slotları ve silah HUD'u

Proje Özeti

Item, envanter, ekipman ve silahlar için oyundan bağımsız, kompozisyon tabanlı bir framework. Yeni bir item eklemek için class yazmak gerekmez; item, fragment'lardan oluşan bir data asset'tir. Slot'lar birleştirilebilir kurallara sahip nesnelerdir, ekipman binding'ler üzerinden bağlanır ve her şey Blueprint'te override edilebilir. Envanter, sunucu yetkili replikasyon ve istemci tarafı tahminle multiplayer'da çalışır.

Benim Rolüm

Plugin'i bağımsız geliştirici olarak tasarlıyor ve geliştiriyorum. Fab'da satışa hazır hale getirmek için multiplayer desteğini ekledim ve 45 sayfalık GitBook dokümantasyonunu yazdım.

Geliştirdiğim Sistemler

  • Fragment Tabanlı Item'lar

    Item'lar, fragment'lardan oluşan data asset'ler olarak tanımlanır.

  • Konteyner ve Slot Kuralları

    Gameplay Tag'lerle anahtarlanan birden fazla konteyner; slot'lar birleştirilebilir Slot Rule'larla sınırlandırılır ve index, tag ya da doğrudan adreslenir.

  • İşlemsel API

    Tag tabanlı hata nedenleri ve önizleme moduyla işlemsel (transactional) ekle / çıkar / taşı API'si.

  • Ekipman Binding'leri

    Aktif slot'u veya bir konteynerin içeriğini kuşanan, Blueprint ile genişletilebilir binding'ler.

  • Silah Katmanı

    6 atış modu, hitscan, mermi, ısıya bağlı saçılma ve desenli geri tepme (pattern recoil).

  • Multiplayer

    Sunucu yetkili envanter (FastArray replikasyonu), sahibi için tahmin edilen seçim, diğer oyuncular için temsili ekipman ve konteyner bazında görünürlük.

  • Sunucu Doğrulamalı Atışlar

    İstemcinin bildirdiği atışlar lag compensation ile sunucuda doğrulanır; mermi sayısı istemcide tahmin edilir.

  • Birinci / Üçüncü Şahıs

    Ekipman her makinede doğru görünüm mesh'ine yerleşir; aksiyonların ağda nasıl çalışacağı data asset'ten seçilir.