Bir oyun için 2D - 3D'ye karar verirken nelere dikkat etmeliyim? [kapalı]


68

2B'den 3B daha ne kadar "daha zor":

  • Kodun miktarı / karmaşıklığı
  • Gerekli matematik becerilerinin seviyesi
  • Sanat varlıkları yapımına dahil olan zaman

Orijinal başlık: 3D oyun geliştirme 2D'ye karşı ne kadar zor?


27
Bir boyut daha sert :)
furlafur Waage

5
Öznel Waay ...
Cyclops

Hmm ... söylemiştim, aslında @ munificent'in cevabını gerçekten seviyorum. Şimdi bu soruyu nasıl sınıflandırmak istediğimden emin değilim. :) Bu oldukça doğru değil meta ya ... Dang bu kenar vakalar . :)
Cyclops

2
Kod karmaşıklığı, matematik düzeyi ve zaman, bana göre nispeten nesnel zorluk ölçütleri gibi görünüyor.
Brian Ortiz

@Brian, evet, yakın oyları geri alabilmeyi diliyorum . :) it-değerlendirerek Re, ben sorunun bir parçası olduğunu düşünüyorum başlık - "Ne kadar zor Y karşı X", sübjektif geliyor. Daha iyi bir başlık olabilir, "3B gelişiminde 2B'ye göre farklılıklar nelerdir?" (belki değişebilir?). Aslına hitap eden bir soru ile gerçekte @munificent'in yanıtladığı soru budur . :)
Cyclops

Yanıtlar:


127

3B, 2B'den daha sert bir büyüklük sırasıdır:

Programlama:

  • Matematik, renderleme, fizik, çarpışma vb. İçin çok daha karmaşıktır . Matrisleri ve vektörleri seversiniz!
  • Bir önceki nokta nedeniyle, iyi performans elde etmek çok daha zordur . Günümüzün donanımıyla, aktif olarak aptal olmanın ötesinde performans hakkında düşünmek zorunda kalmadan hoş görünümlü bir 2D oyun yapabilirsiniz. 3D ile bazı optimizasyonlar yapmanız gerekecektir.
  • Veri yapıları çok daha karmaşık. Bir önceki noktadan dolayı, basit bir "işte seviye" içindeki her şeyin bir listesi "nden daha zor olan toplanma, alan bölümlendirme vb. Hakkında düşünmeniz gerekir.
  • Animasyon çok daha karmaşık. 2D'de animasyon, her kare için muhtemelen farklı konumlara sahip karelerden oluşan bir film şerididir. 3B ile ayrı animasyon varlıkları, kemikler, ten rengi vb.
  • Veri hacmi çok daha fazla. Akıllı kaynak yönetimi yapmanız gerekecektir. Oyunlar çok fazla içerik içeriyor, ancak konsollar cehennem hafızası olmadığından emin.
  • Boru hatları geliştirmek ve sürdürmek için daha karmaşıktır. Varlıkları motorunuzun tercih ettiği formata sokmak için koda ihtiyacınız olacak. Bu kod kendini yazmaz.

Sanat:

  • Tabii ki varlıklar çok daha karmaşık. Dokular, modeller, platformlar / iskeletler, animasyonlar vb.
  • Gereken yetenekler kümesi daha geniştir. İyi animatörler genellikle iyi doku sanatçıları değildir. İyi çakmaklar iyi bir donanım olmayabilir.
  • Varlıklar arasındaki bağımlılıklar daha karmaşıktır. 2B ile varlıklarınızı farklı sanatçılar arasında temiz bir şekilde bölümlere ayırabilirsiniz: bu adam birinci seviyeden, bu adam düşmanlardan vs. ... Sanat ekibiniz dikkatli ve sürekli bir şekilde koordine etmek zorunda kalacak.
  • Teknik sınırlamalar başa çıkmak için daha karmaşık. 2D ile temelde "işte paletiniz ve maksimum sprite boyutunuz". 3B ile sanatçılarınız doku boyutunu (birden çok doku için: speküler, renk, normal vb.), Çokgen sayımı, anahtar kare sayısı, kemik sayısı vb. Dengelemek zorunda kalacaklar. "23'ten fazla kemik varsa, Motor X patlar!").
  • Varlık işleme daha uzun sürer. 3B varlıklarını oyuna hazır biçime dönüştürecek olan boru hatları karmaşık, yavaş ve sık sık sıkar. Bu, sanatçıların oyundaki değişikliklerini görmelerini çok daha uzun sürer ve bu da onları yavaşlatır.

