그래서 저는 2011 년 어셈블리에서 여기 데모가있었습니다 : http://www.youtube.com/watch?v=69Xjc7eklxE&feature=player_embedded
그것은 하나의 단일 파일 일 뿐이며 규칙에 나와 있습니다. 그래서 반복합니다. 어떻게 그렇게 작은 파일에 맞게 만들었습니까?
그래서 저는 2011 년 어셈블리에서 여기 데모가있었습니다 : http://www.youtube.com/watch?v=69Xjc7eklxE&feature=player_embedded
그것은 하나의 단일 파일 일 뿐이며 규칙에 나와 있습니다. 그래서 반복합니다. 어떻게 그렇게 작은 파일에 맞게 만들었습니까?
답변:
그것은의 절차 를 기반으로. 내용은 exe에 포함되어 있지 않으며 그리는 방법의 규칙에만 해당됩니다. 프로그램이 시작되면 런타임에 필요한 것을 렌더링하여 어떤 형태로든 사전 렌더링되거나 사전 저장되지 않습니다.
이것은 엘리트 가 방대한 스타 시스템 등을 만드는 데 사용하는 것과 동일한 방법입니다 .
오늘날 절차 생성을 사용하여 가능한 것이 정말 놀랍습니다. 앞으로 게임에 더 많은 기능이 포함될 것이라고 생각합니다.
@Gary Willoughby가 말했듯이 광범위하게 절차 적입니다.
또한, asm
몇 개의 윈도우 / 플랫폼 선택 시스템이 내부적으로 작동하는지에 대한 광범위한 지식과 함께 상당한 핸드 코딩이 필요합니다.
더 컴팩트 한 코드의 더 극단적 인 예를 보려면 4K 데모 범주도 있습니다.
일부 DemoScene 그룹은 데모를 온라인으로 출시하여 원하는 경우 데모를 다운로드하여 재생할 수 있습니다.
DemoScene의 역사에 관한 Wikipedia 도 참조하십시오
참고 – 많은 데모는 바이러스 백신을 놀라게합니다 . 기본적으로 모든 데모는 압축 된 .exe 파일을 사용하는 것으로 보이며 대부분의 데모 그룹은 자체 패커를 굴립니다. 불행히도, 많은 AV 회사가 절름발이이기 때문에 그들은 일반적으로 압축 바이너리 바이너리가 일종의 바이러스라고 주장합니다.
모든 사람들이 절차 적으로 생성 된 코드에 광범위하게 의존한다고 말하지만, 특히이 데모에 대해 더 많은 정보가 있습니다. 만약 당신이 잠시 멈추고 세부 사항을 살펴보면, 그 벽을 볼 수 있습니다. 그들은 자연스럽게 보입니다.
생성 된 콘텐츠에 생명을 불어 넣기 위해 많은 버텍스 쉐이더와 프래그먼트 쉐이더를 사용하고 있기 때문입니다.
나는 보냈다 일부 가 그런 일을하고, 그 데모에서 코드 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
이 특정 데모에서 렌더링이 수행 된 방법에 대한 PowerPoint 프레젠테이션 이 있습니다. 이것만으로는 모든 것이 64 킬로바이트에 어떻게 맞는지 설명 할 수 없지만, 작은 공간에서 지오메트리가 어떻게 만들어 졌는지에 대한 핵심입니다.
그의 읽을 흥미를 많이도 있습니다 블로그 그의 다른 demoscene 제작에 대한이.
다른 사람들이 이미 언급했듯이,이 중 많은 부분이 절차 적으로 생성 된 자산에 의존합니다.
여기에는 또 다른 요소 인 압축이 있습니다. 4k 및 64k 데모는 고도로 전문화 된 실행 가능 압축기를 사용합니다. 이들 중 가장 유명한 것은 farbrausch (64ks)의 kkrunchy와 TBC & Loonies (4ks)의 crinkler입니다. 또한 최신 데모에서는 일반 텍스트 인 셰이더를 많이 사용하므로 압축 후 크기가 크게 줄어 듭니다.
이제 비디오 게임의 통합에 관한 한 주요 문제는이 모든 시간이 걸린다는 것입니다. 절차 적 컨텐츠를 생성하는 데 시간이 걸리고 실행 파일을 추출하는 데 많은 시간이 걸립니다. 그리고 사람들은 일반적으로 게임이로드되기를 기다리는 시간보다 하드 드라이브에 더 많은 공간을 가지고 있기 때문에 곧 광범위한 게임에서이 기능을 많이 볼 수있을 것이라고 생각하지 않습니다.