LINUX.ORG.RU
ФорумTalks

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


0

0

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

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

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

★★★★★

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

kilolife ★★★★★
()

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

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

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

EmStudio
()
Ответ на: комментарий от cds

> упаковка =)

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

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

EmStudio
()
Ответ на: комментарий от nitz

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

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

EmStudio
()

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

Absurd ★★★
()
Ответ на: комментарий от nitz

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

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

ls-h ★★★★★
() автор топика

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

smh ★★★
()
Ответ на: комментарий от ls-h

> А музыка?

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

EmStudio
()
Ответ на: комментарий от smh

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

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

EmStudio
()
Ответ на: комментарий от EmStudio

для 4к наверное всётаки пользуют оптимизации разные, про упаковку я ляпнул несходя по ссылке, думал речь о 64к..

cds
()
Ответ на: комментарий от EmStudio

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

nitz ★★
()

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

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

ls-h ★★★★★
() автор топика
Ответ на: комментарий от EmStudio

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

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

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

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

Absurd ★★★
()
Ответ на: комментарий от enileeb

Там еще шел инфо файл. В нем гласилось что это уличная-асммагия

enileeb
()
Ответ на: комментарий от cds

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

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
()
Ответ на: комментарий от EmStudio

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

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

Absurd ★★★
()
Ответ на: комментарий от EmStudio

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

ls-h ★★★★★
() автор топика
Ответ на: комментарий от cds

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

EmStudio
()
Ответ на: комментарий от ls-h

Но стены, доски и прочее там присутствует.

А вот если бы продавали такие диски, то DVD-плеер стоил бы не 30 баксов, а все 3000.

EmStudio
()
Ответ на: комментарий от EmStudio

А при чем тут dvd?

ls-h ★★★★★
() автор топика
Ответ на: комментарий от EmStudio

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

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

Absurd ★★★
()
Ответ на: комментарий от wyldrodney

Кстате, вот тут: http://pouet.net/prod.php?which=9424 - показывают голые сиськи, попки и прочие женские принадлежности. Анимация скорее всего скелетная. Оно еще и поет.

EmStudio
()
Ответ на: комментарий от Absurd

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

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

EmStudio
()
Ответ на: комментарий от EmStudio

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

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

Absurd ★★★
()
Ответ на: комментарий от EmStudio

>Ъ-видяха есть? С directx проблем никаких?
Хм... а ведь и правда из Виртуалбокса пускал, видать 3д тама не тянется нужное

Gorthauer ★★★★★
()
Ответ на: комментарий от Absurd

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

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

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

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

EmStudio
()
Ответ на: комментарий от Gorthauer

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

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

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

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

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

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

frame ★★★
()
Ответ на: комментарий от EmStudio

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

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

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

Absurd ★★★
()
Ответ на: комментарий от Absurd

AFAIK, там нечто вроде процедурально-сгенереного миди, которое пост-обрабатывается дабы получить более приличное звучание.

iSage ★★★★
()
Ответ на: комментарий от iSage

КАК можно сгенерить миди? Это же ноты. Компутеры уже научились писать приятную музыку? Или сложную мелодию можно описать формулой?

EmStudio
()
Ответ на: комментарий от EmStudio

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

>писать

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

iSage ★★★★
()

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

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

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

Astyanax
()
Ответ на: комментарий от EmStudio

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

Astyanax
()
Ответ на: комментарий от ls-h

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

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

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