Saya akan mengawali ini dengan mengatakan saya belum melihat sumber permainan dalam jumlah besar, atau membangun banyak di jalan permainan.
Tapi datang dari mencoba menggunakan praktik pengkodean 'perusahaan' di aplikasi web, melihat kode sumber permainan benar-benar menyakitkan kepala saya: "Apa yang dilakukan logika pandangan ini dengan logika bisnis? "
Ini membuat saya khawatir karena saya akan memulai sebuah proyek game, dan saya tidak yakin apakah mencoba mvc / tdd proses dev akan menghambat kami atau membantu kami, karena saya tidak melihat banyak contoh game yang menggunakan ini atau banyak dorongan untuk praktik arsitektur yang lebih baik di masyarakat.
Berikut ini adalah kutipan dari artikel hebat tentang game prototyping , meskipun bagi saya sepertinya sikap yang tampaknya banyak digunakan para game dev ketika menulis kode game produksi:
Kesalahan # 4: Membangun sistem, bukan permainan
... jika Anda pernah menemukan diri Anda mengerjakan sesuatu yang tidak secara langsung memajukan Anda, berhenti di situ. Sebagai pemrogram, kami memiliki kecenderungan untuk mencoba menggeneralisasi kode kami, dan membuatnya elegan dan dapat menangani setiap situasi. Kami menemukan bahwa gatal sangat sulit tidak tergores, tetapi kita perlu belajar caranya. Butuh waktu bertahun-tahun untuk menyadari bahwa ini bukan tentang kode, ini tentang permainan yang Anda kirim pada akhirnya.
Jangan menulis sistem komponen permainan yang elegan, lewati editor sepenuhnya dan sembunyikan status dalam kode, hindari kegilaan XML yang didorong data, self-parsing, XML, dan hanya kode hal yang terkutuk itu.
... Dapatkan barang-barang di layar secepat mungkin.
Dan jangan pernah, gunakan argumen "jika kita mengambil waktu ekstra dan melakukan ini dengan cara yang benar, kita dapat menggunakannya kembali dalam permainan". PERNAH.
apakah itu karena game (sebagian besar) berorientasi visual sehingga masuk akal bahwa kode akan sangat terbebani dalam pandangan, sehingga setiap manfaat dari memindahkan barang ke model / pengendali, cukup minim, jadi mengapa repot-repot?
Saya telah mendengar argumen bahwa MVC memperkenalkan overhead kinerja, tetapi menurut saya ini adalah optimasi prematur, dan bahwa ada masalah kinerja yang lebih penting untuk ditangani sebelum Anda khawatir tentang overhead MVC (mis. Render pipeline, algoritma AI, datastructure traversal, dll).
Hal yang sama tentang TDD. Saya jarang melihat permainan menggunakan test case, tetapi mungkin ini disebabkan oleh masalah desain di atas (tampilan campuran / bisnis) dan kenyataan bahwa sulit untuk menguji komponen visual, atau komponen yang mengandalkan hasil probablistik (misalnya beroperasi dalam simulasi fisika ).
Mungkin saya hanya melihat kode sumber yang salah, tetapi mengapa kita tidak melihat lebih banyak praktik 'perusahaan' yang digunakan dalam desain game? Apakah game benar-benar berbeda dalam persyaratannya, atau apakah ada masalah orang / budaya (mis. Game dev datang dari latar belakang yang berbeda dan karenanya memiliki kebiasaan pengkodean yang berbeda)?