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

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

Автор:

Disclaimer: некоторые опечатки поправлены, некоторые реплики передвинуты. полный лог

[21:40] <Jihar_> ок. меня кличут Жихарь, работаю в фирме KVision
[21:40] <Jihar_> не так давно мы закончили свой первый проект - Трюкмания : гонки экстремалов, издатель Акелла
[21:41] <Jihar_> игра - аркадные гонки в абстрактном городе
[21:41] <Jihar_> разработка велась примерно 3 года, из них почти 2 с моим участием
[21:42] <Jihar_> движок - свой, написанный можно сказать с нуля
[21:42] <Jihar_> когда я пришел работать в фирму, костяк уже был готов
[21:42] <Jihar_> я думаю интересно будет именно программная часть?
[21:43] <Jihar_> ошибок у нас было много, первый проект все таки...

[21:43] <Jihar_> итак, самое главное
[21:43] <Jihar_> постановка задач. это примерно 90% успеха и от этого зависит скорость разработки
[21:44] <Jihar_> приведу пример - была у меня задача, написать утилитку для артистов, аля артист менеджер для удобной работы
[21:44] <Jihar_> те чтобы она могда выгрузить модель\статику в наш формат, сконвертить текстуры, также конвертить пачку моделей\миров
[21:45] <Jihar_> затем стали добавляться фичи - проверки текстур например (есть ли одинаковые текстуры с разными именами, миррор\скейл)
[21:46] <Jihar_> таких фич захотелось очень много, в результате сейчас эта утилита хоть и работает, но улучшать ее очень сложно
[21:46] <Jihar_> надеюсь мысль понятна - когда пишешь для себя, сроки разработки не сильно волнуют
[21:47] <Jihar_> когда пишешь с учетом сроков - лучше периодически (когда еще не поздно) тратить время на рефакторинг, это время очень быстро окупится
[21:47] <Jihar_> прописные истины, да. но как всегда про такие истины и забывают...

[21:50] <Jihar_> проект на самом деле очень технологичный. изначально в игре было больше фич (фичекат подлый), и сейчас база очень солидная
[21:50] <Jihar_> процесс достаточно обычно у нас построен - есть база (в трюкмании ВСС, сейчас свн)
[21:50] <Jihar_> коменты - доксиген стайл, свой стиль кодирования
[21:51] <Jihar_> пробовали кучу различных таск трекеров, баг трекеров итд, до сих пор находимся в поиске идеального решения

[21:53] <xmvlad> тулсет свой был или в максе?
[21:53] <Jihar_> тулсет на самом деле достаточно разнообразный
[21:54] <Jihar_> например расставить модельки в мире - можно их расставить в максе, при выгрузке плагин выцепит модельки отдельно. можно расстаивть модельки в движке

[21:54] <kas> можешь про арт пайплайн рассказать, коль уж о тулсете заговорили?
[21:54] <kas> т.е. путь от набота триуглов в максе до модельки в игре
[21:54] <Jihar_> осноной пакет - 3ds max
[21:55] <Jihar_> есть возможность юзать и майю
[21:55] <Jihar_> значит модели, миры проходят через плагины к этим программам. сейчас это практически монстры - встроено большое количество проверок геометрии
[21:56] <Jihar_> миры после выгрузки из DCC проходят доп обработку - расчет лайтмепов
[21:56] <Jihar_> эту доп обработку можно запустить и при выгрзуке из DCC
[21:57] <Jihar_> ну те старались все автоматизировать, чтобы не сильно напрягать моделлеров. в том числе и проверки для этого - достаточно просто артисты находят различные ошибки в геометрии, некоторые советы по оптимизации моделей
[21:58] <Jihar_> для своих форматов есть различные утилиты - например для моделей редактор моделей - отредактить какие-то свойства, поиграться с цветами итд итп (это же можно делать и в плагине для DCC)

[21:58] <kas> ето один мегаридактор? или несколько маленьких?
[21:59] <Jihar_> можно сказать это сборная солянка - т.е. часть возможностей есть и в виде отдельных утилит, они же доступны из плагиноы
[21:59] <Jihar_> те артист настраивает модельку, она ушла в производство. чтобы затем изменить какие-то игровые свой-ва не надо ее выгружать заново
[22:00] <Jihar_> в том же редакторе моделей настраиваются машины. с физикой куча наворотов конечно. например расчет экспериментов - после настройки можно посмотреть графики (начиная с бангальных разгон до 100 км\ч)
[22:01] <Jihar_> есть те же тесты физики - их куча на самом деле, проверяющих различные параметры. те разгон до 100 км\ч - берем значение теоретическое, ставим машину на землю и смотрим за сколько она реально разгоняется. сравниваем.. так тестятся почти все параметры физики (а их у нас много:))

[22:01] <kas> физика своя?
[22:01] <Jihar_> физика полностью своя, да

[22:02] <Jihar_> редаткора миров своего нету (те возможность создания геометрии в своей тулзе)
[22:03] <Jihar_> но есть различные вспомогательные утилиты - для расстановки моделей например, редактирования карт АИ

[22:02] <kas> а сколько кодеров было и как они распределены были?
[22:03] <Jihar_> кодеров - по разному в разное время
[22:03] <Jihar_> закончили проект - нас было трое, один на физике и рендере в основном, второй на аи, и третий я :)

[22:04] <kas> а гейдизайнеров/дизайнеров?
[22:04] <Jihar_> геймдизайнер один, артистов до 20 человек было
[22:05] <Jihar_> текучка артистов большая была, т.к. найти профи в твери сложновато (да и програмеров тоже, как и всех остальных)
[22:05] <Jihar_> поэтому артистов учили по несколько месяцев, смотрели что получается ну итд
[22:05] <Jihar_> некоторые артисты работают сейчас в москве :)

[22:06] <kas> расскажи про интероп
[22:07] <kas> ну, т.е. как от гейдизайнера доходило до простого негра, процесс
[22:08] <Jihar_> ну это итеративный процесс
[22:08] <Jihar_> есть задание - делаем трек, такие-то параметры
[22:08] <Jihar_> сначала делается чертеж трека с дорогами, зданиями итд
[22:08] <Jihar_> после нескольких итераций этот чертеж утверждается, попадает в разработку моделлеру
[22:09] <Jihar_> моделлер собсно моделит статику - те дороги, здания
[22:09] <Jihar_> затем этот тре подвергается заселению моделями
[22:10] <Jihar_> на всех этапах само собой есть влияние геймдизайнера - те что надо поправить, что не так
[22:10] <Jihar_> где не удобно гонять к примеру
[22:10] <Jihar_> несколько треков (на мой взгляд интереных) не попали в игру - сложно гонять на них было, обычному игроку не понравилось бы
[22:11] <Jihar_> по трекам создавались списки нужных зданий\моделей само собой, на этом этапе мог подключаться другой моделлер
[22:11] <Jihar_> практиковали разработку треков по кускам - те один делает этот кусок, другой этот
[22:11] <Jihar_> но очень сложно - различается все-таки стиль, не просто потом это объединять, в текущем проекте один трек делает один артист практически на 100%

[22:11] <kas> а как ето всё разруливалось?
[22:11] <kas> т.е. не было генерального плана у каждого на весь проект?
[22:11] <kas> а по мере необходимости?
[22:12] <Jihar_> про генеральный план артистов сложно сказать, думаю он часто корректировался :)
[22:12] <Jihar_> появлялись затыки само собой перидически, переброска людей на узкие места итд
[22:13] <Jihar_> разруливолась не так просто как кажется конечно... количество арта у нас было очень большое
[22:13] <Jihar_> и с каждым днем все больше :)
[22:14] <Jihar_> были люди, которые отвечали за арт. не за его создание, а за его обработку
[22:14] <Jihar_> они можно сказать одобряли арт с технической точки зрения и поддерживали общую базу арта в нужном виде

[22:14] <kas> а очень большое ето сколько? икак контролировали? под вершионингом лежало?
[22:15] <Jihar_> под вершионингом не лежало, артисты мутили это сами (сейчас пытаемся научить черепахе)
[22:15] <Jihar_> очень большое - несколько тысяч моделей, несколько тысяч текстур
[22:15] <Jihar_> больше десяти :)

[22:15] <neteraser> Jihar: какие были нововведения в девпроцессе и чем обусловлены?
[22:16] <Jihar_> нововведения периодически появлялись, да. в основном подстройка под людей
[22:15] <Jihar_> те изначальная схема была слишком строгой, ее постоянно ослабляли для комфорта людей

[22:15] <neteraser> Jihar: физика чисто игровая ?
[22:16] <Jihar_> физика - что значит чисто игровая?
[22:17] <Jihar_> физика машины у нас проработана почти до болтиков

[22:17] <neteraser> сколько у вас кода ушло? будете выкидывать или мигрировать?
[22:18] <Jihar_> кода чисто специфичного не так уж и много
[22:18] <Jihar_> специфичного м\именно для трюкмании, а не для гонок
[22:18] <Jihar_> сейчас как раз глобальный рефакторинг у нас
[22:19] <Jihar_> некоторые системы не будутзатрагиваться (например рендер), некоторые с нуля переписаны, некоторые разбиты на части
[22:19] <Jihar_> например класс СМашина у нас очень толстый
[22:19] <neteraser> а CCamera?
[22:21] <Jihar_> классы камер разбиты достаточно хорошо
[22:21] <Jihar_> тем более различных камер куча
[22:21] <Jihar_> разные камеры в движке (аля полетать), в встроенных утилитах, камера машины другая
[22:21] <Jihar_> динаические камеры на треках - тоже другие

[22:19] <neteraser> сколько всего кода в мб и миллионовстрок?
[22:20] <Jihar_> код в метрах щас померю
[22:20] <Jihar_> всего 14 метров чисто игрового кода
[22:20] <Jihar_> без учета утилит
[22:21] <neteraser> немало

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

2 июня 2006

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