खेल एक बार मशीन भाषा में लिखे गए थे, क्योंकि उनके पास विदेशी हार्डवेयर थे जिसके लिए कोई कंपाइलर नहीं था। हार्डवेयर में उन विशेषताओं का भी अभाव था जो सी प्रोग्रामर ने दी, जैसे कि कुशल 16-बिट पूर्णांक गणित।
एक बार जब गेम परिचित हार्डवेयर पर बस गए, तो सी कंपाइलर उपलब्ध हो गए और कुछ ही समय में सभी गेम सी में लिखे गए।
सी ++ एक समय में एक अच्छे विचार की तरह लग रहा था, और अधिकांश गेम आज सी ++ हैं, लेकिन इंजीनियर अब सी में वापसी के बारे में विचार कर रहे हैं, और यह वास्तव में हो सकता है। मैं सी में एक खेल पर काम करना पसंद करूंगा, और इतने सारे सहकर्मियों को। C ++ में कोई नया फीचर नहीं है जो मुझे लगता है कि गेम को बेहतर बनाता है।
अब ऐसा लगता है कि कंप्यूटर कुछ साल पहले की तुलना में 1000 गुना तेज हैं, एक उच्च स्तरीय भाषा सी को अप्रचलित बनाने के विकास के समय ($) को कम कर देगी।
ऐसा इसलिए नहीं हुआ है क्योंकि गेम के खरीदार जानते हैं कि हार्डवेयर 1000x बेहतर है, और एक ऐसे गेम के लिए अपने डॉलर का व्यापार करना चाहते हैं जो 1000x बेहतर दिखता है और लगता है। यह उस सिस्टम से स्लैक को हटा देता है जो उच्च स्तरीय भाषा का उपभोग करेगा।
खेलों में प्रदर्शन की आवश्यकताएं क्रूर हैं। बिना असफल हुए 33ms (या 16ms!) के तहत ग्राफिक्स का एक नया फ्रेम प्रदान किया जाना चाहिए। सब कुछ हार्डवेयर का हिसाब होना चाहिए, ताकि इस बजट को पूरा किया जा सके। कोई भी भाषा जो बंद हो जाती है और हार्डवेयर के साथ कुछ ऐसा करती है जो प्रोग्रामर को समझ में नहीं आता है या उम्मीद नहीं करता है कि यह इस बजट को पूरा करने के लिए बहुत कठिन है। यह किसी भी उच्च-स्तर के खिलाफ एक स्वचालित माइनस है।
गेम प्रोग्रामर न केवल एक निम्न-स्तरीय भाषा में काम करते हैं, बल्कि वे उच्च-स्तरीय डेटा संरचनाओं और एल्गोरिदम को भी दूर करते हैं। खेलों में आमतौर पर लिस्ट नहीं होती है और शायद ही कभी पेड़ होते हैं। जब भी संभव हो संकेत से बचने की दिशा में एक आंदोलन है *। O (N) समय या O (1) से अधिक वाले किसी भी एल्गोरिथ्म का व्यापक उपयोग नहीं होता है।
* यदि कोई पॉइंटर कैशे मिस नहीं करता है, तो इसे स्टोर करने के लिए 32 बिट्स क्यों खर्च करें? यदि कोई पॉइंटर कैशे मिस कर देता है, तो उस कैशे मिस से छुटकारा पाएं।