forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   C++ (http://forum.boolean.name/forumdisplay.php?f=22)
-   -   Melissa Project (http://forum.boolean.name/showthread.php?t=19483)

pozitiffcat 24.10.2014 14:39

Melissa Project
 
Вложений: 1
Всем привет! Готовлюсь к релизу беты библиотечки (движка), для создания игр под Android.
Кратко опишу, что на данный момент есть:
  • Билд система. Это приложение, которое собирает проект в двух режимах, это релиз - на устройство, и симулятор, для просмотра на компе. Билд система на фход принимает билд-файл, простой xml с заполнеными полями (планируется гуй). Пока, что полноценно работает под Linux (я виндой уже 5 лет не пользуюсь), на винде, только симулятор.
  • Движок состоит только из файлов подключений и динамических библиотек. Из этого следует, что вам не нужно мучится со сборкой проекта и скачивать зависимости, все уже готово.
  • Для сборки вам достаточно накодить все в main.cpp и выполнить сборщик.
  • Свой формат сцены, в котором объекты находятся как отдельные Entity. Это значит, что вы можете в движке их использовать, например для установки физики по префиксу имени.
  • Экспортер сцены для Blender.
  • Скелетная анимация.
  • Текстуры Png, Jpeg.
  • Light Mapping
  • Normal Mapping
  • Попиксельное освещение
  • Тени от направленного источника
  • Физика Bullet, встроеная в движок
  • 2Д рисуемое на трехмерную плоскость и экран
  • Пост обработка (композитинг)
  • Система частиц

Это, то, что я пока помню.
Для работы на винде, нужен будет компилятор MinGW (TDM).
На линуксе и так все понятно, gcc установленный в системе.

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

Чем это лучше Ogre3D. Огр крутой, мощный движок, но вы пробовали его собрать?
Чем это лучше Unity, ничем, легковесней.

Вобщем цель движка, писать простенькие игры легко и быстро, без хорошего знания c++, систем сборки и
платформы Android. Это почти так же легко как писать скрипт!

Для релиза пока мешает отсутствие на винде сборки под андроид,
обработка нормалей при направленном освещении, спекуляры,
немного оптимизации и регресс тестирование.

Пример тестового приложения:
Код:

#include "m3iRoot.h"
#include "m3iLight.h"
#include "m3iScene.h"
#include "m3iCamera.h"
#include "m3iRootApplication.h"

class Test : public m3iRootApplication
{
public:
    void initialize(m3iSystem *system, m3iRoot *root)
    {
        m3iLight *getRoot()->getScene() = s->createLight();
        l->setPosition(glm::vec3(0, 5, 0));
        l->setDiffuseColor(glm::vec4(0.4, 0.5, 0.6, 1.0));

        getRoot()->getScene()->getCamera()->setPosition(glm::vec3(-3, 7, -3));
        getRoot()->getScene()->getCamera()->setEuler(glm::vec3(50, 40, 0));

        getRoot()->getScene()->loadModelSets("lm.m3json");
    }

    std::string loadingScreenFilename() const { return "loading.png"; }
    void render(double dt) { }
};

m3iRootApplication *createRootApplication() { return new Test; }

Как видите, тут нем void main(), вместо этого реализуется класс с интерфейсом m3iRootApplication, и метод createRootApplication, который вызовет движок при создании.

Ставьте "Спасибо" если вам интересен данный проект.

З.Ы. на этом движке была сделана игра https://play.google.com/store/apps/d...alcdevelop.las

Igor 24.10.2014 16:07

Ответ: Melissa Project
 
Жду исходников) Если честно, для меня они интереснее самого движка. В частности, реализация теней от тел, как на картинке, и постобработка. И ещё - насколько сильно проседает производительность при попиксельном освещении вместо повершинного?
При повершинном мой телефон вполне адекватно рисовал порядка 2-10к полигонов.

pozitiffcat 24.10.2014 16:14

Ответ: Melissa Project
 
Вложений: 1
На картинке лайтмапа. Сорцы прикрепил, если интересно. Самое интересное место "Render/m3cRender.cpp"
PS. там медия не актуальная если, что. Сорцы последние.

Samodelkin 24.10.2014 16:18

Ответ: Melissa Project
 
Цитата:

Сообщение от pozitiffcat (Сообщение 288476)
Как видите, тут нем void main(), вместо этого реализуется класс с интерфейсом m3iRootApplication, и метод createRootApplication, который вызовет движок при создании.

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

Если я правильно понимаю initialize и render это переопределённые методы базового класса, просто не видно из контекста, я бы использовал слово override -- оно предотвратит ошибку неправильного переопределения и просто более читабельно выглядит, не нужно подглядывать в базовый класс чтобы смотреть что у него виртуальное.

Ещё вот я делаю так:
Код:

int main( int, const char*[] ) {
    engine eng;
    application app;
    eng.launch( app );
    return 0;
}

То есть созданием/удалением и движка и приложения занимается сама среда, а не кто-то из этих двух объектов.
А также не требуется использовать указатели -- ссылки более безопасный вариант.
К тому же можно сделать вот так и не беспокоиться об утечке памяти, в случае непредвиденных выбросов.
Код:

int main( int, const char*[] ) try {
    engine eng;
    application app;
    eng.launch( app );
    return 0;
} catch ( const myExcept& ex ) {
    // Обрабатывает myExcept.
} catch ( ... ) {
    // Обрабатываем любое другое исключение.
}


pozitiffcat 24.10.2014 16:22

Ответ: Melissa Project
 
Цитата:

Сообщение от Samodelkin (Сообщение 288483)
Если я правильно понимаю initialize и render это переопределённые методы базового класса

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

Samodelkin 24.10.2014 16:29

Ответ: Melissa Project
 
Цитата:

Сообщение от pozitiffcat (Сообщение 288484)
Нет базового класса, есть интерфейс, который используется системой.

Раз наследуешь значит есть базовый класс, в С++ нет интерфейсов.
Переопределение pure virtual тоже переопределение, и тоже можно применять ключевое слово override.
Ну в общем ок понятно.
Посмотрю исходники, может без main и лучше.

pozitiffcat 24.10.2014 16:42

Ответ: Melissa Project
 
Цитата:

Сообщение от Samodelkin (Сообщение 288485)
Раз наследуешь значит есть базовый класс, в С++ нет интерфейсов.
Переопределение pure virtual тоже переопределение, и тоже можно применять ключевое слово override.
Ну в общем ок понятно.
Посмотрю исходники, может без main и лучше.

Я работаю в терминологии ООП, а не С++ конкретно =), m3c это класс, m3s структура, m3i интерфейс

