आम तौर पर, आप स्मृति से बाहर नहीं संभालते हैं। एक खेल के रूप में बड़े और जटिल सॉफ्टवेयर में एकमात्र समझदार विकल्प यह है कि जितनी जल्दी हो सके अपने मेमोरी एलोकेटर में बस क्रैश / मुखर / समाप्त करें (विशेष रूप से डिबग बिल्ड में)। आउट-ऑफ-मेमोरी शर्तों का परीक्षण किया जाता है और कुछ मामलों में कोर सिस्टम सॉफ़्टवेयर या सर्वर सॉफ़्टवेयर में संभाला जाता है, लेकिन आमतौर पर कहीं और नहीं।
जब आपके पास एक ऊपरी मेमोरी कैप होती है, तो आप केवल यह सुनिश्चित करते हैं कि आपको उस मेमोरी से अधिक की आवश्यकता नहीं है। उदाहरण के लिए, आप एक समय में अधिकतम अनुमत NPCs रख सकते हैं, और उस टोपी के हिट होते ही नए गैर-आवश्यक NPCs को बंद करना बंद कर दें। आवश्यक NPCs के लिए आप या तो उन्हें गैर-आवश्यक लोगों को बदल सकते हैं या आवश्यक NPCs के लिए एक अलग पूल / कैप रख सकते हैं, जो आपके डिज़ाइनर्स को डिज़ाइन करना जानते हैं (जैसे कि यदि आपके पास केवल 3 आवश्यक NPCsa हो सकते हैं, तो डिज़ाइनर 3 से अधिक नहीं डालेंगे। एक क्षेत्र / चंक - अच्छे उपकरण डिजाइनरों को इसे ठीक से करने में मदद करेंगे और परीक्षण आवश्यक है)।
विशेष रूप से सैंडबॉक्स गेम के लिए एक बहुत अच्छा स्ट्रीमिंग सिस्टम भी महत्वपूर्ण है। आपको सभी NPC और आइटम को मेमोरी में रखने की आवश्यकता नहीं है। जैसा कि आप दुनिया के विखंडू के माध्यम से आगे बढ़ते हैं, नए विखंडू में प्रवाहित होंगे और पुराने विखंडू बाहर प्रवाहित होंगे। इनमें आमतौर पर एनपीसी और आइटम के साथ-साथ इलाके भी शामिल होंगे। आइटम सीमा पर डिजाइन और इंजीनियरिंग कैप को इस प्रणाली को ध्यान में रखते हुए सेट करने की आवश्यकता है, यह जानकर कि अधिकांश एक्स पुराने चनों को चारों ओर रखा जाएगा और प्रो-सक्रिय रूप से लोड किए गए वाई नए चक्कों को लोड किया जाएगा, इसलिए गेम को सभी को रखने के लिए जगह की आवश्यकता है मेमोरी में X + Y + 1 हिस्सा का डेटा।
कुछ खेल दो-पास दृष्टिकोण के साथ स्मृति स्थितियों को संभालने का प्रयास करते हैं। यह ध्यान में रखते हुए कि अधिकांश खेलों में तकनीकी रूप से अनावश्यक कैश्ड डेटा (जैसा कि ऊपर उल्लेख किया गया है, पुराने विखंडू) हैं और एक मेमोरी आवंटन कुछ ऐसा कर सकता है:
allocate(bytes):
if can_allocate(bytes):
return internal_allocate(bytes)
else:
warning(LOW_MEMORY)
tell_systems_to_dump_caches()
if can_allocate(bytes):
return internal_allocate(bytes)
else:
fatal_error(OUT_OF_MEMORY)
यह रिलीज में अप्रत्याशित परिस्थितियों से निपटने के लिए एक अंतिम पड़ाव है, लेकिन डिबगिंग और परीक्षण के दौरान आपको शायद तुरंत दुर्घटनाग्रस्त हो जाना चाहिए। आप इस तरह के सामान पर भरोसा नहीं करना चाहते हैं (विशेषकर क्योंकि कैश डंप करने के कुछ गंभीर प्रदर्शन परिणाम हो सकते हैं)।
उदाहरण के लिए, यदि आप GPU मेमोरी (या साझा मेमोरी आर्किटेक्चर में कोई मेमोरी) पर कम चल रहे हैं, तो आप कुछ डेटा की उच्च-रिज़ॉल्यूशन प्रतियों को डंप करने पर भी विचार कर सकते हैं। यह आमतौर पर इसके लायक बनाने के लिए बहुत सारे वास्तुशिल्प काम की आवश्यकता होती है, हालांकि।
ध्यान दें कि कुछ बहुत ही असीमित सैंडबॉक्स गेम आसानी से बस दुर्घटनाग्रस्त हो सकते हैं, यहां तक कि पीसी पर भी (याद रखें कि आम 32-बिट ऐप्स में 2-3GB पता स्थान की सीमा होती है, भले ही आपके पास 128GB RAM वाला पीसी हो; 64- बिट OS और हार्डवेयर अधिक 32-बिट ऐप्स को एक साथ चलाने की अनुमति देता है लेकिन 32-बिट बाइनरी को बड़ा पता स्थान बनाने के लिए कुछ भी नहीं कर सकता है)। अंत में, आपके पास या तो एक बहुत ही लचीली गेम की दुनिया है जिसे हर मामले में चलने के लिए अनबाइंड मेमोरी स्पेस की आवश्यकता होगी या आपके पास एक बहुत ही सीमित और नियंत्रित दुनिया है जो हमेशा बंधी हुई मेमोरी (या बीच में कहीं कुछ) में पूरी तरह से काम करती है।