2011-06-07 4 views
6

यह कैसे संभव है कि 64kb संकलित एक्सई में, ये प्रोग्राम ऐसे पागल दृश्य उत्पन्न कर सकते हैं, मिलान संगीत के साथ पूरा हो सकते हैं?64kb EXEs में फिट करने के लिए ग्राफिक्स और संगीत डेमो की कौन सी भाषाएं या विधियां अनुमति देती हैं?

एक उदाहरण: Ars Nova By Phantom Lord (YouTube video of the demo running)

इस कार्यक्रम के केवल 64KB आकार में! उन्होंने ऐसा कैसे किया?

क्या वे डायरेक्टएक्स के अंदर कुछ पूर्व-मौजूदा वस्तुओं, शेडर्स इत्यादि का उपयोग कर रहे हैं या ऐसा कुछ?

वे किस भाषा का उपयोग भी करते हैं? क्या इस सामान के लिए कुछ प्रकार की मार्गदर्शिका है?

  • संपादित करें: एक और दिमाग उड़ाने वाला डेमो। कैसे?

    http://www.scene.org/file.php?file=/demos/groups/farb-rausch/fr08_final.zip&fileinfo

  • संपादित करें: अधिक demoscene सामान।

    मुझे ऐसे समूह के लिए कुछ लिंक मिला जो इस तरह की चीजें बनाते हैं और उन्होंने .werkkzeug1 और कुछ संपीड़न और ऑडियो टूल्स नामक एक उत्पाद जारी किया है, लेकिन मैं अभी भी यह समझ नहीं सकता कि यह कैसे संभव है। उन्होंने 96 केबी में भी एक गेम बनाया।

    theproduct

+1

मुझे यकीन है कि यह प्रोग्रामिंग नहीं है क्योंकि हम इसके बारे में सोचेंगे ... शायद 3 डी या मूवी एडिटिंग प्रोग्राम में बनाया गया है, और फिर एक विंडोज निष्पादन योग्य प्रारूप में निर्यात किया। – Cole

+0

@ कोले क्रेडिट पर कई डेमो का कारण नहीं बन सकता है ... और शायद एक संपादक है, लेकिन यह भारी संपीड़न है कि यह कैसे संभव है कोई और ऐसा क्यों नहीं करता:/ – Synxmax

+1

उन लोगों के लिए जो ' StackOverflow प्रश्नों के उत्तर देने के लिए इंटरनेट से निष्पादन योग्य डाउनलोड करने की तरह, एक वीडियो यहां है: http://www.youtube.com/watch?v=odAIAfPEgmM – HostileFork

उत्तर

5

64K डेमो जैसे आपके द्वारा लिंक किए गए स्थान procedurally generating बनावट और मॉडल द्वारा स्थान बचाते हैं। Module files आमतौर पर संगीत के लिए उपयोग किया जाता है, अधिकांश उपकरणों को कोड में संश्लेषित किया जा रहा है।

यह मुख्य बिंदु है। Whereever संभव है, वे स्पष्ट रूप से डेटा को संग्रहीत करने के बजाय कोड का उपयोग करके सामान उत्पन्न करते हैं। (और जब वे स्पष्ट रूप से स्टोर सामान करते हैं, तो यह बहुत संकुचित होता है)।

Executable compressors और अन्य चालें तब संकलित कोड के आकार को कम करने के लिए उपयोग की जाती हैं।

दुर्भाग्य से, स्रोत कोड के साथ डेमो शायद ही कभी जारी किए जाते हैं। मुझे some demo sources on scene.org का संग्रह मिला, लेकिन मैंने उनमें से कोई भी स्वयं को चेक नहीं किया है।

ऐसे कई व्यापक मार्गदर्शिकाएं नहीं हैं जिन्हें मैं जानता हूं, लेकिन वेब के चारों ओर बिखरे विभिन्न विषयों के लिए गाइड मौजूद हैं। The Hugi Magazine ऐसे लेखों का एक अच्छा स्रोत है, विशेष रूप से मैं Special Edition #1 की जांच करने की अनुशंसा करता हूं क्योंकि इसमें बहुत सारे डेमो कोडिंग आलेख हैं।

2

मुख्य कोड में ही बनावट, और ध्वनि और डेमो में सभी वस्तुओं को उत्पन्न करता है। फ्रैक्टल, विकृतियां, पहले से जेनरेट की गई वस्तुओं (डेमो टाइमलाइन में) का व्यापक उपयोग और कुछ अन्य तकनीकों का उपयोग ऑब्जेक्ट्स के कॉम्पैक्ट एल्गोरिदमिक कोडिंग के लिए किया जाता है। फिर कोड exe-compressors का उपयोग कर संकलित किया जाता है। कोड आकार को कम करने के लिए कुछ बहुत ही गैर-तुच्छ तकनीकों का उपयोग किया जाता है।

इसके आसपास subculture भी देखें।

+0

यह केवल फ्रैक्टल नहीं है उदाहरण के लिए कुछ मॉडल मानव, कार, शतरंज मॉडल, उदाहरण के लिए, संगीत मिलान के साथ कैमरा आंदोलन, यहां तक ​​कि एक गणित एल्गोरिदम जो मानव मॉडल उत्पन्न कर सकता है, इस छोटी फ़ाइलों से कहीं अधिक बड़ा है – Synxmax

+2

