Hata giderme

Yayın öncesi BSP kontrolü: GMod haritaları için kontrol listesi

Yayın öncesi BSP kontrolü: son derleme, cubemap'ler, paketlenmiş içerik, spawn'lar, navmesh, performans ve tarama. GMod mapper'ları için kontrol listesi.

Yayından önce haritanı sabit bir sırayla kontrol edersin: son derleme, cubemap'ler, paketlenmiş içerik, temiz bir istemcide test, ardından ad ve sürüm. Tipik yayın hataları eksik texture'lar, bozuk yansımalar ve hatalı spawn'lardır, üçü de kendi bilgisayarında çoğu zaman fark edilmez. Aşağıdaki kontrol listesi seni tek seferde her maddenin üzerinden geçirir.

Kontrol listesine genel bakış

No.KontrolNe zaman tamam
1Son derlemeVBSP normal, VVIS normal, VRAD -final ve -both ile, log'da leak yok
2Cubemap'lerLDR ve HDR için oluşturuldu, yansımalar doğru görünüyor
3Özel içerikkendi materyallerinin, modellerinin ve seslerinin tamamı BSP'ye paketlendi
4Temiz istemciaddon'ların olmadan yapılan testte eksik texture ya da error modeli yok
5Temizlikdeveloper texture'ı yok, test entity'si yok
6Spawn noktalarıyeterince spawn var, hiçbiri zemine ya da duvara gömülü değil
7Navmesh ve node'larNPC ya da NextBot planlanıyorsa mevcut
8Performanskritik noktalar dolaşıldı ve ölçüldü
9Dosya boyutuBSP'de kullanılmayan içerik yok
10Ad ve sürümsürüm etiketi taşıyan nihai dosya adı
11TaramaBSP, Map Scanner ile kontrol edildi
12Koruma (isteğe bağlı)yalnızca bitmiş dosyaya uygulandı

Son derleme ve cubemap'ler

Fast VVIS ya da fast VRAD ile yapılan bir test derlemesi yayın için yeterli değildir. Fast VVIS görünürlüğü yalnızca kabaca hesaplar, bu da oyunda performansa mal olur. Yayın için VVIS normal modda, VRAD ise -final ile çalışır. -both ile VRAD, LDR ve HDR ışıklandırmasını tek seferde hesaplar. Daha iyi prop ışıklandırması için sık kullanılan ekler -StaticPropLighting ve -StaticPropPolys parametreleridir. Ardından log'un tamamını oku. Bunun nasıl yapıldığı compile log nasıl okunur yazısında anlatılıyor.

Cubemap'leri derlemeden sonra oyunda buildcubemaps komutuyla oluşturursun. LDR ve HDR için derlenmiş bir harita iki tur gerektirir: biri mat_hdr_level 0, diğeri mat_hdr_level 2 ile, her biri haritayı yeniden yükledikten sonra. İki şey önemlidir:

  • Her yeni derleme cubemap'leri siler. Ardından onları yeniden oluşturman gerekir.
  • Cubemap'ler haritanın dosya adına bağlıdır. BSP'yi sonradan yeniden adlandırırsan modellerdeki ve prop'lardaki yansımalar kaybolur.

Tipik sorunların ayrıntıları cubemap yansımalarını düzeltme yazısında.

Özel içeriği paketle ve temiz bir istemcide test et

Oyunun parçası olmayan her şey haritayla birlikte gitmek zorundadır. En güvenilir yol, içeriği doğrudan BSP'nin içine paketlemektir. Rehber özel içeriği BSP içine paketleme yazısında. Sık unutulanlar:

  • skybox'ın ve 3D skybox alanının texture'ları
  • detail sprite'ları ve özel sesler
  • soundscape script'i scripts/soundscapes_<mapname>.txt
  • particle manifest'i maps/<mapname>_particles.txt
  • navmesh dosyası maps/<mapname>.nav; genellikle BSP'nin yanında ayrı bir dosya olarak dağıtılır

VMF'nin, compile log'larının ve yedek dosyalarının BSP'de işi yoktur.

Ardından en önemli test gelir: haritayı, içeriğinin bulunmadığı bir istemcide yükle. Bu ikinci bir PC, bir arkadaşın ya da addon'larını geçici olarak kaldırdığın bir kurulum olabilir. Pembe-siyah yüzeylere, error modellerine ve eksik seslere dikkat et, konsolu da oku. Harita başka oyunların, örneğin Team Fortress 2'nin içeriğini kullanıyorsa bunu açıklamada açıkça belirt.

