Selamat datang di industri game :)
Jadi, Anda melakukan refactoring besar-besaran. Refactoring besar-besaran adalah Jahat, tapi bukan itu topiknya. Anda mungkin diberi tugas ini untuk menguji saraf Anda, jadi jangan menyerah.
Jawaban saya adalah: Anda harus memecahnya menjadi potongan-potongan kecil. Ini akan menjadi rutinitas harian Anda dalam beberapa bulan, jadi Anda harus belajar cara membagi dan menaklukkan. Ini pada dasarnya tugasmu. Beberapa saran:
Pastikan Anda memahami apa yang seharusnya dilakukan komponen ini . Bermainlah dengan apa yang harus Anda ambil dan lihat apa fungsinya, tanyakan kepada kolega Anda apakah asumsi Anda benar.
Anda menulis ulang modul ini karena suatu alasan. Mungkin tidak jelas bagi Anda, tetapi jika Anda diberi tugas ini kemungkinan besar karena ada sesuatu yang sangat buruk sehingga orang merasa lebih baik memulainya dari awal. Tanyakan sekitar: cacat apa itu ?
Coba temukan fitur inti dari komponen yang Anda tulis ulang, substansinya, alasan keberadaannya, dan mulailah dengan membuatnya berfungsi. Itu harus sangat kecil, sekecil yang Anda bisa. Tanyakan kepada kolega Anda tentang apa yang mereka pikirkan tentang fitur ini. Jika ini sistem GFX, cukup tampilkan satu poligon. Jika ini adalah sistem animasi, cukup tempatkan satu tulang dengan benar. Jika ini adalah sistem AI, buat saja ia memainkan animasi. Dll dll. Hanya buang semua yang menghalangi dan memberi Anda semua kesalahan yang menakutkan itu. Jangan terganggu oleh detailnya, cukup buat fitur inti ini bekerja secepat mungkin. Implementasi Anda akan jelek, penuh dengan bug, retasan, dan angka ajaib dan Anda tidak akan membiarkan siapa pun melihat kode Anda, tetapi itu tidak masalah.
Setelah Anda memiliki fitur inti ini, Anda akan mulai merasa lebih baik. Sangat penting untuk melihat hasil pekerjaan Anda sedini mungkin 1) untuk semangat Anda 2) untuk dapat mengujinya. Jadi, uji, stres, uji, siksa . Jika crash atau menunjukkan bug yang sangat buruk, perbaiki ini. Ini adalah jantung dari modul Anda jadi ulang sedikit dan bersihkan sampai Anda merasa nyaman dengannya.
Lalu perlihatkan kepada kolega Anda dan tanyakan apakah itu yang dibutuhkan game. Mintalah tinjauan kode : kolega Anda mungkin akan memberi tahu Anda tentang banyak hal yang tidak Anda pikirkan. Anda harus melakukan refactor lagi untuk memastikan implementasi Anda sesuai dengan yang diinginkan oleh seluruh tim.
Kemudian ketika Anda merasa siap untuk itu, pilih salah satu fitur lain yang Anda buang sebelumnya, bilas, ulangi. Buat itu berfungsi secepat mungkin, ulang, minta ulasan, ulang lagi.
Saya harus memberi penekanan terakhir kali pada ini: berkomunikasi . Tanya kolega Anda, tidak hanya pemimpin Anda, tidak hanya programmer, semua orang yang akan menggunakan atau menguji atau mengevaluasi sistem ini. Jangan takut menanyakan pertanyaan bodoh: ketika ragu, selalu lebih baik untuk mendapatkan informasi sekarang daripada menunggu berminggu-minggu untuk rapat atau ulasan.
Realitas pemrograman game adalah Anda tidak akan menciptakan sistem baru yang mengilap setiap hari, ini adalah tugas untuk tetap fokus dan menyelesaikan pekerjaan dengan cepat dan efisien. Tenangkan dirimu, mulai bekerja, dan semoga berhasil!
EDIT
Ada info tambahan yang saya temukan berguna dalam komentar Leo dan jawaban dhasenan, saya tanpa malu-malu menguatkan itu dari mereka untuk menyelesaikan jawaban ini.
Saya tidak menulis tentang cara menangani saling ketergantungan . Modul yang Anda tulis ulang mungkin sangat digabungkan dengan sisa permainan, itu sebabnya Anda mendapatkan banyak kesalahan saat mengubah sesuatu. Jadi ada dua solusi:
Jika hanya ada beberapa dependensi, maka Anda beruntung. Modul lama dan baru dapat disimpan secara paralel untuk sementara waktu, Anda bahkan dapat memiliki sakelar untuk pengguna Anda sehingga mereka dapat memutuskan untuk mengubah antara modul lama dan modul baru kapan pun mereka mau. Cukup letakkan sakelar di suatu tempat, di file konfigurasi atau di menu debug, dan gunakan di mana saja modul Anda terhubung ke sisa gim. Ketika modul baru Anda siap untuk produksi, aktifkan sakelar secara default. Kemudian, ketika modul lama tidak digunakan lagi atau ketika produksi perlu dilanjutkan, lepaskan modul lama dan sakelar.
Jika ada banyakdependensi, Anda harus mencabut dan pasang kembali satu per satu. Cobalah untuk menjaga kedua modul di latar belakang, dan setiap kali Anda mendapatkan fitur baru untuk bekerja, beralihlah ke modul baru untuk fitur itu. Yaitu mencabut dan pasang kembali apa yang terkait dengan fitur ini. Ini akan memakan waktu Anda karena mungkin lebih banyak pekerjaan daripada mengubah hanya satu panggilan fungsi: beberapa struktur data mungkin berubah, aliran program mungkin berubah, dll. Tapi itu masih lebih baik daripada menulis ulang semuanya sekali dan mengambil minggu untuk membunuh binatang kompilasi. Jika itu benar-benar mustahil untuk menjaga kedua modul lama dan baru secara paralel karena modul Anda sangat penting untuk gim, Anda mungkin mempertimbangkan untuk menulis ulang. Namun berhati-hatilah bahwa ini bisa berarti bahwa jika cacat ada di antarmuka modul lama, Anda akan berakhir dengan cacat yang sama. Lagi pula, jika ini terjadi,
Jika ada sesuatu yang spesifik untuk pengembangan video game, ini dia: kita tidak melakukan ilmu roket, atau penelitian yang rumit, kita bagian dari proses kreatif. Saat melakukan sesuatu, Anda harus membuat versi pertama secepat mungkin sehingga dapat diuji, dimainkan, disukai, dan dimodifikasi. Anda tidak dapat menghabiskan berminggu-minggu melakukan "satu pekerjaan yang sangat panjang" tanpa memberikan sedikit pun.