pozitiffcat 11.11.2014 19:06

Ответ: Melissa Project
 
Наконец-то дошли руки собрать движок под виндой.
Я выкладываю ссылку на сборку и на видео.
Позже я сделаю сайт, куда буду постить уроки, статьи. Там же
будет форум и багтрекер.
Билд
Часть 1 видео
Часть 2 видео

Жека 13.11.2014 08:07

Ответ: Melissa Project
 
pozitiffcat, ты говоришь, что при компиляции каталог с билдом чистится, и потом создаётся под андроид или винду. может лучше сделать разделение на каталоги-таргеты, отдельные папки win, android и т.п., чтобы единожды сделанная версия лежала спокойно там, не затиралась.
и также библиотечки, которые нужно копировать в папку с виндовым проектом, можно копировать туда автоматически, ну или добавить галочку в гуи_билдер "включить исполняемые библиотеки" (или как-то так).

pozitiffcat 13.11.2014 14:12

Ответ: Melissa Project
 
Цитата:

Сообщение от Жека (Сообщение 289252)
pozitiffcat, ты говоришь, что при компиляции каталог с билдом чистится, и потом создаётся под андроид или винду. может лучше сделать разделение на каталоги-таргеты, отдельные папки win, android и т.п., чтобы единожды сделанная версия лежала спокойно там, не затиралась.
и также библиотечки, которые нужно копировать в папку с виндовым проектом, можно копировать туда автоматически, ну или добавить галочку в гуи_билдер "включить исполняемые библиотеки" (или как-то так).

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

pozitiffcat 13.11.2014 21:11

Ответ: Melissa Project
 
Зафункционировал сайт, пока без баг трекера и форума.
Там будут появляться статьи.
http://melissa-project.org

Arton 13.11.2014 22:21

Ответ: Melissa Project
 
Цитата:

Сообщение от pozitiffcat (Сообщение 289275)
Зафункционировал сайт, пока без баг трекера и форума.
Там будут появляться статьи.
http://melissa-project.org

Э-э, судя по полному адресу ты купил хост? Тогда почему всплывающие окна, реклама, попытка перебросить на другой сайт?
У этого хостингера всё так плохо?

pozitiffcat 13.11.2014 22:53

Ответ: Melissa Project
 
Цитата:

Сообщение от Arton (Сообщение 289279)

Э-э, судя по полному адресу ты купил хост? Тогда почему всплывающие окна, реклама, попытка перебросить на другой сайт?
У этого хостингера всё так плохо?


Я купил домен. Хост бесплатный. У меня рекламу только 1 раз показал и все.

KCEPOKC 16.11.2014 19:44

Ответ: Melissa Project
 
Круто! ябпокодил
А движок позиционирует себя как абсолютно некоммерческий? Или я что-то недопрочел?

pozitiffcat 16.11.2014 19:46

Ответ: Melissa Project
 
Цитата:

Сообщение от KCEPOKC (Сообщение 289373)
Круто! А движок позиционирует себя как абсолютно некоммерческий? Или я что-то недопрочел?

Никак не позиционирует, используйте как хотите. ;)

