वैसे इस बारे में सोचने के कुछ तरीके हैं। एक है उन विशिष्ट विशेषताओं को सूचीबद्ध करना जो इंजन के पास होनी चाहिए (आपने यहां क्या पूछा है।) हालांकि दूसरा तरीका यह है कि आप "इंजन" के बारे में बहुत अधिक चिंता किए बिना गेम बनाना शुरू करें, और फिर आपको जो सुविधाएँ मिलेंगी वे कई के बीच पुन: उपयोग की जा रही हैं। गेम (विशेष रूप से, प्रत्येक गेम में उपयोग की जाने वाली विशेषताएं ) आपको एक विशेष गेम के लिए स्रोत से एक साझा कोडबेस में बुलाया जाना चाहिए जिसे "इंजन" कहा जाता है। "
क्योंकि अंत में, आप इंजन में दिए गए फ़ीचर को गेम के बजाय क्यों चाहते हैं कि यह कई गेम्स के बीच साझा किया गया है। आमतौर पर यह ड्राइंग कमांड, इनपुट कंट्रोलर और नेटवर्किंग कोड जैसी चीजें होंगी। 2 डी गेम इंजन में बहुत सारे 2 डी ग्राफिक्स फ़ीचर होंगे, जैसे लोडिंग इमेज, जेड-ऑर्डर के साथ डिस्प्ले पदानुक्रम, स्प्राइटशीट, ट्वीनिंग आदि। बहुत सारे गेम में भौतिकी सिमुलेशन की ज़रूरत होती है, हालाँकि दूसरी ओर कई नहीं होते हैं। इस बीच लगभग हर खेल में उपयोग किए जाने वाले "हुड के तहत" सामान में टाइमर, ईवेंट मैसेजिंग और यहां तक कि गणित भी गेम डेवलपमेंट के लिए विशिष्ट है।
कहानी संक्षिप्त में:
ए) इंजन में अधिकांश खेलों द्वारा साझा की जाने वाली विशेषताएं होनी चाहिए।
बी) आप सीखते हैं कि कौन-कौन सी विशेषताएं खेल का एक गुच्छा बनाकर साझा की जाती हैं।
just start making games without worrying too much about the "engine"