Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.06;
Скачать: CL | DM;

Вниз

Предлагаю всем форумом (всем желающим) сделать 64К демо на делфи   Найти похожие ветки 

 
Darth   (2005-01-20 18:41) [0]

Сабж... Можно и 128К и 256К.. не суть важно. Главное всем вместе и опенсорс.

Как предлагаю делать:
Участники делают модули с некими сценами. Я подготовлю болванку с созданием окна, окном настроек и т.д. Потом мы все это савокупляем и получаем готовое демо.

Что скажите господа?

Мне это интересно просто потому что интересно. Очень много времени тратить на это не планирую, но именно потому и нужна помощь. Кто-то может сделать метаболы, кто-то еще какую хренЬ :) Жду мнения.


 
Красный молоток   (2005-01-20 20:13) [1]

Идея здравая :) А на каком апи писать будете?


 
боби   (2005-01-20 20:30) [2]

Дартц ты наверно удивишся но если ты не предложишь то нечего не изменится =)


 
Darth   (2005-01-20 20:45) [3]

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

Красный молоток - Думаю, что OpenGL. Традиционно для этого дела.


 
Zer0 ©   (2005-01-21 06:55) [4]

Знаю пару трюков, могу поучаствовать =)

---
k3wl


 
wiz ©   (2005-01-21 10:46) [5]

в целом, готов немного поучаствовать (только добью сессию)


 
Zeqfreed ©   (2005-01-21 12:40) [6]

Если смогу, внесу свой посильный вклад


 
Asteroid ©   (2005-01-21 21:06) [7]

Аналогично, было бы описание общего вида модулей.


 
Darth   (2005-01-21 22:04) [8]

initialize

main cycle

finalize

вот и весь вид. А главный модуль поочереди вызывает. Передавая в главный цикл прошедшее время и инкрементируя общий счетчик :)


 
Zeqfreed ©   (2005-01-21 23:10) [9]

Darth   (21.01.05 22:04) [8]

Хм... то есть например один человек сделал домик, второй вывел в нем билборд солнца, а третий закрасил все это трафаретом в форме звездочки? ) Поподробней, пожалуйста, Дарз! ;o)


 
XProger ©   (2005-01-23 00:57) [10]

Рискну предложить 3 базовые процедурки :)
procedure Init;
procedure MainLoop;
procedure Free;

После запуска вызываются Init всех модулей. Open GL они не инициализируют, атолько генерируют объекты и текстуры :)
Затем вызываются MainLoop. Каждый модуль имеет необходимое ему время для отображения всех своих прелестей :)
А при выходе из демки по очереди вызываются Free методы...


 
Asteroid ©   (2005-01-23 01:33) [11]

Т.е. один модуль - одна сцена, общих объектов и состояний нет?
Тогда при запуске каждый модуль указывает, каким он будет в очереди. И еще должно быть какое-то событие на завершение работы модуля, чтобы основная прога перешла к следующему. Так?


 
wiz ©   (2005-01-23 12:15) [12]

несколько вопросов к Дарзу и тем кто хочет участвовать:

1) полностью ли модуль контролирует вывод openGL? (т.е. установка камеры, движение итп)

Если да, то тогда предложение: сделать _одну_ на всех либу по отсчёту межкадрового времени (всё равно каждый будет это делать/пользоваться)

тогда процедурка может приобрести вид: procedure MainLoop(ElapsedTime:single);
где ElapsedTime (например) в миллисекундах.

2) как осуществляется переход от модуля к модулю?
видится два варианта:
а) "без перехода" - т.е. например главный модуль делает однокадровый белый flash на весь экран и начинает работать следующий модуль.

б) "с переходом" - сложнее, но и интереснее :) тогда каждый сцено-делатель должен заложиться на некий "вход" и "выход" из модуля (некая дверь, портал, туннель, коллапс, что-то еще).
Потом (если получится), можно попробовать на переходах сделать "двойную работу" - т.е. выводят оба модуля, входящий и выходящий... (я понимаю, что звучит бредово и геморрно, но зато это единое пространство, а оно imho того стоит)

3) Каково время работы каждого модуля?
Чтобы не было разнобоя и затянутости - предлагается определиться с примерным временем отображения одного модуля... Нет! Я _не_ предлагаю жестко фиксировать и ограничивать народ, но я думаю будет правильно сказать, что примерно одинаковые "в эстетическо-техническом плане" сцены должны на экране провести примерно одно время (а не 10 секунд и 2 минуты)

