forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты C++ (http://forum.boolean.name/forumdisplay.php?f=56)
-   -   [TrueHorror] - разработка (http://forum.boolean.name/showthread.php?t=17293)

mr.DIMAS 06.03.2015 14:35

Ответ: [TrueHorror] - разработка
 
Попробовал occlusion query. Результат порадовал, если свет(70 источников) загорожен стенкой, то фпс 130. Если эти же источники распределить в лабиринте ( чтоб все сразу не было видно ) то фпс в среднем 90, без оклюжена фпс 58. Я щитаю это вин.

upd. Проверил в игре, фпс не опускается ниже 100

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

Код оклюжена такой:
Код:

    gpDevice->SetRenderState( D3DRS_STENCILENABLE, FALSE );
    gpDevice->SetRenderState( D3DRS_COLORWRITEENABLE, 0x00000000 );
    gpDevice->SetRenderState( D3DRS_CULLMODE, D3DCULL_NONE );   

    for( auto pLight : g_pointLightList ) {
        pLight->pQuery->Issue( D3DISSUE_BEGIN );
        RenderSphere( pLight );
        pLight->pQuery->Issue( D3DISSUE_END);
        pLight->trulyVisible = false;
    }

    gpDevice->SetRenderState( D3DRS_COLORWRITEENABLE, 0xFFFFFFFF );
    gpDevice->SetRenderState( D3DRS_STENCILENABLE, TRUE );
   
    int count = g_pointLightList.size(), readyCount = 0;
    do {
        for( auto pLight : g_pointLightList ) {
            DWORD pixelsVisible;
            if( !pLight->trulyVisible ) {
                if( pLight->pQuery->GetData( &pixelsVisible, sizeof( pixelsVisible ), D3DGETDATA_FLUSH ) == S_OK ) {
                    readyCount++;
                    if( pixelsVisible > 0 ) {               
                        pLight->trulyVisible = true;
                    }
                }
            }
        }
    } while( readyCount < count );

Для каждого света свой IDirect3DQuery9

Цитата:

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

Mr_F_ 06.03.2015 15:44

Ответ: [TrueHorror] - разработка
 
Цитата:

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

mr.DIMAS 06.03.2015 15:50

Ответ: [TrueHorror] - разработка
 
Цитата:

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

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

mr.DIMAS 06.03.2015 21:49

Ответ: [TrueHorror] - разработка
 
В общем сделал кэширование, работает хорошо. Опишу алгоритм:
При перемещении камеры строим ее путь - просто добавляем точки через равные промежутки, попутно проверяя наличие уже существующих точек рядом - таким образом на пути следования камеры образуется регулярная(с равным шагом ) сетка из точек, а заодно находим ближайшую существующую точку к камере. При рендере стартуем оклюжен, и при помощи него формируем список источников света видимых из данной точки. Есть одна очень досаждающая особенность оклюжена для света, если ограничивающая сфера пройдет сквозь стенку, то свет не отрисуется, потому что никакие фрагменты сферы не были отрисованы - решается это отрисовкой сферы 1/4 размера исходной.

Пробовал записать видео, но фрапс лочит фпс и поэтому производительность надо щупать самому. Код можно глянуть на гитхабе в DeferredRenderer.cpp и Camera.cpp

У меня средний фпс не опускается ниже 105 к\с( 2560х1440 ). без этого метода фпс иногда( когда много источников света в далеке за стеной ) проваливается до 57 к\с. Также убрана задержка оклюжена.

mr.DIMAS 08.03.2015 03:12

Ответ: [TrueHorror] - разработка
 
Вложений: 2
А тем временем я пилю новый уровень с гермодверями и лабиринтами - канализация. АХТУНГ! На скринах нет графония, у вас может произойти кровавое слезотечение от следующих скриншотов :-D.




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

Samodelkin 08.03.2015 04:24

Ответ: [TrueHorror] - разработка
 
Цитата:

Сообщение от mr.DIMAS (Сообщение 293932)
По началу хотел сделать вентили( типа крутишь и дверь поднимается\опускается ), но словил нехилую попоболь с осями вращения вентилей, так что сделал кнопками.

Ещё можно рычагами как у домкрата или инвалидной коляски.

Nex 08.03.2015 06:50

Ответ: [TrueHorror] - разработка
 
Твоя игра уже в сталкера/метро 2033 превращается. :)

Randomize 08.03.2015 07:46

Ответ: [TrueHorror] - разработка
 
Цитата:

Сообщение от Nex (Сообщение 293935)
Твоя игра уже в сталкера/метро 2033 превращается. :)

Дак и хорошо же

tirarex 08.03.2015 09:19

Ответ: [TrueHorror] - разработка
 