Tasarım:

  • Kullanıcı girişi kaltak. Kamera izleme, kullanıcı girişini karakter alanına sezgisel olarak dönüştürme, 2D seçimleri dünya alanına yansıtma vb.
  • Seviyeleri yazar zor. Seviye tasarımcılarınızın temel olarak bir oyun tasarımcısı ve bir mimarın yeteneklerine ihtiyacı var. Bina seviyelerinde oyuncuların kaybolma, görünürlük vb.
  • Seviye fizik yazara sıkıcı. Oyuncuların sıkışıp kalabilecekleri veya dünyaya düşebilecekleri fizik seviyesinde boşluk ve böcek olmadığından emin olmak için tekrar kontrol etmeniz ve tekrar kontrol etmeniz gerekir.
  • Aletler çok daha zor. Oyunların çoğu, seviye gibi şeyler geliştirmek için kendi araçlarına ihtiyaç duyar. İçerik çok daha karmaşık olduğundan, araçlar oluşturmak için daha fazla iş vardır. Bu genellikle daha fazla hata yapan, eksik ve kullanımı daha zor araçlarla sonuçlanır.

2
Mükemmel cevap Bunun daha öznel olacağını düşünmüştüm, ama çok açık bir şekilde ortaya koydun. Gerçek bir sayı olmasa da (3.5x daha sert), daha büyük sertlik sırası için iyi bir durum ortaya koydunuz .
Cyclops

5
+1 Çiviledi. Bu soru pek öznel değil. İki farklı dünyadan bahsediyoruz. Zorlukta doğal bir artış var. Düşüncelerinizi dahi seviyesinde başlatmayın ...
David McGraw

Mükemmel cevap!
zebrabox

1
Cevabımın birkaç kez (yazarların sözlerini kullanmak için) büyüklükler tarafından dövüldüğünü görüyorum. O kadar mükemmel ki, daha önce hiç düşünmediğim bir çok şeyi kendim eğildim. İyi iş!
Toby,

Mükemmel cevap. Yaptığım bir ek düşünce - 3B lehine - başladığımda 3B geliştirmeyle ilgili kaynakları bulmak 2B'den çok daha kolaydı. Ancak bu 5 yıldan fazla bir süre önce ve manzara o zamandan beri biraz değişti.
Andrew Russell

11

Çok daha zor. Bir 2D oyun yapmakta rahat değilseniz, GERÇEKTEN 3D oyun yapmak için gerekenleri sevmeyeceksiniz.

İyi haber: Zamanın% 99'unda buna ihtiyacınız yok. Yapabileceğin herhangi bir 3D oyunu düşün. Kamerayı al, tavandan aşağıya bak, böylece şimdi 2D uçağa bakıyorsun. Doom Gauntlet olur. Civ IV, Civ I olur. Metal Gear Solid orijinal Metal Gear olur. Bu oyunların hiçbiri 2D olmadığı için “kötü” değil; mükemmel oynanabilirler ve genellikle aynı oynanışa sahiptirler.


5

