Mengapa sulit untuk memindahkan game dari konsol ke PC? [Tutup]

27

Port PC untuk gim konsol sering keluar sebulan atau dua bulan kemudian. Kenapa ini?

Game juga ditulis dalam bahasa yang dikompilasi di PC, jadi logika game harus dikompilasi tanpa masalah. Apa yang menahan mereka saat itu? Apakah ini kode render atau apa?

Hitung darah
sumber
3
Mungkin karena penawaran penerbitan. Mereka dibayar dari misalnya Sony untuk membuat judul eksklusif ps3 / ps4.
Aurus
Saya berbicara tentang game yang keluar untuk beberapa konsol. Mereka mengatakan bahwa 'port' akan keluar X bulan setelah rilis konsol. Pertanyaannya adalah apa alasan mereka menunggu. Maksud saya, pemasaran dapat memiliki sesuatu untuk dilakukan, tetapi saya tertarik dari sisi programmer.
Bloodcount
Tapi Aurus benar, itu adalah jawaban yang paling mungkin. Kode porting dari konsol ke PC tidak mudah karena berbagai alasan. Sebagian besar game yang keluar untuk PC secara singkat setelah rilis konsol dirancang untuk PC di tempat pertama, atau setidaknya teknologi yang mendasarinya mendukung port yang mudah. Kalau tidak, beberapa bulan mungkin tidak akan cukup
Grimshaw
Mengenai komentar Anda, "game ditulis dalam bahasa yang dikompilasi di PC" tidak selalu benar. Secara khusus, saya ingin memodifikasi kutipan terkenal, "Konsol dan PC semua mungkin komputer, tetapi tidak semua komputer diciptakan sama".
kurtzbot

Jawaban:

47

Ada sejumlah alasan mengapa port PC dapat memakan waktu cukup lama. (Saya minta maaf jika saya sepertinya mengulangi diri sendiri di suatu tempat; ini semacam ditulis dengan cepat.)

Menyesuaikan kontrol dan gameplay

Saat Anda bermain di konsol, ini saja memberikan batasan tertentu pada apa yang dapat Anda lakukan, karena yang dimiliki pengguna hanyalah gamepad.

Hanya membuat pemetaan 1: 1 antara tombol keyboard dan input pengontrol tidak selalu merupakan ide yang bagus - jika bahkan mungkin - jadi kadang-kadang butuh waktu lebih lama untuk mencari solusi yang baik.

Abstraksi / Fragmentasi Perangkat Keras

Ketika Anda mengembangkan misalnya Wii U, Anda tahu persis bagaimana Wii U berperilaku, karena semua Wii Us identik. Ini tidak benar untuk PC; Anda memiliki banyak kartu grafis dan CPU yang berbeda, dan kadang-kadang ada yang tidak berfungsi pada beberapa di antaranya. Butuh banyak pengujian untuk mengungkap bug ini, dan memperbaikinya juga membutuhkan waktu.

Jika Anda belum pernah menggunakan mesin Anda untuk membuat versi PC, Anda juga perlu membuat kode abstraksi perangkat keras Anda sesuai. Beberapa game ingin mendukung beberapa versi DirectX dan OpenGL untuk Linux / Mac, dan semua itu membutuhkan waktu untuk menulis jika belum pernah dilakukan sebelumnya.

Pertentangan sumber daya

Di konsol, gim ini tidak harus bersaing dengan OS untuk sumber daya, dll. - tidak banyak hal terjadi di latar belakang.

Pada PC, Anda memiliki OS yang berjalan, Anda memiliki banyak program latar belakang, dan ini semua berarti Anda tidak akan mendapatkan bagian sebesar yang Anda harapkan. Ini berarti Anda terkadang perlu melakukan optimasi tambahan, terutama untuk pemain di sistem ujung bawah

Memperbaiki aset

Dengan konsol, Anda memiliki target tetap, sehingga Anda menulis shader, dll. Untuk mencocokkan target itu.

Pada PC, beberapa kartu grafis mendukung fitur yang lebih canggih, dan mungkin Anda ingin menggunakan shader yang lebih baik untuk itu. Nah, itu berarti Anda harus menulis shader itu.

