Bagaimana pengembang non-indie berhenti menciptakan kembali roda?

8

Sepertinya status quo di industri game adalah menulis sebagian besar perangkat lunak di rumah, mungkin mengecualikan mesin jika Anda menggunakan salah satu dari selusin yang lebih besar. Sebelum bekerja di sini, saya sebagian besar adalah pengembang open-source, jadi pola pikir ini benar-benar gila bagi saya. Apakah ada cara yang baik kita semua bisa berhenti membangun hal-hal seperti log viewer, diagnostik jaringan, dan sistem penambalan?

coderanger
sumber

Jawaban:

15

Kita dapat berhenti menciptakan kembali roda dengan ... berhenti menciptakan kembali roda. Gunakan perpustakaan eksternal, mesin game, dll.

Saya merasakan bahwa orang memang menciptakan kembali roda untuk:

  • Hindari hak cipta, royalti, dll di perpustakaan atau kode pinjaman
  • Hindari membayar untuk mesin game (untuk game AAA penuh, ini bisa sangat mahal)
  • Menjaga keakraban akrab dengan seluruh basis kode - menambahkan perpustakaan eksternal, menghubungkan ke mesin permainan, dll. Hanya berarti lebih banyak kode untuk menjadi akrab dengan dan mungkin mempertahankan
  • Menulis semua kode Anda sendiri berarti Anda dapat mengoptimalkannya secara spesifik untuk permainan Anda
  • Kode itu kemudian dapat dilisensikan kepada orang lain jika diinginkan, menggunakannya kembali untuk proyek lain, dll sambil Anda mempertahankan kontrol kepemilikan
Sean James
sumber
Saya setuju dengan semua itu! Saya sendiri harus menemukan kembali beberapa barang untuk menghindari kode yang dipatenkan, juga saya harus menghindari membayar untuk mesin permainan, dan akhirnya, saya sering memiliki masalah yang bukan kesalahan saya (seperti permainan saya saat ini yang memiliki 3 cacat, satu adalah bahwa mesin fisika memiliki perilaku kontra-intuitif ... ini berarti saya perlu membaca sumbernya secara mendalam ... yang lain adalah bahwa mixer tampaknya memiliki beberapa cara sewenang-wenang untuk memilih prioritas, dan akhirnya, mesin permainan itu sendiri dengan editor peta, acak segfault ketika saya membongkar peta ... Sekali lagi kode ini berarti menyapu ...)
speeder
Pertanyaannya lebih bersifat sosial, bagaimana kita bisa mendorong itu? Apakah ada, misalnya, alat untuk menambal yang merupakan game-agnostik? Ada beberapa algoritma dan pustaka yang mendasari untuk manipulasi data (algoritma rsync, zlib) tapi saya tidak tahu apa-apa yang sejauh UI.
coderanger
1
Anda telah melewatkan benar-benar dapat mengarungi dan memperbaiki masalah di perpustakaan selama rilis rilis tanpa harus memperhitungkan waktu penyelesaian pihak ketiga pada sumber tertutup mereka, dan untuk mengoptimalkan perpustakaan untuk kasus penggunaan yang tepat. Itu bisa sangat berharga.
moonshadow
1

Tergantung. Saya pikir sebenarnya ada cukup banyak barang setengah jadi di luar sana, yang digunakan, ... jika Anda bersedia membayarnya.

Pada saat yang sama kadang-kadang mudah untuk meretas sesuatu untuk menjadi sangat cepat tanpa banyak ketergantungan eksternal, jika cakupannya kecil.

Saya pikir di highend, Anda harus membandingkan perusahaan seperti EA dan Ubisoft dengan perusahaan perangkat lunak besar lainnya, seperti Apple, Google, Facebook, apa pun yang Anda miliki.

Mereka semua menulis sejumlah besar kode kustom, ketika ada alternatif yang ada, karena mereka ingin mendapatkan keunggulan kompetitif.

Sebagai @Sean James mengatakan ada alasan hukum dan sejumlah alasan lain, tapi saya pikir bahkan jika tidak ada road block, perusahaan perangkat lunak inventif masih akan mengembangkan alternatif kustom untuk komponen perangkat lunak yang ada jika mereka berpikir mereka bisa membuatnya lebih baik.

Namun saya juga setuju bahwa selalu ada ruang untuk memulai beberapa proyek yang bisa kita manfaatkan. Sebagai contoh, saya pikir kita perlu mengganti COLLADA dengan sesuatu yang lebih sederhana yang berbasis JSON. Mungkin sesuatu yang hanya menangani jerat sewenang-wenang, tetapi tidak ada yang lain. Saya pikir kita benar-benar membutuhkan format mesh yang lebih baik.

Jonathan Fischoff
sumber
Tidak hanya keunggulan kompetitif untuk menulis 'middleware' Anda sendiri tetapi juga berarti dukungan internal. Itu bisa berguna pada saat krisis besar, atau ketika bug tidak mungkin untuk mereproduksi tanpa menyerahkan seluruh permainan Anda.
Kaj
Tidak terlalu menyebutkan apakah perusahaan mesin game dibeli, atau kode mereka dibajak, daftarnya berlanjut. Tergantung pada kode orang lain adalah kewajiban yang sulit untuk diukur, tidak ada banyak pengguna, yang merupakan kasus dengan banyak middleware spesialis
Jonathan Fischoff
Saya tidak berpikir kode khusus akan hilang, tetapi tidak ada format yang bisa diterapkan untuk berbagi data tidak membantu pengembangan alat.
Jonathan Fischoff
Banyak waktu, setidaknya di perusahaan saya, orang lebih suka membangun kembali barang-barang di rumah hanya karena headcount sudah dianggarkan dan membeli middleware komersial tidak (dan lebih mudah untuk meminta programmer untuk bekerja 10 jam sehari daripada dapatkan markas untuk mengesahkan pengeluaran modal besar). Bukankah manfaat dari kolaborasi yang lebih bebas akan menjadi keuntungan yang lebih besar daripada keunggulan kompetitif dari alat-alat eksklusif?
coderanger
Saya pikir itu bisa diperbaiki, tapi itu pikir itu masalah yang melampaui perusahaan game. Ada lebih sedikit menggunakan kembali kode maka harus ada secara umum, bukan hanya dengan game. Pada tingkat pribadi saya ingin membantu menjalankan beberapa proyek.
Jonathan Fischoff
1

Apakah ada cara yang baik kita semua bisa berhenti membangun hal-hal seperti log viewer, diagnostik jaringan, dan sistem penambalan?

Dalam pengalaman saya, hal-hal ini diperlakukan sebagai tambahan sederhana yang dapat disatukan dengan pemrograman 'nyata' Anda. Tentu saja, mereka berubah menjadi jauh dari sederhana dan jauh dari 'ekstra', menjadi bagian yang kompleks dan penting dari sistem, tetapi pada saat itu sudah ada terlalu banyak investasi dalam versi yang dipesan lebih dahulu.

Apakah ada pustaka sumber terbuka atau komersial yang menyediakan jenis fungsi ini? Saya tidak yakin ada, dan sampai seseorang melangkah dan menyediakan satu, itu akan tetap seperti ini. Pengembang bisnis sering kali tidak dapat menghasilkan perpustakaan yang cocok untuk game (" apa, maksud Anda Anda tidak bisa sepenuhnya menghapus semua panggilan dalam rilis Rilis ?! ") dan pengembang game sering tidak tertarik membuat semacam ini hal sebagai paket mandiri ketika mereka memiliki permainan untuk melanjutkan.

Kylotan
sumber