मैंने नहीं कहा कि यह सब सिर्फ फ्रैक्टल है। संपीड़न के बारे में याद रखें, जिसे विशेष रूप से डेटा के लिए भी अनुकूलित किया जा सकता है। विश्वास करना मुश्किल है, लेकिन ऐसे डेमो का अधिकांश हिस्सा प्रोग्रामेटिक रूप से जेनरेट किया गया है, देखें: http: //en.wikipedia।संगठन/विकी/Procedural_generation –

3

यह एक अच्छा डेमो है, और मुझे खुशी है कि लोग अभी भी इस तरह की चीज कर रहे हैं ... लेकिन मैं नहीं कहूंगा कि काम पर कोई 'जादू' है।

वस्तुओं के "डीएनए" के संदर्भ में, यहां कुछ भी विस्तृत नहीं है। क्यूब्स, रेस कार, शतरंज के टुकड़े, गोलाकार पत्थर, टोरोस। वे यह चुनने के लिए बहुत अधिक स्वतंत्र हैं कि वे कौन से मॉडल चाहते हैं जो अच्छी तरह से संपीड़ित हों ... या किसी भी विवरण को फेंकने के लिए जो अच्छी तरह से संपीड़ित न हो। उम्मीदों की कमी या किसी तरह के विशिष्ट कार्यों को पूरा करने के लिए यहां उनके पक्ष में काम करता है। वे ऑब्जेक्ट को 3 डी लाइब्रेरी में आकार के अनुसार सॉर्ट कर सकते हैं और "ओह, वह छोटा है लेकिन अभी भी अच्छा लग रहा है, चलो का उपयोग करें।" :)

यदि आप मुश्किल हो रहे हैं तो कोड के आकार के साथ गड़बड़ करने के कई तरीके हैं। मैं इस एक दिलचस्प पढ़ा हो पाया:

http://www.muppetlabs.com/~breadbox/software/tiny/teensy.html

लेकिन मुझे शक है कि वे इस बात से है कि फैंसी हो रही है। वे शायद अनावश्यक निर्भरताओं से बच रहे हैं और काफी कम स्तर पर कोडिंग कर रहे हैं।सामान्य ज्ञान और निष्पादन संपीड़न आकार नीचे काफ़ी धक्का कर सकते हैं: इस तरह की बातें आम तौर पर एक "tracker" साथ किया जाता है के लिए

http://en.wikipedia.org/wiki/UPX

संगीत, और फ़ाइलों एक MIDI फ़ाइल के आकार के पैमाने पर अधिक कर रहे हैं एक एमपी 3 से। प्लेबैक दिनचर्या काफी छोटे हैं ... यह एक "MiniFMod" कहा जाता है XM फ़ाइलें खेल सकते हैं और सिर्फ 5K अपने EXE आकार में जोड़ने के लिए दावा है:

http://www.fmod.org/index.php/download#FMODMini

संगीत के साथ सिंक कर रहा है है वास्तव में एक तकनीकी मुद्दा नहीं कलात्मक पसंद में से एक के रूप में बहुत कुछ। डेमो संभवतः एक स्थिर गति से दौड़ने के लिए थका हुआ है ... और संगीत हर बार खेलने के लिए एक ही समय लेता है।

+0

जानकारी के लिए धन्यवाद लेकिन अभी भी इसके पीछे बहुत सी चीजें हैं, इसे देखो, मैं इसे केवल विश्वास नहीं कर सकता http://www.scene.org/file.php?file=/demos/ समूह/farb-rausch/fr08_final.zip और fileinfo – Synxmax

+1

@ सिंक्समैक्स: एफआर -8 वास्तव में 64 के डेमो की दुनिया में एक गेम परिवर्तक का थोड़ा सा था, लेकिन यदि आप इसे सावधानी से जांचते हैं, तो आप देखेंगे कि अधिकांश मॉडल नहीं बने हैं सरल ज्यामितीय आकारों से बाहर, संगीत और दृश्यों का व्यापक रूप से डेमो में पुन: उपयोग किया जाता है, और बनावट भी काफी सरल हैं। – hammar

+2

@ सिन्क्समैक्स: मैं इस तरह की चीज से भी प्रभावित था जब मैं छोटा था, और पहली बार फिनिश डेमोसीन देख रहा था। भविष्य क्रू आदि द्वारा सामग्री असंभव लग रहा था। मुझे अभी भी लगता है कि यह साफ है, लेकिन यह बहुत संभव है ... और आपके जैसे प्राणघातक प्राणियों द्वारा किया जा रहा है ... :) यदि अल्पसंख्यक आपको रूचि देता है, तो यह आपके लिए "कोड गोल्फ" उदाहरणों को देखने के लिए निर्देशक हो सकता है कोड-आकार में परिमाण बचत की व्यवस्था का कारण बनने के बारे में मानसिकता में आना: http://codegolf.stackexchange.com/faq – HostileFork

0

गणना की शुरुआत के बाद से अलगाव प्रतियोगिताओं है। किसी प्रतिस्पर्धा की तरह आप चाल बनाते हैं और उन चालों को उस प्रतियोगिता के संदर्भ में मिला।

आमतौर पर इस्तेमाल किया जाने वाला लंगेज असेंबली भाषा (बाइनरी के बाद मशीन की सबसे नज़दीकी भाषा है ...) इसे बाइनरी के बाद मशीन के सबसे नज़दीक क्यों कहा जाता है। क्योंकि इसमें जटिल मेमोरी प्रबंधन, डिवाइस आदि तक पहुंचने के निर्देशों का जटिल सेट शामिल है ...

संबंधित मुद्दे

 संबंधित मुद्दे