forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=109)
-   -   framework ? (http://forum.boolean.name/showthread.php?t=6710)

dimanche13 07.10.2008 12:31

Ответ: framework ?
 
так чтоже ты молчишь? выкладывай препроцессор с примерами юзанья ))) Насчет партикл-движков, нашел только два(!) один платный 25 вечно(?)зеленых и один немецкий какой-то недоделанный. Еще есть вроде HGE-шный формат читающий. Какие у вас сведенья?

jimon 07.10.2008 12:38

Ответ: framework ?
 
dimanche13
http://forum.boolean.name/showthread.php?t=4843

dimanche13 07.10.2008 12:47

Ответ: framework ?
 
Спасибо, jimon, проглюкал я :)
вот нашел еще партикл-движок http://www.scottshaver2000.com/forum...2154a4 3e9db0 искать их долго, кидайте сюда ссылки на партикл-движки для БМ, можно и свои выкладывать ;)

ICoder 07.10.2008 19:19

Ответ: framework ?
 
Я Вас, "народ", не понял... :mda: Что за Framework, что он делает то??? :wallbash: Как я знаю :crazy: , Фреймворк выполняет определенные(конкретные :drag: ) цели. А в вашем случае??? :SOS:

Черный крыс 08.10.2008 07:55

Ответ: framework ?
 
Так как насчет партиклов?
Зато у нашего сообщества будет хорошая тузла...

Наработки в этом направлении уже есть (причем очень хорошие) - спасибо oxid' у ! + Я сейчас подгоняю эти наработки под свой проект. - поэтому тама я делаю ставку на специфику своего проекта. А занятся полноценным парт-движком нет времени...но если кто захочет за это взятся то я найду время и напишу хороший редактор.

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

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

на данный момент работаю над 1-ым пунктом. 4-й пункт как я сказал - беру на себя.
Если это все сделать то будет очень клевая тузла партиклов.

Также есть мысль внедрить в партиклы - траектории движения. Можно будет двигать емиттер\группу\партикл и задавать им индивидуальные траектории. Естественно с возможностью эти траектории интерполировать\менять\удлиннять\укорачивать\двига ть отдельные точки\двигать всю траекторию в режиме реального времени.

ЗЫ Тот что за 25 баксоф толкают, - я его и за 3 рубля не куплю. Тама ничего нету. Насчет немецкой разработки - эти партиклы довольно неплохие, но опять таки - они не юзабельнеые. Все остальные же партиклы под БМакс - очень скромные по своим возможностям (даже групп и эмиттеров нету).

dimanche13 08.10.2008 10:10

Ответ: framework ?
 
Отлично, что уже есть наработки. Я знаю, что oxid ответственно подходит к любой задаче. Показывай что у вас получилось, ща в аську постучусь.

dimanche13 08.10.2008 20:37

Ответ: framework ?
 
Хмм, пока изучал код партикл-движка oxid-а появилась мысль создать нечто такое же. Суть такая, что есть некая система модификаторов, которые воздействуют на частицы, можно применять сразу несколько, а можно ни одного не применять. Покажу в коде:
Код:

for local modificator:TModificator = eachin my_modificatorsList
  for local particle:TPartcle = eachin my_particlesList
        modificator.apply( particle )
  next
next

сам же TModificator абстрактен и от него наследуются все модификаторы с методом apply(part:TParticle) , которые воздействуют на частицу в зависимости от необходимого эффекта, например чтоб действовал ветер пишем
Код:

type TWind extends TModificator
  field force:float
  field direction:int

 method apply( particle:TParticle )
  particle.x :+ (force * direction)
 end method

end type

типа такого, вот думаю будет ли тормозить....

Черный крыс 09.10.2008 17:10

Ответ: framework ?
 
оставить 3 основных класса - эмитер\партикл\групп со своими полями.
И просто тупо пробегаться и обновлять эти поля.