DStalk 17.11.2014 14:11

Ответ: Melissa Project
 
Цитата:

Сообщение от pozitiffcat (Сообщение 289280)

Я купил домен. Хост бесплатный. У меня рекламу только 1 раз показал и все.

А что за хост если не секрет? Смотрю они тебе IP выделили и даже PTR-запись прописали. Не слыхал чтобы такое на халяву делали.:)

upd: infobox.ru? там же 15 дней тока бесплатно...:Р

pozitiffcat 17.11.2014 17:29

Ответ: Melissa Project
 
Цитата:

Сообщение от DStalk (Сообщение 289415)
А что за хост если не секрет? Смотрю они тебе IP выделили и даже PTR-запись прописали. Не слыхал чтобы такое на халяву делали.:)

upd: infobox.ru? там же 15 дней тока бесплатно...:Р


Да я уже VPS приобрел =)

pozitiffcat 27.11.2014 10:47

Ответ: Melissa Project
 
Вложений: 1
Поздравьте меня ребят, я осилил тени от точечного источника освещения.

pozitiffcat 27.11.2014 22:06

Ответ: Melissa Project
 
Вложений: 2
После долгих мучений, реализовал какое-то подобие SSAO
Прикрепил скрины без, и с эффектом

pozitiffcat 28.11.2014 12:21

Ответ: Melissa Project
 
На сайте теперь можно сорцы смотреть:
http://melissa-project.org/index.php...c&mpath=source
cron настроил на серваке они там всегда актуальные из default ветки будут.
Если, кто-то пилит свой двиг, может воспользоваться.

pozitiffcat 28.11.2014 15:48

Ответ: Melissa Project
 
Наткнулся тут на пост Кнайта, http://forum.boolean.name/showpost.p...4&postcount=17, чето стремно стало )))

KCEPOKC 28.11.2014 21:47

Ответ: Melissa Project
 
Цитата:

Сообщение от pozitiffcat (Сообщение 289835)
Наткнулся тут на пост Кнайта, http://forum.boolean.name/showpost.p...4&postcount=17, чето стремно стало )))

Сударь'c, вы же не замену хорса печёте, а двиг на ведро. Это разные вещи, я гарантирую это!

Вообще, лично мне затея уже нравится. Удачи и гладкого кода!:ok:

Жека 29.11.2014 12:46

Ответ: Melissa Project
 
Не нужно делать поспешных выводов и хоронить проект. Пока тебе нравится писать движок - пиши! :)

Knightmare 29.11.2014 22:04

Ответ: Melissa Project
 
Цитата:

Сообщение от pozitiffcat (Сообщение 289835)
Наткнулся тут на пост Кнайта, http://forum.boolean.name/showpost.p...4&postcount=17, чето стремно стало )))

Лол, ну если ты хочешь занимацо чем-то реально полезным, то пили кокос (который 2d-x, вообще там и 3D есть, твои ES 3.0 потуги наверно им понравяцо), например, смысла в твоем движке как раз и нет кроме как попрактиковаться (а тем более только под ведро). А вот улучшение кокоса это респект и уважуха от 100500 дивилоперов, потому как на нем реально дохера проектов пилят, может даже побольше чем на юнити.

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

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

pozitiffcat 29.11.2014 22:10

Ответ: Melissa Project
 
Вложений: 1
Так как критерием завершенности рендера моего проекта является качество картинки, я выкладываю на суд новое изображение, посмотрим сколько оно соберет голосов.
И еще у ребят хочу спросить одну вещь.
Маленькое вступление. Анализировал я сегодня рынок мобильных приложение, а точнее топовых игр, и обнаружил к своему удивлению такую вещь. Во всех играх есть спекуляр, бам маппинг, и даже блум, но нет теней даже от Directional источника освещения, что меня сильно удивило. Все это легко реализуемо и на Open Gl ES 2 версии, так может я зря тут распинаюсь, и делаю 3 версию. Может все дело в художниках?
Собсно вопрос. Вы как думаете, есть ли смысл, делать движок с приминением отложенного освещения, когда успешно реализуются приложения без этого? Тем более все мы понимаем, одному мне не потянуть всего самостоятельно, что можно реализовать на 3 версии, не хватит сил на обучение.

pozitiffcat 29.11.2014 22:14

Ответ: Melissa Project
 
Цитата:

Сообщение от Knightmare (Сообщение 289877)
Лол, ну если ты хочешь занимацо чем-то реально полезным, то пили кокос (который 2d-x, вообще там и 3D есть, твои ES 3.0 потуги наверно им понравяцо), например, смысла в твоем движке как раз и нет кроме как попрактиковаться (а тем более только под ведро). А вот улучшение кокоса это респект и уважуха от 100500 дивилоперов, потому как на нем реально дохера проектов пилят, может даже побольше чем на юнити.

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

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

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

Knightmare 29.11.2014 22:25

Ответ: Melissa Project
 
Цитата:

Сообщение от pozitiffcat (Сообщение 289879)
Если по делу, я бы собрал несколько толковых, компетентных разработчиков, и художника. Заново спроектировали бы систему и запилили бы.

Мужик, я нихера не понял из того что ты сказал. Заново запилить твой движок? Зощем блеать? Да, в качестве лулза, поищи тут треды товарища Igor', тот этих движков начинал больше чем букв в этом сообщении, а результат был немного предсказуем.

pozitiffcat 29.11.2014 22:33

Ответ: Melissa Project
 
Цитата:

Сообщение от Knightmare (Сообщение 289880)
Мужик, я нихера не понял из того что ты сказал. Заново запилить твой движок? Зощем блеать? Да, в качестве лулза, поищи тут треды товарища Igor', тот этих движков начинал больше чем букв в этом сообщении, а результат был немного предсказуем.

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

mr.DIMAS 29.11.2014 22:57

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

кароч всегда уважал, и буду уважать чуваков которые что-то делают, а не чешут языком

по движку: бамп дикий, спекуляра много, а так графон приятный.

недавно получил в распоряжение старый комп( мой второй комп, который в свое время отдал другу и вот он мне его вернул ), поставил туда codelite + mingw и запиливаю двиг на чистом си на опенгл - и вот оно чё - мне это доставляет, кароч не важно кто че там говорит "нахер надо? ты че упоролся?", главное чтоб кайф был когда пишешь двиг\игру.

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

Knightmare 29.11.2014 23:08

Ответ: Melissa Project
 
Ну оно просто не нужно. Точнее, в общем и целом тот же кокос это адъ и израиль (хотя 3 версия значительно лучше того что было во второй, но некоторые ебанутости они по наследству притащили таки, плюс трудолюбивые китайцы нового добавили, куда без этого-то), хороший, годный 2D движок для кросс-платформенной разработки под мобилки (и не только) очень сгодился бы, но если ты спросишь на stackoverflow что-то типа "чо юзать под мобилки для моей супер-мага игры, как флэппиберд только круче", тебе на выбор дадут либо кокос, либо юнити с вероятностью 95% (ну там есть еще всякие поделия сильно на любителей БДСМ и прочих веселостей), поэтому надо очень постараться чтобы попасть в ряд с кокосом и юнити (при этом еще и бесплатным быть, да). Я на досуге как-то считал, у меня вышло что если я остановлю все проекты в компании и мы начнем ебашить свой движок (который нам нахуй не нужен, потому что юзаем кокос в основном), то это будет минимум полгода на выпуск первой юзабельной версии. Стоимость 6 месяцев работы компании это весьма немаленькая такая сумма. При этом, как я уже сказал, на выходе должен быть халявный продукт для большей части потенциальных юзеров. Т.е. чтобы просто окупить эту работу потребуется ну лет 5, например, при условии что оно вообще кому-то будет нужно, потому как есть устоявшиеся решения, которые умеют толпы разработчиков, а вот начинать новые проекты на каком-то неведомом решении ссыкотно, а чтобы не было ссыкотно, надо много разработчиков на выбор, которым не интересно изучать платформу, на которую нет спроса, и подсадить на нее кучу разработчиков весьма не тривиальная задача даже имея много денег (имея дохуя денег вопрос другой, но что-то я не уверен что у тебя есть свой Google Inc. чтобы его продать), инвестиции будет такие нефигово рисковыми и лучше эти бабки в МММ вложить, ну или впилить кучку игор на том что есть. Сделать все то же самое на энтузиазме как-то не представляется возможным за сколько-нибудь осмысленный промежуток времени. Вариант вкинуть гору бабла и времени во что-то для лулзов я не рассматриваю в принципе, по крайней мере пока не буду иметь бабла чуть больше чем могу потрать за 3 жизни.

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

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

pozitiffcat 29.11.2014 23:15

Ответ: Melissa Project
 
Да, то о чем ты говоришь, я об этом думал, что все херня, пока нет какого-то влияния из вне, так, что просто буду заниматься ради удовольствия. Если поцики заинтересуются, может буду делать что нибудь. А так шансов нет конечно.
Слушай а где можно пощупать ксорс, который пилится?

Knightmare 29.11.2014 23:15

Ответ: Melissa Project
 
Цитата:

Сообщение от mr.DIMAS (Сообщение 289882)
лал, ну вот опять понеслась "нахер двиг когда есть готовые?". без игры для которой это двиг делается, трудно понять че в него пихать и как это все будет на производительность влиять в реальном проекте. поэтому двиг писать это всегда интересно, и даже полезно, особенно если параллельно пишешь игру.

кароч всегда уважал, и буду уважать чуваков которые что-то делают, а не чешут языком

по движку: бамп дикий, спекуляра много, а так графон приятный.

