Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2005.06.06;
Скачать: [xml.tar.bz2];

Вниз

Предлагаю всем форумом (всем желающим) сделать 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.57 MB
Время: 0.016 c
14-1116490997
GrayFace
2005-05-19 12:23
2005.06.06
Протестируйте программу на Win9x и WinMe.


14-1116441712
AlterEgo of WondeRu
2005-05-18 22:41
2005.06.06
Есть ли прибамбас - ТуллбарКнопка для IE


6-1111443454
Villi.GPInet
2005-03-22 01:17
2005.06.06
Команда LIST протокола FTP


14-1116495358
ДимаСпб
2005-05-19 13:35
2005.06.06
Скорость


4-1113726261
star.ru
2005-04-17 12:24
2005.06.06
Nero CD-DVD Speed





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский