आप एक 3D इंजन बना रहे हैं। आप मल्टीप्लायर दुनिया के सर्वश्रेष्ठ चाहते हैं। अचानक आपको एहसास होता है कि यदि आप विंडोज़ मशीनों पर डायरेक्ट 3 डी और ओएसएक्स / लिनक्स पर ओपनजीएल का उपयोग करना चाहते हैं, तो आपको कम से कम सामान्य भाजक दोनों की समर्थित सुविधाओं का त्याग करना होगा।
कुछ तीन OS के पार OpenGL का उपयोग कर सकते हैं, क्योंकि यह कम से कम सामान्य भाजक प्रतीत होता है। सब अच्छा है। फिर, आपको अपने ग्राफिक्स एपीआई बैकेंड को निनटेंडो के जीएक्स पर पोर्ट करना होगा, आपको एक PS3 और Xbox360 पथ बनाना होगा।
आप क्या करते हैं? क्या आप अपने स्वयं के एपीआई को डिजाइन करते हैं जो अपने आप में कम से कम सामान्य भाजक है और प्रत्येक मंच के लिए इसके लिए बैकएंड कार्यान्वयन लिखता है या क्या आप प्रत्येक मंच के लिए लिखते हैं जो इसकी अपनी शाखा है?
यदि आप अपनी खुद की एपीआई डिजाइन करने का विकल्प चुनते हैं, तो क्या आप पुल पैटर्न या अपने खुद के वूडू का उपयोग करते हैं? पागलपन कहां रुकता है जहां आपको सब कुछ पता चलता है और किचन सिंक दृष्टिकोण बंद होना चाहिए और आपके पास मूल रूप से प्रत्येक प्लेटफॉर्म के लिए एक शाखा के रूप में अलग-अलग इंजन होता है। या आप सब कुछ और रसोई के सिंक से चिपके रहते हैं और प्रत्येक मंच के लिए बैकेंड मॉड्यूल विशेषज्ञता में प्लेटफ़ॉर्म बारीकियों को रखते हैं।