"लोड हो रहा है" स्क्रीन के दौरान क्या हो रहा है?


19

क्या मुझे बस अपने सभी ग्राफ़िक्स को स्मृति में बनाने की आवश्यकता है जो फ़ाइल से लोड किए गए हैं? इसे संभालने का सबसे अच्छा तरीका क्या है? क्या मुझे किसी प्रकार के संपत्ति प्रबंधक की आवश्यकता है जो लोडिंग स्क्रीन के दौरान इन ग्राफिक उदाहरणों को बनाता है और फिर बाद में संदर्भित किया जाता है?

खेल में पूर्व-लोड होने वाली सामान्य चीजें क्या हैं? मुझे पूर्व-लोड कितना करना चाहिए?

क्या यह किसी प्रकार की प्रगति पट्टी को दिखाने के लायक है? मैं लोड समय को कम कैसे रख सकता हूं? लोडिंग स्क्रीन कैसा दिखना चाहिए?

स्क्रीन लोड करने के कुछ अच्छे उदाहरण क्या हैं? कोई कोड उदाहरण?

विशेष रूप से, मेरा गेम एंड्रियोड (जावा / मोबाइल) के लिए है, लेकिन अपने उत्तरों को सामान्य बनाने के लिए स्वतंत्र महसूस करें।


2
मुझे पता है कि यह विशेष रूप से वह नहीं है जो आप पूछ रहे हैं, लेकिन लोडिंग स्क्रीन के दौरान क्या होना चाहिए, इसके लिए मेरी सलाह है: समथिंग इंट्रेस्टिंग! :) कहानी का एक सा (एक कटक की तरह) के साथ खिलाड़ी का मनोरंजन करें, एक मिनीगेम, या शायद पहले से ही एक मेनू दिखा सकते हैं जो संभवत: असुरक्षित है।
बार्ट वैन ह्युकेलम

जवाबों:


13

प्री-लोड करने के लिए विशिष्ट चीजें कुछ भी हैं जो आपको रियलटाइम में चाहिए। क्लिपमैप्स और मेगाटेक्स्चर जैसी अवधारणाओं के लिए सहेजें (जहां विचार आपको ज़रूरत वाले हिस्सों को लोड करना है, और दुनिया में घूमते समय इसे पुन: अपडेट करें), आप अपने स्तर / क्षेत्र / जो कुछ भी चाहते हैं उसे रखने के लिए चाहते हैं मेमोरी में डिस्क के बजाय। IO स्लोवू है, और जब आप कोने को चालू करते हैं तो आप अपने टेक्सचर को लोड नहीं करना चाहते हैं और यह प्रदर्शित होने वाला है। और सब कुछ, मेरा मतलब है कि बनावट, ध्वनियां, जाल, मेटा डेटा ... सब कुछ।

यदि आप एक प्रगति बार दिखा सकते हैं (यानी आपके पास चरणों को लोड करने के लिए सटीक मानचित्रण है), तो हर तरह से इसे दिखा सकते हैं। यदि नहीं, तो कम से कम कुछ दिखाओ, जैसे एक लघु पाठ संदेश या एक लोडिंग संकेतक, जो प्रत्येक चरण के बाद अपडेट किया जाता है ताकि आप कम से कम बता सकें कि कुछ हो रहा है।

यदि ऐसा कुछ है जो आप जानते हैं कि इसकी आवश्यकता होगी, लेकिन तुरंत नहीं, तो आप इसे पृष्ठभूमि में लोड कर सकते हैं, और खेल को रोक सकते हैं (महान नहीं, लेकिन सुनिश्चित करें कि यह शायद ही कभी होता है) यदि यह बहुत जल्दी की जरूरत है। इससे आपको लोड समय कम रखने में मदद मिलेगी। मुझे एंड्रॉइड डेवलपमेंट के बारे में ज्यादा जानकारी नहीं है, या गेम के साथ-साथ डिवाइस को संभालने के लिए बहुत कुछ होगा, लेकिन यह आमतौर पर सीपीयू पर हल्का होता है, इसलिए वहां कोई बड़ी समस्या नहीं होनी चाहिए।


19

आपको "रेटिकुलटिंग स्प्लिन्स" होना चाहिए


2
हाहा, अच्छा संदर्भ :)
ब्रायन डेनी

हालांकि यह स्पष्ट रूप से एक मजाक है, लोडिंग के दौरान खिलाड़ियों को कब्जे में रखने का एक बड़ा उदाहरण संदर्भित करने के लिए +1। ऐसी सरल तकनीक जिसमें निरर्थक पाठ जोड़ने की तुलना में अधिक प्रयास शामिल नहीं है। " डोन्ट स्ट्रेव
ट्विज़

3

निर्भर करता है कि आप एक लोडिंग स्क्रीन और इंस्टेंट लेवल ट्रांजिशन या मल्टीपल लोड के लिए जा रहे हैं।
मैं कहूंगा कि स्मृति पर बाद बेहतर होगा।
कुछ इस तरह:
//First loading screen
Load menu layouts or whatever
Load GUI assets
Show something to pass the time
Switch to menu