Кстати последний билд из твой подписи на стандартных настройках выдает 90-150 фпс даже на моем мамонте , ни одна игра с деферредом такое не могла раньше !

Mr_F_ 08.03.2015 13:09

Ответ: [TrueHorror] - разработка
 
но и лайты в игре шибко маленькие и уходят в черноту моментально - в реальности свет распространяется гораздо дальше, и начинаются все овердро проблемы.

mr.DIMAS 15.03.2015 19:51

Ответ: [TrueHorror] - разработка
 
Сейчас занят звуком в игре, купил себе хорошие наушники, ибо через колонки звук нормально не настроить. Добавляю фоновые звуки - звук ламп дневного света, разные скрежеты\стуки вдалеке, также звуки ударов предметов (бочки, камни, коробки и прочее барахло). Подбираю подходящую реверберацию для уровня. В общем занят атмосферой игры. Через недельку будет новая версия.

mr.DIMAS 15.03.2015 22:53

Ответ: [TrueHorror] - разработка
 
Искал звуки в шахте, нашел классные видосы с видом от первого лица как по шахтам лазают - канал гляньте, там еще несколько видосов хороших есть.




Шастают ребята с http://mishainik.livejournal.com

Вот тут очень классные фотки шахты, есть фотки где места похожи на места в моей игре, это чисто случайно.
http://mishainik.livejournal.com/179266.html

Я такой графон никогда не осилю.

mr.DIMAS 20.04.2015 01:52

Ответ: [TrueHorror] - разработка
 
Вложений: 5
̶П̶р̶и̶в̶е̶т̶ ̶б̶р̶а̶т̶и̶ш̶к̶и̶.̶ ̶Я̶ ̶в̶а̶м̶ ̶п̶о̶к̶у̶ш̶а̶т̶ь̶ ̶п̶р̶и̶н̶е̶с̶.̶

Долго меня не было на форуме, и долго я игру не трогал. И всему виной универ - после него лень что-либо делать. Но вырвавшись из лаборатории и проделав все исследования, я вновь пишу игрушку :-D. За несколько дней сделал следующее:
1) Починил HDR
2) Добавил оружие - пистолет и патроны к нему
3) Починил сохранение\загрузку ( хотя баги все еще появляются )
4) Починил мозги боту
5) Теперь бота можно выпилить из игры на 15 секунд при помощи пистолета - с одного выстрела. После выпиливания он появляется на том же самом месте. Кароч добавилась мииистика. Кто думает, что если есть пистолет то теперь не страшно - ошибаетесь, патронов на каждом уровне около 6 штук и когда они кончаются в неподходящий момент, то кирпичи вылезают еще быстрее. Кстати заряжается пистолет не просто нажатием кнопочки перезарядки, а по одному патрону через инвентарь в режиме комбинирования.

Пистолет и патроны собственной персоной:




Выпиливаем бота:



Сравнение HDR и без HDR.




Поиграть можно будет через несколько дней ( я надеюсь :dontknow: ). За эти несколько дней планирую сделать еще несколько головоломок на 4 уровне и расширить пятый( то бишь канализацию )

Mr_F_ 20.04.2015 01:55

Ответ: [TrueHorror] - разработка
 
Цитата:

Долго меня не было на форуме, и долго я игру не трогал. И всему виной универ - после него лень что-либо делать. Но вырвавшись из лаборатории
а я думал, ты освещение нормальное решил запилить:
http://www.gamedev.ru/code/forum/?id=200283&page=2#m25
или это не ты? или это и есть инстовая работа?

mr.DIMAS 20.04.2015 02:00

Ответ: [TrueHorror] - разработка
 
Я самый. Инстовая работа по лазерам( ИССЛЕДОВАНИЕ ГЕНЕРАЦИИ НЕОДИМОВОГО ЛАЗЕРА ПРИ ФАЗИРОВАНИИ ДВУХКВАНТРОННОЙ СХЕМЫ ), я к сожалению учусь не на факультете программирования. Лайтмапы это просто эксперимент, у меня с ними сложно сейчас - там столько возни, что и не передать.

mr.DIMAS 22.04.2015 17:15

Ответ: [TrueHorror] - разработка
 
Доделал очередную порцию головоломок. В основном изменениям подверглись 3 и 4 уровни. Стало больше закрытых дверей( ко всем есть код ). Если не охота бегать по первому уровню, можно прописать в mine.cfg - levelNum="3"; и сразу окажешься в шахте.

Что сделал:
1) Изменил загрузку\сохранение - теперь при загрузке уровень загружается заново и игрок пересоздается - таким образом я убрал кучу багов. И да старые сейвы можете выбросить
2) Увеличил стабильность, за счет увеличения проверок валидности указателей( тупо по списку указатель проверяется)
3) И просто кучу, КУЧУ всякого говна убрал из движка и игры.