Предлагаю ориентировку: 20-30 секунд. Как мне кажется, это такое время, за которое видеоряд хорошо запомнится, но еще не успеет (я надеюсь) надоесть.

4) Звуковое оформление...
И хотя в этом пункте не стоит знака "вопрос", звук в данном творении - это один большой Вопрос!. imho нам нужен доброволец :))) (я сам не очень большой спец в вопросах электронной/трекерной музыки)

5) Каковы ориентировочные требования к компьютеру?
Здесь я ничего не предлагаю, просто хочу услышать оценки тех кто будет участвовать.
Про себя: сижу на P3-1200/GF-2, отсюда и буду плясать... т.е. лично я, похоже, не буду использовать последние достижения "науки и техники", вроде пиксельных шейдеров...

6) Тематика :)))
Будет ли у демки какая либо тематика или "кто в лес, кто по дрова"? :)
Вопрос в основном к Дарзу, как идеологу всего мероприятия

хм-м-м... похоже пока всё :)


 
Zer0 ©   (2005-01-23 14:50) [13]

procedure MainLoop; меняем на function MainLoop:boolean;

в основной либе делаем открытую процедуру которая выдает время с начала работы модуля (MainLoop-а) в самой функции смотрим скока уже работаем, как тока отработали нужное время - закругляемся. (result=false)

а вообще есть идея все свети в одну процедуру:
function module_name_handle( state:integer):boolean;
0 - инициализация
1 - главный цикл
2 - финиш хим.

---
k3wl


 
Zeqfreed ©   (2005-01-23 16:26) [14]

Насчет трекерной музыки - http://biocyborg.narod.ru/rev/delphi_music.htm. Возможно это пригодится ;)

Насчет остального пока воздержусь )


 
MsShtaer ©   (2005-01-23 16:45) [15]

А чё, Дартц звучало бы прикольно


 
wiz ©   (2005-01-24 08:40) [16]

2 Zer0: тогда вообще не нужно state... вызываем функцию, она первой строкой смотрит на некий var mega_puper_flag:boolean=false;

а) if флаг лежит в false, then делаем init и ставим флаг в true;

б) делаем mainloop;

//после которого еще одна проверка:
в) if пришло_время_прощаться, then делаем finish_him, ставим флаг в false, ставим result в false;
else ставим result в true;

г) выход


 
Darth   (2005-01-24 11:24) [17]

//1) полностью ли модуль контролирует вывод openGL? (т.е. установка камеры, движение итп)
Практически. Тоесть общую инициализацию и финализацию + некоторые общие функции берет на себя главный модуль. Остальное - дело каждого модуля.

//2) как осуществляется переход от модуля к модулю?
Как уже было сказано выше - вызывается Init модуля, меинлуп:булеан. Как меинлуп становится "ложь" вызывается финализация модуля и дальше все по новой для след. модуля.

//3) Каково время работы каждого модуля?
Не больше полминуты думаю. Иначе действительно будет затянутость, да и фантазии на 30сек тоже должно хватить, блин :) Хотя если сможете сделать на 3 минуты - флаг в руки. Но чтобы не скучно и не затянуто.

//4) Звуковое оформление...
Над этим будем думать в последнуюю очередь.
Как я говорил выше - суть не в 64К, а суть в написании демосцены руками форумцев. Пусть это будет 512К (и даже пусть из них будет 450Кб музыки, главное факт). Да и потом - все ужмем UPX для красоты :)

//5) Каковы ориентировочные требования к компьютеру?
Что можете выжать - то и выжимайте. Только соответствующие проверки делайте. Ориентирумеся не меньше 1 джифорса. Тоесть все его расширения считать как должные. Все что свыше (шейдеры и иже с ними) уже проверять на наличие. Если шейдеры основная часть сцены и без них никак - сбрасываем и переходим к следующей.

//6) Тематика :)))
Предлагаю внести предложения. Я за красивую абстракцию :)

И еще: Прошу обратить внимание что я в данном вопросе подкован не больше вас всех, так что это такой же здоровый интерес, как и у вас.


 
XProger ©   (2005-01-25 22:46) [18]

Darth  
Может в таком порядке:
- Инициализация всех модулей
- Прокрутка всех сценок
- Высвобождение ресурсов всех модулей
Иначе при переходах между сценами тормоза будут.

1) Создать общий модуль - надстройка над OpenGL (В основном, для проверки расширений, да и прочих часто используемых функций) к примеру GL_Lib;
2) Не использовать class!!!
3) uses Windows, OpenGL, GL_Lib;


 
Darth   (2005-01-26 00:05) [19]