недавно получил в распоряжение старый комп( мой второй комп, который в свое время отдал другу и вот он мне его вернул ), поставил туда codelite + mingw и запиливаю двиг на чистом си на опенгл - и вот оно чё - мне это доставляет, кароч не важно кто че там говорит "нахер надо? ты че упоролся?", главное чтоб кайф был когда пишешь двиг\игру.

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

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

pozitiffcat 29.11.2014 23:17

Ответ: Melissa Project
 
Вложений: 1
Цитата:

Сообщение от mr.DIMAS (Сообщение 289882)
лал, ну вот опять понеслась "нахер двиг когда есть готовые?". без игры для которой это двиг делается, трудно понять че в него пихать и как это все будет на производительность влиять в реальном проекте. поэтому двиг писать это всегда интересно, и даже полезно, особенно если параллельно пишешь игру.

кароч всегда уважал, и буду уважать чуваков которые что-то делают, а не чешут языком

по движку: бамп дикий, спекуляра много, а так графон приятный.

недавно получил в распоряжение старый комп( мой второй комп, который в свое время отдал другу и вот он мне его вернул ), поставил туда codelite + mingw и запиливаю двиг на чистом си на опенгл - и вот оно чё - мне это доставляет, кароч не важно кто че там говорит "нахер надо? ты че упоролся?", главное чтоб кайф был когда пишешь двиг\игру.

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

Бампа тут нет, спекуляра не много, просто такая своеобразная реализация HDR, цвет текселя в степени двойки умноженное на 5, вот посмотри скрин без этого

mr.DIMAS 29.11.2014 23:25

Ответ: Melissa Project
 
Цитата:

Не, ну если ты делаешь какую-то наркотическую хуиту с ривалюционным геймплеем
нет, я делаю обычный хоррор - вот тема - ( я хз, ты вроде на форум частенько заходишь, а мою тему видимо проглядел + исходники в подписи )

Knightmare 29.11.2014 23:25

Ответ: Melissa Project
 
Цитата:

Сообщение от pozitiffcat (Сообщение 289884)
Да, то о чем ты говоришь, я об этом думал, что все херня, пока нет какого-то влияния из вне, так, что просто буду заниматься ради удовольствия. Если поцики заинтересуются, может буду делать что нибудь. А так шансов нет конечно.

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

Цитата:

Сообщение от pozitiffcat (Сообщение 289884)
Слушай а где можно пощупать ксорс, который пилится?

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

pozitiffcat 29.11.2014 23:29

Ответ: Melissa Project
 
Цитата:

Сообщение от Knightmare (Сообщение 289888)
Ну для лулзов можно пилить все что угодно, на чем угодно и как угодно. Это я все к случаю когда ты желаешь получить какой-то профит от своих усилий (охуллиард долларов кэшем/лайки от мильенов юзеров/золотой памятник в полный рост), если каких-то таких целей нет (т.е. по сути пишешь в стол), то и мысли на тему "а нужно ли это кому-нибудь" тоже не имеют смысла.


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

Не было мысли вспомнить былые времена? Покодить двигло? ))

Knightmare 29.11.2014 23:32

Ответ: Melissa Project
 
Ну я ж выше писал уже, что прикидывал трудозатраты, но посчитав (причем весьма грубо, в реальности могло выйти намного больше) да и помня имеющийся опыт я таки решил, что нахер мне такое счастье, хотя поддержка халявного продукта все проще должна быть, и не так юзеры будут выносить моск.
А так сраный кокос подпиливаю по ситуации, тоже веселое занятие чо.

pozitiffcat 30.11.2014 19:13

Ответ: Melissa Project
 
Вложений: 1
Мягкие тени, любуйтесь.
Вместе с этим я еще сделал управляемый процесс пост обработки. Вешается свой колбэк. Вот пример:
Код:

class MyRenderCallback : public mfRenderCallback
{
public:
    MyRenderCallback(mfScene *scene)
    {
        m_hdr = scene->loadProgram("hdr.glsl");
        m_ssao[0] = scene->loadProgram("ssao_pass_1.glsl");
        m_ssao[1] = scene->loadProgram("ssao_pass_2.glsl");
        m_screenBuffer = scene->createRenderFramebuffer(0, 0);
        m_ssaoBuffer[0] = scene->createRenderFramebuffer(0, 0);
        m_ssaoBuffer[1] = scene->createRenderFramebuffer(0, 0);
    }

    void onRender(mfRenderContext *context)
    {
        context->drawScreenToFramebuffer(m_screenBuffer);
        context->setFramebufferToProgram("_screen_buffer_", m_screenBuffer, m_ssao[0], 0);
        context->processEffectToFramebuffer(m_ssao[0], m_ssaoBuffer[0]);

        context->setFramebufferToProgram("_base_screen_buffer_", m_screenBuffer, m_ssao[1], 0);
        context->setFramebufferToProgram("_screen_buffer_", m_ssaoBuffer[0], m_ssao[1], 1);
        context->processEffectToFramebuffer(m_ssao[1], m_ssaoBuffer[1]);

        context->setFramebufferToProgram("_screen_buffer_", m_ssaoBuffer[1], m_hdr, 0);
        context->processEffectToScreen(m_hdr);
    }

private:
    mfProgram *m_hdr = 0;
    mfProgram *m_ssao[2];
    mfFramebuffer *m_screenBuffer = 0;
    mfFramebuffer *m_ssaoBuffer[2];
};