скажем так
Обновление Эмиттера
\\Обновление позиции\ратации и.т.д....
Эмиттер имеет поле указывыающее на группу.
--> подуровень группа
\\Обновление позиции\ротации группы и т.д....
Группа имеет поле указывающее на партикл.
\\Обновление партикла - обновление трансформации партикла + транформация группы + трансформация Эмиттера. = финальная трансформация партикла.
\\Другие обновления партикла (альфа,след,жизнь и т.д....)

Эмиттер может содержать любое кол-во групп, так же как и группа может содержать любое кол-во партиклов.

Думается мне так....надо еще у Тормоза спросить как он устроил свои партиклы.

dimanche13 09.10.2008 19:16

Ответ: framework ?
 
Да, спроси у Тормоза, пусть сюда отпишется. А еще лучше выложет ехе-шник, просто я не видел его партиклов.

Taugeshtu 10.10.2008 00:27

Ответ: framework ?
 
Пожелание от меня (думаю, есть люди, которые с ним согласятся):
Чтобы во фреймворк "вставлялся" модуль xord3d, желательно - "легко и безболезненно"...
Ну и в общих чертах:
-Партиклы
-GUI - желательно чтобы с набором стандартных менюшек типа "игра/сетевая/настройки/авторы/выйти", а еще лучше с визуальным редактором
-звуковой движок
-сеть
-input (если можно, выкинуть в отдельный поток, чтобы не "пропадали" нажатия клавы и движения мышки)
-менеджер ресурсов(+объектов игрового мира? они вроде в любой игре есть...)

О, точно... Не знаю, как назвать... Опишу... Очень хотелось бы видеть команды, позволяющие выполнить скажем одну функцию в одном потоке, а вторую - в другом (согласен на "виртуальные" потоки, распределяемые ОС. Ногами за ламерство не бить)... Или же тогда класс потоков, чтобы можно было создать поток, а затем получить что-нибудь вроде:
stream_1.Start
...
stream_1.End
(т.е. что-то вроде For Local c=1 to 1 ... Next)
Извините за излишне абстрактное выражение мыслей...

SBJoker 10.10.2008 08:26

Ответ: framework ?
 
Мультипоточность уже есть в последней версии БМакса.

jimon 10.10.2008 10:35

Ответ: framework ?
 
С input'ом в другом потоке есть особеность, прийдется не использовать keyhit\mousehit, а использовать callback функцию которая вызывается когда что-то нажали или передвинули, сходу понять как организовать её взаимодействие с игрой иногда достаточно трудно и прийдется еще хорошо думать о блокировках в некоторых местах игрового двига. Конечно если построить внутрений двиг игры на пуле евентов то ничего кроме етого пула блокировать не надо будет, но пул евентов для игрового двига не все делают

dimanche13 10.10.2008 11:16

Ответ: framework ?
 
-Партиклы
сейчас вроде над ним и трудиться начинаю
-звуковой движок
-сеть
это же есть, и в нескольких вариантах кстати, насчет мультипоточности слышал есть, да попробовать не могу, у кого-нить есть ? Там по-мойму через свн надо обновляться и перекомпиливать с ключом -h все модули.
-input (если можно, выкинуть в отдельный поток, чтобы не "пропадали" нажатия клавы и движения мышки) а куда они пропадают??? у меня вроде не пропадает.
-менеджер ресурсов(+объектов игрового мира? они вроде в любой игре есть...) это будет, но в меру моих представлений об его абстрактности

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

oxid 10.10.2008 16:24

Re: framework ?
 
Насчет пула - ничего сложного там нет, просто правильно организовать архитектуру.
В БМ и так уже есть пул для событий ввода - я столкнулся наоборот с необходимостью его отключать и просто обрабатывать клавиатуру в цикле, считавая текущие коды клавиш.

dimanche13 12.10.2008 15:12

Ответ: framework ?
 
хорошая новость для тех, кто жаждал GUI, помимо тех, что уже есть(откровенно сыроватых) wolfhound512 с blitz.pp обещал к следуещей версии GUIw512 сделать поддержку БМакса.
Так теперь об участниках... эээ я так понял никто участвовать не намерен?


Часовой пояс GMT +4, время: 18:17.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot