![]() |
Ответ: [TrueHorror] - разработка
Цитата:
BSP - сложноват для начала. С деревьями работал последний раз года 4 назад. Octree делал - работало очень даже шустро Насчет octree. Оправдано ли? Может производительней будет Quadtree? |
Ответ: [TrueHorror] - разработка
Цитата:
|
Ответ: [TrueHorror] - разработка
Т.к. сюжета в игре еще нету, что если за основу игры взять объекты из SCP? Сделать что-то наподобие SCP: Containment Breach( который на B3D сделан :) ), только без рандомной генерации уровней( а может и с ней ).
http://scpfoundation.ru/scp-list - тут просто огромный список интересных объектов, просто мимо пройти не могу, затянуло. Напишите свое мнение. |
Ответ: [TrueHorror] - разработка
Так я думал ты решил тот сюжет про научного сотрудника юзать. Если нужны детали то могу чего-нибудь доработать.
Да у меня тоже была мысль про SCP. Только тут, имхо, нужно либо целиком игру посвящать SCP, либо делать только несколько отсылок к SCP, мешать SCP в одинаковых пропорциях с чем-то еще не стоит наверное, а то непонятно про что игра будет. Может быть SCP можно еще как источник интересных игровых механик рассматривать, брать их за основу, но потом доводить самостоятельно до оригинальной концепции. Так что если SCP будет заметно в игре, то игрок сразу подумает "Ага, еще одна игра про SCP..." и в его голове сразу будут возникать ассоциации с SCP, и предложить ему какую-то другую игровую вселенную уже будет трудно, потому что он все будет воспринимать как часть вселенной SCP. :crazy: |
Ответ: [TrueHorror] - разработка
Цитата:
Цитата:
P. S. Я то только за, если ты возьмёшь какой нибудь SCP сюжет :) |
Ответ: [TrueHorror] - разработка
Цитата:
Эй, комьютерные игры это же часть искусства, их и так с бизнесом смешали и заюзанными шаблонами напичкали, а еще всякие scp их ниже плинтуса опустят, особенно при бездумном его копировании. :SOS: |
Ответ: [TrueHorror] - разработка
Цитата:
SCP как раз не глупое. Цитата:
Похоже ты на какие-то свои мысли писал... |
Ответ: [TrueHorror] - разработка
Много воды утекло с прошлой версии.
В основном технические изменения. А именно: 1) Переделал рендерер - появились соответствующие компоненты типа IVertexBuffer, ITexture и т.п. Таким образом рендерер под OpenGL написать будет просто. 2) Ускорил загрузку моделек - в т.ч. уровня. Ранее уровень размером в 1,2 мб грузился за 10 сек, сейчас за 1,2 3) Добавил врагов - пока только ближний бой. 4) Добавил меню - в нем минималистические настройки( настройки графики пока не работают ) 5) В скрипты добавил работу с GUI. Мне нужен код который считает тангенты и бинормали. Тогда смогу сделать бамп или параллакс. А пока просто диффузный свет. Еще кидайте мне лог( лежит в data/logs ) и фпс. Скачать |
Ответ: [TrueHorror] - разработка
Вложений: 1
Запустил. Увидел туннель, понравилось, ассоциации с Пенумброй. Решил сменить графику в меню - вылет.
Запустил по новой, нажал играть. Оказался на какой-то дороге в лесу, ночью. Первое что заметил нежелательное присутствие курсора =_=" Затем странный фонарь, когда проводишь внизу него курсором, издаётся щелчок как в меню по кнопкам. На том месте как раз интерфейс: ![]() Огляделся по сторонам, везде было очень темно, ничего не видно. По правую руку, дорого вела в пещеру, в скале, перед которой, топтались двое подозрительных типов. Пошёл к ним. Один из них быстрым шагом двинулся мне на встречу. Как будто только и ждал когда пойду в их сторону, в его левой руке был нож. Стало ясно чем это кончится. Особо не раздумывая я рванул вперёд, к пещере, надеясь спрятаться там. Обогнул первого человека, он махнул на меня ножом, но это было уже неважно. Пробежал мимо второго, забежал внутрь и обернулся что бы посмотреть. Один из мужчин топтался перед входом и по каким-то причинам не мог войти... Любопытство вело меня дальше, в глубь скалы по туннелю. Я пошёл и встретил настоящий страх - перетянутые текстуры: ![]() Перетянутые текстуры заканчивались непроглядной чернотой, я по инерции вбежал в неё, тьма окутала меня со всех сторон. Я замотал головой по сторонам, в надежде увидеть свет. Наконец я увидел три белых точки быстро уходящих вдаль: ![]() "Вылетел с уровня" - подумал я и выключил игру. FPS ~75 Вложение 19929 |
Ответ: [TrueHorror] - разработка
Цитата:
|
Ответ: [TrueHorror] - разработка
Цитата:
этот никогда не подводил |
Ответ: [TrueHorror] - разработка
Затестил - нормально. Меню выглядит многообещающе. Игра короткая, там действительно при входе в тоннель проваливаешься вниз и всё. У меня враги смогли в тоннель забежать. Да на фонаре тоже звук как будто по кнопкам меню проводишь.
Как всегда тестил на медленном железе: в целом довольно шустро работает, но из-за того что скорость игры завязана на fps играть не удобно. С включённой синхронизацией постоянно скачки - то 60, то 30, то 20, с выключенной чуть удобней, но теперь нету верхнего предела и при входе в тоннель например при 200 fps все слишком быстро происходит. Так что fps 20-200 - вот такой разброс. Лог на другой машине, но в нём все нормально - время загрузки scene.cxm 453ms, arrival.cxm 1635ms |
Ответ: [TrueHorror] - разработка
Вложений: 2
Наконец-то разобрался с расчетом нормалей. Ранее нормаль вычислялась только для грани, а теперь для каждой вершины - спасибо Борескову за код :). Теперь можно тангенты и бинормали считать.
Скрины - до и после: |
Ответ: [TrueHorror] - разработка
Вложений: 5
Бамп пока не добавил. Сейчас работаю над модельками и картой, попутно исправляя баги в движке.
На скринах можно заметить z fighting. Сразу вопрос как в ДХ 9 его убрать? Скрины: |
Ответ: [TrueHorror] - разработка
Цитата:
|
Ответ: [TrueHorror] - разработка
Z файтинг убирается увеличением буфера глубины (или его точностью).
В D3DPRESENT_PARAMETERS ставишь AutoDepthStencilFormat в D3DFMT_D32 или D3DFMT_D24S8 или D3DFMT_D32F_LOCKABLE в зависимости от предпочтений. Обычно можно обойтись и 24 битным. Mr_F_ кидал полезную презентацию где говорилось о нелинейном буфере глубины, для больших расстояний, где чем ближе и детальней объект тем точнее буфер глубины. В любом случае во время моделирования старайся делать адекватные расстояния между параллельными плоскостями. Ни на скринах с нормалями ни на скринах зфайтинга я ничего не могу понять - я вижу только ТЕМНОТУ! |
Ответ: [TrueHorror] - разработка
fps 30-60
я смог залезть на фонарь и дальше гулять по горам ,далее вылетел за карту вот и все . кстати , дебаг лога нет ! |
Ответ: [TrueHorror] - разработка
К чему может привести подобный подход( я про return reinterpret_cast< int >( font );?
Код:
int CreateFont( int size, const char * name, int italic, int underlined ) |
Ответ: [TrueHorror] - разработка
Все зависит от тебя - если накосячишь то компилятор тебе не поможет. А так само значение переменной здесь меняться не будет. Но такая штука больше смахивает на костыль и это означает что у тебя проблемы с архитектурой движка.
Кстати эти шрифты (d3dxfont) ужасно медленные, если ими заполнить хотябы половину экрана то fps у меня на i7 и hd5870 падает ниже 10. Настройки качества шрифтов ничего особого не дают. Незнаю есть ли другие решения, я особо не искал, но у себя я в конце концов сделал через текстуры. Так что если ограничишься выводом fps и еще пару-тройку параметров то всё ок, а вот если будешь выводить страницы текста то лучше найти другое решение. |
Ответ: [TrueHorror] - разработка
Я решил обособить движок в отдельную библиотеку. Классовый интерфейс мне не понравился - там куча проблем с ромбовидным наследованием и прочая муть. Поэтому к большинству объектов вне движка теперь можно обратиться с помощью хендлов( в данном случае int ) и функций работающих с ними. Вот и вся история.
|
Ответ: [TrueHorror] - разработка
хендлы сами по себе тоже необязательно заморачивать, это могут быть просто номера объектов в массивах)
|
Ответ: [TrueHorror] - разработка
Более того их необязательно получать сразу. Опять же в качестве примера как я сделал у себя: для большинства объектов достаточно стандартной обработки, которая уже прописана жёстко в коде, например того класса контейнера который содежит эти объекты, а если всё таки потребуется особая работа с объектом то можно получить его локальный хендл/номер_в_массиве, таким образом избавляемся от большой кучи всяких глобальных указателей/хендлов, которые надо где-то хранить и кудато передавать. Кстати в том же d3d9 совсем не обязательно хранить указатели у себя в коде - их всегда можно получить локально через тот объект с которым работаешь. Например если в качестве аргумента в функцию дается IDirect3DTexture9 ты можешь внутри функции получить tex->GetDevice().
ЗЫ: вообще имхо чем большое хардкода (без потери функциональности) - тем лучше, проще и надежнее движок. Все манипуляции с движком лучше делать через скрипты/тулзы и прочие внешние инструменты. |
Ответ: [TrueHorror] - разработка
Цитата:
Немного посидев на юнити, привык к подобному использованию объектов гуи, типа кнопок и прочего. Код:
if( Button( blablabla ) == blablabla ) и немного все прикинув, сделал у себя в двиге также. Создается std::queue для каждого типа объектов( изображение( квад с текстурой ), текст ). Вызывая соотвествующую функцию ( Button, Image ) параметры объекта помещаются в соответствующую очередь, а затем после рендеринга основной геометрии выводятся на экран при общей матрице проекции и стейтах. После очередь очищается. Правильно ли я уловил идею что используют в юнити? |
Ответ: [TrueHorror] - разработка
Цитата:
Думай в первую очередь о простоте кода, ты его для людей пишешь, а не для компьютеров. А для оптимизации выполнения будет достаточно критические участки грамотно написать - это меньше 5% кода наверняка. |
Ответ: [TrueHorror] - разработка
Цитата:
|
Ответ: [TrueHorror] - разработка
Цитата:
|
Ответ: [TrueHorror] - разработка
Цитата:
|
Ответ: [TrueHorror] - разработка
Цитата:
|
Ответ: [TrueHorror] - разработка
Цитата:
|
Ответ: [TrueHorror] - разработка
Цитата:
Дело в том что я уже попробовал писать игру на скриптах. Для этого я завернул все функции движка в луа-обертки, и получилось так что я пишу всю игру на луа. То есть в экзешнике запускается луа виртуальная машина и все выполняется на ней. Но блин, какой смысл писать на луа, когда то же можно написать на си? Гибкость изменения скриптов без перекомпиляции? Сейчас, когда движок отделен от игры, скорость компиляции+линковки игровой части 0,57 сек. Кароч приведи весомые аргументы использования скриптов в маленьком игровом проекте. По поводу опций компилятора. Нужно ли для движка выключить поддержку исключений( в движке не использую их )? Тут довольно хорошие доводы в пользу отключения . |
Ответ: [TrueHorror] - разработка
Цитата:
Цитата:
1. Я пытался сделать универсальный движок. 2. Как следствие пытался сделать максимально гибкий API. ИМХО, проблема заключалась в неправильном понимании движка. Я его считал еще одним уровнем абстракции и обобщения более низкоуровневого функционала. На самом деле движок должен выполнять более конкретные задачи. Сейчас я считаю что делать универсальный движок в корне неверное решение - для этих целей есть UDK, Unity3D и прочие решения. Лучше определиться с парой-тройкой игр (или одной большой игрой), которые собираешься делать и исходить из того что нужно для этой игры. Не пытаться делать что то еще "на всякий случай" - только то что необходимо. Как следствие отсюда можно легко обнаружить что весь предполагаемый гибкий функционал движка превращается в вполне понятный жесткий последовательный набор действий, для воспроизведения/рендера игровой медии. Таким образом никаких мега гибких API как в тех же библиотеках dxsdk вообще не нужно. Если правильно подобрать набор тулз для запланированных проектов, можно в целом обойтись только ими и минимальными возможностями скриптинга. Для более сложных случаев возможно потребуется написать библиотеку с игровыми кодами. Для маленького игрового проекта движок не нужен вообще - используй функционал dx напрямую из игровых кодов. |
Ответ: [TrueHorror] - разработка
Появился вопрос про правильную организацию рендеринга. Алгоритм описывать долго, поэтому код( unordered_map<IDirect3DTexture9*,vector<Mesh*>> g_meshes )
Код:
for( auto groupIterator = g_meshes.begin(); groupIterator != g_meshes.end(); ++groupIterator ) Код:
g_device->SetTexture( 0, A ); Каждый меш отрисовываем всеми источниками света с аддитивным блендингом. Есть какие либо замечания\поправки\баги в алгоритме? |
Ответ: [TrueHorror] - разработка
Группировать по текстуре, шейдерам, эффектам это правильно. Но вот рисовать что-то более одного раза без особой на то причины - странно. Нельзя заранее определить какие источники света действуют на примитив и список с ними передать в пиксельный шейдер, который сразу сложит результат яркости для каждого пикселя? Еще посмотри deferred shading - необязательно сразу освещение целиком в screen space переводить, но кое что оттуда можно полезное взять, например методы локализации источников света.
|
Ответ: [TrueHorror] - разработка
Цитата:
Код:
if( !LightIntersectsMesh( mesh, light )) Цитата:
|
Ответ: [TrueHorror] - разработка
Цитата:
|
Ответ: [TrueHorror] - разработка
Цитата:
Цитата:
|
Ответ: [TrueHorror] - разработка
Цитата:
|
Ответ: [TrueHorror] - разработка
Цитата:
|
Ответ: [TrueHorror] - разработка
Цитата:
Цитата:
|
Ответ: [TrueHorror] - разработка
Проверьте на производительность, ну и на баги.
Из возможностей пока что только перетаскивание да бросание предметов, левая и правая кнопки мыши соответственно. Напишите здесь фпс при разном количестве дипов. Буду очень благодарен http://rghost.ru/51575426 |
Ответ: [TrueHorror] - разработка
Цитата:
GeForce 9400M ~45 fps Понравилась рука с монтировкой свисающая с потолка в шахте. Интересный комичный и трешовый ход напрашивается: Чел заходит в шахту, в какой-то момент с потолка свешиватся рука мертвеца с монтировкой. Игрок откладывает пару кирпичей, вооружается монтировкой из руки и идёт дальше. |
Ответ: [TrueHorror] - разработка
60 fps везде.
Win 8.1 x64 i7 930 hd5870 Еще радует доплер эффект шагов когда чел начинает ускоряться в свободном падении :-D Ящики и бочки берутся и кидаются. Мешки 25кг поднять не может. В пещере ближняя плоскость отсечения ацки выглядит. Если ее поправишь то можно и точку хвата предметов сделать ближе, а то руки какие то длинные получаются. Возможно попозже потестирую на ноуте - тогда смогу разный fps при разных dip'ах проверить. Кстати openal уже не скачаешь с сайта creativelabs - только со сторонних источников, походу они забили на него. Я думаю его лучше комплектовать с игрой сразу. Или вообще без него делать. |
Ответ: [TrueHorror] - разработка
На моем говнобуке с Intel GMA 3150 выдает 17 фпс при 20 дипах, и 12 при 52. Только недавно про него вспомнил :)
|
Ответ: [TrueHorror] - разработка
Win 7 x32
Dual Core 2.2 ГГц NVIDIA G105M 1366x768 (предыдущий конфиг с hd5870 был в 1080р) 60 fps, когда dip'ов больше 20 то 30 fps. Опять же нужно убрать синхронизацию чтобы выяснить какое конкретно значение между 30 и 60 показывать будет. Вообще производительность на лицо, карта то вроде всё более детальная становится, а скорость уже вполне приемлемая, когда первый раз запускал там слайдшоу было меньше 10. Для сравнения Dear Esther на этом ноуте нормально идет на максимуме. |
Ответ: [TrueHorror] - разработка
vista x32
Dual Core 2.2 ГГц ati mobility radeon hd 4650 1366x768 всегда и везде 60фпс иногда 61 |
Ответ: [TrueHorror] - разработка
Научил движок постэффектам.
Но сразу картинка стала мыльной как на пс3. Все из-за того что текстура создаваемая как рендертаргет создается кратной степени двойки. Как с этим бороться. Вообще какие подводные камни есть при рендеринге в текстуру. |
Ответ: [TrueHorror] - разработка
Цитата:
ещё, если юзаешь DX9, то при чтении экранной тексы в постэффекте, надо сдвигать текскоорды на полтекселя, иначе тоже будет мыло: http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx |
Ответ: [TrueHorror] - разработка
Теперь создаю текстуру так
Код:
D3DXCreateTexture( g_device, g_width, g_height, 1, D3DUSAGE_RENDERTARGET, D3DFMT_X8R8G8B8, D3DPOOL_DEFAULT, &g_renderTexture ); Квад так( спасибо за ссылку ) Код:
g_device->CreateVertexBuffer( 6 * sizeof( Vertex2D ), D3DUSAGE_WRITEONLY, D3DFVF_XYZ | D3DFVF_TEX1, D3DPOOL_DEFAULT, &g_quadVB, 0 ); А на сколько производительность падает при отрисовке сначала в текстуру, а затем квада с текстурой? |
Ответ: [TrueHorror] - разработка
Цитата:
где можно провернуть всё в 1 кваде, лучше проворачивать в одном, а не разделять на несколько. |
Ответ: [TrueHorror] - разработка
Вложений: 6
Проверьте пожалуйста работу постэффектов. В особенности меня интересует работа на интеловской графике и нвидиа.
В самой игре теперь можно умереть. Урон наносится пока только объектами брошенными( мешок с 3 метров на бошку, бочка :-D ). Так же есть недоинвентарь( на клавише Tab ). Добавил звуки ударов для объектов. Ну и как обычно пишите фпс. http://rghost.ru/51617339 |
Ответ: [TrueHorror] - разработка
Все нормально работает.
60 fps на hd5870. Физика стала лучше, хотя пока по прежнему все кажется надутым и невесомым. Когда сдвигается изображение в пост эффекте, то кусок верхней части оказывается внизу. Если вверху было яркое небо, а внизу темная земля то яркая полоса особенно неприятно выглядит. Один из вариантов как это можно быстро поправить: сделать дополнительный пост эффект затемнения (покраснения если причиняется вред игроку) по радиусу, чтобы краев не было видно. Проблема с буфером глубины по прежнему заметна, разве рекомендации выше не помогли? Тут вроде не такие уж большие расстояния. У тебя кстати меши для коллизии берутся прямо из геометрии карты как есть, или предусматривается более упрощенный вариант? Еще хотел спросить будут ли предусмотрены оптимизирующие ограничения на прорисовку карты чтобы теоретически можно было делать неограниченные локации, или будет определенный лимит по размеру? |
Ответ: [TrueHorror] - разработка
Цитата:
Цитата:
|
Ответ: [TrueHorror] - разработка
![]() |
Ответ: [TrueHorror] - разработка
Цитата:
Курсор опять не убран. FPS 75 GF GTS 450 GDDR5 1Gb Убил себя мешком по голове. Физика не отлажена, коробки часто не могут остановится и заглючивают на одном месте, из-за этого раздражающий стучат. Зашёл в туннель, увидел торчащую из стенки руку с ножом, собирался отложить кирпичей но передумал. Свалился за карту. Уровень сам полностью делала? Цитата:
Я сам только со второго захода прочитал пост и разглядел ссылку :-) |
Ответ: [TrueHorror] - разработка
Персонаж слишком высокий.
И да, курсор реально бесит. В тоннеле есть что нибудь? Просто там темно, я попробовал бежать наобум но заплутал видать. Или фонарик может есть какой? На будущее - пиши в readme управление. |
Ответ: [TrueHorror] - разработка
Цитата:
Я не включаю их в игру потому, что там уже начинается основное действие, а движок еще не отлажен. Поэтому пока только уровень "Прибытие" для тестов. Про управление в readme - обязательно сделаю. |
Ответ: [TrueHorror] - разработка
Вложений: 5
По-тихому пилю сюжетку - проследить за сюжетом можно по запискам найденным на уровнях. Уровня пока только 2 :( .
Геймплея пока от силы минут на 10-15. Появилась наконец-таки хоррор атмосфера. Скримеры в наличии. Скачать Upd: Скрины |
Ответ: [TrueHorror] - разработка
Цитата:
|
Ответ: [TrueHorror] - разработка
Цитата:
Цитата:
И вообще. Главный герой шарится по шахте с одной только зажигалкой. Етить о каком освещении можно говорить в заброшенной шахте? Привыкли к скайриму и обле с его освещенными подземельями - вот и залупаетесь на темноту. Также хочу напомнить, что жанр игры - хоррор - он обязывает делать все темным. Главная фишка не видеть что тебя ждет. Это и пугает в основном |
Ответ: [TrueHorror] - разработка
Потрачено ?
|
Ответ: [TrueHorror] - разработка
Поиграл:) ну, в принципе неплохо...
Музыка и вообще все звуки очень громкие, ну зашкаливает аж... Идея с бумажкой, которая преследует меня с начало игры, постоянно исчезая между полигонами:-D это очень круто!:super: прям "SCP" как тебе это удалось Я не знаю, но получилось круто.:ok: Но Я её всё таки взорвал.:P Надпись которая с верху, красная, спустить на середину экрана - сделать больше! Я например не сразу понял, что это для меня написано...:-) Частицы хавают FPS! сделай реже их что-ли. Не, не хочу сказать что прям Игра! но факт, что, что-то похожее на игру тут, да Я уже вижу!:ok: |
Ответ: [TrueHorror] - разработка
Много раз недоумевал почему не могу пройти дальше, оказалось фича от разраба, невидимую стену не пройдёшь пока не прочитаешь, не сделаешь что-то. Не надо так!
Не понимал как брать предметы, жму ЛКМ + E и нифга, оказывается надо поднять предмет ЛКМ, а потом уже жать E. Взорвал бетон, то ли сдох, то ли что, всё красное, выключил игру. FPS 76 Полёт нормальный. Покачивание камеры лучше убрать, как то не очень. Молодец! Так держать! :super: P. S. Wegox, тебя на видео неслышно. Только как в хоррорах, на фоне демонический голос скрипит, на периферии слуха. P. P. S. mr.DIMAS, держи урок по моделированию пещеры, довольна эффективный способ и ещё полезное. Для травы и пеньков используй вот это #589. |
Ответ: [TrueHorror] - разработка
Цитата:
|
Ответ: [TrueHorror] - разработка
Цитата:
Цитата:
А почему? Вот ведь правда: там источника света нигде нет, а свет откуда-то есть. Нереалистично блин! Зато рука не тянется к регулировке яркости экрана. Почему в (почти) всех играх за всю игру персонажи ни разу не посрали? Потому что это не улучшает игру. Почему в шутерах можно перезарядить полупустой магазин и положить остаток, соответственно, в рюкзак, а потом при перезарядке в загашнике только целые магазины (если только патронов достаточно на целый)? Нужно же было патроны пальцами досовать до целого в тот, который вынули! Почему аптечки в играх "съедаются" мгновенно, да ещё и лечат переломы и разрывы тканей (где вообще без хирурга не обойтись) ? Потому что это всё дополнительные неудобства, которые взамен ничего интересного не предлагают. Реализм и нудятина — это разные вещи. А да кстати ГГ с зажигалкой не боится взрыва метана? Цитата:
|
Часовой пояс GMT +4, время: 06:42. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot