이 모든 것을 64kb에 어떻게 맞출 수 있습니까?


45

그래서 저는 2011 년 어셈블리에서 여기 데모가있었습니다 : http://www.youtube.com/watch?v=69Xjc7eklxE&feature=player_embedded

그것은 하나의 단일 파일 일 뿐이며 규칙에 나와 있습니다. 그래서 반복합니다. 어떻게 그렇게 작은 파일에 맞게 만들었습니까?


이 데모를 다운로드 할 수 있습니까? 로컬로 실행할 때 어떻게 작동하는지 확인하고 싶습니다.
David

1
예, 여기에서 데모를 찾을 수 있습니다. ftp.untergrund.net/users/atzAdmin/fltatz_uncovering_static.zip
Samuli Lehtonen

물론 거기에 있는 이 일이 하나의 다각형을 그릴 수 없을 것 없이는 시스템 라이브러리의 메가 바이트는 ...
홉스

2
64kB 인트로를 적극적으로 만드는 사람 으로서이 기사를 작성했습니다. ctrl-alt-test.fr/?p=494 (데모 제작은 어떻게 작을 수 있습니까?). TL; DR : 절차 적 생성, 압축 및 많은 추가 작업.
Laurent

1
@TeamUpvote 아니요, 모두 C ++입니다. 12kB 미만으로 이동하려면 표준 라이브러리를 제거해야합니다. Visual C ++를 사용하는 경우 github.com/laurentlb/Ctrl-Alt-Test/tree/master/Fiquilezles.org/code/framework64k/framework64k.htm에서 예제를 찾을 수 있습니다 .
Laurent

답변:


39

그것은의 절차 를 기반으로. 내용은 exe에 포함되어 있지 않으며 그리는 방법의 규칙에만 해당됩니다. 프로그램이 시작되면 런타임에 필요한 것을 렌더링하여 어떤 형태로든 사전 렌더링되거나 사전 저장되지 않습니다.

이것은 엘리트 가 방대한 스타 시스템 등을 만드는 데 사용하는 것과 동일한 방법입니다 .

오늘날 절차 생성을 사용하여 가능한 것이 정말 놀랍습니다. 앞으로 게임에 더 많은 기능이 포함될 것이라고 생각합니다.


방금 텍스처가 매우 정확하다고 생각했습니다. 그래서 그들은 코드로 그리고 텍스처 파일없이 그것을 그릴 것입니다.
Samuli Lehtonen

1
네 맞습니다.
Gary Willoughby

1
이러한 종류의 데모에서는 사운드가 코드에서 생성됩니다 (샘플 없음). 모든 것은 :) 즉석에서 합성 ... 그리고 물론 일부 학점 및 페이드 장면은 무거운 사전 계산을 할 수있다
카 롤리 바스을

2
전 3D 아티스트로서, 절차 적으로 생성 된 텍스처가 오랫동안 주류 3D 아트 프로그램에서 표준 도구 세트로 포함되기를 원했습니다. 아마도 가장 가까운 것은 내장 된 스크립팅 언어를 사용하는 것입니다.
Darknight

절차 생성을 통해 동일한 문제에 대한 두 가지 접근 방식 인 Project FrontierProcedural World 와 같은 항목에 관심이있을 수 있습니다 .
Kyte

10

@Gary Willoughby가 말했듯이 광범위하게 절차 적입니다.

또한, asm몇 개의 윈도우 / 플랫폼 선택 시스템이 내부적으로 작동하는지에 대한 광범위한 지식과 함께 상당한 핸드 코딩이 필요합니다.

더 컴팩트 한 코드의 더 극단적 인 예를 보려면 4K 데모 범주도 있습니다.

일부 DemoScene 그룹은 데모를 온라인으로 출시하여 원하는 경우 데모를 다운로드하여 재생할 수 있습니다.

음모
far-rausch

DemoScene의 역사에 관한 Wikipedia 도 참조하십시오

참고 – 많은 데모는 바이러스 백신을 놀라게합니다 . 기본적으로 모든 데모는 압축 된 .exe 파일을 사용하는 것으로 보이며 대부분의 데모 그룹은 자체 패커를 굴립니다. 불행히도, 많은 AV 회사가 절름발이이기 때문에 그들은 일반적으로 압축 바이너리 바이너리가 일종의 바이러스라고 주장합니다.


1
심지어 아마도 비 절름발이 ...로서 당신이 마음에 가지고있는 AV 기업 궁금 왼쪽 해요
제리 관

+1 멋진 것들. Nvidea API를 사용하거나 그래픽 카드로 직접 가져 옵니까?

1
그들은 일반적으로 최소한의 OpenGL 프레임 워크를 설정하고 나머지 쉐이더를 시작합니다
Jasper Bekkers

3
정말 인상적인 것들입니다. 15 살 정도 젊었을 때 여가 시간을 보내 게 될 것입니다.

여기에 몇 가지 조립 2011 데모는 다음과 같습니다 archive.assembly.org/2011
Samuli 레토 넨

4

모든 사람들이 절차 적으로 생성 된 코드에 광범위하게 의존한다고 말하지만, 특히이 데모에 대해 더 많은 정보가 있습니다. 만약 당신이 잠시 멈추고 세부 사항을 살펴보면, 그 벽을 볼 수 있습니다. 그들은 자연스럽게 보입니다.

생성 된 콘텐츠에 생명을 불어 넣기 위해 많은 버텍스 쉐이더와 프래그먼트 쉐이더를 사용하고 있기 때문입니다.

나는 보냈다 일부 가 그런 일을하고, 그 데모에서 코드 I 횡령의 모든 부분에 깜짝 놀라게 느낌을 어떻게 이해하려고 시간을.

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 데모는 고도로 전문화 된 실행 가능 압축기를 사용합니다. 이들 중 가장 유명한 것은 farbrausch (64ks)의 kkrunchy와 TBC & Loonies (4ks)의 crinkler입니다. 또한 최신 데모에서는 일반 텍스트 인 셰이더를 많이 사용하므로 압축 후 크기가 크게 줄어 듭니다.

이제 비디오 게임의 통합에 관한 한 주요 문제는이 모든 시간이 걸린다는 것입니다. 절차 적 컨텐츠를 생성하는 데 시간이 걸리고 실행 파일을 추출하는 데 많은 시간이 걸립니다. 그리고 사람들은 일반적으로 게임이로드되기를 기다리는 시간보다 하드 드라이브에 더 많은 공간을 가지고 있기 때문에 곧 광범위한 게임에서이 기능을 많이 볼 수있을 것이라고 생각하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.