Oyunları konsollardan PC'ye taşımak neden zor? [kapalı]


27

Konsol oyunlarının PC bağlantı noktaları genellikle bir veya iki ay sonra ortaya çıkar. Bu neden?

Oyunlar PC'lerde de derlenen dillerde yazıldığından oyun mantığı sorunsuzca derlenmelidir. Onları geride tutan ne? Kod oluşturma mı yoksa ne?


3
Muhtemelen yayın anlaşmaları nedeniyle. Bir ps3 / ps4 ünvanı kazandığı için örneğin Sony'den ücret alıyorlar.
Aurus

Bazı konsollar için çıkan oyunlardan bahsediyorum. Konsolun serbest bırakılmasından X ay sonra 'liman' çıkacağını söylüyorlar. Soru, beklemelerinin sebebidir. Demek istediğim, pazarlamanın yapacak bir şeyi olabilir, ancak programcının tarafıyla ilgileniyorum.
Bloodcount,

Fakat Aurus haklı, bu en olası cevap. Konsollardan PC'ye kod taşımak birçok nedenden dolayı önemsiz değildir. Konsol sürümünden kısa bir süre sonra PC için çıkan çoğu oyun ilk olarak PC için tasarlandı veya en azından temel teknoloji kolay bir bağlantı noktasını destekliyor. Aksi takdirde birkaç ay yeterli olmaz
Grimshaw

Yorumunuzla ilgili olarak "oyunlar PC'de derlenen dillerde yazılmıştır" her zaman doğru olmamıştır. Özellikle, "Konsollar ve PC'lerin hepsi bilgisayar olabilir, ancak tüm bilgisayarlar eşit yaratılmıyor" adlı ünlü bir teklifi değiştirmek istiyorum.
kurtzbot

Yanıtlar:


47

PC bağlantı noktasının bir süre alabilmesi için birkaç neden var. (Kendimi bir yerde tekrar ediyor gibiysem özür dilerim; bu anında yazı yazmaktır.)

Kontrolleri ve oyunu uyarlama

Bir konsolda oynarken, bu tek başına yapabilecekleriniz hakkında bazı sınırlamalar koyar, çünkü kullanıcının tümünün bir gamepad olması.

Klavye tuşları ve denetleyici girişleri arasında sadece 1: 1 eşleşme oluşturmak her zaman iyi bir fikir değildir - eğer mümkünse - bu nedenle bazen iyi bir çözüm bulmak daha uzun sürer.

Donanım soyutlama / Parçalanma

Örneğin bir Wii U için geliştirdiğiniz zaman, bir Wii U'nun nasıl davrandığını tam olarak bilirsiniz, çünkü tüm Wii Us aynıdır. Bu PC'ler için doğru değildir; çok farklı grafik kartlarına ve işlemcilere sahipsiniz ve bazen bir şey bazılarında işe yaramaz. Bu böcekleri ortaya çıkarmak için çok fazla test yapılması ve bunları düzeltmek de zaman alır.

Eğer ettiyseniz hiç bir PC versiyonunu yapmak için motoru kullanılmış, ayrıca buna göre kod donanım soyutlama gerekir. Bazı oyunlar birden fazla DirectX sürümünü ve Linux / Mac için OpenGL'yi desteklemeyi istemektedir ve bunların tümü daha önce yapılmadıysa yazmak zaman alır.

Kaynak çekişmesi

Konsollarda, oyunun kaynaklar vb. İçin bir işletim sistemi ile rekabet etmesi gerekmez. Arka planda pek fazla şey olmaz.

Bir bilgisayarda işletim sistemi çalışıyor, bol miktarda arka plan programınız var ve bu, umduğunuz gibi büyük bir pay alamayacağınız anlamına geliyor. Bu, özellikle düşük seviye sistemlerdeki oyuncular için bazen ek optimizasyonlar yapmanız gerektiği anlamına gelir

Varlıkların iyileştirilmesi

Bir konsolla sabit bir hedefiniz vardır, böylece o hedefe uygun gölgelendiriciler vb. Yazabilirsiniz.