Temizlik: texture'lar, entity'ler, spawn'lar

Hammer'da yapım aşamasından kalan artıkları özellikle ara:

  1. Görünür yüzeylerdeki, dev/ klasöründen gelen developer texture'larını değiştir.
  2. Test entity'lerini kaldır, örneğin geçici ışıkları, test NPC'lerini ya da debug mantığını.
  3. Map > Check for Problems (Alt+P) komutunu çalıştır ve listeyi tek tek hallet.
  4. Spawn noktalarını kontrol et. Dolu bir sunucuya yetecek kadar info_player_start entity'si olmalı ve her spawn zeminin üzerinde serbest durmalı.
  5. Kendi spawn entity'leri olan oyun modları için uygun entity'leri yerleştir.

Haritada NPC'lerin ya da NextBot'ların çalışması gerekiyorsa sırasıyla AI node'larına ya da bir navmesh'e ihtiyacın var. Navmesh'i oyunda nav_generate ile oluşturursun.

Performans, dosya boyutu ve sürümleme

Aynı anda en çok şeyin göründüğü yerleri dolaş: geniş meydanlar, uzun caddeler, yüksek seyir noktaları. cl_showfps 1 kare hızını, +showbudget ise motorun zamanını nereye harcadığını gösterir. mat_wireframe 1 (sv_cheats 1 gerektirir) ile duvarların arkasında hâlâ nelerin render edildiğini görürsün. Oyuncular ve prop'larla dolu bir sunucunun, tek başına yaptığın testten çok daha fazla yük oluşturduğunu unutma.

Dosya boyutu, oyuncuların ilk girişte ne kadar bekleyeceğini belirler. Yalnızca haritanın gerçekten kullandığı içeriği paketle.

Ad konusunda kural şu: küçük harfler, boşluk yok, bir oyun modu öneki ve bir sürüm etiketi, örneğin rp_example_v2. Yayınlanan her değişiklik yeni bir dosya adı alır. Aksi halde oyuncularda aynı adla eski dosya bulunur ve sunucu onları harita sürümlerinin farklı olduğu uyarısıyla reddeder. Yayınlanan her sürümün VMF'sini ve tam o BSP'yi sakla.

Tarama ve isteğe bağlı koruma

Son bir teknik kontrol, oyunda göremeyeceğin hataları yakalar. Map Scanner bir BSP'de header'ın, lump tablosunun ve offset'lerin tutarlılığını kontrol eder, point_servercommand ya da lua_run gibi riskli entity'leri arar, bir spawn noktası olup olmadığına bakar ve pakfile içine gömülü Lua ve asset dosyalarını listeler. Pakfile listesi, paketlemeni doğrulamanın iyi bir yoludur. Tarama ücretsizdir ve dosya en fazla 50 MB olabilir.

Haritayı satıyorsan ardından onu koruyabilirsin. BSP Protection Audit, Cleanup, Fingerprint, Obfuscation ve Server-Exclusive seviyelerini sunar. Eksiksiz bir kopya koruması garanti edilmez. Sıra önemlidir: koruma en sonda, bitmiş ve test edilmiş dosyaya uygulanır. Her yeni derlemeden sonra onu yeniden uygulaman gerekir.

Sık sorulan sorular

Her derlemeden sonra cubemap'leri yeniden oluşturmak zorunda mıyım?

Evet. Yeni bir derleme BSP'yi baştan yazar ve oluşturulmuş cubemap'ler bu sırada kaybolur. Onları ancak geometri ve ışıklandırma kesinleştiğinde oluştur.

Cubemap'leri oluşturduktan sonra BSP'yi yeniden adlandırabilir miyim?

Yapmasan iyi olur. Cubemap verileri haritanın adına bağlıdır ve yeniden adlandırmadan sonra modellerdeki ve prop'lardaki yansımalar eksik kalır. Bunun yerine VMF'yi yeniden adlandır, tekrar derle ve cubemap'leri yeniden oluştur.

Hızlı (fast) derleme bir yayın için yeterli mi?

Hayır. Fast VVIS daha kötü performansa, fast VRAD ise daha kaba ışıklandırmaya yol açar. Yayın için normal VVIS ve -final parametreli VRAD ile derle.

PC'mde her şey doğru görünüyorsa eksik içeriği nasıl fark ederim?

Senin bilgisayarında içerik oyun klasöründe durur, bu yüzden bir paketleme hatası orada görünmez. Emin olmanın tek yolu, dosyalarının bulunmadığı bir istemcide test yapmaktır. Bir taramadan çıkan pakfile listesi de yardımcı olur.