Bir RTS'deki prosedür seviyelerinin adil olmasını nasıl sağlayabilirim?


10

RTS seviyesi tasarımında simetri ve koheransın önemli olduğunu gördüm, ancak tembelim ve prosedürel olarak üretilen seviyeleri yapmak istiyorum.

Prosedürel olarak bir RTS için seviye oluştururken adil bir oyun alanı oluşturmamı nasıl sağlayabilirim?


4
Yavaş yavaş yaşla gömülüyor, ancak Age of Empires oyunlarında rastgele harita oluşturma komut dosyalarının nasıl çalıştığı hakkında bilgi aramanızı tavsiye ederim. Bunlar, oyuncuların düzenleyebileceği, farklı türde çarpışma haritalarının nasıl oluşturulacağını açıklayan metin dosyalarıydı. Belirli arazi / sahne yamaları ve kümeleri yerleştirme, kaynak gibi şeyleri adil bir şekilde yerleştirme ve oyuncuların birbirlerine ulaşmasını sağlamak için arazide yollar yapma yöntemlerine sahip olduklarını hatırlıyorum. Tariflerinin nasıl çalıştığını öğrenmek, kendiniz için bazı fikirler vermelidir.
DMGregory

2
RTS'nizin tek kişi mi yoksa çok oyunculu mu olduğunu söylemezsiniz. Tek kişi varsa, oyuncunun becerisine uyacak şekilde AI davranışını değiştirerek bir miktar seviye dengelemesi yapılabilir. Başka bir deyişle, AI oyuncudan daha fazla kaynağa erişebilir, ancak oyun, oyuncuların saldırıları ne kadar saldırgan gerçekleştirdiğine veya kaynaklarını sömürdüğüne bağlı olarak bu kaynakları ne kadar agresif kullanacağını ayarlar.
Mark Ripley

1
Mark'ın söylediklerine eklemek için ne tür bir denge arıyorsunuz? Haritaları gerçekleştirmek için ne kullanıyorsunuz?
Nicol Bolas

Yanıtlar:


26

Şahsen, seviye tasarımında simetri sıkıcı buluyorum ve bunun adil seviyeler için gerekli olduğunu düşünmüyorum; simetri, her oyuncu için bir şekilde aynen yansıtılan seviyeden dolayı herkesin aynı kaynaklara ve aynı darboğazlara erişmesini sağlamanın bir yoludur. Bence önemli olan kısım (kabaca) aynı avantaj ve dezavantajlara erişim. Simetrinin kendisi o kadar da değil.

Ayrıca, her tarafın eşdeğer güce sahip olması ve fırsat eşitliğine sahip olması dengeli bir oyunun sıkıcı olduğunu düşünüyorum. Açıkçası bu faktörlerin toplam dengesizliğini istemiyorsunuz, ancak her iki tarafa biraz farklı fırsatlar ve birlikte gösterimler sunmak için ilginç bir oyun dinamiği oluşturabileceğini düşünüyorum.

Sorunun gerçek cevabını çerçevelemek olarak düşündüğüm bir tür tasarım bağlamı:


Simetri sizin için gerçekten önemliyse, prosedürel olarak bir seviye yığını oluşturabilir ve daha sonra bu seviyeyi her iki eksende yansıtabilirsiniz. Ürettiğiniz yığın temelde seviyenin dörtte biri ve her bir kadran aynı olacak şekilde yansıtırsınız. Örneğin, rastgele dağılmış kaynak tortularına sahip bir prosedür yükseklik haritası:

resim açıklamasını buraya girin

Ama yukarıda söylediğim gibi, bu donuk görünüyor. Daha ilginç bir yaklaşım, tüm araziyi prosedürel olarak oluşturmak olabilir, ancak kaynakları yerleştirirken, her çeyreği aynı sayıda (her biri değişkenlik sağlamak için bazı tolerans dahilinde) ile sınırlandırdığınızdan emin olun. Çeşitli kaynak türlerinin, kaynakların önemine bağlı olarak çeşitli alanlara (rastgele, başlangıç ​​noktalarına yakın, sınırlara yakın) yerleştirilmesini öngörebilirsiniz. Örneğin:

resim açıklamasını buraya girin