Как обычно - пишите здесь о багах. Так же интересует фпс при ХДРе, и просто фпс - самое низкое ( где?) и самое высокое.



СКАЧАТЬ

Samodelkin 23.04.2015 00:18

Ответ: [TrueHorror] - разработка
 
Вложений: 1
Запускал на двух конфигах, указанных в подписи.

На обоих не работают шрифты! Похоже всё та же проблема с текстурными координатами. Как видишь и на nvidia и на amd, скорее всего проблема в самих шрифтах. Так же даже если бы они отображались, их всё равно сложно читать, потому что мелкие и тёмные на тёмном фоне. В связи с этим проходить и тестировать игру далее не смог. Я не думаю что стоит выкладывать что-либо далее пока не будет пофикшен этот баг.

Что я ещё успел заметить:

Config1: Игра падает если умереть от рипера на втором уровне, выйти из игры и снова начать новую игру. Падает во время загрузки уровня, после предыстории. Повторить на втором конфиге не удалось -- там нормально.
Второй баг связан с синхронизацией, появляются разрывы как при отсутствии синхронизации, но не хаотично, а примерно в одном месте. То есть видимо синхронизация есть, но по какой-то причине не совпадает время обновления кадра с обновлением монитора. Причём вначале когда идёшь по лесу эта линия очень близко к нижней границе экрана и почти невидна, а когда идешь по коридору вниз в шахту то линия начинает подниматься выше. Это не зависит от уровня наклона камеры, но возможно как-то связано со скоростью отрисовки -- возможно нужно проверить как ведёт себя эта полоса на сценах с разной степенью нагруженности. Помню что на другой видеокарте подобная проблема была в Human Revolution The Missing Link, но полоса была менее заметной, и это была единственная игра с такой проблемой, к тому же на dx11. На текущей видеокарте подобных проблем пока нигде не видел.

Config2: Проблемы с освещением.
Вложение 21671
Подобное происходит на всех точечных источниках, на директах особо не видел.

Wegox 23.04.2015 00:31

Ответ: [TrueHorror] - разработка
 
С шрифтами проблем нет, играть буду завтра.

ABTOMAT 23.04.2015 03:36

Ответ: [TrueHorror] - разработка
 
Цитата:

Сообщение от mr.DIMAS (Сообщение 295126)
Я самый. Инстовая работа по лазерам( ИССЛЕДОВАНИЕ ГЕНЕРАЦИИ НЕОДИМОВОГО ЛАЗЕРА ПРИ ФАЗИРОВАНИИ ДВУХКВАНТРОННОЙ СХЕМЫ ), я к сожалению учусь не на факультете программирования. Лайтмапы это просто эксперимент, у меня с ними сложно сейчас - там столько возни, что и не передать.

Ты тоже лазерщик по профессии? Нас теперь двое?
Ты не в ИТМО ЛТиЭП/ЛТБМО случаем?

mr.DIMAS 23.04.2015 13:50

Ответ: [TrueHorror] - разработка
 
Патч исправляющий проблему со шрифтами и проблему с неподнимаемой монтировкой. СКАЧАТЬ


Не, я в военмехе учусь. Планирую в магистратуру в итмоар пойти, на программера уже.

Wegox 23.04.2015 15:48

Ответ: [TrueHorror] - разработка
 
Вся печаль в том, что Я бегаю уже час как Пони по кругу, и не вижу монтировку.:-D С шрифтами проблем нет, поэтому патч ставить не буду а то ещё появятся.
А вот эти двери, за которыми предохранители лежат, должны быть открыты? или нет?(Они у меня по дефолту открыты) наверное Я ещё не дошел до дверей "А1 Б1 В1"?
как вообще понять, где какая дверь?:4to: они все одинаковые вроде.:dontknow:

mr.DIMAS 23.04.2015 16:04

Ответ: [TrueHorror] - разработка
 
Цитата:

Вся печаль в том, что Я бегаю уже час как Пони по кругу, и не вижу монтировку
Монтировка лежит в комнате которая располагается рядом с кольцом( кольцом часть уровня сделана). Уровень большой, и предметы равномерно раскиданы по нему. По этому если нужен предмет, он всегда будет лежать максимально далеко от того места где он нужен.
Цитата:

как вообще понять, где какая дверь?:4to: они все одинаковые вроде
Блин. Об этом я не подумал :-D.

Цитата:

или нет?(Они у меня по дефолту открыты)
Это странно.

Wegox 23.04.2015 16:13

Ответ: [TrueHorror] - разработка
 
Цитата:

Сообщение от mr.DIMAS (Сообщение 295262)
Монтировка лежит в комнате которая располагается рядом с кольцом( кольцом часть уровня сделана).

C кольцом? каким нахрен кольцом???:-D Случаем до этого кольца, не на том лифте надо ехать, который тебя в тупик привозит?:-) просто да или нет?

Цитата:

Сообщение от mr.DIMAS (Сообщение 295262)
Уровень большой, и предметы равномерно раскиданы по нему. По этому если нужен предмет, он всегда будет лежать максимально далеко от того места где он нужен.

Я этого и ждал собственно.

Цитата:

Сообщение от mr.DIMAS (Сообщение 295262)
Это странно.

Ну Я всё записал, потом покажу, если пройду.

mr.DIMAS 23.04.2015 16:26

Ответ: [TrueHorror] - разработка
 
Вложений: 2
Ну что за хуита. Вот тебе карта, если не можешь ориентироваться по уровню

Цитата:

Случаем до этого кольца, не на том лифте надо ехать, который тебя в тупик привозит?
Шта? Он привозит тебя в хим лабораторию.

Wegox 23.04.2015 16:32

Ответ: [TrueHorror] - разработка
 
Ща Я залью видео на канал, и кину тебе ссылку в личку, сам посмотришь куда он меня привозит...

Samodelkin 23.04.2015 16:37

Ответ: [TrueHorror] - разработка
 
Цитата:

Сообщение от mr.DIMAS
Это странно.

У меня тоже самое. Я подумал что ты коды ещё не придумал или они просто должны быть открыты. Если повернуть налево от начала уровня, то все двери которые в той части локации открыты по дефолту. А вот если пойти направо и спуститься на первом лифте то справа будет уже закрытая дверь.

Цитата:

Сообщение от Wegox
С шрифтами проблем нет, играть буду завтра.

А с каким разрешением экрана запускал?

Цитата:

Сообщение от Samodelkin
Второй баг связан с синхронизацией, появляются разрывы как при отсутствии синхронизации, но не хаотично, а примерно в одном месте. То есть видимо синхронизация есть, но по какой-то причине не совпадает время обновления кадра с обновлением монитора. Причём вначале когда идёшь по лесу эта линия очень близко к нижней границе экрана и почти невидна, а когда идешь по коридору вниз в шахту то линия начинает подниматься выше. Это не зависит от уровня наклона камеры, но возможно как-то связано со скоростью отрисовки -- возможно нужно проверить как ведёт себя эта полоса на сценах с разной степенью нагруженности. Помню что на другой видеокарте подобная проблема была в Human Revolution The Missing Link, но полоса была менее заметной, и это была единственная игра с такой проблемой, к тому же на dx11. На текущей видеокарте подобных проблем пока нигде не видел.

Это не баг. Я неправильно диагностировал. Проблема решена.

UPDATE:
Цитата:

Сообщение от mr.DIMAS
Шта? Он привозит тебя в хим лабораторию.

У меня он тоже в тупик уводит. Видимо он останавливается в шахте не опускаясь до конца, а выглядит как в тупике.

mr.DIMAS 23.04.2015 16:43

Ответ: [TrueHorror] - разработка
 
Цитата:

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

mr.DIMAS 23.04.2015 16:46

Ответ: [TrueHorror] - разработка
 
https://www.dropbox.com/s/wkgto1pnlv...Patch.rar?dl=0

Wegox 23.04.2015 16:51

Ответ: [TrueHorror] - разработка
 
Видео заливать не буду, перепройду c патчем.

Цитата:

Сообщение от Samodelkin (Сообщение 295267)
А с каким разрешением экрана запускал?

Возможно 1920/1080

resW = "0";
resH = "0";
fullscreen = "1";
debugInfo = "1";
vSync = "0";

А где это посмотреть то вообще?:-D

Samodelkin 23.04.2015 17:17

Ответ: [TrueHorror] - разработка
 
Я скачал патч по первой ссылке, но возможно ты как раз успел его перезалить, потому что теперь лифт работает.
Коды к дверям тоже работают и двери закрыты.
Монтировки на старом месте нет, видимо перепрятано. Посмотрю на другом компе, а на этом сломано освещение и искать что-либо в темноте невозможно.
На счёт реализма, вот ты говоришь на бумажку коды записывай. Но ведь они и так на бумажке записаны! Почему перс эту бумажку не может взять с собой или переписать коды себе в журнал? Если не хочешь делать автоматом, то предоставь игроку возможности писать в журнал вручную, просто возможность набирать текст и записывать что угодно.
Ещё либо убери сглаживание мыши, либо пусть набор кодов происходит курсором, даже необязательно 2д интерфейс -- курсором можно прямо на эти 3д кнопки жать, но чтобы курсор был не сглажен.

