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_F_ 15.10.2014 01:24

Ответ: [TrueHorror] - разработка
 
так речь о том что руками каждую переменную обрабатывать - не комильфо)

mr.DIMAS 15.10.2014 01:29

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

Mr_F_ 15.10.2014 01:46

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

Samodelkin 15.10.2014 02:03

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

Зачем придумывать ещё один механизм.

Если в юнити нельзя его редактор приспособить -- то это как раз проблемы юнити и его пользователей =), а на цпп в своем движке можно сделать как тебе надо.

Arton 15.10.2014 02:04

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

Сообщение от mr.DIMAS (Сообщение 288115)
Чек поинты делать не буду - слишком казуально.

Так и представляю как приходит Samodelkin и доказывает обратное.

Такой способ сохранения сам по себе не "казуальный".

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

Под "не автоматическим" я имею ввиду что для сохранения прогресса игры нужно совершить действие, а не просто добраться до нужного места, как в CoD и Far Cry 3, впрочем и последний способ по своему хорош.

P. S. Блин Samodelkin уже тут...

Samodelkin 15.10.2014 02:37

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

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

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

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

mr.DIMAS 15.10.2014 22:53

Ответ: [TrueHorror] - разработка
 
Посоветуйте аналог ID3DXFont. Текст он рисует отлично, но очень тормозно. Вариант - вытащить глифы из ID3DXFont и рисовать квады меня не сильно радует. Может есть какая-то универсальная библа?

Samodelkin 15.10.2014 23:45

Ответ: [TrueHorror] - разработка
 
Я где-то 20 страниц назад говорил что ID3DXFont тормозной будет.

Я текст вывожу текстурой.

Как вариант, если текст не меняется, можно один раз нарисовать через ID3DXFont и дальше выводить как текстуру.

ABTOMAT 16.10.2014 02:16

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

Сообщение от mr.DIMAS (Сообщение 288153)
ариант - вытащить глифы из ID3DXFont и рисовать квады меня не сильно радует.

Я за 1 день написал текст на квадах, это несложно.
Можно генерить из них буфер уже готовый с текстом (если тот не меняется) и рендерить его. Рикаминдую.

mr.DIMAS 16.10.2014 11:38

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

mr.DIMAS 19.10.2014 15:11

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

"  float4 projPos = mul(float4(p.xyz,1), spotProjMatrix);\n"
        "  projPos.xyz /= projPos.w;\n"
        "  float2 projTexCoords = projPos.xy*0.5+0.5;\n"

        "  float4 spotTextureTexel = float4( 1, 1, 1, 1 );\n"

        "  if( useSpotTexture )\n"
        "    spotTextureTexel = tex2D( spotSampler, projTexCoords );\n "

Семплер настроен на AddressU, AddressV = Clamp

Че за приколы? как убрать тайлинг?

Mr_F_ 19.10.2014 15:31

Ответ: [TrueHorror] - разработка
 
непонятно. clamp должен делать норм - может быть он где-то слетает.

Цитата:

" float4 projPos = mul(float4(p.xyz,1), spotProjMatrix);\n"
ох ох, генерация шейдера из стрингов?
я тут как раз писал на днях на эту тему:
http://ndotl.wordpress.com/2014/10/1...shader-system/

mr.DIMAS 19.10.2014 15:48

Ответ: [TrueHorror] - разработка
 
Да, clamp вообще не ставился из шейдера, я так понял если я собираю не эффект, то настройки семплера внутри кода шейдера игнорируются? Поставил вручную через SetSamplerState и все норм стало.

Про код шейдера - он у меня цельным куском - позже вытащу в файл.

mr.DIMAS 20.10.2014 00:14

Ответ: [TrueHorror] - разработка
 
Хм. Проекция текстуры пятна от источника не масштабируется. В реале когда фонарь подносишь близко к объекту то пятно пропорционально уменьшается, и наоборот. Матрицу проекции строю через D3DXMatrixLookAtRH.
Код:

void Light::BuildSpotProjectionMatrix() {
    btVector3 bEye = globalTransform.getOrigin();
    btVector3 bLookAt = bEye + ( globalTransform.getBasis() * btVector3( 0, 1, 0 )).normalize();
    btVector3 bUp = ( globalTransform.getBasis() * btVector3( 0, 0, -1 )).normalize();

    D3DXVECTOR3 dxEye( bEye.x(), bEye.y(), bEye.z() );
    D3DXVECTOR3 dxLookAt( bLookAt.x(), bLookAt.y(), bLookAt.z() );
    D3DXVECTOR3 dxUp( bUp.x(), bUp.y(), bUp.z() );

    D3DXMatrixLookAtRH( &spotProjectionMatrix, &dxEye, &dxLookAt, &dxUp );
}

Что я делаю не так?

Mr_F_ 20.10.2014 00:24

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


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

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