Özellik kenarlarını bulmaya çalışmak için oluşturulan görüntü üzerinde analiz yapabilirsiniz - örneğin dar boğazlar, darboğaz olarak kabul edilebilir. Örneğin, diğerlerinden çok daha fazla veya daha az darboğaz veya benzer şekilde algılanabilir arazi özelliklerine sahipse, haritanın bir bölümü için arazi üretimini yeniden yuvarlamaya karar verebilirsiniz. Ayrıca, yerleştirilen her kaynağın bir şekilde erişilebilir olduğundan emin olmak için benzer arazi analizleri yapmak isteyebilirsiniz.

Örneğin, sol alt kadranı tekrar yuvarlamaya karar verebilirsiniz, çünkü çok fazla su (kırmızı) veya yeşil içeren kadranlar çok taktik avantajlıdır (potansiyel kanyon darboğazları):

resim açıklamasını buraya girin

Ayrıca özellik oluşturma işleminizi manuel olarak yönlendirmeyi de tercih edebilirsiniz; Seviyenin bölümlerini bölen bir nehir veya anahtar kaynak depozitleri gibi belirli öğeleri manuel olarak yerleştirebilir ve daha sonra, istediğiniz ilginç ve organik çeşitliliği sağlarken elle yerleştirilen anahtar dengeleme özelliklerini koruyacak şekilde prosedürel nesli çalıştırabilirsiniz. üretim kuşağı.

Örneğin, haritayı ikiye bölen elle yerleştirilmiş bir nehri ve ormanlık örtüyü koruyan üretilen bir arazi, üslerin etrafında ekstra savunma sağlamıştır:

resim açıklamasını buraya girin


2
Teşekkürler, bu benim yığın sistemimle iyi çalışacaktır. İnsanlar benim "ama im tembel" ifademle karıştı. Ben sanatçı değilim ve gürültü ve örgü üretimini daha ilginç buluyorum.
James Pae

2
@JamesPae: " Ben sanatçı değilim" Seviye tasarımı sanatla ilgili değil . Oyun hakkında. Yani soru şu ki, oyun tasarlamayı seviyor musunuz?
Nicol Bolas

8
@JamesPae eğlenceli bir seviye yapamıyorsanız, prosedürel olarak oluşturulan seviyenizi eğlenceli hale getirmek için çok zor zamanlar geçireceksiniz. Jeneratörünüzü yazmadan önce neyin eğlenceli olacağını öğrenebilmeniz için en az bir seviyede el işi yapmanızı öneririm
Evorlor

2
@Evorlor, bundan hoşlanmayacağını, yapamayacağını söylemediğini söylüyor. Neden herkes bu noktayı sürekli görmezden geliyor?
Davor

5
Neden herkes her şeyi tam anlamıyla alıyor? Bu ifadeyle açıkça şaka yapıyordu. OP'nin bakış açısını anlıyorum, evet, birkaç zanaat yapabilirler, ancak yine de yarattığınız kadar çok seviyeniz var. Aynı çabayı iyi bir seviye jeneratörü yapmak için harcarsanız, potansiyel olarak sınırsız seviye kullanacaksınız. İnsanların farklı zihniyetleri ve görüşleri vardır. Bazıları harika seviyeler yapmak isteyebilir, bazıları gerçekten harika bir seviye jeneratörü yapmaya derinlemesine bakabilir.
JamEngulfer

7

Bazı durumlarda, karo manipülasyon mekaniğini kullanarak dengeli asimetrik haritalar oluşturmak için oyuncuların kendilerine güvenmek mümkün olabilir.

Spektrumun bir ucunda, harita parçalarını seçip yerleştirerek oyuncuların haritayı kısmen veya tamamen oluşturmalarına izin verebilirsiniz. Bunun düzeltilebileceği farklı yollar var:

  • oyuncular ortak bir fayans destesinden seçim yapar
  • katmanlar kişisel bir karo destesinden seçim yapar
  • fayanslar çekim aşaması ile seçilir
  • bazı karolar senaryo ile önceden sabitlenebilir (yani her zaman haritanın ortasında köprülü bir nehir ortaya çıkarır)
  • oyuncular bazı kaynaklarla merkezi bir pazardan fayans satın alırlar
  • oyuncuların fayans elini tutmasına izin verilebilir veya verilmeyebilir

