Anda mungkin ingin melihat Desain Berorientasi Objek . Python memiliki dukungan yang baik untuk itu.
Buku tebal ditulis tentang ini yang bisa menakutkan ketika Anda baru, tetapi prinsip-prinsip utamanya cukup mudah.
Poin utamanya adalah Anda mengidentifikasi objek seperti apa yang sedang Anda kerjakan. Anda tidak mengatakan jenis permainan apa yang Anda pikirkan, tetapi hal-hal seperti Player, Monster, Item, Equipment, Weapon, Armor dan sebagainya adalah objek tipikal.
Jika Anda menginginkan jenis permainan yang berbeda, Anda mungkin menginginkan objek Permainan yang menjaga kondisi kemenangan dan semacamnya. Mungkin objek Peta juga?
Terkadang tidak jelas apakah sesuatu pantas menjadi objek atau tidak, misalnya kerusakan. Jika Anda tidak membuat kerusakan pada suatu objek, kode tersebut akan lebih sederhana, tetapi menjadikannya objek yang membuatnya lebih mudah untuk dikustomisasi.
Subklasifikasi: Baik Senjata dan Armour adalah Peralatan. Peralatan adalah Item. Mungkin ada jenis Item lainnya. Anda mungkin akan merasa berguna untuk mendefinisikan Combatant kelas yang menjadi subclass Pemain dan Monster.
Idenya adalah bahwa misalnya Senjata akan memiliki banyak kesamaan dengan semua jenis Item lainnya, mereka memiliki bobot, ukuran, dan properti lain seperti itu.
Jadi, subclassing memberi Anda cara untuk mengatakan bahwa "Senjata seperti Item lainnya, tetapi selain itu Anda dapat menggunakan mereka, mereka mempengaruhi kerusakan yang Anda lakukan, dll."
Subclassing juga memungkinkan pembangun mod Anda mengatakan "Senjata jenis baru saya sama seperti senjata standar kecuali itu ..."
Maka Anda harus memutuskan objek mana yang bertanggung jawab untuk apa. Ini tidak semudah kelihatannya dan Anda harus memikirkannya. Membuat pilihan yang salah tidak akan banyak mempengaruhi permainan dasar, tetapi akan membuatnya lebih sulit untuk dikustomisasi.
Selama Anda hanya mengutak-atik sendiri Anda dapat mengubah hal-hal di sekitar tetapi saat Anda merilis sesuatu kepada publik, membuat perubahan menjadi jauh lebih sulit! Orang akan membuat mod yang bergantung pada hal-hal yang sama seperti sekarang. Bahkan serangga. Orang-orang akan menulis mod yang bergantung pada bug yang ada di kode. Jika Anda mengubah banyak hal, mod-mod itu akan rusak dan monster lynch akan muncul di rumah Anda.
Sebagai contoh:
Seorang pemain yang menggunakan Senjata menyerang monster yang menggunakan beberapa Armour. Ini terjadi dalam mode Game tertentu dan pada Peta tertentu.
Kedua Combatant mungkin memiliki Keterampilan seperti Hit Kritis dan Dodge.
Sekarang, objek mana yang bertanggung jawab untuk apa?
Tidak ada satu jawaban yang benar untuk ini. Banyak hal bergantung pada jenis penyesuaian apa yang ingin Anda izinkan.
Jika Anda tidak pernah memanggil objek (misalnya Peta), objek itu tidak dapat mengubah serangan dengan cara apa pun.
Setelah membuat semua keputusan ini, dokumentasikanlah . Tulis "Manual modders" yang mencantumkan metode moddable apa yang dimiliki masing-masing objek, parameter apa yang mereka ambil, apa yang harus mereka kembalikan, dan seterusnya dan seterusnya ...
Semoga berhasil!