//In between levels
Remove any graphics specific to the last level - get rid of something that isn't going to reappear like a boss.
Load level graphics that haven't already been loaded
Again, show progress or something to pass the time

और जब आप लोड कर रहे हों, तो सुनिश्चित करें कि काली स्क्रीन न हो। या उस मामले के लिए, एक स्थिर स्क्रीन। कई बार मैंने एक ऐप की शुरुआत में थोड़ी देर के लिए एक स्थिर छवि देखी है, और तुरंत लगा कि यह दुर्घटनाग्रस्त हो गई है।
खिलाड़ी को बस शामिल करने का एक अच्छा तरीका खेल में एक दृश्य की अच्छी तरह से तैयार पृष्ठभूमि, या कुछ कहानी का संदर्भ होगा; जब तक यह स्थिर 'लोड नहीं हो रहा है' तब तक / बिना प्रतिशत के साथ एक लोडिंग बार; और फिर शायद कुछ जानकारी।


1
पीट की खातिर, यदि आपके पास एक प्रतिशत के साथ एक एनिमेटिंग लोडिंग बार है, तो इसे बनाएं ताकि वह 90% समय के लिए 10% पर रहने के बजाय धीरे-धीरे और सही तरीके से ऊपर जाए और फिर 100% तक कूद जाए। यदि आपके पास एक गैर प्रतिशत लोडिंग एनीमेशन है, तो कम से कम इसे बनाएं ताकि यह लोडिंग को प्रदूषित करे - इस तरह से आप इसे रोक सकते हैं जब लोडिंग किसी कारण से क्रैश हो जाती है। मैं बहुत सारे गेम देखता हूं जो अपने स्वयं के धागे में लोडिंग एनीमेशन को एनिमेट करता है, और जब लोडिंग थ्रेड एनीमेशन को क्रैश करता है तो खुशी से खेलता है। वह थोड़े लोडिंग एनीमेशन के उद्देश्य को हरा देता है।
काज

मैं पूरी तरह से वहां सहमत हो सकता हूं। मुझे नहीं लगता कि यह अच्छा हो सकता है अगर यह इस तरह से कूदता है।
कम्युनिस्ट डक

2

IPhone और Android प्लेटफ़ॉर्म पर, आपको सभी बनावट और ध्वनियों को लोड करना होगा। लोड हो रहा है बनावट और आवाज़ वास्तव में पुराने फोन पर iPhone 2G, 3G या G1 के रूप में धीमी है। आप इसे खेल में नहीं कर सकते।


2

जैसा कि अन्य लोगों ने कहा है, यदि आप इसे खेलना शुरू करने से पहले किसी स्तर के सभी डेटा को लोड कर सकते हैं, तो आपके पास बेहतर प्रदर्शन होगा। यह गेमप्ले के दौरान परिसंपत्तियों को लोड करने के लिए फ्रेम समय में अड़चन का एक सामान्य स्रोत है।

लोडिंग स्क्रीन के दौरान करने के लिए सामान्य चीजें एक स्थिर पृष्ठभूमि छवि है, एक बहुत ही सरल स्तर, कैसे खेलने के लिए कुछ टिप्स और ट्रिक्स, क्विकशन इत्यादि।

यहां एपीबी के लिए लोडिंग स्क्रीन है। बहुत बढ़िया शांत। :) http://www.youtube.com/watch?v=p5STix1t_1E&feature=related

लोडिंग स्क्रीन में प्रगति बार दिखाने के लिए यहां कुछ छद्म कोड दिए गए हैं:



LoadScreen::Init()
{
  mAssetsToLoad.add("Background.png");
  mAssetsToLoad.add("Player.png");
}

LoadScreen::Update()
{
  mProgress += 1;
  mAssetManager.load(mAssetsToLoad.top());
  mAssetsToLoad.pop();

  if mAssetsToLoad.empty()
    mDone = true;
}


LoadScreen::Draw()
{
  for( int i = 0; i != mProgress; ++i)
  {
     Vector2 pos(i*mProgressPartTexture.Width, 100);
     DrawProgressBarPart(pos, mProgressPartTexture);
  }
}

यूजी, का उपयोग करने के लिए मजबूर! = क्योंकि यह कोड रेंडरिंग को तोड़ देता है जब मैंने उपयोग किया था <


1
वाह, एपीबी लोड स्क्रीन वास्तव में बहुत अच्छे लगते हैं :)
ब्रायन डेनी

यदि आप <pre> <code> टैग का उपयोग करने के बजाय चार स्थानों के साथ अपने कोड को इंडेंट करते हैं, तो आप स्वरूपण को तोड़े बिना =! के बजाय <का उपयोग कर पाएंगे।
15

मिमीर्स, हाँ, लेकिन यह गधे का एक बड़ा दर्द है। सिर्फ एक कस्टम कोड टैग क्यों नहीं है?
ट्रेक

1

लोड हो रहा है स्क्रीन बहुत कुछ भी छिपाने के लिए इस्तेमाल किया जा सकता है; परिसंपत्तियों का लोडिंग, किसी भी कनेक्शन को बनाने की जरूरत है (टीसीपी, आदि), खेल की वस्तुओं के साथ मानचित्रों को आबाद करना, और आरंभीकरण।

