Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2014, 04:13   #31
SaiLight
Форумчанин
 
Аватар для SaiLight
 
Регистрация: 10.01.2009
Сообщений: 132
Лампочка Техническая информация

Также, в программу было внесено множество изменений и улучшений, сделавших работу в ней более удобной и приятной. Одним из таких улучшений было резервное копирование файлов в случае возникновения непредвиденной ошибки. Программа создает в своей папке вложенную папку 'Backup', куда заносит сохраненную копию создаваемого эффекта. Таким образом, даже в случае возникновения непредвиденной ошибки, работа потеряна не будет.

Были введены горячие клавиши для быстрого сохранения программы, а также, переключения по вкладкам настроек. Впоследствии планируется добавление горячих клавиш ко всем наиболее часто использующимся и труднодоступным элементам управления программы.

Для упрощения процесса разработки новых эффектов был создан Менеджер импорта, позволяющий импортировать любые Эмиттеры из уже сохраненных эффектов в свой новый проект. Таким образом, похожие Эмиттеры можно копировать между различными эффектами, значительно сокращая время их разработки.

Кроме всего вышеперечисленного, в программу была добавлена возможность запуска с параметром, путем перетаскивания на нее файлов с эффектами и, как следствие этого, установка в систему ассоциаций для файлов с эффектами, что позволяет запускать программу двойным нажатием на любой эффект. Программа перенаправляет подобный запрос о запуске своей уже открытой копии, если таковая существует, чтобы избежать повторного открытия новой копии программы при попытке запуска эффекта двойным щелчком по нему.

Не обошлось и без серьезных изменений самой структуры файла с эффектом. В процессе осмысления основных проблем работы с INI-файлами в Perfect Particle 2, мне пришлось создать свой собственный формат хранения данных. Скажу только, что новый формат отвечает всем установленным мною требованиям, давая необходимые мне возможности по исправлению множества нежелательных ошибок. Так, например, в начало файла записывается заголовок, который дает возможность еще на самом раннем этапе загрузки эффекта проверить, является ли вообще запрашиваемый файл эффектом Perfect Particle 2 или нет.

Также, информация, хранящаяся в файле, позволяет получить версию программы, в которой был создан эффект. Если данный эффект был создан в более новой версии программы, то при открытии пользователь увидит сообщение, предупреждающее о возможной потере данных (версии в Perfect Particle 2 добавляются только с появлением новых свойств). Структура файла позволяет проверять данные в файле при помощи контрольной суммы всех данных, записанных внутри него, таким образом, всякое изменение файла эффекта за пределами Редактора приведет к повреждению эффекта и появлению соответствующего сообщения при попытке его открытия. Но, что самое главное, - подобная структура позволяет беспрепятственно расширять программу - новые свойства будут автоматически записаны и считаны, и эффекты всех версий можно будет беспрепятственно открыть в любой из версий программы.

Отдельную благодарность хотелось бы принести другу (SpectreZ) за тестирование программы, нахождение в ней ошибок, создание эффектов, а также за предоставленный мне модуль 'Всплывающая подсказка' из недр своей собственной дипломной работы, благодаря которому появилась возможность писать текстовые подсказки прямо в окне вывода графики. Также, его личные изобретения, - метод получения шрифта любого имени и любого размера для OpenGL, функции загрузки png-изображений и некоторые другие бонусы - все оказалось доступным мне в моей работе.

Отдельную (среди отдельных) благодарность хотелось бы выразить любимому человеку (SaiDark) за огромную поддержку, без которой я не завершил бы и половины из того, что уже есть, а также, за разработку эффектов и помощь в нахождении и исправлении ошибок.

В данный момент программа находится на завершающей стадии тестирования и исправления оставшихся незначительных ошибок (разумеется, среди тех, что мы могли заметить).

Напоследок, хотелось бы выложить здесь скриншот и ссылку на видео самого красивого из всех имеющихся на данный момент эффектов, созданного довольно давно, когда еще приходилось прерывать процесс разработки эффекта на исправление множества возникающих ошибок, и перенесенного заботливым Конвертером на нынешнюю версию (с поддержкой новой структуры файла).


Ссылка на видео. Лучше смотреть в полноэкранном режиме.

Последний раз редактировалось SaiLight; 07.05.2014 в 04:32.
SaiLight вне форума Ответить с цитированием
Старый 03.06.2014, 00:33   #32
SaiLight
Форумчанин
 
Аватар для SaiLight
 
Регистрация: 10.01.2009
Сообщений: 132
Лампочка Завершение работы


Не знаю, стоит ли об этом писать в данной теме, но некоторое время назад я успешно сдал государственный экзамен и прошел предварительную защиту своей дипломной работы. В общем, программа, в том виде, в котором я хотел бы показать ее комиссии, уже завершена, осталось лишь по мелочам доделать все остальные детали своей работы. В основном это касается ее текста, но есть и недоработанные детали в самой программе. Например, еще совершенно не было уделено внимания тексту для подсказок по компонентам, не был доработан стартовый эффект программы, по интерфейсу и свойствам Системы, также, есть несколько замечаний. Лично моих, потому что, как руководителя, так и комиссию все в моей работе устраивает.

Но пару дней назад я решил взяться за существенное (и, в то же время, последнее) расширение функционала Системы. Это касается стартовых позиций Частиц - при выборе произвольной формы Эмиттера 'Траектория' теперь есть возможность создавать анимированную форму Эмиттера, плавно меняющуюся с течением времени. Таким образом, некоторая часть Системы была серьезно переработана, а также, был написан компонент 'Редактор анимации', позволяющий создавать и настраивать ключи анимации на форме с Редактором траекторий.

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

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

На данный момент имеется вполне серьезный проект, трудоемкость работы над которым можно выразить в числовом виде: 13 000 строк - столько их было написано, не считая огромного количества удаленных и переработанных модулей. Также, не считая многократной переработки интерфейса и такой же серьезной работы над графической составляющей программы. Презентация для показа дипломной работы создавалась в течение недели и имеет 11, полностью нарисованных в Photoshop'е, слайдов. Хотелось бы напомнить, что работа над Системой велась 3 года, и Perfect Particle 2 является третьей по счету программой, реализующей данную идею и разработанной мною в составе команды Perfect Light.

Перейдя по данной ссылке, можно увидеть тестовое видео, демонстрирующее возможность динамического изменения формы Эмиттера.
SaiLight вне форума Ответить с цитированием
Старый 10.06.2014, 14:00   #33
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,876
По умолчанию

Давно хочу написать. Но всё как-то времени не нахожу.

Сказать, конечно, могу мало. Большая работа, достойная уважения, проделана, результаты налицо и они выше всяких похвал.
Всё выглядит цельно,продумано и проработано, и дизайн и функциональность и пиар (в каком-то смысле пиар - ролики и посты).

О каких-то минусах даже думать не приходится, чтобы их наблюдать, наверное надо очень долго всё обследовать, т.к., думаю, тестированию у Вас подвергалось всё что можно.

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


Ну и стандартный наверное уже мой вопрос. Когда можно будет применить в каком-либо виде Вашу работу, хотя бы через редактор сформировать видео/картинку чтобы потом использовать где-то в виде спрайтов/ эффектов, в какой-то программе или наложенных на видеоряд.
phomm вне форума Ответить с цитированием
Старый 11.06.2014, 03:06   #34
SaiLight
Форумчанин
 
Аватар для SaiLight
 
Регистрация: 10.01.2009
Сообщений: 132
Хорошо

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

Программа развивается огромными скачками. Уже сейчас, не дожидаясь своего выпуска в свет, она выросла до 3 версии, что говорит о многочисленных изменениях, внесенных в нее за последний месяц. Одним из таких изменений была добавленная недавно возможность создания динамически изменяемых форм Эмиттеров, о чем я писал чуть выше.

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

Прежде всего, хотелось бы сказать, что Perfect Particle 2 (на первых порах - точно) не позиционируется мною как 'убийца Magic Particles' или других продвинутых Систем частиц, хотя в данный момент и производится тестировании Системы на возможность создания эффектов, повторяющих эффекты некоторых известных Систем (что, кстати, проходит более чем успешно). Сама библиотека рассчитана, прежде всего, на использование в 2D и, возможно, простых 3D-играх и, скорее всего (если я не перестану верить в правильность такого решения), впоследствии будет распространяться в виде DLL-библиотеки для использования в сторонних проектах других программистов.

Что до возможностей использования Редактора - думаю, они откроются пользователям намного раньше, так как, повторюсь, в скором времени планируется свободное распространение программы в интернете. В данный момент Редактор можно использовать для сторонних целей только посредством сохранения скриншотов или записи видео-роликов при помощи Fraps, но, в дальнейшем, думаю, Редактор будет расширен в данном направлении. Прежде всего, будет реализована возможность сохранения скриншотов системы в различных известных форматах (в том числе, и с поддержкой альфа-канала) для последующего использования в графических редакторах. Затем будем смотреть в сторону добавления возможности сохранения набора спрайтов для использования их в сторонних проектах. Для данной цели, кстати, будут созданы наборы наиболее часто используемых эффектов, которые всегда будет возможность скачать и использовать, внося в них лишь небольшие изменения.

