प्रत्येक प्लेटफ़ॉर्म पर अपना इंजन पोर्ट करें। इसके बारे में कुछ खास नहीं है। यदि आपके पास कुछ कोड है जो केवल Windows है, तो या तो फ़ाइल में कुछ #ifdef तर्क जोड़ें या एक दूसरी फ़ाइल जोड़ें (ताकि आपके पास FooWindows.cpp
और FooLinux.cpp
जो भी हो) जो अन्य OS पर उस सुविधा को लागू करता है ( ।
एक-क्लिक प्रकाशित सामान जिसे यूनिटी जैसे इंजन ने अनुमति दी है क्योंकि एकता स्वयं कभी भी अंतिम-उपयोगकर्ता द्वारा संशोधित नहीं होती है। आप बस स्क्रिप्ट और डेटा लिख रहे हैं, इसलिए इंजन में सभी प्लेटफार्मों के लिए पूर्व-निर्मित बायनेरिज़ हैं और प्रकाशित बटन बस उन बायनेरिज़ को डेटा के साथ जोड़ देता है।
अन्य इंजन बिल्ड सिस्टम और क्रॉस-कंपाइलर पर भरोसा करते हैं, जब जरूरत हो तो संकलित गेम बनाने के लिए, जैसे आप किसी भी गैर-गेम क्रॉस-प्लेटफॉर्म एप्लिकेशन के साथ करेंगे।
HTML5 जैसी चीजों के लिए, emscripten जैसे उपकरण हैं जो जावास्क्रिप्ट में चलने के लिए C ++ एप्लिकेशन को संकलित कर सकते हैं। आपको मूल रूप से केवल emscripten के लिए अपने इंजन का एक और पोर्ट बनाने की आवश्यकता है (क्योंकि यह किसी भी मनमाने ढंग से C ++ पुस्तकालय / सुविधा का उपयोग नहीं कर सकता है)।
आपको अपने पूरे गेम को फिर से लिखना नहीं पड़ता है, लेकिन आप निश्चित रूप से प्रत्येक नए प्लेटफॉर्म के लिए बहुत सारे विकास, कोडिंग और पोर्टिंग कार्य करने जा रहे हैं, जिसका आप समर्थन करना चाहते हैं।
share/os/<linux>
(याshare/cpu/x86
) की तरह है और सभी प्लेटफ़ॉर्म विशिष्ट कोड को वहां रखा जाए और फिर सशर्त शामिल करें। यह कम से कम क्या gcc, हॉटस्पॉट और लिनक्स कर्नेल करते हैं (निश्चित रूप से एक कठिन नियम नहीं)। हाँ, आप केवल एक ही फ़ंक्शन के साथ शुरू कर सकते हैं जो प्लेटफ़ॉर्म पर निर्भर है और लगता है कि यह ओवरकिल है लेकिन यह कभी भी इस तरह नहीं रहता है और यह जल्दी से एक गड़बड़ हो जाता है।