Büyük ölçüde, 3D basitleştirmelerden daha fazla zorluk getirecek. Ancak 3D oyunda gerçekten daha kolay olabilecek birkaç şey eklemek istiyorum:

  • Oyuncu özelleştirmeleri. Team Fortress 2'nin her bir sınıf için 20 animasyon içeren bir 2D platform olduğunu hayal edin. Şimdi, pazarlama direktörünüzün oyuna şapka eklemenizi önerdiğini hayal edin. Bu, her sınıf için 20 yeni sprite sayfası anlamına gelir; ve diğer çeşitli öğeleri eklemeye karar verirseniz genişleyecektir. Çalıştığım bir şirket bu hayal kırıklığına uğradı.
  • Karakter hareketleri. Arma ve canlandırma kesinlikle basit bir iş değildir, ancak karakterleriniz karmaşıksa, o zaman sonunda her poz için karakteri tamamen yeniden çizeceğiniz 2D'den daha kolay bir iş olacak. Pratikte, herhangi bir 2D oyunda ilk mükemmellik işareti, yaratıcıların ek animasyon için karakterlerini kaç kez tekrarlamak istedikleridir.
  • Motor bulmak Basit bir platform oluşturucuyu 3D'de bir saatten az bir sürede kodlama yapmadan yapabilirim, ancak 2D'de biraz daha uzun sürebilir. Bazı baktıktan sonra kesinlikle bir sürü iyi 2B motor bulacaksınız, ama dürüst olmak gerekirse hiçbir şey hemen aklıma gelmiyor; birkaçı, Ogre3D veya diğer 3B motorların sahip olduğu büyük popülerliklerini vurdu. 3D için, UDK, Birlik ve çok daha fazla çerçeve mevcut. Bunun bir kısmı, 2B'nin azaltılmış karmaşıklığının, amatörlerin XNA'dan yola çıkarak kendi yazmalarını yapmasının o kadar zor olmadığı anlamına gelebilir. (Ayrıca, bahsedilen 3D motorlardan bazıları bir 2D oyun oluşturmak için uygun hale getirilebilir)

3

Bu son derece öznel bir sorudur, çünkü cevap kişisel tercih / deneyim / bilgi / zekaya dayanmaktadır.

Tarafsızca cevap vermeye çalışacağım, ancak yalnızca programcı olduğum ve bir sanatçı olmadığım için yalnızca son nokta için hipotez kurabileceğim.

Kod karmaşıklığı matematik ve belki render / fizik hariç, çok farklı olmamalıdır. Sağlıklı bir soyutlama düzeyi alırsanız, Oyun Mantığı çok farklı değildir (çok fazla değil - bir oyunu motor değil yapmaya çalışıyorsunuz, en azından sorunuzu sanırım.) Açıkçası, hareketi hesaplamak çok daha kolay. 2B olarak, çünkü sınırlı bir perspektifiniz var. Üç eksende uğraşırken Fizik YOL daha zor. Ayrıca, bir Bitmap'ten bir Sprite yüklemek, bir 3D Model (ve muhtemelen tekstüre etme) yüklemekten çok daha kolaydır.

Matematik, 3D için daha karmaşıktır (gerçekten zekice değil - kuaterniyonlar, vektörler, matrisler. '

Sanat için, bence 3D için de daha zor olmalı, çünkü her olası bakış açısında (veya en azından geniş bir alanda) iyi görünen bir sanat yaratmanız gerekiyor ve genellikle bir şeyleri de dokulandırmak istiyorsunuz. Bir örgüyü hareketlendirmek gerçekçi olmak için piknik değildir ve dokuyu oynatmak da değildir.


Sprite yüklemek bir model yüklemekle daha mı kolay? Modeller iskeletler, ten, gölgelendiriciler, UV koordinatları, dokular, normal haritalar vb. İçerir. Sprite bir görüntüdür. Bu boşluğu takip ederek, yukarıda listelenen şeylerden dolayı 3D sanat çok daha zor.
Sean James

Üzgünüm, bu bir hataydı. çok büyük bir tane, işaret ettiğin için teşekkürler. Kanıt okuduğumda kayıt yaptırmayacak kadar yumuşak olmalı.
Toby,

3

Dikkate alınacak diğer şey ... bir 3D oyunda muhtemelen önceden var olan bir motor kullanmayı düşünmek ve bir oyuna motor değil bir oyun yapmaya odaklanmak istersiniz. Bir 3D oyunda (zaman içinde münhasır olarak tanımlandığı gibi) harcanan zamanı ve zorluğu azaltmak için bir yere gidebilir.

Bir 2D oyun kurmak için çok daha kolay. Fakat açıkçası, sprite, sound, taşınabilirlik kütüphanelerini de kullanabilirsiniz (ve dikkate almalısınız). Eğitim amaçlı olanlar dışında tekerleği yeniden icat etmenin anlamı yok.

Açık görünüyor - ama söylemeye değdiğini sanıyordum.


2

2D performansının düşük poli 3d modellerin gerisinde kalabildiği mobil cihazlar için ilginç bir değerlendirme yapmama izin verin:

1) Doldurma oranı, belirli bir zamanda ekrandaki birçok sprite uğraşırken oldukça fazla performans sorununa neden olabilir.

