2d oyunlar için bir 3d motor kullanmanın artıları / eksileri nelerdir? [kapalı]


16

Yeni başlayanlar 2d oyun motoru (Slick2D / Flixel / FlashPunk gibi) ve 2d oyun geliştirme için bir 3d motor (Unity gibi) arasında karar verirken hangi artıları veya eksileri bilmelidir?

Geçmişte Game Maker, Flash ve XNA ile biraz uğraşmış olmama rağmen, indie oyun geliştirmeye yeni başladım. Unity hakkında birçok olumlu şey duydum ve platformlar arası doğası onu çekici kılıyor, ancak anladığım kadarıyla, çekirdeğinde bir 3d motor var.

Kesinlikle 2d bir oyun için, Unity gibi bir 3d motorla çalışmak için zorlayıcı nedenler var mı? Yoksa sadece ilk öğrenme deneyimime gereksiz karmaşıklık getirir mi?


Unity (sprite ve 2D hareketi gibi) gibi bir şeyde tamamen 2D bir oyun veya 2D oynanışı olan bir 3D oyun (3D varlıklarda olduğu gibi sadece tek bir düzlemde hareket ediyor) bağlamında mı soruyorsunuz?
chaosTechnician

Coypu Space Rumble adlı bir 2D oyun yapmak için Unity ile birlikte çalışmış arkadaşlarım var . İlk 2B kısmı oldukça sıkıcıydı, neden daha fazla başkanlık isteyeceğim.
Jonathan Connell


"3D motor" tanımlansın mı? Oynanışı kapsayan bir şeyden mi yoksa sadece 3D olarak ortaya çıkan bir şeyden mi bahsediyoruz?
Nicol Bolas

@chaosTechnician - Birincisi: tamamen 2D sprite, 2D hareketi, temelde gerçek z ekseni yok (sprite oluşturma sırasını belirlemek için sadece basit bir z-endeksi)
mrohlf

Yanıtlar:


15

Oyuna bağlıdır, ancak çoğunlukla 2d için özel olarak tasarlanmış bir motor kullanarak kesinlikle 2d oyun yapmak daha kolay olacaktır.

Şimdi bazı artıları ve eksileri için (bunlardan bazıları özellikle Birlik ile ilgili olacak, bazıları daha genel)

Eksileri

  1. 3d motorlar genellikle 3d modeller (çokgenler ve dokular) olan oyun nesneleri etrafında tasarlanmıştır. Düz bir düzlem yapmak ve ona bir doku uygulamak kesinlikle mümkün olsa da, bunu yaparken motora karşı aktif olarak çalışıyorsunuz.

  2. Ek olarak, birçok 3d motor sprite sayfalarıyla (bir dokudaki tüm animasyon kareleri) başa çıkma yeteneğinden yoksundur, çünkü animasyonun dokuya değil, modele (arma ve diğer yöntemlere rağmen) etki etmesini beklerler. Yine, bunun etrafında yollar var, ama yine de, bunu başarmak için motora karşı aktif olarak çalışıyorsunuz.

  3. Karmaşıklık eklendi. Josh Petrie'nin cevabında belirtildiği gibi, 3d, çoğunlukla matematik ve sahne yönetiminde, 2d'den çok daha karmaşıktır. Nesneleri taşımak ve 3B alanı kullanmak zordur ve eğer bu ilk oyunlarınızdan biri ise, o kadar zor olacaktır. İyi haber: Birlik bu sorunların bazılarını soyutlıyor, ancak yine de ele almanız gereken bazı şeyler olacak (ve soyutlamanın çoğu, yine 2d sprite değil, 3d modeller içindir)

  4. Unity'nin birlikte geldiği ya da alabileceğiniz çoğu kütüphane 3d nesneler içindir. Bu, aydınlatma, yol bulma, fizik, vb. Şeyleri içerir. Bu arada, box2d, Flash veya XNA veya bir şeyle (belki de) kolayca çalışacaktır.

Artıları

  1. 3d Hızlanma. Grafik kartları bir sahnede çok sayıda nesneyi işlemekten çok CPU'dan daha iyidir ve Unity ile bu avantajı gerçekten kolayca elde edebilirsiniz. Bu, ekranda binlerce sprite görüntülemenizi veya kolayca parçacık efektlerini eklemenizi veya alanı ve zamanı çarpıtma gibi serin efektleri desteklemek için gölgelendiriciler gibi eğlenceli bir şey eklemenizi sağlar. Unity, yerleşik bu efektlerin çoğuna sahiptir, bu da onu gerçekten kolaylaştırır. Birçok 2d motorun sahnelerin arkasında OpenGL veya DirectX kullandığını ve çoğu durumda donanım hızlandırılabileceğini unutmayın.

  2. Model desteği. Daha önce sorun olan şeyi hatırlıyor musun? Evet, bu da bir fayda olabilir. Oyuna bağlı olarak, dönen küreleri veya arka planda bir 3d nesne gibi havalı bir şey ekleyebilmek bir fayda sağlayabilir. Ayrıca, 3B'den yapılmış bir oyuna da sahip olabilirsiniz, ancak sadece 2d perspektife zorlanmış, bu da size işlemek için tonlarca ekstra grafik yapmak zorunda kalmadan dünya geometrisini döndürme seçeneği sunabilir.

  3. 3d öğrenme. Kabul edelim, birçok oyun 3d olarak yazılmıştır ve Unity'yi nasıl kullanacağınızı öğrenirseniz, bu becerilerin çoğunu 3d gerektirebilecek bir sonraki oyuna uygulayabilirsiniz. Buna ek olarak, şu anda okuldan çıkan birçok sanatçıya 3d modelleme öğretiliyor, bu nedenle geleneksel bir 2d oyun sanatçısından daha iyi bir 3d sanatçı bulmak daha kolay (söylenen sanatçıların iyi olup olmadığı ...)

