Oyun özelliklerine dayalı ussal dünya üretimi


36

Büyük usule dayalı peyzaj oyunlarında, arazi donuk görünür, ancak bunun nedeni muhtemelen gerçek dünya büyük ölçüde donuktur, çünkü sahnenin dramatik veya taktiksel olduğu sınırlı yerler vardır.

Bu açıdan dünya nesline baktığımızda, bir oyun için (yani sahne uğruna değil, oyun uğruna) bir peyzaj üreticisinin peyzaj düzenlemesi kurallarını yerine getirmemesi , bunun yerine evliliğin kurallarına uyması gerekir. oyuncunun beklentileri. Örneğin, şehirler arasında doğal yollardan ziyade, nehirler ve nehirler ve dağlar yaratan bir boğulma noktası / rota jeneratörü olabilir; şehirler, dağların ürettiği kaynaklara veya koşullara bağlı olarak karaya dağılmış doğal yollardan ziyade.

Böyle bir çalışma var mı? Şehirler veya nüfus merkezleri ile başlayın ve daha sonra araziye ekleyin?

Sormamın nedeni, daha önce mevcut haritaları fantastik kurgudan (kendim ve başkaları) var olan haritaları almayı, bilgiyi sisteme temel bir nokta olarak koymayı ve bundan sonra oynamak için iyi bir dünya yaratmayı düşünmüştüm. Bu, mevcut teknolojinin, yani tasarımcının şehir nüfusu, kaynaklar, biyomlar, karayolu ağları ve nehirler gibi gerekli tüm bilgileri girmesinin ardından PCG'nin boşlukları doldurmasına izin verdiği gibi görünüyor.

Ancak şimdi bir içerik oluşturucunun genel tasarımı da oluşturmasının mümkün olup olmadığını merak ediyorum. Şehirleri ve nüfus merkezlerini oluşturun, onları dengeleyici bir doğal ticaret ihtiyacı olması için dengeleyin, daha sonra konumlar ve bağlantılar oluşturun, sonra şehir türünden yakınlarda olması gereken gerekli kaynakların listesini hazırlayın ve ancak o zaman şehirler arasındaki yolculuğun hem inanılır hem de ilgi çekici hale getirilmesine ilişkin bazı kurallar; yollar, boğulma noktaları, köprüler ve tüneller, feribotlar ve gerekli biyomlar ve kıyı şeridini içeren araziler dahil olmak üzere nihai içeriği oluşturur.

Eğer bu daha önce yapıldıysa bilmek istiyorum, neyin yanlış gittiğini ve neyin doğru gittiğini bilmek isterdim.


Yaklaşımınız tuhaf görünüyor. Neden şehirlerin ve nüfus merkezlerinin önce geldiğini anlamıyorum. O zaman bile, bazı şehirleri yerleştirip bu noktaları uygun fakat rastgele parametrelere atayamaz ve oradan çalışamaz mıydınız?
Komünist Ördek

1
Bence önce kültürel tasarım, arazi (ve hava) ikinci olan doğru yoldasınız. Gerçek dünyada toplumlar, kültürler ve ekonomik ağlar ve yapı sadece hiçbir yerde ortaya çıkmaz. Bunun yerine araziye bağlı olarak ortaya çıkarlar (veya ortaya çıkmazlar). Bazı araziler sadece bir toplumun yükselişine elverişli değildir, bazıları ise öyledir. Çölün ortasında ya da donmuş tundranın ortasında büyük şehirler ortaya çıkmaz, çünkü a) bulunacak yiyecek ya da su bulunmuyor ve b) şehre mal getirmek zor.
Tim Holt 19

2
Bakış açını anlıyorum @Tim Holt. Benim düşünceme göre, Oyun Kuralı ve Eğlence Kuralı bir oyun senaryosu tasarlarken her zaman mantıklılıktan mahrumdur. Aktif bir volkanın krateri üzerinde bir köprü oluşturan bir şehir mantıklı olmayabilir, ama yine de harika. Ayrıca, oyuncuların oyun dünyası için oyun dünyasına eşit olarak dağılmış şehirlere ihtiyaç duymaları durumunda, coğrafi konumları anlamlı olmasa bile onları onlara vermelisiniz.
Philipp

Yanıtlar:


12

İşte nem, yükseklik vb. Gibi parametreler kullanan, prosedürel arazi oluşumuna harika bir örnek… http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/


2
Güzel çalışma, ama yine de ilk olarak peyzaj özelliklerinin rastgele dağılışı, ilk uygarlık / oyun öğeleri
Richard Fabian

Tamamen rastgele değil, ama katılıyorum, medeniyet unsuru yok. Tekniğin birçok farklı oyun elemanına uyarlanabileceğini düşünüyorum ama demodakiler çok oyunculu bir oyun içindi (harita başına yaklaşık 80 oyuncu): (a) su ile çevrili ada, böylece insanlar bir kenara varamazlardı, ( b) oyuncuların dağıldığı kumsaldaki kolay alanlar, (c) dağların yoğun olduğu ve oyuncuların yoğunlaştığı alanlar, (d) yollar sizi aynı zorluktaki diğer alanlara götürür, (e) nehirler sizi daha fazla zorluk çeken alanlara götürür. Oyuncular sololarda plajlarda başlayacak ve merkeze doğru ilerlerken gruplanacaktı.
amitp

1
Keşfetmeye çalıştığım en önemli şey, önce oyun kısıtlamaları ile başlamak, ardından normal rastgele ya da "gerçekçi" arazi jeneratörleriyle başlamak yerine, ayrıntılarla dolu bir harita oluşturmak ve en üste oyun elemanlarını yerleştirmeye çalışmaktı. . Bu oyun stili için iyi çalıştığını düşünüyorum ama diğer oyun stilleri için denemedim.
amitp

4

Son üç gündür bu soruyu tekrar gözden geçirdiğime inanıyorum, kendime aynı zamanda dünyaların ve hatta galaksilerin ustaca neslinin nasıl belirleyici olabileceğini sorduğumda (aynı içeriği her zaman aynı tohumdan üretmek gibi) ), doğal görünün ve onun manzarasında benzersiz, ilginç, sıradışı ve hatta güzel özelliklere sahip.

Aynı genel cevaba geri dönmeye devam ediyorum, bunun oyunun türüne ve hikayedeki kendi iç tutarlı geçmişine bağlı olduğuna inanıyorum. Mesela, kıyamet sonrası tür, neden kimse bir çorak arazinin ortasında masif duvarları olan bir metropol inşa edip içindeki herkesi sefil bir şekilde yaşatsın? Neden bu tür gezegenleri sömürgeleştiriyorsunuz? Yüksek fantezide, neden yüzen bir adanın tepesinde bir şehir yapılıyor? Cüceler neden şehirleri dağların içinde yapıyorlar? Ve senin jenerik şeytan düşmanın aktif volkanlar ile ateşli topraklardan geliyor? Havanın Kuralı mı?

Böylece, PCG'ye bilgi girdiğiniz ve aradaki boşluğu doldurduğu kendi cevabınıza ve aynı zamanda arsa çizgileri ve genel hikayeye uyan dünyalar yaratma hakkındaki diğer cevaba geri dönersiniz.

Bu yüzden arsa uygun manzara üreten oyun elemanları üretir.

Bununla birlikte, tutarlı bir arsa çizgileri ağacı oluşturan bir hikayenin, aradığınız genel oyun tasarımını üretip üretmeyeceğini merak ediyorum.

(Not: Bu aynı üç gün, beni de ortaya çıkabilecek bir soruna başka bir cevapla buluşturdu: Bu, oluşturulan oyun tasarımının sağlam olup olmadığını kontrol etmek için otomatik bir test aracı olmalı, mesela sert bir ortaçağ ordusuna sahip olmalısınız. oluşturulan kaleyi yenme zamanı)


2

Sadece benzer sorunları çözdüğüm kağıt, Stachniak ve Stuerzerer'in “ Otomatik Fraktal Arazi Deformasyonuna Yönelik Bir Algoritma ” dır . Öncelikle araziyi oluşturduğunuzu ve onu daha sonra deforme edeceğinizi (veya daha doğrusu algoritmanın daha sonra otomatik olarak deforme etmek için parametreleri seçmesine izin verdiğinizi varsayalım), bu nedenle sorunuzu doğrudan yanıtlamaz. Yine de, burada sunulan yöntemler benzer sorunları olan başkaları için faydalı olabilir.


2

Böyle bir algoritma, şehirler arasında yollar oluşturulduğunda otomatik olarak daha 'taktik' arazi oluşturmaz mıydı?

