LINUX.ORG.RU
ФорумTalks

[демосцены] как они это делают?


0

0

Всем привет!
Посмотрел вот это http://pouet.net/prod.php?which=52938
и сполз под стол.
КАК? как такое возможно?
Ну, мне както рассказывали в общих чертах, что графику можно ужать используя процедурные текстуры, музыку можно ужать используя семплы...

Но это. Я вообще не понимаю как можно запихнуть красивую анимацию и музыку в такой объем.

Может быть ктонибудь сможет пролить свет?

★★★★★

Re: [демосцены] как они это делают?

Есть многое на свете, друг Горацио
Что и не снилось нашим мудрецам.

kilolife ★★★★★ ()

Re: [демосцены] как они это делают?

libastral, очевидно же.

текстуры не ужимают, а генерят, геометрия тоже довольно просто создается. При старте оно отжирает около 1 гига оперативы, это тоже намикает. А все это запихнуть в видяху и отрендерить с плавным перемещением камеры - какие проблемы?

Вот про музыку я сам не понял, слишком красивая и ритмичная для автогенерации.

EmStudio ()

Re: [демосцены] как они это делают?

Ну, хорошо. с графикой более-менее понятно.
А музыка?

ls-h ★★★★★ ()

Re: [демосцены] как они это делают?

Перешел по ссылке.Какая-то картинка.Что я там должен увидеть?

nitz ★★ ()
Ответ на: Re: [демосцены] как они это делают? от cds

Re: [демосцены] как они это делают?

> упаковка =)

кстате, всегда интересовало, как это в 4кб влезает распаковщик. Или распаковщик тоже самописный и сильнозаточенный?

зы: кто скажет, сколко весит dwwin из этого ролика, который и грузит cpu?

EmStudio ()
Ответ на: Re: [демосцены] как они это делают? от nitz

Re: [демосцены] как они это делают?

> Перешел по ссылке.Какая-то картинка.Что я там должен увидеть?

Там видео в HD-разрешении, хорошем качестве и потрясающим саунд-треком. Весом в 4кб

EmStudio ()

Re: [демосцены] как они это делают?

В вайне не заработало.

Absurd ★★★ ()
Ответ на: Re: [демосцены] как они это делают? от nitz

Re: Перешел по ссылке.Какая-то картинка

Это скриншот.
Если сидишь под виндой, то нажми скачать.
В любом случае можно посмотреть видео.

Все, что ты увидишь/слышишь есть результат работы программы размером 4КБ.

ls-h ★★★★★ ()

Re: [демосцены] как они это делают?

Руками и головой. :-) Видимо всё генерируется. Но вообще, впечатляется, конечно.

smh ★★★ ()
Ответ на: Re: [демосцены] как они это делают? от ls-h

Re: [демосцены] как они это делают?

> А музыка?

прозреваю генерацию семплов + хитрый формат записи последовательностей, типа "играть суб-последовательность А с тональностью Б". Но это скорее надо вопрошать музыкант-кунов.

EmStudio ()
Ответ на: Re: [демосцены] как они это делают? от smh

Re: [демосцены] как они это делают?

> Видимо всё генерируется

кроме сборщика музыки. Ну не верю я, что такие красивые вещи можно описать формулой

EmStudio ()
Ответ на: Re: [демосцены] как они это делают? от EmStudio

Re: [демосцены] как они это делают?

Интиресно.А Голливуд нам фильмы на БлюРей впаривает,уроды.Всё равно большинство фильмов на компутерах писаны.

nitz ★★ ()

А что же производители игрух?

Почему они этим не пользуются?
Уж простые вещи (н-р, кирпичные стены, сталь, доски...) можно же сделать процедурными текстурами.
Это же сколько места можно сэкономить.

ls-h ★★★★★ ()
Ответ на: Re: [демосцены] как они это делают? от EmStudio

Re: [демосцены] как они это делают?

>кстате, всегда интересовало, как это в 4кб влезает распаковщик. 

Программа вида

entry_point() {
  WriteConsole("Ku-Ku", ...)
}

Весит ~800 байт если собирать без CRT, стартапа и с выравниванием сегментов в 16 байт. Из кода там только засовывание указателя на строковую константу в стек и call WriteConsole итого несколько бай, остальное PE заголовки.

Absurd ★★★ ()
Ответ на: Re: [демосцены] как они это делают? от cds

Re: [демосцены] как они это делают?

таки упаковано, об этом свидетельствует и левый процесс, и:

Checking: http://www.scene.org/file_dl.php?url=http://http.se.scene.org/pub/scene.org/p...
Engine version: 5.0.0.12182
Total virus-finding records: 563968
File size: 28.51 KB
File MD5: f11971948acfbc54bbabc795b6e549fb

