Sunucu ve topluluk

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.

ÖnekMenü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.bsp dosyasını bir Linux sunucusu ya da bir FastDL web sunucusu rp_town.bsp adıyla bulamaz. Bir Workshop addon'u oluşturulurken gmad.exe büyük harfleri [Filename contains captial letters] ile işaretler.
  • Boşluk, Türkçe karakter ya da özel karakter yok. Harita adı, changelevel gibi 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. a ile z arası harfler, 0 ile 9 arası 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:

SonekAnlamıKullanım
_a1, _a2Alphalayout testleri, henüz detay yok
_b1, _b2Betaoynanabilir, hâlâ değişiyor
_rc1Release candidatebaşka bir hata çıkmadıkça bitmiş sayılır
_v1, _v2Releaseyayı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.bz2 durur, 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_autoupdate değeri 0 ise, 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/maps klasö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>.navNextbot'lar için navmesh
maps/graphs/<mapname>.ainKlasik NPC'ler için node graph
scripts/soundscapes_<mapname>.txtHaritanın soundscape'leri
maps/<mapname>_level_sounds.txtHaritanın soundscript'leri
maps/<mapname>_particles.txtHaritanın parçacık manifestosu
maps/thumb/<mapname>.pngHarita seçimindeki küçük resim
maps/<mapname>_ttt.txtTTT 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.