Yolların mesafe başına yalnızca belirli bir yükseklik değişikliği olabileceğini varsayarsak, arazi yüksekliği yolun yüksekliğine adapte olur ve bu bir yol bir tepe / geçit / geçerken / geçerken ne olursa olsun boğulma noktalarının oluşmasına neden olur. Tabii ki, arazi yüksekliğindeki değişimin miktarının da sınırlı olması gerekecek ya da en yüksek tepelerden doğrudan geçen yollar olacaktır.


Var olan yolların arazi oluşumunu keseceğini ve insan yapımı vadiler gibi görünmesine neden olacağını kastettiğinizi farz ediyorum. Bu ilginç, bir arazi üreticisinin daha önce peyzajı sürdüğünü ve aracın sürülmesinin çok zor olduğunu, ancak kesilmeye yetecek kadar ucuz olduğunu gördünüz mü? Sorumu cevaplamıyor, ancak bir jeneratörün göz önünde bulundurması gerekenlerin listesine ekliyor; örneğin, tam tersi durumda (yolun üstünde bir yol olduğu zaman) köprüde veya viyadük için normalde görülen bir şeyi değil PCGS.
Richard Fabian

Sadece gerçek hayatta nasıl yapıldığını düşünüyordum:
Exilyth

1
Dağlar oluşur, aşınır. Karada bitkiler ve ağaçlar yetişir. Milyonlarca yıl sonra, ilk göçebeler ortaya çıktı, etrafta dolaştı, belki sakinleşti. Etrafındaki araziyi etkilemeye başlarlar, örneğin taş çukurları veya kereste. Daha sonra başka şehirler bulacaklar, onlarla ticaret yapmaya başlayacaklar ve bu nedenle yollara ihtiyaç duyacaklar. Araziyi takip etmek, değiştirmek yerine genellikle daha kolaydır, bu yüzden yollarını manzaraya adapte ederler (biraz yumuşatma / düzleştirme hariç). Gördüğünüz gibi, probleme daha çok dünya kurma perspektifinden bakıyorum.
Exilyth,

2

Cryptic Studios'tayken, görev / görev üretimi için böyle bir şey üzerinde çalışıyorduk. Tasarımcılar misyon hedeflerini bir miktar soyut olarak belirlediler ve “oyuncu seyahat düzeninde” biraz rastlantısal olarak belirlediler ve aralarındaki yolları kestiler.

Star Trek Online ile Genesis Misyonları (arşiv) olarak gönderilen eski bir sürüm . O zaman çok heyecanlıydık ama gittikten sonra ne kadar devam ettiği ya da son kullanıcı Foundry araçlarında mevcut olup olmadığı konusunda hiçbir fikrim yok. (Son hedef buydu.)


1
Bu, işlemsel arsa jeneratörleriyle yapılan işler gibi görünüyor, aslında bu görevlerin gereken arsa çizgisine uyacak şekilde dünya detaylarını oluşturuyor mu, yoksa dünyanın neye benzediği gibi görevleri yaptı mı, yoksa görevlerin zor olduğu için şanslı mıydı? ürettiğin şeye dayanarak kolay mı?
Richard Fabian

1

Prosedürel arazi üretimi için tipik bir yaklaşım elle belirli özellikleri çizmek ve geri kalan kısmı doldurmak için jeneratörü kullanmaktır. VTerrain , bu konuda ilginç bir şeylere sahip olmak zorunda.


1

Lighthouse 3D , arazi üretimi için bazı basit algoritmalar hakkında iyi bir ankete sahiptir. Şehirleri veya diğer ilginç bölgeleri içeren bir harita ile başlıyorsanız, istediğiniz teknikleri oluşturmak için bu tekniklerden bazılarını kullanabilirsiniz. Örneğin, fay algoritmasının akıllıca kullanılması, şehrinizin etrafındaki boğulma noktaları olarak hareket edecek uçurumlar veya vadiler oluşturmak için kullanılabilir. Ayrıca, daire algoritmasını kullanmak taret yerleşimi için terrian üretmenin harika bir yoludur. Bunlar sadece bazı örneklerdir, ancak bu basit algoritmaları kullanmak şehirlerinizde ilginç alanlar oluşturmak için oldukça kolay bir yol olacaktır.


1

Belki aşırı basitleştiriyorum, ama neden şehirlerin avantajlı araziler üzerine kurulduğunu ya da bu nedenle, herhangi bir nedenle medeni bir alanın herhangi bir boyutunda olduğu gerçeğini göz ardı ediyor musunuz? Belki de arazi askeri bir taktik için taktiksel bir avantaj sağlar veya belki de büyük bir ormanın ve aşağı akıntısı daha büyük bir köye sahip olan bir nehrin kesiştiği yerde kereste fabrikası vardır. “Kutsal” yerler bile, arazinin belirli bir bölümünün kutsal olduğu düşünülen basit bir gerçek için olsa bile, araziyi temel alır. Sonuçların ne olduğu önemli değildir, medeniyetin ezici çoğunluğunun son dinlenme yeri, Arazi temelli nedenlerden dolayı fiziksel nokta. Bir kentin filizlendiği durumda bile, çünkü iki büyük şehir arasında bir orta adamı güvence altına almak için yeterli ticaret yapıldığından, Bu şehir konumu en az direnç gösterecek şekilde seçilecektir. Yerel gıda arzı için, yol yapımında kendisini iyi bir şekilde ödünç alan arazi ile birlikte iyi düz tarım arazileri sunan bir yere yerleştirilecektir. Bunun hakkında düşündüğüne eminim ...

Peki, eğer önce şehirleri kuracaksanız, neden olmasın? Neden bu tür bir kurumu destekleyen şehri, köyü, yerleşimi ya da her neyse, etrafını saran iyi bir çevre toprağıyla birlikte, elle inşa etmiyorsunuz?

İşlemsel biyomayı örnek olarak alın. Genellikle sahte rasgele sıcaklık, nem ve yükseklik haritalarına uygulanırlar. Şehri daha önce tasarladıysanız (veya kereste fabrikası, vb.), O zaman muhtemelen neye benzemeye ihtiyaç duyduğuna dair kesin bir fikre sahip olursunuz, eğer yanlış anlamazsam, tam olarak amacınız budur. Orthanc gibi bir fantezi binasına bürün, kat planlarını ve güzelce çoğalttığını çevreleyen araziyi doldur. Zaman çizelgesine bağlı olarak Orthanc'ın Entler (ağaç yaratıkları) vb. İle dolu büyük bir ormanla çevrili olduğunu biliyoruz. Bunu çoğaltmaya çalışıyorsanız, rastgele bir arazi uygulamak bana mantıklı gelmiyor. Bir kez, bu ayarı kulenin kendisi ve çevresindeki orman için yarattığınızda, Orthanc ile bir sonraki şehriniz hangisi olursa olsun?

Basit bir yaklaşım yordamsal arazi neslinizi yazıyor olabilir, ayarınızı rastgele oluşturulmuş bir arazi sisteminin içine yerleştirin ve yüksekliklerinizi sabit ayarınızın çevresine yerleştirin ve vurgulu olarak birçok farklı rastgele oluşturulmuş dünyaya yerleştirebilirsiniz.

Ancak bence en iyisi, ayar, arazi ve tanımlanmış biyom kombinasyonuyla ve Orthanc'ın prosedürsel olarak oluşturulmuş büyük bir orman biyomunun içine konmasını sağlamanızın en iyi yoludur. Nasıl kodladığınıza bağlı olarak, önceden tanımlanmış her bir ortam veya heykel yaptığınız bina veya şehir için minimum / maksimum biyom, arazi, nem vb. Ayarları belirleyebilirsiniz. Bu tam teşekküllü fotogerçekçi bir 3d dünyasında küçük bir görev mi olurdu? Belli ki değil.

Sanırım bunu denemek istersem ilk önce sahil şeridi prosedür algoritmalarını araştıracağım. Okyanus, deniz ya da büyük bir göl olsun, tarih boyunca neredeyse bütün uygarlıkların sahil şeridini takip ettiği yaklaşımını benimseyin. Çok sayıda balıkçılık, odun yakındaki ağaçlar ve ilkel deniz taşıtlarıyla bile (hatta en az tek yönlü) kesinlikle daha hızlı seyahat etme olasılığı bulunduğundan, büyümeye en az direnç gösteren yol budur.

