VFS Dosya Sistemi Hakkında

IFS

Yasaklanmış Üye
Cezalı
Premium Üye
Mesaj
248
Çözümler
6
Beğeni
205
Puan
779
Ticaret Puanı
0
Merhabalar, normalde bu kategoride konu kesinlikle açmam ancak sanal dosya sisteminin arandığını gördüm, gerçi archiver'in sc'si git'de paylaşılmış üzerinde biraz olsun kafa yorulsaydı bir tutorial yeniden oluşturulabilirdi. Her neyse bu yüzden bir konu açıp VFS hakkında ne işe yaradığından bahsetmek istedim. Belki birileri benzer bir sistem tasarlamak ve bunu topluluğa sunmak için başka bir ilham alabilir. Daha önce bir göz atma şansım oldu, bu yüzden mantığını biliyorum, en azından altyapısında çalıştırmak istediğiniz oyun için. Ancak bu mevcut (kayıp olan) yazılım kodunun aşağıda anlattığım şekilde çalışıp çalışmadığından gerçekten emin değilim. Hatırladığım kadarıyla, LZO yerine XOR ile paket güvenliğini sağlıyordu. Runtime hiç denemedim, sadece koda baktım, yazılımın geliştiricisi daha fazla ayrıntı verebilir. Her neyse, VFS'nin genel mantığı aşağıdaki gibidir;

MMO oyunları genellikle birden fazla işletim sistemi üzerinde çalışacak şekilde tasarlanır. VFS'nin birincil amacı dosya sistemleri arasındaki farklılıkları kısmen soyutlamak ve geliştiriciye tek bir dosya sistemi arayüzü sağlamaktır. Bu, her platform için ayrı ayrı çalıştırılabilir kod yazma ihtiyacını ortadan kaldırarak geliştirme sürecini basitleştirir. Performans tarafında, büyük gb veriler yüksek dosya erişim hızları gerektirdiğinden, özellikle yüksek çözünürlüklü grafikler, vfx, büyük yükseklik haritaları vb. söz konusu olduğunda. VFS, dosya erişimini ve önbellekleme mantığını optimize ederek dosya yükleme sürelerini azaltır ve böylece oyunun genel performansını artırır. Bulut teknolojimizde aynı mantığı kullanıyoruz ancak çok daha gelişmiş bir VFS kullanıyoruz. Bunu aşağıda görmenize izin vereceğim, ancak bunu yapmadan önce, size izlemek üzere olduğunuz videonun ne hakkında olduğunu söyleyeyim.
  • VFS dosya sisteminin en önemli özelliklerinden biri ağ tabanlı dosya erişimidir. Çok oyunculu oyunlar ve bulut tabanlı oyun platformları (HeroEngine, LaniEngine, vb.) dosyalara uzaktan erişim gerektirir. VFS, ağ üzerinden dosya erişimini yerel dosya erişimiymiş gibi yönetmenizi sağlar. Anlayacağınız şekilde bir örnek vermek gerekirse;
- patch.aix, patch.apx dosyalarının içeriğini ekstra bir dosya açıcı veya kapatıcı gerektirmeden bir depo tarayıcı tarzı araç aracılığıyla anında güncellemenizi sağlar. Aix ve apx dosyalarındaki her şey ağ üzerinden istemciye aktarılır ve yerel önbellekleme sağlanır. İstemci tarafında lzo veya xor obfuscation'a gerek yoktur. Bu işlem yalnızca asset güvenliği için gereklidir, güvenlik bu seviyede (kısmen) gerçekleştirilir.
Aşağıdaki videoda izleyeceğiniz oyun istemcisi ise tamamen bulut bir oyun istemcisidir. Mantığı çok daha farklıdır, sadece assetleri değil istemci ve sunucu tarafındaki source compile işlemlerini de gerçek zamanlı olarak gerçekleştirmektedir.
Sadece anlaşılır olması için referans amaçlı eklenmiştir.
Linkleri görebilmek için giriş yap veya kayıt ol.
Umarım mantığını daha iyi anlamanızı sağlamıştır. Gerçekten işlerimden sonra boş vaktim olursa tamamen geliştirmeye açık bir VFS dosya sistemi yazmaya çalışacağım. Konu genişletilebilir, tartışmaya açılabilir, vakit buldukça katılırım. İnsanlar bir çözüm ve fayda bulana kadar destek vereceğim.

İyi eğlenceler.

Konunun bu forumun dışına taşmamasını (alıntılanmamasını)
Linkleri görebilmek için giriş yap veya kayıt ol.
 
üzerinde biraz olsun kafa yorup tutorial paylaşırsan sevinirim srcleri paylaşılmış zaten
 
Geri
Üst