По всем 3 пунктам согласен. Да и в принципе согласен.


 
Nic87 ©   (2005-01-26 00:48) [20]

Интересная идея. Я только учу OpenGL и всегда хотел посмотреть как такие вещи делаются, так что удачи!
p\s Может быть присоединюсь :)


 
wiz ©   (2005-01-26 17:44) [21]

В качестве разминки и подготовке к созданию демки решил почитать про процедурную генерацию текстур. :)

Отчитываюсь о проделанной работе :)))
-------------------------------------
Один из интересных способов (и как я понимаю часто употребительных) - генерация текстуры с помощью некой математической функции color(x,y) с добавлением в её аргументы некоторых "случайных" добавок, которые сами по себе плавно зависят от координат (если что-то непонятно, лучше перечитать эту фразу еще раз).

т.е.

есть color(x,y) - функция которая "выдаёт" геометрически правильную текстуру.
есть xadd(x,y) и yadd(x,y) - какие-то случайные функции, которые относительно плавно меняются.

тогда нашей текстурой будет newcolor(x,y) = color(x+xadd(x,y),y+yadd(x,y))

Осталось только построить эти функции xadd() и yadd(). Один из простых способов - задать xadd и yadd в виде матрицы чисел, которая заполняется "шумом Перлина".
В приведённом примере я строю матрицу по алгоритму шума Перлина размером вдвое (по каждой координате) меньше получаемой текстуры и при построении текстуры "отражаю" матрицу с шумом Перлина относительно середины (по гориз. и вертик.) текстуры. Таким образом добавки на швах текстуры совпадают и получается бесшовная (почти) текстура.

исходники того, как это работает:
http://gnar.fatal.ru/tex_maker_src.zip
(~12kB, delphi5, vcl, все компоненты стандартные)

для тех у кого под рукой нет delphi, но хочется узреть - бинарник:
http://gnar.fatal.ru/tex_maker_bin.zip
(~170kB, размер такой большой, т.к. писалось на vcl. Сам алгоритм - экстра-маленький :))))

На сегодня всё. Жду отзывов и комментариев :)


 
wiz ©   (2005-01-26 17:59) [22]

PS: комментарии внутри сорцов. если что-то непонятно, спрашивайте.
PPS: если кому придёт в голову еще какие-то интересные формулы - очень хотелось бы посмотреть :)

PPPS: (для людей как я - с подвижной психикой) Будьте осторожней со временем общения с этой программой. Лично я пока писал эту прогу заработал немаленькую головную боль - может быть от количества выкуренных сигарет, может быть от изображений :)))


 
NailMan ©   (2005-01-26 18:59) [23]

что-то мне ваша идея, а точнее автора ветки напоминает очень проекты коллективного написания супер-пупер-мега игрушки в стиле РПГ с мегаинтеллектом, которые(проекты) тут появляются с завидной частотой.

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


 
Darth   (2005-01-26 20:46) [24]

В чем-то я с тобой согласен. Но в целом нет. Супер пупер игрушка много чего требует. В том числе и художников\сценаристов и т.д. Тут же речь о написании 20 секундного ролика. Те кто умеют могут это сделать. Первая строчка про 64К тоже сказана постольку поскольку. Если прочитаете дальше, Там и про 128 и 256Кб сказано. Да и я не призываю никого делать. Я только предложил.


 
NailMan ©   (2005-01-26 21:14) [25]

Darth
Поверь мне, что написать 20 сек демо не легче чем игрушку, ибо запихать генераторы текстур, звука, анимацию, параметрические данные моделей и прочие вещи в 64, 128, 256 к очень непросто.

---
P.L.U.R. and WBR, NailMan aka 2:5020/3337.13


 
dredd ©   (2005-01-26 21:43) [26]

Я тоже думаю дело дохлое но Darth ты попробуй напиши кусок выложи хтото допишет и так может пойдеть, а вот на щет 64к это невозможно если хтото скажет что возможно то пример с исходиком пожалуста


 
XProger ©   (2005-01-26 22:30) [27]

dredd, нет ничего невозможного!
NailMan, но эти самые "верхи програмерского геймдева" с чего-то же начинают? ;)

ЗЫ
Нужно больше фантазии...

Darth, давай я основной модуль напишу?


 
Darth   (2005-01-26 22:58) [28]