pozitiffcat 30.11.2014 20:07

Ответ: Melissa Project
 
Вложений: 1
Тут есть ребята, которые могут помочь мне с SSAO?
А то вот какой он у меня:
PHP код:

precision highp float;

#ifdef _vertex_

in vec3 _attr_position_;
in vec2 _attr_texcoord_1_;
out vec2 texcoord_1;

void main()
{
  
gl_Position vec4(_attr_position_1.0);
  
texcoord_1 _attr_texcoord_1_;
}

#endif

#ifdef _fragment_

in vec2 texcoord_1;
uniform sampler2D _position_buffer_;
uniform sampler2D _normal_buffer_;

layout(location 0out vec4 color;

float doAmbientOcclusion(vec2 uvvec3 pvec3 cnorm

  
vec3 diff texture(_position_buffer_texcoord_1 uv).xyz p
  
vec3 v normalize(diff); 
  
float d length(diff) * 1.0
  return 
max(0.0,dot(cnorm,v) - 0.005)*(1.0/(1.0+d))*0.7
}  

float rand(vec2 co){
  return 
fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);
}

vec2 rnd(float ifloat j)
{
  
float f rand(texcoord_1.xy);
  
float r mod(f0.05);
  return 
vec2(rr);
}

void main()

    
vec4 pos texture(_position_buffer_texcoord_1);
    
vec3 norm texture(_normal_buffer_texcoord_1).xyz;
    
    
float ao 1.0;

    
float z pos.a;
    for (
float i = -0.04<= 0.04+= 0.05)    
    {
      
ao -= doAmbientOcclusion(rnd(i0.0), pos.xyznorm);
    }
    
    for (
float j = -0.04<= 0.04+= 0.05)
    {
      
ao -= doAmbientOcclusion(rnd(0.0j), pos.xyznorm);
    }
    
color vec4 (ao);
}

#endif 


Arton 30.11.2014 20:35

Ответ: Melissa Project
 
Скриншоты приятные но везде присутствует шум, типо карандашных почеркушек. Впечатление что от твоего SSAO.

pozitiffcat 30.11.2014 20:39

Ответ: Melissa Project
 
Цитата:

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

Имеено, так, я никак не могу реализовать адекватно.

Mr_F_ 30.11.2014 20:49

Ответ: Melissa Project
 
Обычно делают первый пасс шумный в отдельную текстуру, а дальше его блюрят с учётом глубины (чтобы ссао не выползало за границы или внутрь после блюра).

pozitiffcat 30.11.2014 20:57

Ответ: Melissa Project
 
Ну у меня и первый проход стремный получается

Mr_F_ 01.12.2014 00:29

Ответ: Melissa Project
 
Хз, вроде первый нормально выглядит. Убери бамп и собери более сложную сцену из нормальных моделей - тогда понятнее будет.
Есть ощущение, будто у тебя все лучи сдвинуты вбок - с одной стороны объекта АО темнее, с другой светлее.

pozitiffcat 01.12.2014 12:41

Ответ: Melissa Project
 
Короче все, что я сделал, тормозит на мобилке. На FPS влияют тени, сглаживание тени, SSAO также. И если рендерить без Deffered, то в разы шустрее. Короче не готовы пока мобилки к таким вычислениям.
А вот компу почти пофиг на ФПС, если поочереди отключпать фичи, у меня на GT240 от 240 до 300 фпс

mr.DIMAS 01.12.2014 12:49

Ответ: Melissa Project
 
прост для дефереда( и прочих image-based фич ) нужна большая пропускная способность памяти, чего у мобилок никогда не наблюдалось

HolyDel 01.12.2014 15:51

Ответ: Melissa Project
 
Цитата:

Короче все, что я сделал, тормозит на мобилке. На FPS влияют тени, сглаживание тени, SSAO также.
скинь чтоли apk-шку, проверю на тегре к1

pozitiffcat 01.12.2014 17:39

Ответ: Melissa Project
 
http://melissa-project.org/files/Mel...id-release.apk

St_AnGer 01.12.2014 18:34

Ответ: Melissa Project
 
Рискнул было запустить на Nexus 5 (Android L), но не тут то было. Сначала приложение запускается, секунд 5 чёрный экран, потом вылет без предупреждения и каких либо ошибок.
Проц у меня Qualcomm MSM8974 Snapdragon 800, видеоадаптер - Adreno 330, OpenGL ES 3.0 вроде как должен тащить.