Hal-hal khusus platform

SDK konsol mungkin memiliki banyak fitur nyaman yang tidak mudah dipetakan ke PC - misalnya, mungkin memberikan akses ke pengatur waktu perangkat keras atau API suara yang bagus.

Hal-hal itu biasanya tidak tersedia di PC; Anda perlu menggunakan cara lain untuk mencapai hal-hal itu dan mungkin itu mengubah cara Anda harus mengabstraksi perbedaan platform.

Michael Madsen
sumber
4
Terkait dengan kontrol, antarmuka pengguna, Anda masih dapat melihat ini banyak, di mana menu pada PC desktop bahkan tidak bekerja dengan mouse, misalnya mereka telah melakukan pemetaan 1: 1 dari d-pad ke keyboard. Masalah potensial lainnya adalah bahasa shader dan dukungan driver.
Casper Beyer
1
Jawaban yang bagus. Namun, dalam kasus di mana pengembang ingin memeras kinerja maksimal dari konsol, lapisan rendah kode khusus platform biasanya tidak cukup, gim itu sendiri harus direkayasa untuk memanfaatkan atribut kuat dari perangkat keras konsol, yang tidak t tentu solusi ideal untuk PC juga!
Grimshaw
6

Alasan sederhana adalah bahwa konsol memiliki satu set perangkat keras yang sama untuk setiap konsol.

XBox, PS3 dan Wii Anda semua memiliki perangkat keras yang sama dengan tetangga Anda XBox, PS3 dan Wii. Namun komputer Anda memiliki CPU yang berbeda, kartu grafis yang berbeda, jumlah RAM yang berbeda, pada kenyataannya seluruh konfigurasi dan pengaturan sistem operasi, driver yang diinstal semua bisa menjadi permutasi yang benar-benar unik yang tidak dimiliki oleh orang lain di dunia.

Inilah yang membuatnya sulit untuk port ke PC. Anda perlu memperhitungkan setiap kemungkinan perangkat keras dalam persyaratan sistem minimum Anda dan di atas. Itu adalah proses yang rumit dan sulit untuk memprogram dan men-debug. Sangat sulit bagi pengembang untuk mengetahui setiap konfigurasi untuk diprogram dan hampir tidak mungkin untuk menjalankan tes pada konfigurasi ini.

Setelah mereka mengembangkannya untuk PC ada pengujian ekstensif yang dilakukan di rumah oleh para devs tetapi juga dapat bergantung pada pengujian beta dari pengguna untuk lebih dari beberapa minggu hingga beberapa bulan. Outsourcing pengujian dengan pemain beta ini sebelum port ke PC dirilis secara resmi adalah alasan mengapa Anda melihat kesenjangan pada tanggal rilis antara konsol dan PC.

Piddock Tom 'Blue'
sumber
5

Memindahkan kode ke platform baru membutuhkan waktu. Membuat timer nanosecond untuk Xbox 360 (saya belum pernah dikembangkan di XNA) akan membutuhkan implementasi yang berbeda dari timer nanosecond yang sama di Linux, Mac, atau Windows. Sekarang bayangkan Anda memiliki ratusan jenis fungsi yang perlu porting, ribuan jika mesinnya cukup besar.

Dapat dengan mudah membutuhkan satu atau dua bulan pengkodean untuk menambahkan implementasi yang berbeda untuk platform baru ini. Selain itu, Anda tidak dapat selalu menggunakan pustaka yang sama di Xbox 360 seperti pada Windows, Playstation 3, atau platform lain. Ini berarti Anda berpotensi harus menggunakan perpustakaan baru untuk melakukan hal yang sama seperti yang Anda lakukan pada versi Xbox 360.

Secara keseluruhan, hal-hal semacam ini menambah jumlah waktu yang besar. Porting ke platform baru jarang mudah untuk judul AAA besar.

TorbenC
sumber
3

Hampir tidak ada hubungannya dengan menjadi keras dalam banyak kasus.