Цитата:

Сообщение от Wegox
А где это посмотреть то вообще?

По умолчанию разрешение тоже что и у рабочего стола. Ну вот у меня на 1080р шрифты до патча не работали. Тогда видимо D3DUSAGE_DYNAMIC накладывает какие-то ограничения. Вообще этот флаг вроде не нужен же, зачем его ставили раньше?

Wegox 23.04.2015 17:33

Ответ: [TrueHorror] - разработка
 
Ну значит 1920/1080
Теперь надо сначала игру проходить, Я так понял, с птчем по верх старых сохранений не работает:crazy:
Цитата:

Сообщение от Samodelkin (Сообщение 295271)
На счёт реализма, вот ты говоришь на бумажку коды записывай.

Я сначала кинулся на бумажку записывать, и этот момент даже на видео записал:-)а потом, такой:4to: лучше на мобилу зафотаю:-D

Короче, на третьем уровне, второй лифт застревает в шахте, даже после всех патчей, пройти не могу...

mr.DIMAS 23.04.2015 18:28

Ответ: [TrueHorror] - разработка
 
Цитата:

Монтировки на старом месте нет, видимо перепрятано.
Где ты увидел монтировку? Посмотри по карте где она. Красная стрелочка. Монтировка всегда там была.

mr.DIMAS 23.04.2015 18:47

Ответ: [TrueHorror] - разработка
 
Цитата:

Теперь надо сначала игру проходить, Я так понял, с птчем по верх старых сохранений не работает
Старые сохранения работают. Начинать сначала не обязательно - levelNum="4"; и ты сразу окажешься в комплексе.

Я проверил, лифт опускается. Перекачай патч. Ты видимо скачал его раньше чем я его обновил. И все же, если вдруг ты криворук и у тебя не заработает, то можешь пропустить уровень загрузив следующий через levelNum="5";

Samodelkin 23.04.2015 18:49

Ответ: [TrueHorror] - разработка
 
Цитата:

Сообщение от mr.DIMAS (Сообщение 295273)
Где ты увидел монтировку? Посмотри по карте где она. Красная стрелочка. Монтировка всегда там была.

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

Кстати хотел сделать скрин, но не вышло. Print screen не работает на конфиге1 -- он делает сткрин рабочего стола, а не игры. А вот на конфиге2 принтскрин работает. В связи с этим было бы неплохо добавить возможность делать скрины средствами самой игры. Это опция вообще полезна для тестирования, тестеру намного удобней все подряд заскринить чем потом по памяти пытаться описать словами.

У тебя по сюжету тоже токамак! Наверное чёрные дыры тоже будут?

Wegox 23.04.2015 19:09

Ответ: [TrueHorror] - разработка
 
Цитата:

Сообщение от mr.DIMAS (Сообщение 295274)
Старые сохранения работают. Начинать сначала не обязательно - levelNum="4"; и ты сразу окажешься в комплексе.

Я проверил, лифт опускается. Перекачай патч. Ты видимо скачал его раньше чем я его обновил. И все же, если вдруг ты криворук и у тебя не заработает, то можешь пропустить уровень загрузив следующий через levelNum="5";

Я так не играю...
Нет не работает. Кодовые замки работают, лифт нет.

levelNum="" это мне вообще ненужно, зачем? Я терпеливый подожду ещё пару месяцев:)

mr.DIMAS 23.04.2015 19:37

Ответ: [TrueHorror] - разработка
 
https://www.dropbox.com/s/onkaby82ovypfcv/rf.rar?dl=0

положи в папку data/maps/release/researchfacility

Samodelkin 24.04.2015 02:09

Ответ: [TrueHorror] - разработка
 
В общем уровень 4 проходится до решётки. Там я посыпал замок алюминием и видимо нужно чем-то ударить или выстрелить, но пистолета нет, а монтировкой я так понимаю он махать не умеет?

Второй лифт кстати до верха тоже чуть-чуть не доезжает, не критично, но можно пофиксить.

Ещё есть мерцание экрана темнотой, как будто перс моргает. Но видимо это немножко хдр глючит?

Слева экрана видна полоса пикселей от правой стороны экранного квада, видимо нужно сменить тип выборки за пределами диапазона координат.

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

Вот ну ещё помелочам там есть баги, о них тогда позже.

mr.DIMAS 24.04.2015 13:06

Ответ: [TrueHorror] - разработка
 
Цитата:

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

Цитата:

Ещё есть мерцание экрана темнотой, как будто перс моргает. Но видимо это немножко хдр глючит?
Это occlusion query глючит. Кстати сколько фпс на разных конфигах?

Wegox 24.04.2015 14:08

Ответ: [TrueHorror] - разработка
 
Перепрошел, игра вылетает в конце туннеля, после того как решётку открыл... С зажигалкой сам догнал методом тыка:-D

Samodelkin 24.04.2015 16:10

Ответ: [TrueHorror] - разработка
 
Цитата:

Сообщение от mr.DIMAS (Сообщение 295295)
Там термитом нужно прожечь замок. Кладешь алюминиевый порошок, затем оксид железа и потом применяешь через инвентарь зажигалку.

Это occlusion query глючит. Кстати сколько фпс на разных конфигах?

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

На конфиге 1 было 500-800 fps, ну там в общем без проблем, только я синхронизацию включаю чтобы жёстко 60 было, иначе эти полосы рассинхронизации появляются.
На конфиге 2 меньше в диапазоне 30-60, я думаю играть можно, хотя незнаю как у тебя планируется далее наполняться игра медией или возможно будут и дальнейшие оптимизации или возможность снижать какие-то настройки. Это с включенным хдр. Но там глюк с освещением -- я уже скрин в аттаче передавал выше.

mr.DIMAS 24.04.2015 16:21

Ответ: [TrueHorror] - разработка
 
2Wegox ты охуенен. С удовольствием посмотрел твое прохождение. Все баги что ты перечислил я исправлю. Странно что игра вылетает, там должна быть загрузка нового уровня. В любом случае, если хочешь его глянуть - загрузи его через levelNum="5";
Насчет того, почему ты телепортировался в центр уровня - это я специально сделал для быстрой проверки работы лифта.
Не против, если я размещу твое прохождение на gamedev.ru в своей теме? http://www.gamedev.ru/projects/forum/?id=196388&page=2

2Samodelkin хдр жрет почти 20 к\с. вон у Wegox'a вообще фпс около 20-30 и нормально играется - правда почти слайдшоу, но игровой процесс не тормозится.

Wegox 24.04.2015 17:56

Ответ: [TrueHorror] - разработка
 
Не против.
У меня 20-30 фпс да, так ещё и запись в 1080p, так то нормальна играется.

Wegox 29.04.2015 22:27

Ответ: [TrueHorror] - разработка
 
Дядя Дима, будьте так любезны, зайдите в личку, а там скоро свободного места не останется...

mr.DIMAS 09.05.2015 22:03

Ответ: [TrueHorror] - разработка
 
Good news everyone!

Wegox принял участие в разработке игры, он классно моделит и теперь заслуженно занимает свое положение в разделе Авторы.

2Wegox
, запости сюда свои модельки и наброски.

Немного новостей по игре:
1) Теперь падения причиняют урон пропорциональный высоте падения
2) На 4 уровне добавил врага, появляется он внезапно и доставляет кирпичей
3) Наконец-то сделал нормальную смерть главного героя - выводится надпись "Вы погибли" ( привет Dark Souls :-D ) и проигрывается нервирующая музыка в течении 6 сек и затем автоматически выкидывает в главное меню, но можно не ждать окончания проигрывания и самому выйти в главное меню. Из главного меню можно начать новую игру или загрузиться.
4) Почистил баги, починил надписи в меню (теперь нормальные цифры вместо 1E+02 )
5) Добавил автосейв каждые 3 минуты.

Wegox 10.05.2015 05:22

Ответ: [TrueHorror] - разработка
 
Сегодня смотрел салют(То есть вчера), и читал сообщения от Димона. Это видео как бы о том, как к автору игры The Mine к mr.DIMAS'у приходили лички с графикой от меня. C вопросом устраивает его такая, или нет? А он на даче был, не слышал короче:-) А Я думаю.. а не сделать ли мне? целую локацию:-D (Ну или хотя бы начать?) и тут Димон появляется. Ну вроде подходит, будем делать, у программиста дача, у меня День Победы вчера, и Я тут не причём...:-)

The Mine - Наброски "Шлюз"

Кто-то подумает, причём тут Шлюз???:4to: Но у Димона в The Mine тоже есть шлюз, просто не все до него дошли...:-)


Samodelkin 10.05.2015 16:47

Ответ: [TrueHorror] - разработка
 
А будешь делать хайполи чтобы нормал карту снять? А отдельно спекуляр карты, чтобы всё одинаково не блестело?

mr.DIMAS 10.05.2015 17:44

Ответ: [TrueHorror] - разработка
 
Движок не поддерживает спекуляр мапы, хотя добавить их поддержку просто, но мне лень :-D.

Wegox 12.05.2015 01:06

Ответ: [TrueHorror] - разработка
 
Цитата:

Сообщение от Samodelkin (Сообщение 295766)
А будешь делать хайполи чтобы нормал карту снять? А отдельно спекуляр карты, чтобы всё одинаково не блестело?

Всё буду, только не хайполи, это дорого слишком.:) Это наброски блестят;)
А так с текстурами проблем нет вообще.
Вот на эту деталь +100500% никто даже внимания не обратит..



но я её в любом случае сделаю такой, это не сложно же:-)

Цитата:

Сообщение от mr.DIMAS (Сообщение 295768)
Движок не поддерживает спекуляр мапы, хотя добавить их поддержку просто, но мне лень :-D.

Добавляй, и твои бочки преобразятся.

Wegox 21.05.2015 00:53

Ответ: [TrueHorror] - разработка
 
Вложений: 1
Значит я определился со стилем, сейчас текстурирую и доделываю декорации, и "закончил локацию"
Под оффтопом, там диффузия, спекуляр, нормалмап и рендеринг по дефолту.









Немного грубовато, да.. но я работаю над текстурами...:)

Samodelkin 21.05.2015 02:22

Ответ: [TrueHorror] - разработка
 
Я так понимаю это рендеры макса.
Было бы неплохо реализовать поддержку лайтмэпов.
А также посмотреть как уровень будет выглядеть с учётом того освещения, которое в движке, оно может сильно повлиять на результат.
Структура уровней выглядит обнадёживающе, напоминает лаборатории из игр 90х, тогда умели делать карты. Интересно каким образом будет организовано перемещение по таким локациям, какие элементы взаимодействия с локацией, распределение полезных предметов, пазлы, секретки и т. д.

ARA 21.05.2015 10:22

Ответ: [TrueHorror] - разработка
 
Цитата:

Сообщение от Samodelkin (Сообщение 295978)
Я так понимаю это рендеры макса.
Было бы неплохо реализовать поддержку лайтмэпов.

Булчую этого Самоделкина! Выклянчивай у Димаса Radiosity Normal Maps. :-)

mr.DIMAS 21.05.2015 13:03

Ответ: [TrueHorror] - разработка
 
Классная структура уровня, все так компактненько. Меня почему-то тянет делать уровни в длину :-D.

Цитата:

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

Цитата:

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

LLI.T.A.L.K.E.R. 21.05.2015 14:33

Ответ: [TrueHorror] - разработка
 
красиво (уровень)

Samodelkin 21.05.2015 16:08

Ответ: [TrueHorror] - разработка
 
Можно попробовать даже Self-Shadowed Radiosity Normal Mapping. В игре чел ходит с фонарём или зажигалкой по темной пещере так что свет падает под острым углом к поверхности, так что самозатенение бампа весьма кстати.
Проблема только в том что для генерации нужны также и карты высот, а Wegox делает сразу лоу-поли и ищет подходящие нормал-карты. Найти соответствующие друг-другу нормал-карты и карты высот и так чтобы они подходили к общей геометрии не так-то просто. Применение эффекта с неправильными картами скорее только ухудшит общий результат рендеринга.

Цитата:

Оно будет таким же если я узнаю формулу затухания света, используемую в максе.
Не только, ещё зависит от разного рода коэффициентов в шейдерах спекуляра, бампа и т. п. Так что не так всё просто. Обычно этим занимаются дизайнеры или художники умеющие правильно "освещать" рисуемые объекты. Наверное даже с PBR будет меньше проблем, так как там вполне конкретные формулы и меньше возможности неправильно настроить.

mr.DIMAS 29.05.2015 18:57

Ответ: [TrueHorror] - разработка
 
Вложений: 8
Появилось еще немного времени на игрушку. Недавно скачал юнити 5, поковырял новый гуй, и понял что хочу такой же. Действия кнопочек\слайдеров\радиокнопок выполняются через делегаты, но в цпп нет делегатов. Пришлось запилить.

Код:

class ruIContainer {
public:
    virtual ~ruIContainer() {   

    };

    virtual void Call() = 0;
};

template< class T, class M > class ruContainer : public ruIContainer {
private:
    T * mClass;
    M mMethod;
public:
    explicit ruContainer( T * theClass, M  theMethod ) : mClass( theClass ), mMethod( theMethod ) {

    };

    virtual void Call() {
        (mClass->*mMethod)();
    }
};

class ruDelegate {
private:
    ruIContainer * mContainer;
public:
    ruDelegate() : mContainer( nullptr ) {

    };
    ~ruDelegate() {
        if( mContainer ) {
            delete mContainer;
        }
    }
    ruDelegate( const ruDelegate & other ) {
        mContainer = other.mContainer;
        (const_cast<ruDelegate&>(other)).mContainer = nullptr;
    }
    template< class T, class M > static ruDelegate Bind( T * theClass, M  theMethod ) {
        ruDelegate delegat;
        delegat.mContainer = new ruContainer< T, M >( theClass, theMethod );
        return delegat;
    }
    void Call() {
        if( mContainer ) {
            mContainer->Call();
        }
    }
    void operator = ( const ruDelegate & other ) {
        mContainer = other.mContainer;
        (const_cast<ruDelegate&>(other)).mContainer = nullptr;
    }
};

