आप किसी भी भाषा को व्यावहारिक रूप से रेंडर करने के किसी भी तरीके का उपयोग करके गेम इंजन लिख सकते हैं। आप उदाहरण के लिए कंसोल आउटपुट का उपयोग करके बैश में गेम इंजन लिख सकते हैं।
इसलिए, मुझे लगता है कि यह परिभाषित करना सबसे अच्छा होगा कि आप अपने इंजन को लिखने में क्या सीखना चाहते हैं। खेल के विकास में बहुत सारे "क्षेत्र" हैं।
आदि .. वहाँ से आप उप विषय भी कर सकते हैं। रेंडरिंग / ग्राफिक्स में
2d या 3 डी?
मोडलिंग
लकीर खींचने की क्रिया
प्रकाश
संरचना
GUIs / HUDs / इंटरफेस।
आदि आदि
बस उन उप-उप-विषयों में से एक अध्ययन के कई घंटे (या वर्ष!) खा सकता था।
इसलिए, पहले परिभाषित करें कि आप क्या सीखना चाहते हैं। सरल शुरू करो।
जिस भी भाषा में आप सहज हैं, उसका उपयोग करें - हालांकि कुछ निश्चित कार्यों के लिए बेहतर अनुकूल हैं। उदाहरण के लिए, कोर इंजन और रेंडरिंग संभवतः "C" / C ++ जैसी "निम्न" स्तर की भाषा के साथ किया जाता है (यदि आपको प्रदर्शन की आवश्यकता है); लेकिन एआई या गेम रूल्स जैसी कोई चीज़ उच्च स्तर की भाषा में बेहतर हो सकती है। कुछ भी नहीं कहता है कि आप मिश्रण और मैच नहीं कर सकते। आप अपने इंजन को C ++ में लिख सकते हैं, C में आपका प्रतिपादन (क्योंकि यह OpenGL के साथ अच्छा काम करता है) और फिर अपने गेम रूल्स आदि को स्क्रिप्ट करने के लिए LUA का उपयोग करें।
जहाँ तक उदाहरण है, एक गेम इंजन है जिसे Slick2D कहा जाता है। यह जावा में लिखा गया है और खुला स्रोत है। यह एक सरल 2d इंजन का एक उदाहरण है जो लिखित और वास्तव में अच्छी तरह से डिज़ाइन किया गया है। आप उससे बुनियादी अवधारणाओं को सीख सकते हैं, जैसे गेम लूप, गेम स्टेट्स का प्रबंधन करना आदि।
यदि आपके सी / सी ++ के साथ सहज; मैं SDL / OpenGL पर एक नज़र डालने का सुझाव दूंगा। यह कुछ हाउसकीपिंग जैसे इनपुट, साउंड, विंडो बनाना आदि को हैंडल करता है और अन्य सामान पर ध्यान केंद्रित कर सकता है।