यह सब 64kb में कैसे फिट हो सकता है?


45

इसलिए, मैं यहां विधानसभा 2011 में हूं और वहां यह डेमो खेला गया: http://www.youtube.com/watch?v=69Xjc7eklxE&feature=player_embedded

यह केवल एक ही फाइल है, यह नियमों में कहा गया है। इसलिए मैं दोहराता हूं, उन्होंने इसे इतनी छोटी फ़ाइल में फिट करने के लिए कैसे बनाया है?


क्या यह डेमो डाउनलोड किया जा सकता है? मैं देखना चाहता हूं कि स्थानीय स्तर पर चलने पर यह कैसे काम करता है।
डेविड

1
हाँ, आप उस डेमो को यहाँ देख सकते हैं: ftp.untergrund.net/users/atzAdmin/fltatz_uncovering_static.zip
Samuli Lehtonen

निश्चित रूप से सिस्टम लाइब्रेरी के कई मेगाबाइट हैं जिनके बिना यह चीज़ एक बहुभुज नहीं बना सकेगी ...
हॉब्स

2
जैसा कि कोई व्यक्ति जो सक्रिय रूप से 64kB इंट्रो बनाता है, मैंने यह लेख लिखा है: ctrl-alt-test.fr/?p=494 ( डेमोस्कोपिक प्रोडक्शंस इतने छोटे कैसे हो सकते हैं?)। टीएल; डीआर: प्रक्रियात्मक पीढ़ी, संपीड़न, और बहुत सारे अतिरिक्त काम।
लॉरेंट

1
@TeamUpvote नहीं, यह सब C ++ है। 12kB से नीचे जाने के लिए, आपको मानक पुस्तकालय से छुटकारा पाने की आवश्यकता है। यदि आप दृश्य C ++ का उपयोग करते हैं, तो आप यहां उदाहरण देख सकते हैं: github.com/laurentlb/Ctrl-Alt-Test/tree/master/F और iquilezles.org/code/framework64k/freeework64k.htm
लॉरेंट

जवाबों:


39

यह प्रक्रियात्मक आधारित है। सामग्री को एक्सई में शामिल नहीं किया गया है, केवल इसे कैसे आकर्षित करना है के नियम। जब लॉन्च किया जाता है, तो प्रोग्राम ड्रॉ करता है कि इसे रनटाइम के लिए क्या चाहिए, यह किसी भी रूप में प्री-रेंडर या प्री-सेव नहीं है।

यह एक ही विधि है जो अभिजात वर्ग द्वारा स्टार सिस्टम आदि के विशाल ब्रह्मांड को बनाने के लिए उपयोग की जाती है ।

यह आश्चर्यजनक है कि प्रक्रियात्मक पीढ़ी का उपयोग करके आज क्या संभव है, मुझे लगता है कि खेल भविष्य में इसके और अधिक गुण होंगे।


मैंने सिर्फ यह सोचा था कि बनावट बहुत सटीक है। तो वे सिर्फ कोड के साथ इसे आकर्षित करते हैं और किसी भी बनावट के बिना मुझे लगता है?
समुली लेहटन ने

1
हाँ य़ह सही हैं।
गैरी विल्बोबी

1
इस तरह के डेमो के लिए ध्वनि भी कोड (कोई नमूने नहीं) से उत्पन्न होती है। सब कुछ मक्खी पर संश्लेषित होता है ... और निश्चित रूप से कुछ क्रेडिट और फीका दृश्य भारी प्री-कॉम्पटिशन की अनुमति देते हैं :)
Karoly Horvath

2
एक पूर्व 3 डी कलाकार के रूप में, मैं लंबे समय से मुख्यधारा के 3 डी कला कार्यक्रमों में मानक उपकरण-सेट के रूप में शामिल होने के लिए प्रक्रियात्मक उत्पन्न बनावट चाहता हूं। शायद निकटतम निर्मित पटकथा भाषा .... का उपयोग करना है
Darknight

प्रोजेक्ट फ्रंटियर और प्रोसिड्यूरल वर्ल्ड जैसे सामान में आपकी रुचि हो सकती है , जो प्रक्रियात्मक पीढ़ी के माध्यम से एक ही समस्या के लिए दो दृष्टिकोण हैं।
Kyte

10

जैसा कि @Gary Willoughby कहते हैं, यह बड़े पैमाने पर प्रक्रियात्मक है।

इसके अलावा, महत्वपूर्ण हाथ asmकोडिंग शामिल है, जिसमें व्यापक ज्ञान के साथ-साथ पसंद की प्रणालियों के विंडोज़ / प्लेटफॉर्म आंतरिक रूप से कितने काम करते हैं।

एक 4K डेमो श्रेणी भी है, यदि आप कॉम्पैक्ट कोड के और भी अधिक चरम उदाहरण देखना चाहते हैं।

कुछ डेमोस्कैन समूह अपने डेमो को ऑनलाइन जारी करते हैं, जहां आप उन्हें डाउनलोड कर सकते हैं और यदि आप चाहते हैं तो उन्हें खेल सकते हैं।

