Войти
Gamedev LectureСтатьи

Лекция #25. Постмортем игры "Трюкмания" [Лектор - Jihar] (3 стр)

Автор:

[23:02] <Jihar_> <kotenok_GJ> а про арт-пайплайн и сборку ресурсов что-нибудь не расскажешь? Как игра грузила тестуры? texture = LoadTexture("textures\swetofor.jpg")? texture = LoadTexture(GetConfigParam("SWETOFOR")) ?
[23:02] <Jihar_> <kotenok_GJ> текстуры - просто как пример загрузки внешних ресурсов.
[23:02] <Jihar_> тут не один уровень
[23:02] <Jihar_> к примеру текстуры
[23:02] <Jihar_> есть низкоуровневый менеджер, который минимизирует фрагментацию текс памяти (уж как позволяет дх)
[23:03] <Jihar_> наружу выдается аля хендл тестуры, с реф каунтами
[23:03] <Jihar_> то же самое к примеру с моделями - есть геометри, есть инстанс в мире
[23:04] <Jihar_> возможно отличный от базового инстанс - помятый или разрушенный например
[23:04] <Jihar_> наруже работа с ними одинакова
[23:04] <Jihar_> примерно так же и с остальными ресурсами
[23:04] <Jihar_> со многими попроще конечно (со скриптами например)
[23:05] <Jihar_> текстуры ссылаются по имени, те путь не учитывается

[23:05] <Zeux> Ресурсы игры в архиве? Свой формат? Сжатие / криптование?
[23:06] <Jihar_> ресурсы игры в своем паке (архивация есть но не юзается), есть криптование
[23:06] <Jihar_> все текстовые данные игры перед релизом были зашифрованы :)

[23:08] <Jihar_> <kotenok_GJ> Как игра общалась с низкоуровневыми подсистемами?
[23:08] <Jihar_> ну все лоу левел системы выделены в отдельные модули - звук, физика, рендер
[23:09] <Jihar_> наружу - манагеры всего этого
[23:09] <Jihar_> через которые грузятся модели, текстуры, миры итд итп
[23:09] <Jihar_> подробнее стоит рассказывать?

[23:10] <Jihar_> <Sanyavirus> какие графические фейки юзались в движке? ( я про всякие deferred shading, hdr, parallax mapping, embm и т.д. ) ?
[23:10] <Jihar_> ну в первую очередь у нас лайтмепы + динамическое освещение
[23:11] <Jihar_> те есть разделение на прекомпьютид свет и динамик
[23:11] <Jihar_> что используется при расчете лайтмепов - долгая очень тема
[23:11] <Jihar_> процесс довольно долгий но и результат отличный :)
[23:12] <xmvlad> радиосити?
[23:15] <Jihar_> xmvlad не стану отвечать на этот вопрос, т.к. точного ответа не знаю. если интересно, мог ответить позже
[23:12] <Jihar_> в реал тайме - per-pixel освещение
[23:12] <Jihar_> плюс пост эффекты
[23:12] <Jihar_> бамп в гонках не очень хорошо чебя ведет, т.к. больно мног ресурсов жрет
[23:13] <Jihar_> да и не видно его на скорости-то 200 км\ч
[23:13] <Jihar_> сейчас есть уже HDR
[23:13] <Jihar_> постэффекты - различные  motion blur
[23:13] <Jihar_> тот же glow
[23:13] <Jihar_> есть блеск асфальта как в бёрнауте :)
[23:14] <Jihar_> да я забыл еще наверное учу всего...
[23:23] <Jihar_> во еще у нас есть объемный туман :)

[23:14] <Zeux> а вы не забыли выключить поддержку perfhud-а перед релизом? ;-)
[23:14] <Jihar_> Zeux не забыли :)

[23:14] <Zeux> Статистика кадра - сколько дипов? Полигонаж в кадре (средний, пиковый?)
[23:15] <Jihar_> Zeux точной не скажу, т.к. очень давно ее не смотрел
[23:16] <Jihar_> полигонаж средний тыщ 200 примерно, пиковый раза в полтора выше
[23:16] <Jihar_> дипов довольно много, т.к. большое количество текстур и разных моделей
[23:16] <Jihar_> ну кто играл думаю заметил
[23:17] <Zeux> ну ты называй число, больше, чем в NFS MW все равно не будет :)
[23:17] <Jihar_> число - не хочу врать, опять же интересно - запужу под худом посмотрю :)
[23:18] <Jihar_> много кароч, т.к. оптимизации не со стороны програмеров поддается с трудом
[23:18] <Jihar_> а артистам хочется вот тут такой столб а тут такой...

[23:17] <Jihar_> <kotenok_GJ> и вопрос сбоку - как сопрягался скрипт и С++ :) Ручками? Что-то генерировалось автоматически?
[23:19] <Jihar_> есть механизм биндинга С++ кода в скрипты
[23:19] <Jihar_> аля функции
[23:19] <Jihar_> стандартный механизм в принципе
[23:20] <Jihar_> надо что-то сделать - написал обвязку на С++ для получения в скрипте нужных данных, затем ворочай их как хочешь
[23:20] <Jihar_> кстати вот по отзывам - народу понравилось наше меню в 3д
[23:20] <Jihar_> а всех моделлеров и програмеров оно достало просто жуть
[23:20] <Jihar_> в след проектах у нас будет новый гуи
[23:20] <Jihar_> на хмл ну итд, все как у людей :)