class ruEvent {
private:
    vector<ruDelegate> mListenerList;
public:
    void AddListener( const ruDelegate & delegat ) {
        mListenerList.push_back( delegat );
    }

    void RemoveAllListeners() {
        mListenerList.clear();
    }

    void DoActions() {
        for( auto iter = mListenerList.begin(); iter != mListenerList.end(); iter++ ) {
            iter->Call();
        }
    }
};

Пользуюсь так
Код:

... где-то внутри класса Menu
button.AddListener( ruDelegate::Bind( this, &Menu::OnButtonClick ));

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

Немного скриншотов, графон в гуй не завезли - и скрины заболели джпегом. Кстати последние скрины с исправленным хдр и без него.

Samodelkin 29.05.2015 20:04

Ответ: [TrueHorror] - разработка
 
Цитата:

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

mr.DIMAS 29.05.2015 20:15

Ответ: [TrueHorror] - разработка
 
Не понял вопрос. Модальное "окно" это на скрине в менюшке по центру. Фокуса у "окон" все равно нет - ибо это не окно, в привычном понимании. Ну если фокус слетит с главного окна приложения, то перс все равно будет поворачиваться и мышка в меню будет ездить. Чтобы это убрать, мне надо выпилить DirectInput из движка и юзать сообщения окна и RawInput для получения скорости мыши.

Samodelkin 29.05.2015 21:01

Ответ: [TrueHorror] - разработка
 
Речь идёт об окнах GUI. Модальным называется окно, которое блокирует работу приложения, пока от пользователя не будет получен ответ. Это значит, что пока пользователь не нажмёт Да или Нет (или другую доступную кнопку), то он не сможет переключиться на любое другое окно (или в случае игры наверное и продолжить игру не сможет -- хотя тут на усмотрение разработчика). В случае с примером на скрине, главное меню должно быть заблокировано.

mr.DIMAS 29.05.2015 21:38

Ответ: [TrueHorror] - разработка
 
Нет, меню не блокируется, и не надо - например, жмешь Новая игра, а потом вспоминаешь что хочешь загрузиться, и можно смело жать Загрузить игру. Про то что такое модальное окно я знаю, хз почему назвал то окошко модальным.

Samodelkin 29.05.2015 21:55

Ответ: [TrueHorror] - разработка
 
Возможно в данном конкретном случае блокировать и не надо, но этот механизм нужен для структуризации интерфейсов. Если для каждого окна прописывать что блокируется а что нет, то по мере увеличения количества окон код будет увеличиваться в геометрической прогрессии. Я подумал что раз ты начал делать делегаты, то видимо хочешь создать какой-то задел, чтобы в более сложных играх, например RPG создавать сложные интерфейсы, тогда понабиться универсальный подход, предусматривающий работу с перекрытием и иерархией окон, не усложняющий и не увеличивающий размер кода в зависимости от количества окон. Такой же как с делегатами -- они же теперь универсальные и работают с любым количеством действий.

mr.DIMAS 29.05.2015 22:04

Ответ: [TrueHorror] - разработка
 
Действительно, надо будет сделать перекрытие и блокировку окон.

mr.DIMAS 31.05.2015 16:03

Ответ: [TrueHorror] - разработка
 
Понадобились освещаемые частицы. И сразу затык с блендингом словил. Мне нужно отрендерить частицы с аддитивным блендингом для правильного освещения, и в то же время нужно чтобы частицы использовали альфа канал. Если я рендерю с аддитивным - то альфа не учитывается, если учитываю альфу( D3DRS_SRCBLEND = D3DBLEND_SRCALPHA, D3DRS_DESTBLEND = D3DBLEND_INVSRCALPHA ) - то с каждым новым источником света частицы становятся темнее. Что я делаю не так? Может рисовать частицы в текстуру и потом их уже аддитивно рендерить на экран?

Mr_F_ 31.05.2015 16:21

Ответ: [TrueHorror] - разработка
 
Попробуй srcBlend = srcAlpha, destBlend = one. Типа умножил цвет на альфу и сложил с экраном.

Samodelkin 31.05.2015 16:41

Ответ: [TrueHorror] - разработка
 
http://techblog.floorplanner.com/ren...rred-pipeline/
Для частиц самое то, только надо их разбивать на не пересекающиеся группы, и рисовать каждую группу за раз.


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

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