Karo manipülasyon spektrumunun diğer ucunda oyuncuların harita karolarını manipüle etmesine izin verilir. Bu çözümde, oyun ilk harita ile başlar. İlk harita simetrik olabilir veya diğer cevaplardan herhangi biri kullanılarak 'yeterince adil' olabilir.

Ardından, oyuncuların aşağıdakilerden bazılarını yapabileceği bir harita manipülasyon aşaması oluşur:

  • bir kutucuğu döndür
  • fayans takası (bitişik veya başka türlü)
  • bir kiremit ayna
  • bir sıra veya karo sütun itin (kenardan düşen karo etrafı sarar)

Bu manipülasyonlar her seferinde bir tane yürütülebilir, bu durumda bir oyuncu diğer oyuncuların manipülasyonlarına tepki verme şansına sahip olabilir veya oyuncu yürütülen değişikliklerin bir listesini sıralayabilir. Ayrıca, oyuncuların haritanın tamamını değiştirmesine veya şeyleri başlangıç ​​alanlarıyla kısıtlamasına izin verebilirsiniz.

Bu yaklaşımın bir dezavantajı, nihai sonucun istenmeyen sonuçlara karşı korunması gerektiğidir - yani haritanın bir kısmının erişilemez hale gelmesi için geçilmez bir dağ aralığını manipüle etmek. Bu dezavantaj için olası çözümler şunlardır:

  • Yasadışı sonuçlara yol açan potansiyel hareketleri kontrol etmek ve bunlara izin vermemek
  • tüm hamlelere izin vermek, ancak yasadışı olan her şeyi geri almak
  • fayansların inşa edilmemesi
  • hiçbir oyun yasadışı (yani hareket), hiçbir hamlenin yasadışı olmayacak şekilde tasarlanması

2

Harita oluşturma algoritmanızın bir seviye oluşturarak simetrik seviyeler üretmesini sağlayın, yansıtın ve her oyuncuyu bir tarafa yerleştirin. Dört oyunculu bir harita hem x hem de y ekseninde yansıtılarak oluşturulabilir.

Bu şekilde harita tüm oyuncular için eşit derecede iyi (veya kötü) olacaktır. Dikkat etmeniz gereken bir yan etki, oyuncuların diğer oyuncuların pozisyonlarını ve haritanın diğer bölümlerinin yerlerini keşfettikten sonra farkında oldukları anlamına gelir.

Başka bir seçenek, bu simetri numarası olmadan bir harita oluşturmaktır, ancak daha sonra haritanın tamamını oyunculara gösterin ve her oyuncunun başlangıç ​​konumunu serbestçe seçmesini sağlayın.


1

Bir yaklaşım haritayı dengelemek için diğer faktörleri kullanmaktır. Bazı harita analiz algoritmalarını kullanarak ve dezavantajlı olduğu düşünülen konumlara ekstra başlangıç ​​kaynakları sağlayarak bunu otomatik hale getirebilirsiniz. Alternatif olarak, bu adım için oyuncuları da kullanabilirsiniz. Bunun güncel bir örneği, Offworld Trading Company'de (OTC) ilk iddianızı (örn. Bir başlangıç ​​üssü konumu seçmek için) ortaya çıkarma modunda ters açık artırmanın kullanılmasıdır :

Zaman geçtikçe, erken kuruluş için başlangıç ​​borcu azalır. Son 2 oyuncunun bulması için yeterince uzun bir süre gerekiyorsa, bu sonunda paraya dönüşecektir. Karargahını kurmamış sadece bir oyuncu kaldığında, değerler değişmez ve bu oyuncu artık beklemekten kazanmayı kazanmaz.

3 İleri Hareket mi yoksa Oyun Tasarımı Yuvarlak Masa röportajı mı olduğunu hatırlamıyorum , ancak içlerinden birinde Soren Johnson (geliştirici) bu tamircinin harita sorununu "önce en iyi yeri bulabilir miyim" olarak değiştirdiğini söylüyor haritadaki en iyi 2. konum ne kadar iyi. "

Avantajı, bu çözümün asimetrik haritalara izin vermesidir. Bir dezavantaj, tüm haritanın en azından başlangıçta tüm oyunculara açıklanmasıdır. OTC yaklaşımı oyuncu tabanındaki yerleri de ortaya koymaktadır. Kör teklif verme gibi diğer mekanikler, temel konumları açıklamaktan kaçınabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.