Tamamen geriye doğru inşa etmek zorunda kalacağınızı düşünüyorum. Başka bir şey belirlenmeden önce muhtemelen bu uygarlıkların nüfuslarını belirleyen bir gürültü algoritmasıyla uygarlığın noktalarını temsil eden bir harita üzerinde sahte rastgele noktalar düşünün. Tamam, bu yüzden 1 puan, 1.000.000 nüfus, bir başka 2.000.000 (ya da tabii ki dünya popülasyonunuza bağlı olarak herhangi bir oranda) ortaya çıkıyor. Niye ya? Niye oradaki nüfus var? 1000 nüfus, küçük kereste fabrikası topluluğu olabilir. Belki haritanın kuzey tarafındaysa, küresel bir dünya yaratıyor olmanız gerekiyorsa, bu bir maden topluluğu. Burada biraz bulanıklaşıyor, çünkü NESW'yi biyom belirleme konusunda anlamsız yapan veya çok gerçek bir "Dünya" isteyip istemediğinizi her yöne sınırsız mı bıraktığınızı bilmiyorum.

Ancak, medeniyetlerinizi kısarsanız, sözde rastgele gürültü popülasyonlarına dayanarak, medeniyetleri azalttığımızı düşünüyorum, bunun gibi bir kaç kuralı (ancak mutlak olmayanları da) güvenle kabul edebileceğimizi düşünüyorum. El ve onları desteklemek için arazi. Değerli mineraller, odunlar vb. Nauseam mevcut olmalı ya da böylesine büyük bir işletmeyi desteklemek için büyük bir ticaret sistemi olmalıdır. Buna göre şehirden şehre karayolları ve derin bir madencilik operasyonu gibi dış alanlara giden yollara başlayabilirsiniz. İyi kıyı şeridini formüle edecek medeniyet noktalarını seçin ve nüfus noktanızı haritadan tamamen doldurmanız gereken yere bırakın. okyanuslar (ya da belki de dünyanızda Atlantis var ya da açık deniz petrol sondajları).

Aradaki alanı tekrar doldurmak, biome yaklaşımınıza tamamen bağlıdır. Her yöne sınırsız bir yeriniz varsa, Orthanc'ı popülasyon açısından uygun olan her yere koyun, bir orman biyomuna zorlayın ve algoritmanın aynı prosedürü oluşturduğu bir sonraki önceden ayarlanmış varış noktanızın yarısına gelene kadar dışa doğru kurun. etrafında. Lerp / İki araziyi buluştukları sırada birlikte karıştırın ve evet bu açık bir aşırı basitleştirmedir.

Gerçekten mekanik olarak başarmaya çalıştığınız şey hakkında gerçek bir çalışma bilgisi olmadan, sadece fikirleri ve muhtemelen kötü fikirleri atabilirim. Bence yaklaşımınız gerçekten de fevkalade olsa bile, bunun bir yararı var çünkü herhangi bir oyunda her zaman en önemli faktör olanı hedefliyorsunuz: Oyuncu eğleniyor mu? Yoksa sıkıcı olmayan ve dolayısıyla eğlenceli olmayan rastgele bir dünya mı yaratıyorum?

Aynı zamanda ilginç olan ne olurdu ve bu, herhangi bir oyunda medeniyetler neslinin bir parçası olabilir, ilk önce arazi olsun olmasın, yan yana 2 büyük şehri yıkarsanız ne olur? Bunun anlamı ne? Savaştalar mı? İki gelişen ülke arasındaki devasa ticaret işlemleri mi? Kereste fabrikasının ormanına ne tür bir düşman gizleniyor?

"Şehirler" e dayanarak arazi oluşturmaya çalışıyorsanız ve arazinin hem peyzaj hem de doğal kaynaklarda (ve belki de güzellikte) söz konusu kentin nüfuzundan doğrudan etkileneceği bir şeyin kesin olduğunu düşünüyorum.

Aslında bir şeyi cevaplayıp cevaplamadığımdan emin değilim veya bu uygun mu, ama çok ilginç bir kavram ve nereye gittiğinizi duymayı çok isterim.


0

Aynı sürecin bir parçası olarak oyun oynama özelliklerini aynı anda oluşturabilirim. Kurallara göre arazi oluşturmanın çeşitli yolları vardır. Sürgünlere Giden Yolun bu YouTube konuşması oldukça iyi bir örnektir: https://www.youtube.com/watch?v=GcM9Ynfzll0 . Ayrıca, daha az önceden oluşturulmuş bir yaklaşım için bu ilginç görünüyor: https://www.youtube.com/watch?v=RAtdFKiqs34 . Her voronoi tepe noktası için yükseklik oluşturmak ve oradan gitmek için perlin gürültüsünü kullanabilirsiniz

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.