Itu bukan prioritas. Mereka cranking untuk nyaris keluar dari pintu tepat waktu. Setiap perbedaan menit membutuhkan waktu untuk memperhitungkan. Jika Anda dapat merilis pada beberapa konsol atau PC dengan tenggat waktu, lakukan itu terlebih dahulu, lalu bungkus porta. Lepaskan lebih awal, dapatkan lebih banyak uang. Umumnya konsol telah melakukan lebih baik untuk permainan kotak generasi terakhir ini, meskipun sudah mulai bergeser - konsol baru mungkin membalikkan itu.

Juga, dalam beberapa kasus, pembuat konsol memberikan manfaat untuk rilis eksklusif, sehingga penerbit mendapatkan diskon atau semacamnya jika mereka rilis pada konsol tertentu terlebih dahulu dan platform lainnya nanti. Tidak ada yang teknis tentang itu.

Sean Middleditch
sumber
1

Awalnya, gim lebih sulit dibuat di konsol daripada di PC. Selain itu, konsol memiliki spesifikasi dan perangkat keras yang sangat berbeda antara nintendo, sony dan microsoft, yang tidak hanya menghasilkan kinerja yang berbeda, tetapi juga berarti masalah bottlenecking yang berbeda.

Biasanya, gim hanya akan mengubah mesin mereka untuk memaksimalkan kualitas dan kinerja di setiap konsol.

Saat beradaptasi dengan PC, ada masalah lain. Konsol bersifat homogen, artinya semua konsol memiliki perangkat keras yang sama (semua PS3 memiliki kinerja perangkat keras yang sama). Saat Anda membuat game untuk PC, Anda menargetkan spesifikasi minimum, tetapi Anda juga memungkinkan pengguna untuk meningkatkan kualitas untuk PC yang lebih kuat. Game yang ditargetkan untuk PC kurang dioptimalkan, tetapi lebih mudah dibuat untuk programmer.

Pemrograman pada konsol memiliki satu keunggulan, memungkinkan pemrogram untuk memaksimalkan kinerja, sehingga setiap konsol game akan selalu tampil baik.

Pada PC, ini lebih buruk, karena ada banyak perangkat keras di luar sana, tetapi diberikan, itu lebih banyak kebebasan, permainan yang tampak terbaik akan selalu ada di PC, karena PC selalu berada di ujung pendarahan, dengan biaya.

Porting game dari konsol ke PC bisa rumit, karena konsol dirancang untuk kinerja game, sedangkan PC tidak, tetapi secara keseluruhan, jauh lebih mudah untuk port game dari konsol ke PC daripada sebaliknya, karena konsol memiliki memori yang sangat sedikit, sekitar 2 atau 4 kali lebih sedikit.

Mengubah kode untuk beradaptasi dengan batasan memori ini sebagian besar selalu berarti pemrograman ulang lengkap.

Saya tidak berpikir sulit untuk mem-port game dari konsol ke PC, itu hanya masalah API. Perusahaan dan pemrogram yang bekerja hanya dengan konsol akan mengalami kesulitan porting ke PC, karena mereka tidak terbiasa dengan itu, tetapi juga karena mereka terus-menerus beradaptasi dengan konsol API, sehingga itu berarti kode mereka akan sering menjawab pembatasan kompiler konsol, dan belum tentu merawat apis PC.

Tentu saja, mesin dapat diprogram untuk berjalan di semua konsol dan PC, setelah selesai lebih mudah, lebih baik daripada memberi tahu programmer Anda untuk memport mesin ke PC setelah mereka diberi tahu bahwa itu tidak pernah direncanakan selama 3 atau 4 tahun.

Konsol TL; DR homogen dan generasi konsol terakhir, PC heterogen, dan perangkat keras serta API terus berevolusi. Biaya tersebar antara pemrograman dan pembangunan perangkat keras, yang merupakan kompromi.

Satu hal yang baik adalah mengizinkan semua perangkat keras untuk menjalankan semuanya, tetapi harga konsol dikompensasi karena perusahaan game membayar lisensi produsen konsol, sehingga mereka mengunci perangkat keras mereka untuk menjalankan hanya perusahaan permainan yang membayar. Berantakan.

jokoon
sumber