[23:21] <Zeux> Шейдеры - много ли? Использовались ли убер-шейдеры / микро-шейдеры? Или просто под каждый эффект шейдер писался вручную? Есть ли контроль параметров шейдеров дизайнерами?
[23:21] <Zeux> D3DX FX или свое что-то?
[23:23] <Jihar_> артистам доступна система материалов
[23:23] <Jihar_> которые они могут изменять
[23:24] <Jihar_> не так много параметров чтобы накосячить но более чем достаточно чтобы получить что требуется
[23:25] <Jihar_> коэффициенты отражения\преломления, прозрачность, блескучесть, рассеивание
[23:25] <Jihar_> есть база стандартных материалов, аля камень стекло металл итд
[23:25] <Jihar_> все шейдеры на асме
[23:25] <Jihar_> с общей базой
[23:26] <Jihar_> также параметры для физики - коэфф трения, шершавость итд

[23:26] <Zeux> Скиннинг, тени, партиклы - на GPU / на CPU?
[23:27] <Jihar_> скининг в гонках :))
[23:27] <Zeux> ну, я не знаю, какие гонки у вас
[23:27] <Zeux> но в NFS MW и в Carmaggedone есть персонажи :)
[23:28] <Jihar_> есть инверс кинематика, где сейчас скининг - хз, тк у нас анимация людей встречается только в паре роликов и всё
[23:29] <Jihar_> партиклы на CPU
[23:29] <Jihar_> у нас основная нагрузка на GPU идет с геометрии и текcтур
[23:29] <Jihar_> вешать туда же партиклы смысла нету, хотя не такая уж сложная задача
[23:30] <Jihar_> тени - если говорить про статику то в реал тайме на гпу, т.к. лайтмепы уже посчитаны :)
[23:30] <Jihar_> в реал тайме шедоу мапы
[23:31] <Zeux> шадоу мапы обычные или PSM / TSM / еще что-то?
[23:31] <Jihar_> обычные
[23:31] <Jihar_> тень отбрасывает в основном только машины, остальные тени можно и в лайт мепы

[23:31] <Zeux> Shading paths - какие есть? Держите ли безшейдерные карты? Есть ли эффекты, использующие SM3.0? Vertex textures? Render 2 vb? Instancing?
[23:32] <Jihar_> у нас в основном ps 1.x
[23:33] <Jihar_> так что насчет инстансинга, Vertex textures, Render 2 vb думаю сразу ответил :)
[23:33] <Jihar_> только особо сложные эффекты аля HDR на 2 шейдерах
[23:33] <Jihar_> поддержка безшейдерных карт есть
[23:33] <Jihar_> была покрайней мере, только было решено от нее отказаться
[23:34] <Jihar_> конкретно трюкмания не станет работать на безшейдерных картах
[23:34] <Jihar_> тут самая большая проблема на самом деле арт, чтобы он выглядел прилично без шейдеров
[23:35] <Jihar_> HDR и на 1.4 есть вроде
[23:35] <Jihar_> довольно демократичная политика у нас в этом плане. хорошо или плохо - не так просто сказать

[23:36] <Zeux> Тени - используете ли мягкие тени в каком-нибудь виде (тупой блур? PCF? VSM? etc.)
[23:36] <Jihar_> блюр для теней есть, что конкретно - я честно говоря не интересовался
[23:36] <Jihar_> так уж получилось что графику не я програмлю :)
[23:37] <Jihar_> у меня под рукой даже презентаций нашего движка нет... так что ответить не смогу

[23:37] <Zeux> HDR - это fp16 буферы или всякие RGBE и подобные техники? (перефразируя - держите ли одновременно HDR и MSAA?)
[23:39] <Jihar_> могу сказать что фейковый вариант точно есть
[23:39] <Jihar_> как работают - одновременно или нет итд - не могу сказать
[23:39] <Jihar_> точно знаю что одновременно не держим, нет столько ресурсов

[23:40] <Jihar_> <kotenok_GJ> подвопрос - как делилась игра между скриптами и С++
[23:41] <Jihar_> бОльшая часть логики на скриптах
[23:41] <Jihar_> логика именно заездов
[23:41] <Jihar_> на С++ лишь часть отвечающая за прогресс игрока в игре, апгрейды итд
[23:41] <Jihar_> на скриптах - собсно сама гонка. ее смысл (тупо по кругу, какой-то слалом или экстрим)
[23:42] <Jihar_> маршрут гонки, противники - на скриптах

[23:40] <Zeux> Про ресурсы (вспомнилось). Какие ресурсы хранятся в текстовом виде в релизе / хранились на этапе разработки? Это был/есть XML или свой формат?
[23:42] <Jihar_> на этапе разработки большинство ресурсов в текстовом виде была
[23:43] <Jihar_> свой формат, хотя сейчас переходим на хмл+перегонка в бин для релиза
[23:43] <Jihar_> но всякие ини все равно остаются в текстовом виде, только зашифрованном
[23:44] <Jihar_> ини, скрипты, настройки машин - в тексте, остальное в бинарном виде в релизе

[23:46] <Jihar_> <Sanyavirus> может про мултиплеер расскажешь (интересно)? что юзали TCP/ IP, UDP, реалезацию сетевого движка ?
[23:46] <Jihar_> мультплеер - свой протокол на базе UDP для локалки
[23:46] <Jihar_> игры через интеренет нет по некоторым причинам
[23:47] <Jihar_> вся интересность сет движка в физике
[23:47] <Jihar_> у нас есть возможность гонять приличной толпой - до 8 игроков, плюс трафик, плюс различные сбиваемые объекты, та же возможность разрушения моделей
[23:48] <Jihar_> все это работает быстро, честно говоря у конкурентов сетевого режима (говорим про локалку) не встречал

Страницы: 1 2 3 4 Следующая »

2 июня 2006

Комментарии [12]