2) Tamamen parçalanmış bir 2D oyun için doku belleği gereksinimleri kare tabanlı animasyon kullanıyorsanız, aslında çok daha yüksektir. Her bir karakter karesi, toplam doku bütçenizi doğrusal bir şekilde dağıtır. Bu, basit bir flipbook animasyonu kullanıyorsanız, aslında iskelet tabanlı 3D animasyona göre daha kısıtlı bir animasyon bütçesine sahip olduğunuz anlamına gelir.

Spine gibi araç setleri bir dokunun 2d deformasyonunu yaratarak bu oyun alanını biraz seviyelendirmeye yardımcı olur.


Dolayısıyla, bunu ve her ikisi de 3D için yıllar önce var olan oyun geliştirme karmaşıklığının çoğunu ortaya çıkaran Unity ve UDK'ya erişim kolaylığı göz önüne alındığında, cevap o kadar da açık değil.


Bu gibi eski yayınları yeni ayrıntılarla çarpmamayı öneriyorum. Şu anki en iyi cevabı hala çok uygulanabilir ve bu sorunun gerçekten de ilk sayfaya atılmasına gerek yoktu.
Pip,

2
Ben bunu bugün bir iş arkadaşı ile bağladım ve bu cevaba eklenmesi benim için yıllardır doğru olduğundan, bunun iyi olduğunu düşünüyorum. Orada hiçbir şey eski soru yeni alakalı bilgilere ekleyerek yanlış! Çoğu kişi google'ı yığın taşması için bir arabirim olarak kullanır, bu nedenle çok eski öğeler bile bu güne ilişkin alakalı aramalarda görünebilir.
M2TM

1

Oyun geliştiricisine bağlı. Zaman alıcı kısmı oyun varlıkları yapıyor. Bu varlıkları Illustrator ve Photoshop ile yapmanın daha kolay olduğunu düşünüyorsanız, 2D sizin için daha kolaydır, ancak 3D modellemeyi biliyorsanız, muhtemelen 3D'nin 2D'den çok daha kolay olduğunu kabul edersiniz.

Animasyon ile ilgili olarak, kesinlikle 3D, daha kolay ve daha hızlı ve yönetimi daha kolaydır.

Örneğin, 3B'de bir sahnedeki birkaç saat içinde bir karakterin tüm animasyonlarını tek sahnede yapabilirken, 2d'de yapması ve birçok dosyayı kaydetmesi gereken herhangi bir aktivite için karakteri sıfırdan çizmeniz gerekir; 3D'de saatlere karşı.

Ayrıca, bir şeyi değiştirirseniz, hepsini 2B olarak yeniden yapmanız gerekir, ancak karakterinizin şapka olmaması gerektiğine karar verirseniz, örneğin her şeyi değiştirmeniz gerekmez. Şapkayı 3B olarak sildiğiniz tüm animasyonu yinelemeniz gerekmez.

Eğer insansı karakterlerin varsa, binlerce bedava mo-cap animasyonu var. Çoğu zaman oyununuz için animasyon yapmanız gerekmez.

Karmaşıklık ve programlama konusunda hiçbir fark yoktur.

Ancak 3D'yi iyi bilmelisiniz, aksi takdirde oyun motorunda sonlandırılmış olabilirsiniz, animasyonunuz 3D uygulamanızdan farklıdır veya karakter kafanız ters yönde dönüyor ve sorunu nasıl çözeceğinizi ve diğer bazı aksaklıkları bilmiyorsunuz.

Ayrıca, oyun için düşük poli modelleme ve oyun için tekstüre nasıl yapılacağına aşina olmalısınız, animasyon için modelleme ve tekstüre farklıdır.

Bu arada, popüler inanışın aksine 3D, mobil cihazlar için daha az donanım gerektiriyor.

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.