Я абсолюно не против :) Пиши. А я дополнительный с определением расширений накатаю и прочей лабудой.


 
Darthman ©   (2005-01-27 00:50) [29]

Да, я вот подумал. Инициализация у всех будет в начале. А при старте только если обнуление счетчиков каких.


 
Darthman ©   (2005-01-28 21:22) [30]

Набросали кое-что.
http://code.rpro.ru/MastersDemo.zip - 5Кб


 
MsShtaer ©   (2005-01-28 21:47) [31]

А назвать надо было 64Мб демо, не находишь ли Darth , что было бы более правдоподобно...


 
Darthman ©   (2005-01-29 00:20) [32]

Не нахожу. Ровно как и твои издевки уместными.


 
dredd ©   (2005-01-29 01:20) [33]

MsShtaer:
а ты попробуй накатай на 64 мб 64 это понноценная дема игрухи

а вот чето прикольное на 500~1000кб накатать можно


 
MsShtaer ©   (2005-01-29 10:25) [34]

>dredd [33]
SKY ENGINE начал писать, и дойду и до 64Мб. Дай срок хотябы до конца марта и увидешь результат, если конечко скачаешь.
>Darthman [32]
Я не издеваюсь, я просто подчёркиваю, что демка это верх местерства игродела. Как пример приведу демку NVidia Dawn.
Там и показанно именно мастерство,а не игра. Но весит демка 70,5Мб, а таже Nalu 132М. Так что я не издеваюсь а лишь подчёркиваю.


 
XProger ©   (2005-01-30 00:52) [35]

MsShtaer, представляешь, я видел игру (ты о ней конечно же знаешь) весом 96 кб, которая даст фору тому же третьему думу! Про то что она писалась не на Delphi я тоже знаю. Но такие вещи - это и есть верх мастерства!


 
Asteroid ©   (2005-01-30 01:54) [36]

> XProger ©   (30.01.05 00:52) [35]
Обсирать Дельфи это тоже не повод. Не исключено, что она бы весила не 96 кб, а 112 кб. Такие изменения в размере НЕ принципиальны. Сейчас главное - не размер, а то, что каждый мало-мальски знающий OpenGL может принять участие и накатать собственную демо-сценку.
Кстати, если ты так увелкаешься творчеством farbrausch, посомтри на werkkzeug1. Это - изделие. И никаких гонов за размером.


 
MsShtaer ©   (2005-01-30 10:08) [37]

Представляю, но тогда вопрос демка - верх мастерства,но какого. По качеству сжатия кода, по производительности, по качеству графики, по простоте кода или ещё по чём?


 
Zer0 ©   (2005-02-02 11:50) [38]

2MsShtaer: а ты налей и отойди ;) если нету креатива - займись чем нибуть другим.

ИМХО прикольный эффект на уровне трюка зобацать не так сложно в коде. да, не спорю что высокотехнологичный realtime raytracng (fresnel 2) это круто. но алгоритмы этого изврата давно извесны. генераторы текстур давно написаны, сжатие голоса вокодерами (fr-030 candytron и творения товарища AND) тоже появилось не вчера. вывести вращающуюся вокруг 10 осей мегахрень можно парой команд Опен-гла. замутить какой-нибуть креатив гораздо сложнее. для этого нужна фантазия, гуглом ее не найти :)

как пример - концептуальный трешак excess-shapeshifter [polygons, they are trying to escape!!] или couloir 14 от товарищей x,rr и g, doomsday-legomaina и ты.ды. и тыпы

---
k3wl


 
Sniper17   (2005-02-02 14:06) [39]

Я бы принял участие в части программирования эффектов.
Работал с большим колличеством расширений.


 
MsShtaer ©   (2005-02-02 14:41) [40]

М-да, это прямо слёт креаторов. Но креативом можно считать и прикольное сообщение об ошибке или какую-то хрень ещё.



Страницы: 1 2 вся ветка

Текущий архив: 2005.06.06;
Скачать: CL | DM;

Наверх




Память: 0.59 MB
Время: 0.043 c
14-1116413930
**student**
2005-05-18 14:58
2005.06.06
КНИГИ программиста


1-1116858567
Karlson
2005-05-23 18:29
2005.06.06
Результат NaN


4-1113542877
LineSoft
2005-04-15 09:27
2005.06.06
Управление печатью


11-1098482343
Nix
2004-10-23 01:59
2005.06.06
KOLEcmListEdit


3-1114755842
msdn11
2005-04-29 10:24
2005.06.06
Сервер БД через инет