Anda membuat mesin 3d. Anda menginginkan yang terbaik dari dunia multi platform. Tiba-tiba Anda menyadari bahwa jika Anda ingin menggunakan Direct3D pada mesin Windows dan OpenGL pada OSX / Linux, Anda harus mengorbankan fitur yang didukung dari keduanya untuk penyebut yang paling tidak umum.
Beberapa mungkin menggunakan OpenGL di tiga OS ', karena tampaknya menjadi penyebut yang paling umum dengan sendirinya. Semua baik. Kemudian, Anda harus mem-porting backend API grafik Anda ke Nintendo GX, Anda juga harus membuat jalur PS3 dan Xbox360.
Apa yang kamu kerjakan? Apakah Anda merancang API Anda sendiri yang merupakan penyebut paling tidak umum dalam dirinya sendiri dan menulis implementasi backend untuknya untuk setiap platform atau apakah Anda menulis untuk setiap platform yang memiliki cabang sendiri?
Jika Anda memilih untuk merancang API Anda sendiri, apakah Anda menggunakan pola jembatan atau voodoo Anda sendiri? Di mana kegilaan berhenti ketika Anda menyadari segalanya dan pendekatan kitchen sink harus berhenti dan Anda pada dasarnya memiliki mesin terpisah untuk setiap platform sebagai cabang. Atau Anda tetap berpegang pada segalanya dan kitchen sink dan menyimpan spesifik platform di spesialisasi modul backend untuk setiap platform.