Làm thế nào tất cả có thể phù hợp với 64kb?


45

Vì vậy, tôi ở đây tại hội nghị năm 2011 và đã có bản demo này được phát: http://www.youtube.com/watch?v=69Xjc7eklxE&feature=player_embedded

Đó chỉ là một tệp duy nhất, nó nói rằng trong các quy tắc. Vì vậy, tôi nhắc lại, làm thế nào họ làm điều này để phù hợp với tập tin nhỏ như vậy?


Bản demo này có thể được tải xuống không? Tôi muốn xem làm thế nào nó hoạt động khi chạy cục bộ.
David

1
Có, bạn có thể tìm thấy bản demo đó tại đây: ftp.untergrund.net/users/atzAdmin/fltatz_uncovering_static.zip
Samuli Lehtonen

Tất nhiên có rất nhiều MB các thư viện hệ thống mà không có điều này sẽ không thể vẽ một đa giác đơn ...
Hobbs

2
Là một người tích cực tạo ra phần giới thiệu 64kB, tôi đã viết bài viết này: ctrl-alt-test.fr/?p=494 (Làm thế nào các sản phẩm demoscene có thể nhỏ như vậy?). TL; DR: tạo thủ tục, nén và rất nhiều công việc phụ.
Laurent

1
@TeamUpvote Không, tất cả là C ++. Để xuống dưới 12kB, bạn cần thoát khỏi thư viện chuẩn. Nếu bạn sử dụng Visual C ++, bạn có thể tìm thấy các ví dụ ở đây: github.com/laurentlb/Ctrl-Alt-Test/tree/master/Fiquilezles.org/code/framework64k/framework64k.htm .
Laurent

Câu trả lời:


39

Đó là thủ tục dựa trên. Nội dung không được bao gồm trong exe, chỉ có các quy tắc về cách vẽ nó. Khi được khởi chạy, chương trình rút ra những gì nó cần trong thời gian chạy, nó không được kết xuất trước hoặc lưu trước dưới mọi hình thức.

Đây là phương pháp tương tự được Elite sử dụng để tạo ra một vũ trụ rộng lớn gồm các hệ sao, v.v.

Thật đáng kinh ngạc những gì có thể ngày nay bằng cách sử dụng thế hệ thủ tục, tôi nghĩ các trò chơi sẽ có nhiều tính năng này trong tương lai.


Tôi chỉ nghĩ rằng các kết cấu là khá chính xác. Vì vậy, họ chỉ vẽ nó bằng mã và không có bất kỳ tập tin kết cấu nào tôi đoán?
Samuli Lehtonen

1
Vâng đúng vậy.
Gary Willoughby

1
Đối với các loại bản demo này, âm thanh cũng được tạo ra từ mã (không có mẫu). Tất cả mọi thứ được tổng hợp một cách nhanh chóng ... và tất nhiên một số tín dụng và cảnh mờ dần cho phép tiền mã hóa nặng nề :)
Karoly Horvath

2
Là một cựu nghệ sĩ 3d, tôi đã muốn các kết cấu được tạo theo thủ tục được đưa vào như một bộ công cụ tiêu chuẩn trong các chương trình nghệ thuật 3d chính thống trong một thời gian dài. Có lẽ gần nhất là bằng cách sử dụng ngôn ngữ kịch bản dựng sẵn ....
Darknight

Bạn có thể quan tâm đến những thứ như Project FrontierThế giới thủ tục , đó là hai cách tiếp cận cho cùng một vấn đề thông qua việc tạo thủ tục.
Kyte

10

Như @Gary Willoughby nói, nó mang tính thủ tục rộng rãi.

Ngoài ra, có asmmã hóa tay đáng kể liên quan, cùng với kiến ​​thức sâu rộng về số lượng cửa sổ / nền tảng của các hệ thống lựa chọn hoạt động nội bộ.

Ngoài ra còn có một thể loại demo 4K, nếu bạn muốn xem các ví dụ cực đoan hơn về mã nhỏ gọn.

