Dalam permainan pemain tunggal, ketika mencoba membangun entitas dari komponen yang ditentukan dalam skrip eksternal, menurut Anda apa yang lebih diinginkan untuk terjadi ketika salah satu komponen itu terbentuk dengan buruk:
- Haruskah mesin melewati komponen itu dan membiarkan entitas hidup di dunia game dengan hanya komponen yang ditulis dengan baik?
- Atau haruskah itu tidak menambahkan entitas ke dunia sama sekali jika salah satu komponennya tidak terbentuk dengan baik?
Catatan, saya tidak berbicara tentang mencatat kesalahan - yang seharusnya terjadi tanpa mengatakan - hanya tentang apa yang harus terjadi pada entitas.
component-based
validation
Paul Manta
sumber
sumber
Jawaban:
Jika Anda berbicara tentang game yang dapat dimodifikasi, maka Anda mungkin ingin mengikuti salah satu saran Anda di atas. Tetapi jika Anda khawatir tentang kesalahan Anda sendiri, saya katakan jangan lakukan itu. Saya telah menjadi pendukung Gagal-Cepat . Jika ini adalah kesalahan yang Anda buat dan harus atasi sebelum melepaskan, Anda harus membuat kesalahan itu jelas. Artikel yang ditautkan di bagian bawah halaman wiki adalah bacaan yang bagus tentang masalah mengapa gagal cepat itu baik, dan kapan harus dan tidak boleh digunakan.
sumber
Perbedaan antara pengguna dan pengembang tidak selalu jelas dalam pengembangan game. Teknik pemrograman standar seperti "gagal cepat" tidak selalu menguntungkan, terutama ketika ukuran tim bertambah.
Misalnya, mungkin artis teknis Anda telah mengacaukan garis batas penargetan - hancurkan mundur, katakanlah, jadi itu hanya memuat pada sistem SM4, dan dia tidak menyadarinya karena dia mendapat bagian atas sistem garis. Ini menyebabkan beberapa animasi gagal dimuat. Animasi-animasi tersebut dirujuk oleh mantra tertentu yang ditulis oleh desainer tempur Anda. Akhirnya, perancang level Anda mencoba untuk membuat spawns di tempat dan spawns semua kebetulan mampu melemparkan mantra itu - tetapi sekarang dia tidak dapat menempatkan salah satu dari mereka di dunia karena mantra mereka tidak valid karena efeknya tidak muncul. valid karena shader tidak mau dimuat karena desainer selalu memiliki komputer terburuk.
Jadi demo Anda belum siap sebelum jam 2 siang dan investor Anda bertanya-tanya mengapa Anda bahkan tidak bisa mendapatkan satu musuh pun dalam game dan proyek Anda akan ditutup.
Atau Anda memilih opsi di mana Anda mencatat kegagalan tetapi terus berusaha, dan permainan berjalan dengan baik kecuali beberapa efek mantra musuh tidak muncul - tetapi para investor tidak tahu seperti apa seharusnya itu, sehingga mereka tidak tahu. memperhatikan.
Untuk alasan itu, saya hampir selalu akan menganjurkan opsi pertama - menelurkan entitas sebanyak yang Anda bisa. Ada beberapa kasus kegagalan-cepat - seperti jika data tidak boleh diedit kecuali oleh orang-orang yang mampu melakukan pembangunan (yaitu programmer dan produsen teknis) dan selalu diperiksa 100% saat dimuat, atau jika Anda benar-benar yakin orang yang bertanggung jawab atas masalahnya adalah orang yang menggunakan editor - tetapi itu bukan kasus yang biasa, dan memerlukan banyak infrastruktur teknis, yang Anda mungkin belum siap untuk berinvestasi.
sumber
Pengguna harus dapat melihat pratinjau entitas yang akan ia impor, dan tahu sebelumnya jika ada kesalahan.
Entah bagaimana Anda harus memutuskan kesalahan apa yang harus berakibat fatal, mencegahnya ditambahkan ke permainan, dan mana yang dapat diabaikan sebagai peringatan .
Tentu saja jika karena alasan apa pun entitas yang diimpor mungkin dapat mengubah data savegame secara ireversibel, Anda sebaiknya meminta itu tanpa cacat.
sumber
Saya menyarankan bahwa dalam pengembangan, harus berisik tentang data yang tidak valid. yaitu mencatat segala sesuatu di suatu tempat itu akan dibaca. Namun, jika mesin Anda dapat mengabaikan hal ini dan melanjutkannya, maka ia harus melakukannya. Anda dapat memiliki logika seperti
Bahkan dalam permainan multi-pemain ini dapat diterima kecuali Anda mengasumsikan bahwa satu pemain mencoba menipu sistem.
Setelah merilis perangkat lunak, Anda mungkin ingin mematikan logging ini secara default dengan asumsi para pemain tidak akan membaca log ini.
sumber