http://www.scene.org/file_dl.php?url=http://http.se.scene.org/pub/scene.org/p... - archive ZIP
>http://www.scene.org/file_dl.php?url=http://http.se.scene.org/pub/scene.org/p... packed by PESTUB

>>http://www.scene.org/file_dl.php?url=http://http.se.scene.org/pub/scene.org/p... packed by FLY-CODE

>>>http://www.scene.org/file_dl.php?url=http://http.se.scene.org/pub/scene.org/p... - Ok

>http://www.scene.org/file_dl.php?url=http://http.se.scene.org/pub/scene.org/p... packed by PESTUB

>>http://www.scene.org/file_dl.php?url=http://http.se.scene.org/pub/scene.org/p... packed by FLY-CODE

>>>http://www.scene.org/file_dl.php?url=http://http.se.scene.org/pub/scene.org/p... - Ok

>http://www.scene.org/file_dl.php?url=http://http.se.scene.org/pub/scene.org/p... packed by PESTUB

>>http://www.scene.org/file_dl.php?url=http://http.se.scene.org/pub/scene.org/p... packed by FLY-CODE

>>>http://www.scene.org/file_dl.php?url=http://http.se.scene.org/pub/scene.org/p... - Ok

>http://www.scene.org/file_dl.php?url=http://http.se.scene.org/pub/scene.org/p... packed by PESTUB

>>http://www.scene.org/file_dl.php?url=http://http.se.scene.org/pub/scene.org/p... packed by FLY-CODE

>>>http://www.scene.org/file_dl.php?url=http://http.se.scene.org/pub/scene.org/p... - Ok

>http://www.scene.org/file_dl.php?url=http://http.se.scene.org/pub/scene.org/p... packed by PESTUB

>>http://www.scene.org/file_dl.php?url=http://http.se.scene.org/pub/scene.org/p... packed by FLY-CODE

>>>http://www.scene.org/file_dl.php?url=http://http.se.scene.org/pub/scene.org/p... - Ok

>http://www.scene.org/file_dl.php?url=http://http.se.scene.org/pub/scene.org/p... packed by PESTUB

>>http://www.scene.org/file_dl.php?url=http://http.se.scene.org/pub/scene.org/p... packed by FLY-CODE

>>>http://www.scene.org/file_dl.php?url=http://http.se.scene.org/pub/scene.org/p... - Ok

>http://www.scene.org/file_dl.php?url=http://http.se.scene.org/pub/scene.org/p... - Ok

>http://www.scene.org/file_dl.php?url=http://http.se.scene.org/pub/scene.org/p... - Ok

http://www.scene.org/file_dl.php?url=http://http.se.scene.org/pub/scene.org/p... - Ok

Т.е. имеем сразу 2 паковщика

EmStudio ()
Ответ на: Re: [демосцены] как они это делают? от EmStudio

Re: [демосцены] как они это делают?

>кстате, всегда интересовало, как это в 4кб влезает распаковщик.

А не взяли ли они lzw из WinAPI?

Absurd ★★★ ()
Ответ на: Re: А что же производители игрух? от EmStudio

Re: А что же производители игрух?

>тут таких много
Ну, там маленькие (по сюжету, продолжительности) демо-игрухи.
Я говорю про полноценные, которые продают на 2х слойных dvd, а так моглибы на одном cd по несколько штук.

ls-h ★★★★★ ()
Ответ на: Re: [демосцены] как они это делают? от cds

Re: [демосцены] как они это делают?

У меня только такое предположение, что нагенерировали разных семплов, отнесли их Ъ-музыканту, типа "а слабо из этого трек сделать", после чего последовательности сильно упаковали. Поскольку семплов мало, то наверняка что-то вроде хаффмана использовали + их модификации.

EmStudio ()
Ответ на: Re: [демосцены] как они это делают? от EmStudio

Re: [демосцены] как они это делают?

>Поскольку семплов мало, то наверняка что-то вроде хаффмана использовали + их модификации.

Зачем делать хаффмана когда можно LZOpenFile/LZReadFile импортировать из user32.dll?

Absurd ★★★ ()
Ответ на: Re: [демосцены] как они это делают? от Absurd

Re: [демосцены] как они это делают?

> Зачем делать хаффмана когда можно LZOpenFile/LZReadFile импортировать из user32.dll?

Если словарных элементов немного, то разве хаффман не будет эффективнее? LZ же по последовательностям жмет, а не по частоте появления, а в ролике именно малое количество семплов и сложные композиции. Но это просто предположение.

EmStudio ()
Ответ на: Re: [демосцены] как они это делают? от EmStudio

Re: [демосцены] как они это делают?

>LZ же по последовательностям жмет, а не по частоте появления, а в ролике именно малое количество семплов и сложные композиции.

