Ada içi alışveriş işlemlerinin çeşitli yönleriyle ilgili örnek uygulamaların yanı sıra vitrinini test etme ve hata ayıklama ile ilgili ipuçlarını öğren.
Ada İçi Alışveriş İşlemleri Verse Cihazını Kullanma
Ada İçi Alışveriş İşlemleri Verse cihazı, ada içi alışveriş işlemleri için bir şablon içerir. Bu, Verse API’sindeki Marketplace modülünün temel unsurlarına yönelik tüm uygulamalara sahiptir. Bunlara eşyalar, teklifler, paket teklifler ve varsayılan mağaza kullanıcı arayüzü kullanılarak satın alımların yönetilmesi dahildir. Bu kodu bir kılavuz olarak kullanmak, vitrinini hızlı bir şekilde kurmana yardımcı olabilir.
Cihaza erişmek için:
Verse Gezgini’ne git.
Proje adına sağ tıkla.
Projeye Yeni Verse Dosyası Ekle’yi seç.
Ada İçi Alışveriş İşlemleri Cihazı’nı seç.
Kodu olduğu gibi kullanmak için Verse koduna git ve dosyada aşağıdakileri düzenle:
Eşya adları
Açıklamalar
Simgeler
Koddaki varsayılan adları, ürünlerine ve tekliflerine uygun adlarla değiştir.
Kodlama Örnek Uygulamaları
Verse kodunu iyileştirerek kodunun ölçeklenebilirliğini ve adanın performansını artırabilirsin.
İş Akışını Düzenleme
Programlamada yaygın olarak kullanılan bir örnek uygulama, ilgi alanlarının ayrılmasıdır. Dosyaların ve fonksiyonların belirli bir görevi yerine getirmeye odaklanmasını tercih etmen doğru olacaktır; böylece projenin kapsamı büyüdükçe ileride bunları güncellemek daha kolay hale gelecektir.
Bu şekilde düzenlenmiş daha küçük ve net kod dosyalarının okunması ve anlaşılması daha kolay olur. Aynı zamanda kodda hata ayıklama da kolaylaşır.
Bunu alışveriş işlemlerine aşağıdaki yollardan uygulayabilirsin:
Eşya tanımlarını ayrı bir dosyaya koymak.
Teklifleri ve paket teklifleri ayrı bir dosyaya koymak.
Tüm statik ve önceden tanımlanmış teklifleri yöneten bir cihaz oluşturmak.
Yalnızca dinamik teklifleri yöneten bir cihaz oluşturmak.
Yalnızca satın alımları yöneten bir cihaz oluşturmak.
Modüllerle Düzenleme
Modüller, birden fazla dosyada kullanılmak üzere yeniden dağıtılabilecek atomik kod birimleridir. Modüller, bir modülün halihazırda kullanılmış olduğu dosyalardaki bağımlılıklar bozulmadan zaman içinde değiştirilebilir. Ürün tanımları gibi uzun veya tekrarlayan kod birimlerini farklı bir dosyaya ayırabilir ve ardından bunları using ifadesiyle içe aktarabilirsin.
Modül kullanmanın en büyük avantajlarından biri de modülün bir üyesi için bir değişkenin yalnızca bir yerde tanımlanmasının yeterli olmasıdır. Böylece modülü içe aktararak ve değişkenlere referans vererek aynı verileri farklı Verse kodu dosyaları genelinde paylaştırabilirsin. Modülden gelen verilerde bir hata varsa, kontrol etmen gereken hata noktaları modülün içeriğini kullandığın tüm yerler değil, yalnızca modülün kendisi olur.
Aşağıdaki kod parçacığı, CornSeedPacket için ürün bilgilerini bir modülde nasıl tanımlayabileceğini göstermektedir.
EntitlementInfo<public> := module:
CornSeedPacket<public> := module:
Name<public><localizes> : message = "Corn seed pack"
Description<public><localizes> : message = "A pack of corn seeds. Opening a pack yields 10 corn seeds for planting."
ShortDescription<public><localizes> : message = "Contains 10 corn seeds for planting."Hem EntitlementInfo hem de CornSeedPacket, tüm ürün bilgilerini içe aktarmana ve CornSeedPacket’ın, Name (Ad) değişkeni gibi üye değişkenlerine doğrudan erişmene olanak tanıyacak şekilde modüller olarak tanımlanmıştır.
Bu kod parçacığı, corn_seed_pack ürününün tanımlanmasına yardımcı olmak için EntitlementInfo modülünün nasıl içe aktarılacağını göstermektedir.
Name gibi değişkenler için dizeleri yeniden yazmanın gerekli olmadığına, çünkü değişkene doğrudan CornSeedPacket modülünden referans verebileceğine dikkat et. Böylece yazım hataları gibi görsel hatalara ilişkin risk azalmış olur.
Entitlements<public> := module:
using { EntitlementInfo }
# Using custom entitlement class to distinguish your entitlements.
my_island_entitlement<public> := class<abstract><castable>(entitlement){}
corn_seed_pack<public> := class<concrete>(my_island_entitlement):
var Name<override> : message = CornSeedPacket.Name
var Description<override> : message = CornSeedPacket.Description
var ShortDescription<override> : message = CornSeedPacket.ShortDescription
using ifadesi, içe aktarmak istediğin modülün dosya yolunu gerektirir. Bu örnekte, modülün aynı klasörde olduğu varsayıldığı için dosya yoluna ihtiyacın yoktur.
Ada Performansını İyileştirme
Deneyiminin yanıt hızını artırmak için eşya satın alma ve verme metotlarını <suspends> efektiyle tanımlayabilir ve bunları çağırmak için spawn kullanabilirsin.
Böylece, oyun mantığının diğer yönleri yürütülmeye devam ederken TryBuyOffer asenkron bir şekilde tamamlanacaktır. Ayrıca bu şekilde, oyununun bir alışveriş işlemi tamamlanana kadar duraklaması da önlenmiş olur.
TryBuyOffer(Player:player, Offer:offer)<suspends>:void=
Result := BuyOffer(Player, Offer)
OnButtonInteraction(Agent:agent):void=
if (Player := player[Agent]):
spawn{TryBuyOffer(Player, OfferType)}
Simge Örnek Uygulamaları
Oyun dokularının oyun içinde gerektiği gibi işlenmesi için özel gereksinimler mevcuttur. UEFN’de içe aktarılan görsellerle doku oluştururken, kaynak görsel dosyasının yükseklik ve genişliğinin ikinin kuvveti şeklinde olduğundan emin olmalısın. Bu, adanın farklı platformlardaki uyumluluğunu ve kararlılığını artırır.
İkinin kuvveti, daha az belleğe sahip platformlarda doku çözünürlüğünü azaltmak için doku akışında da kullanılır.
Doku akışı aşağıdakilere yardımcı olur:
Bir dokunun çözünürlüğünü değiştirme
Oyunun ne kadar hızlı yükleneceğini belirleme
Oyunun görsel kalitesini artırma
GPU bellek tasarrufu sağlama
İkinin kuvveti kuralı ve dokuların yeniden boyutlandırılması hakkında daha fazla bilgi için Dokuları Yeniden Boyutlandırma kısmına bakabilirsin.
UEFN’e özel öğeler aktarma hakkında bilgi için Öğeleri İçe Aktarma kısmına bakabilirsin. Verse’te dokular gibi öğeleri nasıl kullanıma sunacağın konusunda bilgi için Öğeleri Kullanıma Açma kısmına bakabilirsin.
Ürünlerini Test Etme ve Bunların Hatalarını Ayıklama
Hem Canlı Düzenleme hem de Özel Oynanış Testi oturumları hata ayıklama oturumlarıdır. Hata ayıklama oturumları; işlemler, ürünler ve teklif davranışları üzerinde aşağıdaki etkilere sahiptir:
İşlemler hesaplardan V-Papel eksiltmez.
Verilen ve satın alınan ürünler, hata ayıklama oturumu sonunda kaldırılır.
Hata ayıklama oturumlarının Hata Ayıklama Komutu menüsüne erişimi vardır.
Tekliflerin, adanın özel ve oynanış testi sürümünde mevcut olmalı ve test aşamasında kullanılmak üzere tüm takım arkadaşların için erişilebilir olmalıdır. Sunulan eşyalar canlı olarak kabul edilmez. Teklifler yalnızca ada yayınlandıktan ve herkese açık hale geldikten sonra canlı olur.
Hata Ayıklama Komutu Menüsüne Erişim
Hata Ayıklama Komutu menüsüne, PC’de Esc tuşuna veya oyun kumandasında Start/Options düğmesine basıp menüden Hata Ayıklama Komutları seçeneğini seçerek erişebilirsin.
Mağaza Hata Ayıklama Komutları
Vitrinin için hata ayıklama komutlarını Mağaza Hata Ayıklama Komutları altında bulabilirsin. Burada aşağıdaki komutlara erişimin vardır:
Komut Adı | Açıklama |
Vitrini Aç | Tüm kullanılabilir ürünlere dair teklifleri içeren dinamik bir mağaza kullanıcı arayüzü gösterir ve oyuncuların ürünleri ayrı ayrı satın almasına olanak tanır. Böylece, test etmek istediğin ürünü doğrudan seçebilirsin. |
Tüm Ürünleri Ver | Bu oyuncunun çantasını, oyuncu, tüm kullanılabilir ürünlere maksimum sayıda sahip olacak şekilde doldurur. Oyuncuların bir alanda erişmemeleri gereken bir eşyaya erişimleri olup olmadığını kontrol etmek için oyun içi davranışı da test edebilirsin. |
Bir Ürün Ver | Oyuncuya her üründen bir adet verir. Bu komut, oyuncuya çok sayıda ürün verirken aynı zamanda oyuncunun çantasında maksimum miktarda ürüne ulaşmadan dayanıklı olmayan ürün satın alımlarını test etmek için yer de bırakır. Ürünün verilmesi Oyuncuların bir alanda bir eşyaya erişimleri olmaması gereken durumlarda o eşyaya erişimleri olup olmadığına dair oyun içi davranışı da test edebilirsin. |
Ürünleri Zorla Kaldır | Oyuncunun sahip olduğu tüm ürünleri çantasından kaldırır. Satın alma tekliflerini test etmeye devam edebilmen için oyuncunun çantasını sıfırlamanı sağlar. Bu komut, ürünler oyuncunun çantasından kaldırıldığında Bu komut, çantayı hızlı bir şekilde sıfırlayarak testte yinelemeyi hızlandırmak için de yararlı olabilir. |
Sahip Olunan Ürünleri Yazdır | Sahip olunan tüm ürünleri çıktı kaydına yazdırır. |
Satın Alımlar Her Zaman Başarısız Olur | Varsayılan olarak KAPALI durumdadır. KAPALI olarak ayarlandığında, satın alımlar tasarlandığı gibi davranır. AÇIK olarak ayarlandığındaysa satın alımlar, başarılı olacağını gösteren koşullara bakılmaksızın her zaman başarısız olur. Satın Alımlar Her Zaman Başarısız Olur, bir satın alma girişiminin başarısız olduğunu belirtecek şekilde false değerini döndüren |