Демо, которых никто никогда не видел

:

Скажу сразу, что я не являюсь демомейкером, сценером или даже программистом, поэтому мое мнение — это всего лишь мое мнение. Я, так сказать, «любитель» что-ли.

Расскажу как «это» было у меня. Начинал я с советского полу-IBM совместимого компьютера «Поиск». Конфа: аналог i8088 процессора, CGA монитор. Начал «программировать» с batch-файлов (.BAT) ибо была книжка по MS-DOS и дискетка с этим самым MS-DOS. Никаких бейсиков, ассемблеров, паскалей или, тем более, си в помине не было, и переписать их откуда-то то же не было возможности. Потому как у всех остальных школьников тогда был минимум — китайский тетрис а как максимум — Dendy, в качестве высшего достижения компьютерной индустрии.

Но потом постепенно стали кое у кого появляться первые персоналки 286. Родители тащили их с работы, вместе с debug.exe и прочими qb.exe. Так, у меня начали появляться на дискетках комппиляторы с ЯВУ.

QB.EXE, или Quick Basic, да, появился у меня раньше, чем турбо паскаль, поэтому на чем кодить вопроса не вставало. Тем более откуда-то взялась книжка «Бейсик для статистиков» или что-то в этом духе. Что такое статистика я в то время конечно еще не догадывался, но вот интересные команды в этой книженции встречались (особенно для отрисовки графиков и тд).

Вот так появились первые наброски графических эффектов. Что такое «демо» никто не знал, но что такое «хранитель экрана» в том же Norton Commander видели многие. Вот так появился набор различных «хранителей экрана» если так можно сказать. С удивлением щаз отрыл в бекапах:

Year: 1992-93
CPU: i8088 4,73 Mhz
Arc: MS-DOS, Quick Basic

Никакого матана здесь ессно нет — только циклы, только рандом, только целые числа. В общем только хардкор (тоска лютая), но тогда на «том самом» компе лично у меня вызывало восторг (особенно эффекты с кругами, как щаз помню )

Затем откуда-то появился turbo.exe, знаменитый Turbo Pascal. Тут же была куплена книжка Фаронова. Параллельно эксперементировал с debug.exe, вникал в команды ассемблера. И начался у меня период «системного» программирования, если так можно выразится: всякие многочисленные конвертеры, дисковые утилиты, графические редакторы, MOD-плееры, игры-змейки, com-криптеры, BMP-вьюверы и тд и тп.

Как систематизация всего этого «системства» в 1997 году мы с одним приятелем начали воять файловый менеджер, да такой, чтоб волкова уесть с его 64Kb размером запускаемого файла. У нас должен быть размер запускаемого файла быть меньше, а функционал больше. В целом — затея удалась, хоть и не до конца. Но наш файловый менеджер таки работал и таки содержал в себе зубодробительный удобный редактор и всякие утилиты для работы с дисками. Вот он собственной персоной — Horizont Present Commander:

И вот, дабы как-то разрекламировать данный продукт, была закодена такая мини-интра:

Year: 1998-99
CPU: Pentium 166Mhz
Arc: MS-DOS Pascal/assembler

Матан вообщем-то есть, типа Sin и Cos, но в целом алгос скомунизжен из Disaev Demo Guide кажется, с небольшими изменениями и оптимизацией на ассемблере. Музыка конечно тоже скомунизжена откуда-то.

Вскоре у меня появился мопед на 33.6, и тут же была создана BBS станция. Ну а какая BBS может без BBStro? Так родилось это чудо:

Year: 1999-2000
CPU: Pentium 166Mhz
Arc: MS-DOS Pascal/assembler

Эффект чисто мой, но в целом — уныл и тормозил чуть меньше, чем на видео, но тормозил. Тоже синусы и косинусы в основном. Никакого сверхвысокого матана.

За время системного кодерства были и эксперементы с графическими всякими эффектами, но так, в основном копи-паста с откуда-нибудь стыренных сорцов с изменением разве что коэффециентов и быть может, наложением своих фильтров. Ну пара-тройка своих эффектов. В общем и целом весь этот баян собрать в какую-либо дему так и не удалось. Да и не хотелось, потому что стыдно. Но теперь, спустя уже почти как 15 лет, решил достать со шкафа арвид и попытаться склеить подборку тогдашних «эксперементов». Здесь далеко не все, а только то, что хоть как-то работало и не выглядело ужасающе глючным:

Хотя нужно сказать, что каждый алгоритм переписывался мной с нуля, в основном с ассемблерной оптимизацией. Вот так выглядят часть исходников из 3D Tor:

Begin
     GetMem(P,64000);
     Asm
        mov ax,13h
        int 10h
     End;
     Port[$3c8] := 1;
     For I := 1 to 63 do
         Begin
              Port[$3c9] := i;
              Port[$3c9] := i;
              Port[$3c9] := i;
         End;
     p1 := 0;
     p2 := 0;
     Repeat
           Asm
              les di,p
              db $66,$33,$c0
              mov cx,320*200/4
              db $f3,$66,$ab
           End;
           p1 := p1+0.03;
           p2 := p2+0.03;
Asm
	fld p2
        db $d9,$ff {fcos}
	fimul o30
	fiadd o100
	fstp r1				{ r1 :=	100+cos(p2)*30}

	fld p1
	db $d9,$fe {fsin}
	fimul o20
	fiadd o50
	fstp r2				{ r2 :=	50+sin(p1)*20}
End;
           c1 := 0;
           Repeat
                 c2 := 0;
                 Repeat
Asm
	fld c2
        db $d9,$ff {fcos}
	fld r2
	fmul
	fld r1
	fadd
	fst r				{ r := r1+cos(c2)*r2}
	fld c1
        db $d9,$fe {fsin}
	fmul
	fstp x				{ x := r*sin(c1)}
	fld c1
        db $d9,$ff {fcos}
	fld r
	fmul
	fild o200
	fadd
	fstp z

Что же теперь, спросит пытливый читатель? А, — ничего. Дом, семья, работа — работа, семья, дом. Хотя нет-нет, да и захочется тряхнуть стариной. Например, закодить «огонек» для какого-нибудь авто-навигатора или, немного ранее, для видео-открытки на MIPS из журнала Vogue: тот же огонек или sinedots. В общем, для девайсов, которые попадаются в руки.

Что же касается заголовка статьи, то вы — первые люди, после меня, кто видит все это спустя каких-то 15 лет.

PS: И помните: make demo or die!