Можно по идее сэмплы как-то слелать процедурными.

Absurd ★★★ ()
Ответ на: Re: [демосцены] как они это делают? от Absurd

Re: [демосцены] как они это делают?

> Можно по идее сэмплы как-то слелать процедурными.

Я говорил не о самих семплах, а о их последовательностях. Имхо, такое не сгенеришь. А вот упаковать легко, там их штук 5-7 на мой немузыкальный слух

Мне вот интересно, как бы распаковать это чудо и посмотреть на оригинальный размер.

/me смотрит музыкальный клип весом в 8 метров. Могли бы уж и сразу отрендерить.

EmStudio ()
Ответ на: Re: А что же производители игрух? от Gorthauer

Re: А что же производители игрух?

Есть такая демка - comatose, весом в 256 байт (!), под DOS, без использования библиотек (!!!), на нативной системой рисует 3д-мир, а под vmware желтое пятно посередине экрана. Так шта тут не только это может быть.

Как с нее сграбить видео вообще непонятно. Но красиво.

Кстате, я вспоминаю, что что-то вроде elevation видел в 256 байтах, причем даже с облачками.

EmStudio ()
Ответ на: А что же производители игрух? от ls-h

Re: А что же производители игрух?

>Это же сколько места можно сэкономить.

И сколько времени CPU потерять, и сколько еще терять при изменении текстуры (это ж теперь надо бинарник на каждый чих менять!) - никто подобным в здравом уме страдать не будет.

frame ★★★ ()
Ответ на: Re: [демосцены] как они это делают? от EmStudio

Re: [демосцены] как они это делают?

>> Можно по идее сэмплы как-то слелать процедурными.

>Я говорил не о самих семплах, а о их последовательностях.

У Саттера где-то видел поучительную историю о том как можно упаковывать информацию о шахматных партиях. Это что-то в этом духе.

Absurd ★★★ ()
Ответ на: Re: [демосцены] как они это делают? от EmStudio

Re: [демосцены] как они это делают?

что сложного в генерации нот? берешь и описываешь УЖЕ известную последовательность формулой.
и
>Компутеры уже научились писать

>писать

тут ни при чём.

iSage ★★★★ ()

Re: [демосцены] как они это делают?

Т.к. я люблю это направление компьютерного искусства, у меня есть несколько соображений по поводу сжатия:

- в деме вполне может использоваться самомодифицирующийся код;
- на самом деле все уже давно написано - многие функции уже реализованы в API и на самом деле работает больше не сама программа, а уже готовые подпрограммы операционной системы, т.е. фактически просто идут системные вызовы на ассемблере;
- музыку тоже можно "сжать" - часть семплов сгенерить по формуле, шумовой эффект можно вообще взять из какого-нибудь kernel32.dll, написать один такт, умножить его на 32, развернуть в память, затем мелодию сверху "наложить" и модифицировать. Сэмпл можно сгенерировать, потом можно его же перед загрузкой обработать - увеличить дискретизацию, "почистить", все это уже есть в ОС, далее, создать инструмент, увеличивая и уменьшая частоту семпла на определенный шаг получить все необходимые ноты и их тоже расставить, для получения всей гаммы.
- сжимать вначале своим собственным методом - например, использовать упрощенные формулы для вывода объектов (я в zx spectrum такое читал, там, в одной демке, для скорости, использовалась упрощенная формула для рисования синусоиды - на глаз я ничего и не заподозрил), т.к. мощности процессора много, можно представить сложный объект совокупностью несколько простых объектов и их модификаций (например, чтобы отрендерить бабочку, можно нарисовать только ее половинку, ее в свою очередь представить в виде простейших объектов, которые накладываются прямо во время исполнения демки, "на лету".
- ну и уже в самом конце, "дожать" демку каким-нибудь упаковщиком.

Интересный FAQ, посвященный демосцене находится по адресу: http://www.enlight.ru/demo/faq/

Astyanax ()
Ответ на: Re: А что же производители игрух? от EmStudio

Re: А что же производители игрух?

Вот, посмотрите исходники 4Кб демки Mesha, демка под DOS, состоящая из нескольких сцен (правда без музыки). Как написали в той новости (http://www.enlight.ru/faq3d/main.htm) - "Оказывается, это не чудо кода, а чудо сжатия..."
Ссылка на исходник:
http://www.enlight.ru/faq3d/download/meshasrc.zip

Astyanax ()
Ответ на: Re: А что же производители игрух? от ls-h

Re: А что же производители игрух?

> Я говорю про полноценные, которые продают на 2х слойных dvd, а так моглибы на одном cd по несколько штук.

Они бы стоили бешеных денег - ведь так кодить, сжимать - это, "ручная работа", местами даже искусство.

Astyanax ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.