जिस तरह से मैं चीजों के बारे में जाना जाता हूं वह किसी प्रकार के संपत्ति प्रबंधक (या शायद प्रत्येक परिसंपत्ति प्रकार - ध्वनियों, ग्राफिक्स, आदि के लिए एक प्रबंधक) के लिए है और उन्हें लोड किया जाता है जो स्मृति में उपयोग होने जा रहा है। फिर बस अपने खेल प्रबंधकों से बाहर संदर्भ खींचो।

प्रगति पट्टी दिखाना, यह निर्धारित करना कि प्रीलोड क्या है, आदि आपकी परियोजना पर निर्भर करते हैं, यह समय और आपके स्वाद को लोड कर रहा है। प्रगति पट्टियाँ अच्छी हैं यदि वे सटीक हैं और यह एक लंबा भार है (यह जानना अच्छा है कि आपको कितने समय तक प्रतीक्षा करने की आवश्यकता है)।

इसके साथ ही कहा कि, मेरे एंड्रॉइड फोन पर मैं ऐसे ऐप्स का पक्ष लेता हूं, जिनका अपना रिवाज है, स्वादपूर्वक लोडिंग स्क्रीन है। इसे एक बार की आवश्यकता नहीं है, लेकिन एनीमेशन उपयोगकर्ता को काम करने वाले कार्यक्रमों को बताता है। मेरा मानना ​​है कि एंड्रॉइड में एक डिफ़ॉल्ट बार होता है जिसका आप उपयोग कर सकते हैं, जो काम ठीक करता है।

यहाँ एक SO प्रश्न है जो आपको रूचि दे सकता है।


1

यह ध्यान देने योग्य है कि गुणवत्ता नियंत्रण आवश्यकताओं (जैसे X360, PS3, DS, आदि) के साथ प्लेटफ़ॉर्म आपको अपनी लोडिंग स्क्रीन (या वास्तव में कोई भी स्क्रीन जो कुछ सेकंड से अधिक समय तक स्थिर रहती है) में एनीमेशन के किसी न किसी रूप की आवश्यकता होगी )।

ऐसा इसलिए है क्योंकि अन्यथा उपयोगकर्ता यह सोच सकता है कि आपका गेम क्रैश हो गया है, जब वास्तव में इसे लोड होने में काफी समय लग रहा है। यहां तक ​​कि जहां यह एक आवश्यकता नहीं है, मैं निश्चित रूप से यह सलाह देंगे।

एनीमेशन का कोई भी रूप ठीक है, लेकिन एक साधारण प्रगति पट्टी सबसे अच्छी नहीं हो सकती है, क्योंकि लोडिंग के किसी भी बड़े कदम के परिणामस्वरूप प्रगति पट्टी थोड़ी देर के लिए आगे नहीं बढ़ सकती है, जिसका अर्थ है कि स्क्रीन उतनी ही स्थिर है जितनी कि वहाँ थी कोई बार नहीं। प्रगति सूचक के अलावा घूर्णन आइकन की तरह कुछ लगातार चलती छवि दिखाने के लिए बेहतर है।


1
बेशक, यह लोडर अतुल्यकालिक रूप से लोड हो रहा है, आपको यह प्रगति करने में सक्षम होना चाहिए ताकि आप प्रतिशत को अधिक सटीक रूप से अपडेट कर सकें। इस तरह खिलाड़ी जानता है कि अगर यह प्रतिशत में फंस जाता है तो वास्तव में कुछ गलत है। इसके अलावा, जैसे मैंने अन्य स्थानों पर कहा, कृपया अपने लोडिंग थ्रेड से जांच किए बिना एनीमेशन को अपडेट न करें कि क्या यह अभी भी चल रहा है, या आप खुशी से कताई करेंगे, जबकि खेल प्रभावी ढंग से दुर्घटनाग्रस्त हो गया।
काज

1

विजय में स्क्रीन लोड करने के लिए , मैं थोड़ा सा मिशन विवरण (यह किस प्रकार का गेम था, साथ ही मिशन के लिए थोड़ा सा कथानक), और आज्ञाओं पर कुछ बुनियादी मदद के साथ गया था।

पृष्ठभूमि में, मैं ध्वनियाँ लोड कर रहा था। ग्राफिक्स सभी मांग पर भरे हुए थे, और यह हमारे खेल के लिए बहुत अच्छा काम कर रहा था, लेकिन लगता है कि यह एक भालू था, इसलिए मैंने मिशन के लिए आवश्यक सभी ध्वनियों को लोड किया। सब कुछ लोड होने तक लोड हो रहा है / प्रारंभ बटन अक्षम है, लेकिन मेरे पास किसी भी प्रकार का एनीमेशन नहीं है (जो कि जोड़ना अच्छी बात होगी)।

यह हमारा पहला खेल है, इसलिए हम अभी भी बहुत कुछ सीख रहे हैं, लेकिन इसने हमारे लिए अब तक ठीक काम किया है।

विजय की लोडिंग स्क्रीन

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.