สิ่งนี้จะพอดีกับขนาด 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
ในฐานะที่เป็นคนที่สร้าง intros 64kBฉันได้เขียนบทความนี้: ctrl-alt-test.fr/?p=494 (การผลิตโปรโมชั่นของคลื่นแม่เหล็กไฟฟ้าจะเล็กได้อย่างไร) TL; DR: การสร้างขั้นตอนการบีบอัดและงานพิเศษมากมาย
Laurent

1
@TeamUpvote ไม่มันคือ C ++ ทั้งหมด หากต้องการลงไปต่ำกว่า 12kB คุณต้องกำจัดไลบรารี่มาตรฐาน ถ้าคุณใช้ Visual C ++ คุณสามารถหาตัวอย่างที่นี่: github.com/laurentlb/Ctrl-Alt-Test/tree/master/Fและiquilezles.org/code/framework64k/framework64k.htm
Laurent

คำตอบ:


39

มันขึ้นอยู่กับขั้นตอน เนื้อหาไม่รวมอยู่ใน exe เพียงกฎของวิธีการวาด เมื่อเปิดตัวโปรแกรมจะดึงสิ่งที่ต้องการไปใช้ในขณะรันไทม์ซึ่งไม่ได้แสดงผลล่วงหน้าหรือบันทึกล่วงหน้าในรูปแบบใด ๆ

นี่เป็นวิธีการเดียวกับที่Elite ใช้เพื่อสร้างระบบดาวฤกษ์อันกว้างใหญ่ ฯลฯ

เป็นเรื่องที่น่าอัศจรรย์ใจมากที่วันนี้เป็นไปได้ที่ใช้การสร้างแบบขั้นตอนฉันคิดว่าเกมจะมีคุณลักษณะเพิ่มเติมในอนาคต


ฉันแค่คิดว่าพื้นผิวนั้นค่อนข้างแม่นยำ ดังนั้นพวกเขาจึงวาดมันด้วยรหัสและไม่มีไฟล์พื้นผิวใด ๆ ที่ฉันเดา?
Samuli Lehtonen

1
ถูกต้องเลย.
Gary Willoughby

1
สำหรับการสาธิตประเภทนี้เสียงจะถูกสร้างขึ้นจากรหัส (ไม่มีตัวอย่าง) ทุกอย่างถูกสังเคราะห์ขึ้นมาทันที ... และแน่นอนว่าเครดิตและฉากจางหายไปทำให้มีการประมวลผลล่วงหน้าจำนวนมาก :)
Karoly Horvath

2
ในฐานะอดีตศิลปิน 3d ฉันต้องการให้มีพื้นผิวที่สร้างขึ้นตามขั้นตอนเพื่อรวมไว้เป็นชุดเครื่องมือมาตรฐานในโปรแกรมศิลปะ 3 มิติหลักเป็นเวลานาน อาจใกล้เคียงที่สุดคือการใช้ภาษาสคริปต์ในตัว ....
Darknight

คุณอาจสนใจในสิ่งต่าง ๆ เช่นProject FrontierและProcedural Worldซึ่งเป็นสองวิธีในการแก้ไขปัญหาเดียวกันผ่านการสร้างขั้นตอน
Kyte

10

@Gary Willoughby กล่าวว่ามันเป็นขั้นตอนอย่างกว้างขวาง

นอกจากนี้ยังมีasmการเข้ารหัสมือจำนวนมากที่เกี่ยวข้องพร้อมกับความรู้ที่ครอบคลุมเกี่ยวกับจำนวนหน้าต่าง / แพลตฟอร์มของระบบทางเลือกที่ทำงานภายใน

นอกจากนี้ยังมีหมวดหมู่การสาธิต 4K หากคุณต้องการดูตัวอย่างรหัสคอมแพคมากยิ่งขึ้น

กลุ่ม DemoScene บางกลุ่มปล่อยเดโม่ออนไลน์ซึ่งคุณสามารถดาวน์โหลดและเล่นได้หากต้องการ