pozitiffcat 01.12.2014 18:46

Ответ: Melissa Project
 
Цитата:

Сообщение от St_AnGer (Сообщение 289966)
Рискнул было запустить на Nexus 5 (Android L), но не тут то было. Сначала приложение запускается, секунд 5 чёрный экран, потом вылет без предупреждения и каких либо ошибок.
Проц у меня Qualcomm MSM8974 Snapdragon 800, видеоадаптер - Adreno 330, OpenGL ES 3.0 вроде как должен тащить.

У меня Qualcomm Snapdragon 400 MSM8226, Qualcomm Adreno 305

pozitiffcat 01.12.2014 19:07

Ответ: Melissa Project
 
Можешь еще раз попробовать, я precision шейдерам прописал. Странно, конечно, что у меня без этого работает, я думал это фишка ES 3.0, а оказывается нужно писать как и раньше

Жека 01.12.2014 19:30

Ответ: Melissa Project
 
На Galaxy Note II - андрлид 4.4.2 - не запускается. Приложение остановлено.
При первом запуске выдал эту ошибку. При втором повешал всю систему. После разблокировки экрана что то промелькнуло похоже на сцену.
Перезагрузил телефон и теперь всегда "приложение остановлено".

На планшете Nexus 7 (2013) - андроид 5 - стартует черный экран на секунду и закрывается.

St_AnGer 01.12.2014 23:21

Ответ: Melissa Project
 
Цитата:

Сообщение от pozitiffcat (Сообщение 289968)
Можешь еще раз попробовать, я precision шейдерам прописал. Странно, конечно, что у меня без этого работает, я думал это фишка ES 3.0, а оказывается нужно писать как и раньше

Картина та же - черный экран и закрытие без объявления войны. Интересно, на каком этапе чего не грузится/не включается. Может быть проблема в Android 5.0?

HolyDel 02.12.2014 01:54

Ответ: Melissa Project
 
походу у тебя сайт отвалился. или у меня провайдер шалит. ссылка не доступна.
а нет, ссылка работает. правда проверить не смогу, планшет чото сдох.

pozitiffcat 02.12.2014 07:10

Ответ: Melissa Project
 
Цитата:

Сообщение от St_AnGer (Сообщение 289977)
Картина та же - черный экран и закрытие без объявления войны. Интересно, на каком этапе чего не грузится/не включается. Может быть проблема в Android 5.0?

Глань логи, можт там шойдер шалит. Постоянно с ними борода на мобилках.

St_AnGer 02.12.2014 10:09

Ответ: Melissa Project
 
Цитата:

Сообщение от pozitiffcat (Сообщение 289990)
Глань логи, можт там шойдер шалит. Постоянно с ними борода на мобилках.

Стесняюсь спросить - где их посмотреть? Вопрос, наверно, глупый, но всё же. Телефон не "рутнутый", если что. В ./Android/Data папки приложения нету. В корне диска создалась папка melissa, но она пуста.

HolyDel 02.12.2014 14:20

Ответ: Melissa Project
 
сдохла только зарядка.
http://youtu.be/D3U-id7uYKo

вроде работает. выход с приложения работает криво.

pozitiffcat 02.12.2014 15:21

Ответ: Melissa Project
 
Цитата:

Сообщение от HolyDel (Сообщение 289995)
сдохла только зарядка.
http://youtu.be/D3U-id7uYKo

вроде работает. выход с приложения работает криво.

Там нет выхода,
видео, нет доступа говорит

pozitiffcat 02.12.2014 15:23

Ответ: Melissa Project
 
Цитата:

Сообщение от St_AnGer (Сообщение 289992)
Стесняюсь спросить - где их посмотреть? Вопрос, наверно, глупый, но всё же. Телефон не "рутнутый", если что. В ./Android/Data папки приложения нету. В корне диска создалась папка melissa, но она пуста.

тут http://melissa-project.org/index.php...=media/shaders

St_AnGer 02.12.2014 15:59

Ответ: Melissa Project
 
Цитата:

Сообщение от pozitiffcat (Сообщение 289997)

Я вообще про логи спрашивал, сори что не точно вопрос составил. Ну и всё же, где логи посмотреть на мобилке можно? В описанных мной папках пусто

pozitiffcat 02.12.2014 16:12

Ответ: Melissa Project
 
Цитата:

Сообщение от St_AnGer (Сообщение 289999)
Я вообще про логи спрашивал, сори что не точно вопрос составил. Ну и всё же, где логи посмотреть на мобилке можно? В описанных мной папках пусто

LogCat-ом каким нибудь... В маркете прога есть.

HolyDel 02.12.2014 19:40

Ответ: Melissa Project
 
Цитата:

видео, нет доступа говорит
вроде должен появиться

pozitiffcat 02.12.2014 19:50

Ответ: Melissa Project
 
Цитата:

Сообщение от HolyDel (Сообщение 290004)
вроде должен появиться

Посмотрел. Плавненько =) Но я всеравно что-то разочаровался в реализации.

Жека 02.12.2014 20:13

Ответ: Melissa Project
 
Логи, половина шлака от самсунга, видимо, но вдруг чё важное, т.к. это всё вылилось при запуске проги.
Код:

12-02 23:11:12.771    2433-3018/? E/EnterpriseContainerManager﹕ ContainerPolicy Service is not yet ready!!!
12-02 23:11:15.851    2433-6816/? E/EnterpriseContainerManager﹕ ContainerPolicy Service is not yet ready!!!
12-02 23:11:16.031    4722-4722/? E/SamsungIME﹕ isHWKeyboardConnected() = false --> false
12-02 23:11:16.131    2433-2641/? E/SmartFaceService﹕ onReceive: android.intent.action.CONFIGURATION_CHANGED
12-02 23:11:16.131    2433-2641/? E/SmartFaceService﹕ mFolderCoverOpened: (true, true) -> true
12-02 23:11:16.166  11682-11682/? E/ActivityThread﹕ Pause GC
    java.lang.reflect.InvocationTargetException
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at android.app.ActivityThread.pauseGC(ActivityThread.java:5525)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2324)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2471)
            at android.app.ActivityThread.access$900(ActivityThread.java:175)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:146)
            at android.app.ActivityThread.main(ActivityThread.java:5602)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
            at dalvik.system.NativeStart.main(Native Method)
    Caused by: java.lang.UnsatisfiedLinkError: Native method not found: dalvik.system.VMRuntime.pauseGc:(Ljava/lang/String;)I
            at dalvik.system.VMRuntime.pauseGc(Native Method)
************at java.lang.reflect.Method.invokeNative(Native Method)
************at java.lang.reflect.Method.invoke(Method.java:515)
************at android.app.ActivityThread.pauseGC(ActivityThread.java:5525)
************at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2324)
************at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2471)
************at android.app.ActivityThread.access$900(ActivityThread.java:175)
************at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308)
************at android.os.Handler.dispatchMessage(Handler.java:102)
************at android.os.Looper.loop(Looper.java:146)
************at android.app.ActivityThread.main(ActivityThread.java:5602)
************at java.lang.reflect.Method.invokeNative(Native Method)
************at java.lang.reflect.Method.invoke(Method.java:515)
************at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
************at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
************at dalvik.system.NativeStart.main(Native Method)
12-02 23:11:16.301  11682-11682/? E/﹕ Device driver API match
    Device driver API version: 23
    User space API version: 23
12-02 23:11:16.301  11682-11682/? E/﹕ mali: REVISION=Linux-r3p2-01rel3 BUILD_DATE=Fri Mar 21 13:52:50 KST 2014
12-02 23:11:16.401  11682-11698/? E/AndroidRuntime﹕ FATAL EXCEPTION: GLThread 1361
    Process: org.malcdevelop.melissatest, PID: 11682
    java.lang.RuntimeException: createContext failed: EGL_BAD_ATTRIBUTE
            at android.opengl.GLSurfaceView$EglHelper.throwEglException(GLSurfaceView.java:1201)
            at android.opengl.GLSurfaceView$EglHelper.throwEglException(GLSurfaceView.java:1192)
            at android.opengl.GLSurfaceView$EglHelper.start(GLSurfaceView.java:1042)
            at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1409)
            at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1248)

12-02 23:11:16.786    4722-4722/? E/SamsungIME﹕ isHWKeyboardConnected() = false --> false
12-02 23:11:16.811  11682-11682/? E/ViewSystem﹕ ViewRootImpl #2 Surface is not valid.
12-02 23:11:16.861    2433-2560/? E/ViewSystem﹕ ViewRootImpl #2 Surface is not valid.
12-02 23:11:16.866    2433-2446/? E/EnterpriseContainerManager﹕ ContainerPolicy Service is not yet ready!!!
12-02 23:11:16.891    2433-2641/? E/SmartFaceService﹕ onReceive: android.intent.action.CONFIGURATION_CHANGED
12-02 23:11:16.891    2433-2641/? E/SmartFaceService﹕ mFolderCoverOpened: (true, true) -> true
12-02 23:11:16.896  11682-11682/? A/libc﹕ Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 11682 (lop.melissatest)
12-02 23:11:16.946    2433-2560/? E/ViewSystem﹕ ViewRootImpl #2 Surface is not valid.
12-02 23:11:17.031  2433-11705/? E/android.os.Debug﹕ !@Dumpstate > sdumpstate -k -t -z -d -o /data/log/dumpstate_app_error
12-02 23:11:17.431    2433-2585/? E/InputDispatcher﹕ channel ~ Channel is unrecoverably broken and will be disposed!
12-02 23:11:18.396    2433-2751/? E/Watchdog﹕ !@Sync 421



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

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