GMod harita adları ve sürümleri: önek, dosya adı, güncellemeler
GMod haritasına ad verme: önek, dosya adı, sürüm şeması ve bir güncellemenin neden asla eski dosya adını korumaması gerektiği. Eşlik eden dosyaların listesiyle.
Bir GMod haritası küçük harfler, rakamlar ve alt çizgilerden oluşan bir dosya adı alır; başında oyun modunun öneki, sonunda bir sürüm etiketi bulunur, örneğin rp_harbourtown_v2. Yayınlanan her değişiklik yeni bir ad alır. Nedeni şu: istemci ve sunucu bir haritayı dosya adından tanır ve o adla zaten bir dosyası olan kişi yenisini indirmez. İki dosya birbirinden farklıysa bağlantı denemesi bir hata mesajıyla sona erer.
Önekler: GMod onlarla gerçekte ne yapar
Önek bir gelenektir, bir açma kapama düğmesi değil. Oyunla birlikte gelen Lua kodunda bir yerde değerlendirilir: ana menü haritaları kategorilere ayırmak için onu kullanır ve sdk_, test_ ya da vst_ ile başlayan haritaları gizler. Eşleştirme garrysmod/lua/menu/getmaps.lua dosyasındadır. Orada önek, ilk alt çizgiye kadar olan ve onu da içeren her şeydir; ad da önce küçük harfe çevrilir. Buna ek olarak her oyun modu, metin dosyasındaki maps anahtarı üzerinden kendi kalıplarını kaydedebilir. Sandbox ^gm_|^gmod_|^phys_ kalıbını, TTT ise ^ttt_ kalıbını kaydeder.
| Önek | Menüdeki kategori |
|---|---|
gm_, gmod_, phys_ | Sandbox |
ttt_ | Trouble in Terrorist Town |
rp_ | Roleplay |
zs_, zm_, zombiesurvival_ | Zombie Survival |
ph_ | Prop Hunt |
surf_ | Surf |
bhop_ | Bunny Hop |
de_, cs_ | Counter-Strike |
Hiçbir kalıba uymayan her şey "Other" altına düşer. Murder oyun modu kurulu olmadığı sürece mu_ da buna dahildir: önek, oyunla birlikte gelen listede yoktur. Murder, ^md_|^mu_|^murder_ kalıbını kendi maps anahtarı üzerinden kendisi kaydeder. Bir sunucuda hangi oyun modunun çalışacağını harita değil, +gamemode başlatma parametresi belirler. Haritanın yapıldığı modun önekini seç.
Dosya adı için kurallar
- Yalnızca küçük harf. Linux büyük/küçük harfe duyarlıdır, Windows değildir. Senin makinende açılan bir
RP_Town.bspdosyasını bir Linux sunucusu ya da bir FastDL web sunucusurp_town.bspadıyla bulamaz. Bir Workshop addon'u oluşturulurkengmad.exebüyük harfleri[Filename contains captial letters]ile işaretler. - Boşluk, Türkçe karakter ya da özel karakter yok. Harita adı,
changelevelgibi konsol komutlarının bir argümanıdır ve FastDL adresinin bir parçasıdır. Konsolda boşluk argümanları ayırır, bir web adresinde ise kodlanması gerekir.ailezarası harfler,0ile9arası rakamlar ve_ile ikisinden de kaçınırsın. - Kısa ve benzersiz. Bu yazı sabit bir uzunluk sınırı vermiyor, çünkü GMod için güvenilir bir kaynak bulunamadı. Haritan başka birine ait yaygın bir haritayla aynı adı taşıyorsa, tek ad altındaki iki sürümde olduğu gibi aynı çakışmayı yaşarsın.
- Cubemap'leri oluşturmadan önce karar ver. Cubemap'ler pakfile içinde
materials/maps/<mapname>/altında saklanır. Bkz. cubemap'leri ve yansımaları düzeltme.
Uzun ömürlü bir sürüm şeması
Motor bir sürüm etiketi şart koşmaz. Aşağıdaki sonekler topluluk pratiğidir:
| Sonek | Anlamı | Kullanım |
|---|---|---|
_a1, _a2 | Alpha | layout testleri, henüz detay yok |
_b1, _b2 | Beta | oynanabilir, hâlâ değişiyor |
_rc1 | Release candidate | başka bir hata çıkmadıkça bitmiş sayılır |
_v1, _v2 | Release | yayınlanmış sürümler, sırayla numaralandırılır |
_final | "final" | kaçınmak daha iyi |
_final bir tuzaktır, çünkü final sürümden sonra sık sık başka bir hata çıkar. O zaman sonraki dosyanın adı _final2 ya da _final_fix olur ve hangisinin daha yeni olduğunu addan kimse anlayamaz. Çoğu proje için test sırasında _b1, _b2, ardından _v1, _v2, _v3 yeterlidir.
Küçük düzeltmelerde de sayıyı artır, çünkü her değişiklik farklı bir dosya üretir.
İki dosya aynı adı taşıdığında ne olur
Bağlanırken istemci maps/<mapname>.bsp dosyasının kendisinde zaten olup olmadığına bakar. Dosya yoksa onu indirir ve garrysmod/download/maps altına kaydeder. Dosya varsa istemci hiçbir şey indirmez ve motor yalnızca sağlama toplamını sunucununkiyle karşılaştırır. İkisi farklıysa bağlantı denemesi şu biçimde bir mesajla sona erer:
Your map [maps/rp_harbourtown_v2.bsp] differs from the server's.
Oyuncunun o zaman eski dosyayı elle silmesi gerekir ve bunu çok az kişi bilir. Aynı karışıklık başka yollarla da ortaya çıkar:
- FastDL: Web alanında hâlâ eski
.bsp.bz2durur, oyun sunucusunda ise yeni BSP çoktan vardır. Her yeni oyuncu yanlış dosyayı indirir. - Workshop: Steam aboneleri otomatik olarak günceller. GMod wiki'sine göre bir sunucu addon'larını her yeniden başlatmada kontrol eder. Sunucu hâlâ eski sürümle çalışıyorsa ya da
host_workshop_autoupdatedeğeri0ise, istemcide ve sunucuda aynı adı taşıyan farklı dosyalar olur. - Workshop ve FastDL karışık: Oyuncuların bir kısmında harita Workshop'tan, bir kısmında
download/mapsklasöründen gelir. Tek bir adla kimin hangi sürüme sahip olduğunu kimse söyleyemez. - Kayıtlı sunucu verileri: DarkRP kapı ayarlarını, jail konumlarını ve job spawn'larını harita adına göre, kapıları ayrıca harita entity'sinin ID'sine göre saklar. Aynı adı taşıyan bir güncelleme entity'leri değiştirirse eski kayıtlar yanlış kapıları gösterebilir.
Yeni bir dosya adı bunların hepsini ortadan kaldırır: eski dosya oyuncunun diskinde kalır ama artık sorun çıkarmaz. Sunucu, FastDL ve Workshop kurulumu GMod sunucusuna harita kurma yazısında anlatılıyor.
Harita adını neler taşır ve onunla birlikte yeniden adlandırılmalıdır
Bir BSP'yi dosya gezgininde yeniden adlandırmak yetmez. Valve Developer Community'ye göre o zaman modeller ve prop'lar cubemap yansımalarını kaybeder, çünkü motor cubemap'leri pakfile içinde BSP'nin dosya adı altında arar. Temiz yol: VMF'yi yeniden adlandırıp yeniden derlemek. Ardından şu dosyalar da onunla birlikte taşınır:
| Dosya | İçerik |
|---|---|
maps/<mapname>.nav | Nextbot'lar için navmesh |
maps/graphs/<mapname>.ain | Klasik NPC'ler için node graph |
scripts/soundscapes_<mapname>.txt | Haritanın soundscape'leri |
maps/<mapname>_level_sounds.txt | Haritanın soundscript'leri |
maps/<mapname>_particles.txt | Haritanın parçacık manifestosu |
maps/thumb/<mapname>.png | Harita seçimindeki küçük resim |
maps/<mapname>_ttt.txt | TTT için silah ve spawn script'i |
Bir de adı metin olarak içeren her şey var: sunucu yapılandırmasındaki başlangıç haritası, harita oylama listeleri ve game.GetMap() değerini sabit bir adla karşılaştıran Lua kodu. .ain dosyasını kopyalama, yeni BSP'nin onu sıfırdan oluşturmasına izin ver; bu, navmesh ve AI node'lar yazısında anlatılıyor. Derleme, cubemap'ler, paketleme ve test sırası yayın öncesi kontrol listesinde gösteriliyor.
Changelog: alıcılara ve sunucu sahiplerine ne kazandırır
Yeni bir dosya adı sunucu sahipleri için iş demektir: başlangıç haritasını değiştirmek, FastDL'i güncellemek, konumları yeniden ayarlamak. Bir changelog onlara buna değip değmeyeceğini söyler. İşe yarar kayıtlar dört soruyu yanıtlar:
- Ne düzeltildi, ne yeni?
- Kapılar, spawn'lar ya da başka entity'ler değişti mi, yani kayıtlı sunucu verilerinin yeniden ayarlanması gerekiyor mu?
- Yeni ya da farklı bir içerik gerekiyor mu?
- Navmesh ve node graph yeniden oluşturuldu mu?
Alıcılar için sürüm geçmişi ayrıca haritanın bakımının yapıldığının bir işaretidir. bspmarket.de'de yeni bir sürümü Creator alanında bir sürüm numarası ve isteğe bağlı bir changelog ile gönderirsin. Sürüm yayınlanmadan önce incelenir ve ardından ürün sayfasında "Sürümler ve changelog" altında görünür. Güncellemeler alıcılar için ücretsizdir. İyi bir ürün sayfasında başka nelerin bulunması gerektiği GMod haritası satmak yazısında anlatılıyor.
Sık sorulan sorular
Her sürüm için yeni bir Workshop öğesi oluşturmam gerekir mi?
Hayır. GMod için Workshop kuralları, yeni sürümlerin mevcut öğenin güncellemesi olarak yayınlanmasını önerir. Yine de içindeki BSP'ye yeni sürüm adını ver: böylece kimse iki sürümü karıştıramaz ve sunucuların yalnızca başlangıç haritalarını değiştirmesi gerekir. Her iki durumda da bir sunucu güncellemeyi ancak yeniden başlatıldığında alır. GMod wiki'sine göre haritanın daha eski bir sürümünü hâlâ çalıştıran bir sunucu oyuncuların katılmasını engelleyebilir. Süreç GMod haritasını Workshop'a yükleme yazısında anlatılıyor.
Harita birden fazla oyun moduna uyuyorsa hangi öneki kullanmalıyım?
Öncelikli olarak hangi mod için yapıldıysa onunkini. Önek, menüdeki kategoriyi ve oyuncuların beklentisini belirler. Bir rp_ haritası yine de Sandbox'ta başlatılabilir.
Sunucudaki ve FastDL'deki eski sürümleri ne yapmalıyım?
Sunucu yeni sürüme geçer geçmez onları sil; .bsp.bz2 dosyası ile eski .nav ve .ain dosyaları da buna dahil. Oyuncuların makinelerindeki eski kopyalar zarar vermez, çünkü adları farklıdır.