Bir bilgisayarda, bazı grafik kartları daha gelişmiş özellikleri destekler ve belki de bunlar için daha iyi bir gölgelendirici kullanmak istersiniz. Bu, bu gölgelendiriciyi yazmanız gerektiği anlamına gelir.

Platforma özgü şeyler

Konsol SDK'ları, bir bilgisayara kolayca eşlenemeyen birçok kullanışlı özelliğe sahip olabilir - örneğin, donanım zamanlayıcılarına veya iyi bir ses API'sine erişim sağlayabilir.

Bu şeyler genellikle bilgisayarlarda mevcut değildir; Bunları başarmanın başka yollarını kullanmanız ve belki de platform farklarını soyutlama şeklinizi değiştirmeniz gerekiyor.


4
Kontroller ile ilgili olarak, kullanıcı arayüzü, bir PC masaüstündeki menünün fare ile bile çalışmadığı, örneğin d-pad'den klavyeye 1: 1 eşleme yaptıklarını hala görebiliyorsunuz. Diğer bir potansiyel sorun ise gölgelendirici dilleri ve sürücü desteğidir.
Casper Beyer,

1
Genel olarak iyi cevap. Ancak, geliştiricilerin konsollardan maksimum performansı sıkıştırmak istedikleri durumlarda, düşük seviyeli bir platform spesifik kod katmanının genellikle yeterli olmaması durumunda, konsolun donanımının güçlü niteliklerinden yararlanmak için oyunun kendisi tasarlanmalıdır. t mutlaka PC için de ideal çözüm!
Grimshaw

6

Bunun basit bir nedeni, konsolun konsol başına aynı olan tek bir donanıma sahip olmasıdır.

XBox, PS3 ve Wii'nizin tamamı komşularınız XBox, PS3 ve Wii ile aynı donanıma sahip. Bununla birlikte, bilgisayarınızın farklı bir CPU'su, farklı grafik kartı, farklı miktarda RAM, aslında tüm yapılandırma ve İşletim sistemi ayarları yüklü sürücüleri, dünyadaki hiçbir kimsenin sahip olmadığı tamamen benzersiz bir permütasyon olabilir.

Bir PC'ye bağlantı kurmayı zorlaştıran şey budur. Minimum sistem gereksinimleriniz dahilindeki tüm olası donanım parçalarını hesaba katmanız gerekir. Bu programlamak ve hata ayıklamak için zor ve zor bir süreçtir. Geliştiricilerin bu yapılandırmalar üzerinde testler yapmak için programlanabilecek ve yaklaşılması imkansız olan her yapılandırmayı bilmesi çok zordur.

PC için geliştirdiklerinde, geliştiriciler tarafından evde yapılan kapsamlı testler vardır, ancak birkaç haftadan birkaç aya kadar olan kullanıcıların beta testlerine bağlı olabilir. PC’ye bağlantı noktası resmi olarak piyasaya sürülmeden önce beta oynatıcılarla yapılan testlerin resmen sağlanması, genellikle Konsollar ve PC arasında sürüm tarihlerinde boşluk olduğunu görmenizdir.


5