สมรู้ร่วมคิด
Farb-rausch

ดูที่Wikipedia เกี่ยวกับประวัติของ DemoScene

หมายเหตุ - มากของประชาชนจะทำให้เกิดการป้องกันไวรัสของคุณจะออกนอกลู่นอกทาง โดยทั่วไปแล้วดูเหมือนว่าการสาธิตทั้งหมดจะใช้ไฟล์. exe ที่บรรจุอยู่และกลุ่มตัวอย่างส่วนใหญ่จะทำการแบ่งไฟล์ของตนเองออก น่าเสียดายเนื่องจาก บริษัท AV จำนวนมากนั้นอ่อนแอพวกเขาอ้างว่าไฟล์ไบนารีที่ปฏิบัติการได้แบบแพ็คนั้นเป็นไวรัสบางประเภท


1
ฉันเหลือสงสัยว่า บริษัท AV ที่คุณมีในใจเป็นไปได้ว่าอาจจะไม่ใช่คนอ่อนแอ ...
Jerry Coffin

+1 สิ่งที่น่ากลัว พวกเขาใช้ Nvidea APIs หรือวาดโดยตรงกับกราฟิกการ์ด?

1
พวกเขามักจะตั้งค่ากรอบงาน OpenGL ที่น้อยที่สุดและเริ่มต้นสิ่งที่น่าสนใจให้กับคนอื่น ๆ
Jasper Bekkers

3
มันเป็นสิ่งที่น่าประทับใจอย่างมาก ฉันคิดว่าถ้าฉันอายุน้อยกว่า 15 ปีนี่จะเป็นสิ่งที่ฉันจะใช้เวลาว่างทำ

ต่อไปนี้เป็นตัวอย่างการชุมนุม 2011: archive.assembly.org/2011
Samuli Lehtonen

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

มีการนำเสนอ PowerPointเกี่ยวกับการแสดงผลในการสาธิตเฉพาะนี้ เพียงอย่างเดียวไม่ได้อธิบายว่าทุกอย่างเหมาะสมกับขนาด 64 กิโลไบต์ได้อย่างไร แต่เป็นกุญแจสำคัญในการสร้างรูปทรงเรขาคณิตในพื้นที่ขนาดเล็ก

นอกจากนี้ยังมีจำนวนมากที่น่าสนใจอ่านในบล็อกของเขาเกี่ยวกับโปรดักชั่น demoscene อื่น ๆ ของเขา


1

ตามที่คนอื่นได้ระบุไว้แล้วสิ่งนี้จำนวนมากขึ้นอยู่กับสินทรัพย์ที่สร้างขั้นตอน

มีองค์ประกอบอื่นที่มันซึ่งคือการบีบอัด การสาธิต 4k และ 64k ใช้คอมเพรสเซอร์ที่สามารถทำงานได้สูง สิ่งที่มีชื่อเสียงที่สุดคือ kkrunchy โดย farbrausch (สำหรับ 64ks) และ crinkler โดย TBC & Loonies (สำหรับ 4ks) ยิ่งไปกว่านั้นการสาธิตที่ทันสมัยทำให้การใช้งานเครื่องอัดเสียงเป็นไปอย่างหนักซึ่งเป็นข้อความธรรมดาและทำให้มีขนาดเล็กลงอย่างมากหลังจากการบีบอัด

ตอนนี้เท่าที่บูรณาการในวิดีโอเกมเป็นปัญหาหลักคือทั้งหมดนี้ต้องใช้เวลา การสร้างเนื้อหาขั้นตอนต้องใช้เวลาและการดึงไฟล์ที่เรียกทำงานได้นั้นใช้เวลานานมาก และโดยทั่วไปผู้คนจะมีพื้นที่บนฮาร์ดไดรฟ์มากกว่าเวลารอโหลดเกมดังนั้นฉันไม่คิดว่าเราจะเห็นสิ่งนี้มากมายในเกมที่มีให้เล่นอย่างกว้างขวางในไม่ช้า

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.