Sonuç

Çok fazla eksileri var, aynı zamanda iyi bir artılar var. Her şey yapmak istediğiniz oyuna bağlı olacak, buna değip değmeyeceğine karar vermek size kalmış. Flash hala son derece uygulanabilir bir seçenektir, bu nedenle oyununuza daha iyi uyan şey ise 2d motorla gitmenin yanlış bir yanı yoktur.


+1. Çok kapsamlı ve uygulanabilir cevap. Bunu daha önce ele aldığınızı hissediyorum.
chaosTechnician

Teşekkürler, tam aradığım şey! Sanırım 2d motorlara odaklanmaya devam edeceğim, çünkü gördüğüm çoğu OpenGL veya DirectX üzerine inşa edildi ve 3d modelleme şu anda yeteneklerimin biraz dışında. Unity'yi bir noktada öğrenmek istiyorum, ancak muhtemelen kemerin altında 2d bir oyun yaptıktan sonra mücadele etmekten daha iyi olacağım.
mrohlf

Ayrıca, 3D motorlar keyfi dönüş ve alfa ile spriteları gerçekten, gerçekten kolayca çizmenizi sağlar; daha saf bir 2D motorunuz olduğundan daha kolay. Bu yüzden birçok modern 2D motor kaputun altında gerçekten 3D; ayrıca özel gölgelendiriciler yazabilirsiniz!
ashes999

7

Bir büyük dezavantajı ise ekstra karmaşıklık - 3D motorları her zaman olur adanmış 2B motorları gibi 2D grafikler için birinci sınıf aynı düzeyde destek yok. Bu, 2B bir sahne oluşturma ve yönetme ile başa çıkmak için fazladan bir çalışma anlamına gelir ve / veya hala 3B matematik ve dönüşüm boru hattının karmaşıklığıyla uğraşmak zorunda kalırsınız. Özellikle 3D grafik teorisinin temellerine tamamen aşina değilseniz, resimleriniz gösterilmediğinde kendinizi kaybolmuş ve şaşkın bulabilirsiniz ve dikkatli değilseniz, görüntüler görünür ancak her zaman doğru değildir (ve bu nedenle sizi daha sonra ısıracaktır).

Ancak insani yönünün ötesinde, 3D motor 2D oyununuzu oluşturmak için ihtiyacınız olan araçlara sahip olduğu sürece, birini kullanmak kötü bir fikir değildir . Bu günlerde çok daha yaygınlar ve daha agresif bir şekilde geliştirilme eğilimindeler, bu bir artı. Buna ek olarak, muhtemelen sahnelerin arkasında D3D veya OpenGL kullanmayan ve dolayısıyla modern GPU'lardan faydalanamayan birkaç 2D odaklı motor veya çerçeve var.

Bu ilgili soruda , 3D'yi neyin daha zor hale getirebileceği hakkında çok fazla tartışma görebilirsiniz (sadece 3D motoru bir 2D oyun için kullanmanız gereken bir alt kümeyle uğraşmanız gerekecek).


2

Pro: Video kartı üreticileri 3D sürücülerini optimize etmek için daha fazla çaba harcıyorlar. Özel FX veya flor için 2B'de takılı kalmazsınız. Kendini tekrar tekrar simüle etmek zorunda değilsin. Bakış açılarını değiştirmek, tüm sanatınızın tamamen yeniden yapılmasını gerektirmez. 3D'nin görsel olarak daha iyi ölçeklendiğini iddia edeceğim.

Con: Varlık boru hatlarının muhtemelen motorunuza uyarlanması gerekecektir. 2B'de basit olan bazı işlemler 3B'de daha karmaşıktır. Kütüphaneler muhtemelen asla kullanmayacağınız ekstra işlevselliğe sahip olacaktır.


0

Mümkünse birliği öğren. Unity, açık kaynak kodlu ve ücretsiz olan Blender 3D ile gerçekten iyi çalışıyor. Blender'da uçaklarla 2D modelleme ve animasyon yapma konusunda bir sürü iyi çevrimiçi öğretici var. Ayrıca, başlangıç ​​noktaları olarak kullanabileceğiniz ücretsiz veya ucuz olarak çevrimiçi olarak indirebileceğiniz bir TON modeli vardır.

Bu, elbette, kendi Oyun Motorunuzu yaratmaya uygun olmadığınızı varsayar. Şu anda en sevdiğim 2D oyunu, Flash'ta tasarlanan Süper Et Boyu ve programlama sonu özel olarak yapıldı ... oyunların özel ihtiyaçlarına uygun bir oyun motoru yapıyor. Böyle bir projeye yaklaşmanın en iyi yolu budur çünkü size çok fazla özgürlük verir. Bu rotaya gitmek çok iş gerektirdiğini söyledi.


Aslında, UNITY artık 2B destek eklediğine göre, bu daha fazla beyinsizdir
Aesadai

1
Hala Unity'nin 2D oyunlar için berbat olduğunu söylüyorum. 2d oyunlar için benim için profesyonel bir kalite DEĞİL, sadece Cocos2D-swift gibi sağlam bir 2D motorla karşılaştırın. Bu beyin değil.
Jonny
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.