Kodun yeni bir platforma taşınması zaman alır. Xbox 360 için bir nanosaniye zamanlayıcı oluşturmak (XNA'da hiç geliştirmedim), Linux, Mac veya Windows'ta aynı nanosaniye zamanlayıcısından farklı bir uygulamaya ihtiyaç duyacak. Şimdi, motor yeterince büyükse, taşıma gerektiren yüzlerce bu tür işlevlere sahip olduğunuzu hayal edin.

Yeni platformlar için bu farklı uygulamaları eklemek bir veya iki kodlama işlemini kolayca alabilir. Bunun da ötesinde, her zaman aynı kitaplıkları Xbox 360'ta Windows, Playstation 3 veya başka bir platformda kullanabileceğiniz gibi kullanamazsınız. Bu, Xbox 360 sürümünde yaptığınız şeyi yapmak için tamamen yeni bir kütüphane kullanmanız gerektiği anlamına gelir.

Genel olarak, bu tür şeyler çok fazla zaman kazanıyor. Büyük AAA başlıkları için yeni bir platforma taşıma nadiren kolaydır.


3

Pek çok durumda zor olmakla alakası yok .

Bu sadece bir öncelik değil. Zamanında zorlukla kapıdan çıkmak için krank yapıyorlar. Her dakika farkının hesaba katması zaman alır. Birkaç konsolda veya PC'de bir son teslim tarihine kadar serbest bırakabilirsiniz, önce bunu yapın, sonra portları sarın. Erken bırakın, daha çok para kazanın. Genel olarak konsollar kutulu oyunlar için bu son nesilde daha iyi sonuç verdi, ancak değişmeye başladı - yeni konsollar bunu tersine çevirebilir.

Ayrıca, bazı durumlarda, konsol yapımcıları özel sürümlere fayda sağlar, bu nedenle yayıncı ilk önce ve diğer platformlarda belirli bir konsolda yayınlarsa indirim veya benzeri bir indirim alır. Bu konuda teknik bir şey yok.


1

Başlangıçta, bir konsolda oyun yapmak PC'den zordur. Üstelik, konsollar nintendo, sony ve microsoft arasında çok farklı özelliklere ve donanıma sahip, bu da sadece farklı performansa neden olmakla kalmıyor, aynı zamanda farklı darboğaz sorunları da anlamına geliyor.

Genellikle oyun, her konsoldaki kaliteyi ve performansı en üst düzeye çıkarmak için motorlarını ince ayarlayacaktır.

Bilgisayara adapte olurken başka problemler de var. Konsollar homojendir, yani tüm konsollar aynı donanıma sahiptir (tüm PS3'ler aynı donanım performansına sahiptir). PC için oyununuzu yaptığınızda, minimum bir spesifikasyon hedefliyorsunuz ancak kullanıcının daha güçlü PC'ler için kaliteyi artırmasına da izin veriyorsunuz. PC'ler için hedeflenen oyunlar daha az optimize edilmiştir ancak programcılar için daha kolaydır.

Konsolda programlama bir avantaja sahiptir, programcıların performansı en üst düzeye çıkarmasını sağlar, böylece herhangi bir konsol oyunu her zaman güzel bir şekilde çalışır.

Bir PC'de, daha da kötüsü var, çünkü orada pek çok donanım var, ancak daha fazla özgürlük var, en iyi sonuç veren oyun her zaman PC'de olacak çünkü PC her zaman bir maliyetle kanama kenarında.

Bir oyunu konsoldan PC'ye taşımak zor olabilir, çünkü konsol oyun performansı için tasarlanırken, PC olmasa da, genel olarak, konsolu çok daha az belleğe sahip olduğu için konsolu oyundan bilgisayara aktarmak çok daha kolaydır. 2 veya 4 kat daha az bir şey gibi.

Bu bellek kısıtlamasına uymak için kodun değiştirilmesi çoğunlukla her zaman tam bir yeniden programlama anlamına gelir.

Bir oyunun konsoldan PC'ye taşınmasının zor olduğunu sanmıyorum, bu sadece bir API meselesi. Yalnızca konsollarla çalışan şirketler ve programcılar, PC'ye taşıma konusunda zor zamanlar yaşayacaklar, çünkü buna alışık değiller, aynı zamanda sürekli olarak konsol API'sine uyarlandıkları için kodları konsol derleyici kısıtlamalarına sık sık cevap verecek. PC apis için mutlaka umursamıyorum.

Elbette, motorlar tüm konsollarda ve PC'lerde çalışacak şekilde programlanabilir, daha kolay yapıldığında, programcılarınıza 3 veya 4 yıl boyunca planlanmadıkları söylendikten sonra motoru PC'ye aktarmalarını söylemekten daha iyidir.

TL; DR konsolları homojen ve son bir konsol nesli, PC heterojen ve donanım ve API sürekli gelişiyor. Maliyetler, programlama ve donanım binaları arasında dağılmıştır.

İyi bir şey, tüm donanımın her şeyi çalıştırmasına izin vermek olacaktır, ancak oyun şirketleri konsol üreticilerine bir lisans ödediğinden konsol fiyatları dengelenir, böylece donanımlarını yalnızca ödeme yapan oyun şirketlerini çalıştırmak için kilitlerler. Dağınık.

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.