Một số nhóm DemoScene phát hành bản demo trực tuyến của họ, nơi bạn có thể tải xuống và chơi chúng nếu bạn muốn.

Âm mưu
farb-rausch

Xem thêm Wikipedia về lịch sử của DemoScene

Lưu ý - rất nhiều bản demo sẽ khiến phần mềm chống vi-rút của bạn bị hỏng . Về cơ bản, có vẻ như hầu hết các bản demo đều sử dụng các tệp .exe được đóng gói và hầu hết các nhóm demo đều tự đóng gói. Thật không may, vì rất nhiều công ty AV khập khiễng, họ thường tuyên bố rằng bất kỳ thực thi nhị phân đóng gói nào cũng là một loại virus.


1
Tôi đang tự hỏi công ty AV bạn có ý nghĩ gì thậm chí có thể không khập khiễng ...
Jerry Coffin

+1 công cụ tuyệt vời. Họ có sử dụng API Nvidea hoặc vẽ trực tiếp vào card đồ họa không?

1
Họ thường thiết lập một khung OpenGL tối thiểu và khởi động một số shader để làm phần còn lại
Jasper Bekkers

3
Đó là thứ ấn tượng nghiêm túc. Tôi nghĩ rằng nếu tôi trẻ hơn khoảng 15 tuổi thì đây sẽ là điều tôi dành thời gian rảnh rỗi để làm.

Dưới đây là một số bản demo lắp ráp 2011: archive.assinstall.org/2011
Samuli Lehtonen

4

Giống như mọi người đang nói rằng họ phụ thuộc rất nhiều vào mã được tạo theo thủ tục, nhưng cụ thể hơn nữa là bản demo này, nếu bạn tạm dừng và xem xét một số chi tiết, hãy xem ví dụ về những bức tường đó: nhìn những viên gạch và ánh sáng phản chiếu trên chúng. Họ trông tự nhiên.

Đó là bởi vì họ đang sử dụng rất nhiều shader đỉnh và shader mảnh để mang lại sự sống cho nội dung được tạo.

Tôi đã dành một chút thời gian để cố gắng hiểu cách họ tạo ra những thứ như vậy và cảm thấy ngạc nhiên với mỗi đoạn mã tôi lấy từ những bản demo đó.

BTW, khi thực hiện các bản demo đó, họ cũng sử dụng các công cụ nén để nén hơn nữa. kiểm tra quá trình biên dịch này:

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

Có một bài thuyết trình PowerPoint về cách kết xuất được thực hiện trong bản demo cụ thể này. Điều này một mình không giải thích làm thế nào mọi thứ phù hợp với 64 kilobyte, nhưng là chìa khóa cho cách hình học được tạo ra trong một không gian nhỏ như vậy.

Ngoài ra còn có rất nhiều điều thú vị được đọc trong blog của anh ấy về các sản phẩm demoscene khác của anh ấy.


1

Như những người khác đã tuyên bố, rất nhiều trong số này phụ thuộc vào tài sản được tạo theo thủ tục.

Có một yếu tố khác, đó là nén. Bản demo 4k và 64k sử dụng máy nén thực thi chuyên dụng cao. Nổi tiếng nhất trong số này là kkrunchy bởi farbrausch (cho 64ks) và crinkler của TBC & Loonies (cho 4ks). Hơn nữa, các bản demo hiện đại sử dụng rất nhiều shader, là văn bản đơn giản và do đó sẽ nhỏ hơn đáng kể sau khi nén.

Bây giờ, liên quan đến tích hợp trong các trò chơi video, vấn đề chính là tất cả điều này cần có thời gian. Việc tạo nội dung thủ tục cần có thời gian và việc trích xuất tệp thực thi cần một lượng thời gian rất lớn. Và mọi người thường có nhiều dung lượng trên ổ cứng hơn thời gian chờ đợi trò chơi tải, vì vậy tôi không nghĩ rằng chúng ta sẽ sớm thấy nhiều thứ này trong các trò chơi có sẵn rộng rãi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.