Форум: "Игры";
Текущий архив: 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