Реализация возможности записи видео-роликов пока не планируется (пока только через Fraps).

В данный момент планируется масштабное тестирование Системы в дальнейшем игровом (или игровых ) проекте нашей команды. В связи с катастрофическим отсутствием свободного времени планируется переход на один из графических движков (пока выбирается), что позволит сэкономить много времени на изучении графических библиотек. Благодаря работе SpectreZ'а, наша команда на данный момент имеет не только универсальную и реалистичную Систему частиц, но и набор графических, гибко настраиваемых, компонентов, имеющих возможность как векторного вывода (посредством графических примитивов), так и растрового, масштабируемого до любого размера без потери качества (по специально разработанному алгоритму).

Что касается дальнейшего игрового проекта Perfect Light (хоть это и является отдельной темы, выходящей за рамки данного обсуждения), в настоящий момент мы имеем:
  • Систему частиц
  • Набор графических компонентов
  • Некоторые графические наработки
  • Некоторые программные наработки:
    • Архиватор
    • Модули для работы со звуком
    • Другие модули, ускоряющие процесс разработки
  • Знания и опыт в области программирования ()
  • Знания и опыт в области 3D-моделирования
  • Знания и опыт в области обработки графики

В данный момент подготавливается реализация игрового движка для следующего проекта (планируемого нами уже в течение четырех лет).

Последний раз редактировалось SaiLight; 11.06.2014 в 03:16.
SaiLight вне форума Ответить с цитированием
Старый 19.06.2014, 13:33   #35
SaiLight
Форумчанин
 
Аватар для SaiLight
 
Регистрация: 10.01.2009
Сообщений: 132
По умолчанию

В понедельник удачно сдал дипломную работу, и можно считать, что свое обучение, наконец, завершил. В данный момент проект находится на стадии доработки и подготовки к первому выпуску в свет. Точной даты назвать пока не могу. Программу выложу в данной теме для ознакомления и тестирования всеми желающими.
SaiLight вне форума Ответить с цитированием
Старый 19.06.2014, 20:29   #36
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,876
По умолчанию

Поздравляю !
Достойный подход к учебному процессу, всем в пример.
Будем ждать чтобы попробовать.
phomm вне форума Ответить с цитированием
Старый 10.09.2014, 01:23   #37
SaiLight
Форумчанин
 
Аватар для SaiLight
 
Регистрация: 10.01.2009
Сообщений: 132
Восклицание Возобновление работ

Здравствуйте! Хотелось бы принести извинения всем, кто ждал выхода Системы частиц в свет и пока не дождался (искренне надеюсь, что таковые имеются). Я позволил себе отдохнуть этим летом от программирования, и в итоге вплотную занялся веб-разработкой, дизайном, 3D-моделированием и... разумеется, программированием (результаты чего будут описаны в соседней теме). Но это небольшое отступление от темы.

А если вновь перейти к теме, то спешу сообщить, что работы над Perfect Particle 2 вскоре будут возобновлены - прошу с пониманием отнестись к нашей загруженности, программа теперь будет дорабатываться только в свободное от остальной работы (а остальной работы довольно много) время. Но, думаю, в скором времени смогу собрать достойную вашего внимания версию.

Кстати, отныне доступен форум нашей команды (Perfect Light), на котором, в специальной теме, будут освещаться все изменения, вносимые в Perfect Particle 2.
SaiLight вне форума Ответить с цитированием
Старый 11.09.2014, 23:53   #38
SaiLight
Форумчанин
 
Аватар для SaiLight
 
Регистрация: 10.01.2009
Сообщений: 132
Восклицание Главное нововведение


Сегодня у меня выдалось немного свободного времени, и я решил не тратить его впустую. Как это иногда бывает, когда долго не программировал - начал, и остановиться уже не можешь. В такие моменты главное - успеть сделать что-то полезное, пока вновь не загрузился остальными делами. И сегодня я это сделал - как и обещал, взялся за одно из наиболее сложных усовершенствований в Системе - полностью отвязал ее от используемого графического движка. А, вместе с тем, и существенно расширил область ее применения, попутно доказав небесполезность нашего движка Perfect Canvas, ведь именно с его помощью я решил показать новые возможности Системы. Впрочем, думаю, это уже видно из скриншотов в начале сообщения - простая программа, в которую всего несколькими строками подключены Perfect Particle и Perfect Canvas, переназначена всего одна функция Системы - и вот, что мы можем видеть: все многообразие эффектов, созданных нами ранее в редакторе Perfect Particle 2, доступно на всеми любимом, старом и простом в использовании Canvas'е!