षड़यंत्र
farb-rausch

इसके अलावा डेमोसिंक के इतिहास पर विकिपीडिया देखें

नोट - बहुत सारे डेमो आपके एंटीवायरस को खराब कर देंगे । मूल रूप से ऐसा लगता है कि बहुत सारे डेमो पैक्ड .exe फ़ाइलों का उपयोग करते हैं, और अधिकांश डेमो समूह अपने स्वयं के पैकर्स को रोल करते हैं। दुर्भाग्य से, क्योंकि बहुत सारी एवी कंपनियां लंगड़ी हैं, वे आम तौर पर दावा करते हैं कि कोई भी पैक बाइनरी निष्पादन योग्य किसी प्रकार का वायरस है।


1
मैं सोच रहा था कि क्या AV कंपनी आपके मन में है जो संभवतः गैर-लंगड़ा होने के कारण भी ...
जैरी कॉफिन

+1 बहुत बढ़िया सामान। क्या वे Nvidea API का उपयोग करते हैं या ग्राफिक्स कार्ड से सीधे आकर्षित होते हैं?

1
वे आम तौर पर एक न्यूनतम ओपनग्ल फ्रेमवर्क स्थापित करते हैं और कुछ शेड्स को बंद करते हैं ताकि वे आराम करें
जैस्पर बेकर्स

3
यह गंभीर रूप से प्रभावशाली सामान है। मुझे लगता है कि अगर मैं लगभग 15 साल छोटा होता तो यह वही होता जो मैं अपना खाली समय बिताता।

यहाँ कुछ विधानसभा 2011 क़ौम हैं archive.assembly.org/2011
Samuli लेटोनेन

4

जैसे हर कोई कह रहा है कि वे व्यापक रूप से प्रक्रियात्मक उत्पन्न कोड पर निर्भर हैं, लेकिन विशेष रूप से इस डेमो के बारे में और भी अधिक है, यदि आप कुछ विवरणों को रोकते हैं और देखते हैं, तो उदाहरण के लिए उन दीवारों को देखें: वे ईंटें और प्रकाश उन पर कैसा दिखता है । वे प्राकृतिक दिखते हैं।

ऐसा इसलिए है क्योंकि वे उत्पन्न सामग्री में जीवन लाने के लिए बहुत सारे वर्टेक्स शेड्स और टुकड़े टुकड़े का उपयोग कर रहे हैं।

मैंने कुछ समय यह समझने की कोशिश में बिताया कि वे इस तरह की चीजें कैसे बनाते हैं, और उन डेमो के हर टुकड़े से मुझे आश्चर्य होता है।

BTW, जब उन डेमो कर वे भी अधिक निचोड़ करने के लिए संपीड़न उपकरण का उपयोग करें। इस संकलन प्रक्रिया की जाँच करें:

all:
nasm -f bin -o intro main.asm
nasm -f bin -o stub stub.asm
gzip -n --best intro
advdef -z -4 intro.gz
cat stub intro.gz > intro
chmod +x intro
rm intro.gz
rm stub

3

इस विशिष्ट डेमो में रेंडरिंग कैसे की गई, इसकी एक पॉवरपॉइंट प्रस्तुति है। यह अकेले नहीं समझाता है कि सब कुछ 64 किलोबाइट में कैसे फिट होता है, लेकिन इस बात के लिए महत्वपूर्ण है कि इतनी कम जगह में ज्यामिति कैसे बनाई गई थी।

उनके ब्लॉग में उनके अन्य डीमोसिन प्रोडक्शंस के बारे में बहुत सारे रोचक पढ़ने को मिले हैं ।


1

जैसा कि अन्य पहले ही बता चुके हैं, इसका बहुत कुछ प्रक्रियागत रूप से उत्पन्न परिसंपत्तियों पर निर्भर करता है।

इसके लिए एक और तत्व है, जो संपीड़न है। 4k और 64k डेमो अत्यधिक विशिष्ट निष्पादन योग्य कम्प्रेसर का उपयोग करते हैं। इनमें से सबसे प्रसिद्ध kkrunchy हैं farbrausch (64ks के लिए) और crinkler द्वारा TBC & Loonies (4ks के लिए)। इसके अलावा, आधुनिक डेमो शेड का भारी उपयोग करते हैं, जो सादे पाठ हैं और इस प्रकार संपीड़न के बाद नाटकीय रूप से छोटे हो जाते हैं।

अब, जहां तक ​​वीडियो गेम में एकीकरण का सवाल है, मुख्य समस्या यह है कि इस सब में समय लगता है। प्रक्रियात्मक सामग्री उत्पन्न करने में समय लगता है, और निष्पादन योग्य निकालने में बहुत अधिक समय लगता है। और लोगों को आमतौर पर गेम को लोड करने के लिए इंतजार करने के लिए समय की तुलना में उनकी हार्ड ड्राइव पर अधिक जगह होती है, इसलिए मुझे नहीं लगता कि हम व्यापक रूप से उपलब्ध गेम में बहुत जल्द ही इसे देख पाएंगे।

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