Как же это было реализовано? Все довольно просто: есть всего несколько функций, необходимых Системе частиц для вывода на экран, и эти функции были вынесены в модуль Системы в виде глобальных переменных, которым при инициализации присвоены пустые значения:
Код:
initialization
  SysLoadTextureProc := fEmptyLoadTextureProc;
  SysDeleteTextureProc := pEmptyDeleteTextureProc;
  SysDrawTextureProc := pEmptyDrawTextureProc;
  SysDrawLineProc := pEmptyDrawLineProc;
В дальнейшем эти функции должны быть переназначены программистом по правилам, предусмотренным Системой - скорее всего, для них будут написаны промежуточные функции, соединяющие их с графическим движком, как это было сделано для Perfect Canvas:
Код:
Procedure pDrawTextureProc(vTexture: Cardinal; vWidth, vHeight: Integer; vPosX, vPosY,
  vRotate: Real; vColor: Integer; vAlpha: Real; vOverlay: Byte);
begin
  vEngine.pDrawPolygon(Round(vPosX), Round(vPosY), vWidth div 2, vAngles, plFromRadians(vRotate), vColor);
end;
Параметры, передаваемые в эти 4 функции, являются фиксированными, но программист сам решает, как и где их использовать для вывода. В данном случае, как уже было упомянуто выше, использовался движок Perfect Canvas, не поддерживающий некоторые из функций, доступных Системе:
  • Альфа-канал (загрузка .tga и .png-изображений)
  • Плавный переход в прозрачность
  • Поворот изображения
  • Режимы наложения
Последний параметр (Overlay) вообще был опущен, а остальными я распорядился так, как позволял мне используемый графический движок. То есть, в подобном случае, если мы имеем текстовый движок, умеющий выводить на экран символы в консоли, мы уже можем использовать для него Систему частиц.))) Пока не знаю, как подобный переход скажется на производительности Perfect Particle, но область применения Системы, явно, будет расширена.

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

ВНИМАНИЕ! На данном форуме выкладываю несколько урезанную версию программы - всего 6 доступных эффектов. Для скачивания полной версии (25 красивых эффектов) необходимо зайти на наш форум по этой ссылке.



Последний раз редактировалось SaiLight; 11.09.2014 в 23:58.
SaiLight вне форума Ответить с цитированием
Старый 12.09.2014, 19:55   #39
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,876
По умолчанию

Поглядел.
Годно всё
Собственно, как я и говорил, перфектканвас исправно служит рендерером, я про это и говорил, что в том своём полудвижке тоже хотел вынести рендерер отдельно, как здесь в тестовой программе сделано. И, конечно же, я не говорил о бесполезности, а говорил только про узкую роль рендера, т.к. "движок" это всё же крупнее проект и решающий довольно много задач.

По самим частицам только похвалы Будем ждать редактор, как подключить - уже понятно, разве что неясно, будет ли в итоге в коде подключаться система частиц или через DLL
phomm вне форума Ответить с цитированием
Старый 12.09.2014, 20:36   #40
SaiLight
Форумчанин
 
Аватар для SaiLight
 
Регистрация: 10.01.2009
Сообщений: 132
Сообщение

Цитата:
И, конечно же, я не говорил о бесполезности
Пытаюсь доказать пользу Perfect Canvas'а самому себе.) Хотя, конечно, в дальнейшем этот вопрос будет решаться только его будущими пользователями, для меня же тех возможностей, которые там уже имеются, пока вполне хватает (чего не скажешь о количестве свободного времени). С тех пор, как Система получила возможность вывода графики при помощи любого движка, для меня вновь открылись двери в прекрасный мир Canvas'а (говорящее название получилось), ведь единственное, что ограничивало меня раньше, - отсутствие возможности использовать здесь свою Систему частиц, которую в будущих проектах я намерен тестировать. Если она может работать применительно к Canvas'у, то мало что ограждает меня от разработки пары простых игр с использованием данного механизма. К тому же, это еще один способ немного улучшить стиль своего кода.)

Цитата:
разве что неясно, будет ли в итоге в коде подключаться система частиц или через DLL
Я планировал реализовать Систему частиц в виде DLL-библиотеки, а что из этого выйдет - увидим далее. Думаю в ближайшее время приступить к выполнению этой задачи.
SaiLight вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Perfect World сервер Aleksey1408D Свободное общение 1 21.01.2011 14:18
Clock by Perfect Light SaiLight Софт 2 28.07.2010 10:16