Version support is not available for this paste.

Pasted by Zeux as text at 2006-06-02 00:55:19 MSK and set expiration to never.

Paste will expire never.

  1. [21:35] <Jihar_> привет )
  2. [21:36] <Jihar_> что-то я поздновато видно....
  3. [21:36] <ShT|B33R> Превед
  4. [21:36] <ShT|B33R> Мы ждем
  5. [21:37] <Jihar_> мы?
  6. [21:37] <Jihar_> вроде ты один
  7. [21:37] <Jihar_> все спят уже
  8. [21:38] <Jihar_> __ALL__ привет
  9. [21:38] <Jihar_> :)
  10. [21:38] <Sanyavirus> превед Жихарь :)
  11. [21:38] <Sanyavirus> давай начинай лекцию :)
  12. [21:38] <Sanyavirus> Zeux +m :)
  13. [21:39] * ShT|B33R изабражает авацыю
  14. [21:39] <const> лекцыйу
  15. [21:39] <const> !!!!
  16. [21:39] * ShT|B33R свистит и арёт УУУУУУУ, ДАВАЙ!!!
  17. [21:39] * const встал и громко апплодирует
  18. [21:39] * Jihar_ всем спасибо :)
  19. [21:39] <Jihar_> ну давайте начнем тогда
  20. [21:39] * _xmvlad- is now known as xmvlad
  21. [21:40] * Sanyavirus slaps Zeux around a bit with a large trout
  22. [21:40] <Jihar_> ок. меня кличут Жихарь, работаю в фирме KVision
  23. [21:40] * ChanServ sets mode: +o kas
  24. [21:40] <Jihar_> не так давно мы закончили свой первый проект - Трюкмания : гонки экстремалов, издатель Акелла
  25. [21:40] * kas sets mode: +v Jihar_
  26. [21:40] <ShT|B33R> Jihar_, а слово "Jihad" имеет какое-то к тебе отношение?
  27. [21:41] * kas sets mode: +m
  28. [21:41] <Jihar_> ShT|B33R нет
  29. [21:41] <kas> йоу, жги :)
  30. [21:41] <Jihar_> игра - аркадные гонки в абстрактном городе
  31. [21:41] <Jihar_> разработка велась примерно 3 года, из них почти 2 с моим участием
  32. [21:42] <Jihar_> движок - свой, написанный можно сказать с нуля
  33. [21:42] <Jihar_> когда я пришел работать в фирму, костяк уже был готов
  34. [21:42] <Jihar_> я думаю интересно будет именно программная часть?
  35. [21:43] <Jihar_> ошибок у нас было много, первый проект все таки...
  36. [21:43] <kas> не только
  37. [21:43] <Jihar_> ок
  38. [21:43] <Jihar_> итак, самой главное
  39. [21:43] <Jihar_> постановка задач. это примерно 90% успеха и от этого зависит скорость разработки
  40. [21:44] <Jihar_> приведу пример - была у меня задача, написать утилитку для артистов, аля артист менеджер для удобной работы
  41. [21:44] <Jihar_> те чтобы она могда выгрузить модель\статику в наш формат, сконвертить текстуры, также конвертить пачку моделей\миров
  42. [21:45] <Jihar_> затем стали добавляться фичи - проверки текстур например (есть ли одинаковые текстуры с разными именами, миррор\скейл)
  43. [21:46] <Jihar_> таких фич захотелось очень много, в результате сейчас эта утилита хоть и работает, но улучшать ее очень сложно
  44. [21:46] <Jihar_> надеюсь мысль понятна - когда пишешь для себя, сроки разработки не сильно волнуют
  45. [21:47] <kas> давай вообщем сначала, т.е. строчек кода столькото, графика своя, физика своя, звук свой, юзали макс, юзали коладу и т.д.
  46. [21:47] <Jihar_> когда пишешь с учетом сроков - лучше периодически (когда еще не поздно) тратить время на рефакторинг, это время очень быстро окупится
  47. [21:47] <Jihar_> прописные истины, да. но как всегда про такие истины и забывают...
  48. [21:48] <Jihar_> млин что вам рассказать? что интересно на самом деле?
  49. [21:49] <kas> нукак, про проект :)
  50. [21:49] <kas> вот, вообщем сначала, а там уже потихоньку народ спрашивать будет
  51. [21:49] <kas> рассказывай что сам думаешь важно
  52. [21:50] <kas> интересно про процесс
  53. [21:50] <Jihar_> проект на самом деле очень технологичный. изначально в игре было больше фич (фичекат подлый), и сейчас база очень солидная
  54. [21:50] <Jihar_> процесс достаточно обычно у нас построен - есть база (в трюкмании ВСС, сейчас свн)
  55. [21:50] <Jihar_> коменты - доксиген стайл, свой стиль кодирования
  56. [21:51] <Jihar_> пробовали кучу различных таск трекеров, баг трекеров итд, до сих пор находимся в поиске идеального решения
  57. [21:51] <kas> раскроешь тему технологичности?
  58. [21:51] <Jihar_> ну лучше спрашивай сразу, там посмотрим :)
  59. [21:52] <Jihar_> я имел в виду что до уровня нфс нам осталось не так уж и далеко (я про програминг)
  60. [21:52] <kas> ммм, в смысле про програминг?
  61. [21:52] * xmvlad (xmvlad@87.226.126.ircnet-13061) has left #gamedev_lecture
  62. [21:53] * xmvlad (xmvlad@87.226.126.ircnet-13061) has joined #gamedev_lecture
  63. [21:53] * ChanServ sets mode: +o xmvlad
  64. [21:53] <xmvlad> тулсет свой был или в максе?
  65. [21:53] <Jihar_> ну те качество арта нашего с качеством арта в нфс я не берусь
  66. [21:53] <Jihar_> тулсет на самом деле достаточно разнообразный
  67. [21:54] <kas> можешь про арт пайплайн рассказать, коль уж о тулсете заговорили?
  68. [21:54] <Jihar_> например расставить модельки в мире - можно их расставить в максе, при выгрузке плагин выцепит модельки отдельно. можно расстаивть модельки в движке
  69. [21:54] <kas> т.е. путь от набота триуглов в максе до модельки в игре
  70. [21:54] <Jihar_> осноной паке - 3ds max
  71. [21:54] <Jihar_> основной пакет :)
  72. [21:55] <Jihar_> есть возможность юзать и майю
  73. [21:55] <Jihar_> значит моделиЮ миры проходят через плагины к этим программам. сейчас это практически монстры - встроено большое количество проверок геометрии
  74. [21:56] <Jihar_> миры после выгрузки из DCC проходят доп обработку - расчет лайтмепов
  75. [21:56] <Jihar_> эту доп обработку можно запустить и при выгрзуке из DCC
  76. [21:56] * ShT|B33R (shtirlic@ircnet-9538.rol.ru) Quit (Ping timeout)
  77. [21:57] <Jihar_> ну те старались все автоматизировать, чтобы не сильно напрягать моделлеров. в том числе и проверки для этого - достаточно просто артисты находят различные ошибки в геометрии, некоторые советы по оптимизации моделей
  78. [21:57] * ShT|B33R (shtirlic@ircnet-9538.rol.ru) has joined #gamedev_lecture
  79. [21:58] <kas> ето один мегаридактор? или несколько маленьких?
  80. [21:58] <Jihar_> для своих форматов есть различные утилиты - например для моделей редактор моделей - отредактить какие-то свойства, поиграться с цветами итд итп (это же можно делать и в плагине для DCC)
  81. [21:59] <Jihar_> можно сказать это сборная солянка - т.е. часть возможностей есть и в виде отдельных утилит, они же доступны из плагиноы
  82. [21:59] <Jihar_> те артист настраивает модельку, она ушла в производство. чтобы затем изменить какие-то игровые свой-ва не надо ее выгружать заново
  83. [22:00] <Jihar_> в том же редакторе моделей настраиваются машины. с физикой куча наворотов конечно. например расчет экспериментов - после настройки можно посмотреть графики (начиная с бангальных разгон до 100 км\ч)
  84. [22:01] <kas> физика своя?
  85. [22:01] <Jihar_> есть те же тесты физики - их куча на самом деле, проверяющих различные параметры. те разгон до 100 км\ч - берем значение теоретическое, ставим машину на землю и смотрим за сколько она реально разгоняется. сравниваем.. так тестятся почти все параметры физики (а их у нас много:))
  86. [22:01] <Jihar_> физика полснотью своя, да
  87. [22:02] <kas> а сколько кодеров было и как они распределены были?
  88. [22:02] <Jihar_> редаткора миров своего нету (те возможность создания геометрии в своей тулзе)
  89. [22:03] <Jihar_> но есть различные вспомогательные утилиты - для расстановки моделей например, редактирования карт АИ
  90. [22:03] <Jihar_> кодеров - по разному в разное время
  91. [22:03] <Jihar_> закончили проект - нас было трое, один на физике и рендере в основном, второй на аи, и третий я :)
  92. [22:04] <kas> а гейдизайнеров/дизайнеров?
  93. [22:04] * neteraser (ruspirch@85.249.133.ircnet-12281) has joined #gamedev_lecture
  94. [22:04] <Jihar_> геймдизайнер один, артистов до 20 человек было
  95. [22:05] <Jihar_> текучка артистов большая была, т.к. найти профи в твери сложновато (да и програмеров тоже, как и всех остальных)
  96. [22:05] <Jihar_> поэтому артистов учили по несколько месяцев, смотрели что получается ну итд
  97. [22:05] <Jihar_> некоторые артисты работают сейчас в москве :)
  98. [22:06] * kas sets mode: +v neteraser
  99. [22:06] <kas> расскажи про интероп
  100. [22:06] <Jihar_> ?
  101. [22:07] <Zeux> расскажи, сколько дипов в кадре
  102. [22:07] * neteraser все пропустил, читаю лог
  103. [22:07] <Zeux> а, про тек потом, ок
  104. [22:07] <kas> ну, т.е. как от гейдизайнера доходило до простого негра, процесс
  105. [22:08] * Neiro (xxx@ircnet-4607.cln.ru) Quit (Quit: )
  106. [22:08] <Jihar_> ну это итеративный процесс
  107. [22:08] * kas внимательно слушает
  108. [22:08] <Jihar_> есть задание - делаем трек, такие-то параметры
  109. [22:08] <Jihar_> сначала делается чертеж трека с дорогами, зданиями итд
  110. [22:08] <Jihar_> после нескольких итераций этот чертеж утверждается, попадает в разработку моделлеру
  111. [22:09] <Jihar_> моделлер собсно моделит статику - те дороги, здания
  112. [22:09] <Jihar_> затем этот тре подвергается заселению моделями
  113. [22:10] <Jihar_> на всех этапах само собой есть влияние геймдизайнера - те что надо поправить, что не так
  114. [22:10] <Jihar_> где не удобно гонять к примеру
  115. [22:10] <Jihar_> несколько треков (на мой взгляд интереных) не попали в игру - сложно гонять на них было, обычному игроку не понравилось бы
  116. [22:11] <Jihar_> по трекам создавались списки нужных зданий\моделей само собой, на этом этапе мог подключаться другой моделлер
  117. [22:11] <Jihar_> практиковали разработку треков по кускам - те один делает этот кусок, другой этот
  118. [22:11] <kas> а как ето всё разруливалось?
  119. [22:11] <kas> т.е. не было генерального плана у каждого на весь проект?
  120. [22:11] <kas> а по мере необходимости?
  121. [22:11] <Jihar_> но очень сложно - различается все-таки стиль, не просто потом это объединять, в текущем проекте один трек делает один артист практически на 100%
  122. [22:12] <Jihar_> про генеральный план артистов сложно сказать, думаю он часто корректировался :)
  123. [22:12] <Jihar_> появлялись затыки само собой перидически, переброска людей на узкие места итд
  124. [22:13] <Jihar_> разруливолась не так просто как кажется конечно... количество арта у нас было очень больше
  125. [22:13] <Jihar_> большое
  126. [22:13] <Jihar_> и с каждым днем все больше :)
  127. [22:14] <Jihar_> были люди, которые отвечали за арт. не за его создание, а за его обработку
  128. [22:14] <Jihar_> они можно сказать одобряли арт с технической точки зрения и поддерживали общую базу арта в нужном виде
  129. [22:14] <kas> а очень большое ето сколько? икак контролировали? под вершионингом лежало?
  130. [22:15] <neteraser> Jihar: какие были нововведения в девпроцессе и чем обусловлены?
  131. [22:15] <Jihar_> под вершионингом не лежало, артисты мутили это сами (сейчас пытаемся научить черепахе)
  132. [22:15] <neteraser> Jihar: физика чисто игровая ?
  133. [22:15] <Jihar_> очень большое - несколько тысяч моделей, несколько тысяч текстур
  134. [22:15] <Jihar_> больше десяти :)
  135. [22:16] <Jihar_> нововведения периодически появлялись, да. в основном подстройка под людей
  136. [22:16] <Jihar_> память млин уже не та :)
  137. [22:16] <neteraser> ага, айкидо. тоже правильно
  138. [22:15] <Jihar_> те изначальная схема была слишком строгой, ее постоянно ослабляли для комфорта людей
  139. [22:16] <Jihar_> физика - что значит чисто игровая?
  140. [22:16] <Jihar_> физика чисто реальная, мы сделали дамп с нескольких реальных машин потом реверс инжениринг и в игру
  141. [22:16] <Jihar_> шутка если чо :)
  142. [22:17] <neteraser> :)
  143. [22:17] <Jihar_> физика машины у нас проработана почти до болтиков
  144. [22:17] <neteraser> сколько у вас кода ушло? будете выкидывать или мигрировать?
  145. [22:18] <Jihar_> кода чисто специфичного не так уж и много
  146. [22:18] <Jihar_> специфичного м\именно для трюкмании, а не для гонок
  147. [22:18] <Jihar_> сейчас как раз глобальный рефакторинг у нас
  148. [22:19] <Jihar_> некоторые системы не будутзатрагиваться (например рендер), некоторые с нуля переписаны, некоторые разбиты на части
  149. [22:19] <neteraser> сколько всего кода в мб и миллионовстрок?
  150. [22:19] <Jihar_> например класс СМашина у нас очень толстый
  151. [22:19] <neteraser> а CCames?
  152. [22:19] <neteraser> *Camera?
  153. [22:20] <Jihar_> код в метрах щас померю
  154. [22:20] <Jihar_> всего 14 метров чисто игрового кода
  155. [22:20] <Jihar_> без учета утилит
  156. [22:21] <neteraser> немало
  157. [22:21] <Jihar_> классы камер разбиты достаточно хорошо
  158. [22:21] <Jihar_> тем более различных камер куча
  159. [22:21] <Jihar_> разные камеры в движке (аля полетать), в встроенных утилитах, камера машины другая
  160. [22:21] <Jihar_> динаические камеры на треках - тоже другие
  161. [22:22] <neteraser> расскажи про кадровую политику
  162. [22:23] <Jihar_> а что конкретно?
  163. [22:23] <Jihar_> иерархия?
  164. [22:23] <neteraser> конкретно кого и на каких условиях абстрактно набирали
  165. [22:23] <neteraser> иерархия не интересно
  166. [22:23] <Jihar_> ну например я устраивался... чувак прикольный на работу принимал :)
  167. [22:23] <Jihar_> кароч прихожу - там пару листов с обыными вопросами
  168. [22:24] <Jihar_> аля чем паблик от протектид, зачем виртуал итд. ну те нормальный уровень знаний + базовое знание шаблонов
  169. [22:24] <Jihar_> смотрю - еще один листок лежит, первый вопрос - как уменьшить размеры объекты?
  170. [22:24] <Jihar_> объекта
  171. [22:24] <neteraser> набирали с опытом работы или без?
  172. [22:25] <Jihar_> я завис мин на 10, потом прочитал заголовок листка - вопросы по 3ds max :)
  173. [22:25] <neteraser> ыы :)
  174. [22:25] <Jihar_> у меня опыта работы в геймдеве не было, только свои демки какие-то
  175. [22:26] <neteraser> какие были овертаймы?
  176. [22:26] <Jihar_> загонялся до работы в кавижн как и большинство рендером, дипами, тнл кешами шейдерами итд итп
  177. [22:26] * kotenok_GJ (flooff@217.76.51.ircnet-12777) has joined #gamedev_lecture
  178. [22:26] <Jihar_> могу сказать все это глупости, не надо тратить на это время %)
  179. [22:26] <neteraser> ну, для всех по-разному :)
  180. [22:26] <Zeux> если никто не будет тратить время - кто будет писать рендер? :)
  181. [22:27] <Jihar_> овератймов было много. например один раз устроили что-то вроде штурма - перед сдачей оч важного этапа
  182. [22:27] <Jihar_> нас тогда 5 програмеров было - 3 в твери, 2 в москве
  183. [22:27] <neteraser> мне интересно точнее, часов в дней
  184. [22:27] <Jihar_> всех тверских програмеров вывезли в москву, жили в гостинице, работали все вместе часов по 12 в день
  185. [22:28] <Jihar_> ну посчтиай - 3 недели по 12 часов в день
  186. [22:28] <Jihar_> в среднем примерно так было
  187. [22:28] <Jihar_> само собой с нашего согласия, никто не заставлял и не угрожал :)
  188. [22:28] <Jihar_> но за эти три недели скачо сделали огромный конечно
  189. [22:29] <Jihar_> периодически случались авралы поменьше
  190. [22:30] <Jihar_> ну это будни большинства контор
  191. [22:30] <Jihar_> по крайней мере с опытом меньше лет так 10
  192. [22:30] * kas нисогласен
  193. [22:30] <Jihar_> не большинства? или это только у нас?
  194. [22:30] <kas> большинства конечно
  195. [22:31] <kas> а расскажи чем скриптовали и как
  196. [22:32] <neteraser> да, а потом про озвучку исчо
  197. [22:32] <Jihar_> скрипт свой
  198. [22:32] <Jihar_> аля такая многопоточная система
  199. [22:32] <Jihar_> ну скриптовая часть не такая серьезная у нас, т.к. скриптовать не особо много надо было
  200. [22:32] <Jihar_> старт\финиш поймать
  201. [22:33] <Jihar_> запустить нужную анимацию
  202. [22:33] <kas> аи машинок на плюсах чтоли?
  203. [22:33] <Jihar_> аи машинок на другом скрипте :)
  204. [22:33] <Jihar_> база на плюсах конечно
  205. [22:33] <Jihar_> поведение трафика\соперников на скриптах
  206. [22:34] <Jihar_> ну те что делать машинке если впереди игрок
  207. [22:34] <Jihar_> помеха на дороге
  208. [22:34] <Jihar_> итд итп
  209. [22:34] <kas> на другом скрипте? вы изобрели два скрипта?
  210. [22:35] <Jihar_> немного другой скрипт тк его перегоняли в бинарный вид для скорости
  211. [22:35] <Jihar_> по сути такой же скрипт как и обычный
  212. [22:35] <Jihar_> но со своими удобствами - те своего рода утилита для составления поведения
  213. [22:35] <kas> ага, расскажи правда про звук, что юзали, как, как делали озвучку
  214. [22:35] <Jihar_> делаешь набор реакций, набор условий, набор поведения в этих ситуациях
  215. [22:36] <Jihar_> про звук :)
  216. [22:36] <Jihar_> музыка - тверских групп, в том числе есть песни некоторых артистов
  217. [22:36] <Jihar_> в том числе звукорежиссера
  218. [22:37] <Jihar_> звуки в игре - честно говоря я могу соврать
  219. [22:37] <Jihar_> я не особо шарю в звуковых программах, видел не однократно кучу графиков у него
  220. [22:37] <Jihar_> ну те программы аля audiere, в которой лично я нифига не понимаю - для меня там слишком много кнопок и данных :)
  221. [22:38] <kas> dsound, openal, fmod?
  222. [22:38] <Jihar_> dsound + eax
  223. [22:38] <Jihar_> eax для задания параметров районов
  224. [22:38] <Jihar_> ну те открытое пространство\закрытое
  225. [22:38] <Jihar_> всяие настройки фоновых звуков, возможность привязки звука к анимации
  226. [22:39] <Jihar_> к примеру звук стадиона можно было привязать к модели этого стадиона, прописать параметры аля дальность слышимости итд
  227. [22:40] <Jihar_> сейчас еще ворбис прикрутили
  228. [22:41] <Zeux> использовали ли многопоточность? если да - для чего?
  229. [22:42] <Zeux> inplace loading?
  230. [22:42] <Jihar_> многопоточность - в движке нет
  231. [22:42] <Jihar_> хотели прикрутить для физики или для рендера
  232. [22:42] <Jihar_> но оставили как есть
  233. [22:42] <Jihar_> честно говоря не помню были ли эксперименты по этому поводу
  234. [22:43] <Jihar_> вопрос задали
  235. [22:43] <Jihar_> <kotenok_GJ> а что использовали "не своего" можешь рассказать?
  236. [22:43] <Jihar_> <kotenok_GJ> мидлварь/библиотеки.
  237. [22:43] <Jihar_> отввечаю
  238. [22:43] <Jihar_> не так много на самом деле, ну например библиотеки для парсинга текста - для редактора миссий - подсветка синтаксиса
  239. [22:43] <Jihar_> нфидиеквскую либу для сжатия текстур
  240. [22:44] <Jihar_> сейчас юзаем либы ворбиса
  241. [22:44] <Jihar_> локи
  242. [22:44] <Jihar_> в принципе всё
  243. [22:44] <Zeux> подгрузка асинхронная, или ее нет вовсе? что значит - "в движке нет" - а в игре?
  244. [22:44] <Jihar_> возможно в будующем перейдем на Ageia PhysX - но это уже диктует индустрия
  245. [22:44] <Jihar_> подгрузка ассетов по надобности само собой
  246. [22:45] <Jihar_> в движке нет = есть в некоторых утилитах
  247. [22:45] <Jihar_> но там просто для удобства
  248. [22:45] <Zeux> SSE? повсеместно или в отдельных местах или вообще нет?
  249. [22:45] <Jihar_> есть часть кода на ссе конечно
  250. [22:46] <Jihar_> оптимизация в этом плане есть, есть набор всяого нужного на асме
  251. [22:46] <Zeux> есть ли информация о том, сколько процентов скорости дает sse?
  252. [22:46] <Jihar_> правда я лично дальше сопроцессора не ушел :)
  253. [22:46] <Jihar_> нет, такой инфы нету
  254. [22:47] * ShT|B33R (shtirlic@ircnet-9538.rol.ru) Quit (Ping timeout)
  255. [22:47] <Zeux> ок. сколько времени идет ребилд? используете распределенные билды?
  256. [22:47] <Jihar_> честно говоря имхо пока команда програмеров среднего проекта меньше человек 10 лучше юзать просто ВТюн чем пытаться оптимайзить переписав все на ссе
  257. [22:47] * ShT|B33R (shtirlic@ircnet-9538.rol.ru) has joined #gamedev_lecture
  258. [22:48] <Jihar_> ребилд игрухи минут 10-20
  259. [22:48] <Jihar_> от конфигурации зависит
  260. [22:48] <Jihar_> распределенные не юзаем, не так часто ребилдить приходится
  261. [22:48] <Zeux> сборщик ресурсов есть? писали сами?
  262. [22:49] <Jihar_> есть
  263. [22:49] <Jihar_> писали сами, да
  264. [22:49] <Jihar_> у нгас в основном все написано нами самими
  265. [22:49] <Jihar_> очень мало готового использовали
  266. [22:49] <Zeux> Использовали ли STL? Как обычные контейнеры или более интенсивно? Возможно, использовали дополнительно другие контейнеры?
  267. [22:50] <Jihar_> честно говоря когда я устраивался я был против велосипедов :) теперь понимаю что гораздо чаще свое лучше чужого
  268. [22:50] <Jihar_> STL только в утилитах, в движке - свои массивы
  269. [22:50] <Zeux> с компайл-тайм массивом или аналоги вектора?
  270. [22:51] <Zeux> * компайл-тайм - имеется в виду размер :)
  271. [22:51] <Jihar_> в утилитах в основном массивы, мапы плюс алгоритмы
  272. [22:51] <Jihar_> не догнал вопроса все равно :)
  273. [22:51] <Zeux> ну
  274. [22:52] <Zeux> массивы у вас аналогичны std::vector или это Type array[SIZE]; только с bounds checking и еще чем-нибудь?
  275. [22:52] <Zeux> т.е. то, что используется в игре.
  276. [22:52] <Jihar_> да разные
  277. [22:52] <Jihar_> в основном аналоги стл, только со своими оптимизациями
  278. [22:52] * ShT|B33R (shtirlic@ircnet-9538.rol.ru) Quit (Ping timeout)
  279. [22:53] <Zeux> Умные указатели - да, свои / нет, boost / нет, чьи-то / вообще нет? Может быть, GC?
  280. [22:53] <Zeux> или refcounted?
  281. [22:53] <Jihar_> в основном не для обычных массивов конечно (там хватит и проверки на баунд) а хеш массивы итд
  282. [22:53] <Jihar_> указатели - свои, но не очень интенсивно, на основе реф каунта
  283. [22:53] <Jihar_> плюс ауто_птр
  284. [22:54] <Zeux> реф каунт хранится в самом объекте?
  285. [22:54] <Jihar_> GC нету, ибо зло )
  286. [22:54] <Jihar_> сейчас уже несколько вариантов на самом деле
  287. [22:54] <Jihar_> ауто_птр, реф каунт внутри, с полтикой обнуления
  288. [22:55] <Zeux> Какие утилиты - профайлеры, отладчики, BoundsChecker, etc.?
  289. [22:55] <Zeux> О, да, кстати - как велась отладка - step by step? логи? крешдампы? все вместе?
  290. [22:56] <Jihar_> свой манагер памяти с проверкой ликов, баундс чекер - на усмотрение програмера (лично мне хватало встроенных вещей), профайлеры - есть свои плюс втюн
  291. [22:56] <Jihar_> профилировка на нескольких уровнях на самом деле
  292. [22:56] <Zeux> perfhud?
  293. [22:57] <Jihar_> те например профайлер для моделлеров - аля посомтреть статистику по моделям, статике, сколько где полигонов, сколько что времени отнимает, по материалам (бамп\прозрачность итд) итд
  294. [22:57] <Jihar_> плюс профайлер для програмеров - какие модули сколько жрут времени
  295. [22:57] <Jihar_> отладка - все вместе
  296. [22:57] <Jihar_> perfhud лично я гонял для интереса
  297. [22:58] <Zeux> другие тулзы от ATi / NV - скажем, использовались ли тулзы вроде FX Composer / RenderMonkey?
  298. [22:58] <Jihar_> не скажу что в нашем случае это мега помощь, т.к. все шейдеры писались оч умным человеком чисто на асме, так что в основном забота была артистов
  299. [22:59] <Jihar_> про FX Composer / RenderMonkey - сложно сказать, скорее всего нет
  300. [22:59] <kas> что значит очень умным? :)
  301. [22:59] <Jihar_> опять же - лично я гонял для себя, довольно полезно но для обучения в основном
  302. [23:00] <Jihar_> умным - очень умным
  303. [23:00] <Zeux> Проводился ли code review? Если да - с какой периодичностью?
  304. [23:00] <Jihar_> да у нас все програмеры оч умные на самом деле :)
  305. [23:00] * kas не понимает что такое очень умным
  306. [23:00] <kas> и скромные наверняка!
  307. [23:00] <Zeux> :)
  308. [23:00] <Jihar_> ну про себя я не говорил :)
  309. [23:01] <Jihar_> kas скажем так - человек с огромным опытом, кандидат наук итд, преподает в одном из московских уиверов.. очень много заслуг е\у него
  310. [23:01] <Jihar_> не уверен что мне стоит про них рассказывать :)
  311. [23:01] <Zeux> IronPeter? o_O
  312. [23:01] <Jihar_> Zeux я думаю им было бы интерсно поговорить :)
  313. [23:02] <Zeux> ладно, давайте дальше :)
  314. [23:02] <Jihar_> вопрос задали
  315. [23:02] <Jihar_> <kotenok_GJ> а про арт-пайплайн и сборку ресурсов что-нибудь не расскажешь? Как игра грузила тестуры? texture = LoadTexture("textures\swetofor.jpg")? texture = LoadTexture(GetConfigParam("SWETOFOR")) ?
  316. [23:02] <Jihar_> <kotenok_GJ> текстуры - просто как пример загрузки внешних ресурсов.
  317. [23:02] <Jihar_> тут не один уровень
  318. [23:02] <Jihar_> к примеру текстуры
  319. [23:02] <Jihar_> есть низкоуровневый менеджер, который минимизирует фрагментацию текс памяти (уж как позволяет дх)
  320. [23:03] <Jihar_> наружу выдается аля хендл тестуры, с реф каунтами
  321. [23:03] <Jihar_> то же самое к примеру с моделями - есть геометри, есть инстанс в мире
  322. [23:04] <Jihar_> возможно отличный от базового инстанс - помятый или разрушенный например
  323. [23:04] <Jihar_> наруже работа с ними одинакова
  324. [23:04] <Jihar_> примерно так же и с остальными ресурсами
  325. [23:04] <Jihar_> со многими попроще конечно (со скриптами например)
  326. [23:05] <Zeux> Ресурсы игры в архиве? Свой формат? Сжатие / криптование?
  327. [23:05] <Jihar_> текстуры ссылаются по имени, те путь не учитывается
  328. [23:06] <Jihar_> ресурсы игры в своем паке (архивация есть но не юзается), есть криптование
  329. [23:06] <Jihar_> все текс данные игры перед релизом были зашифрованы :)
  330. [23:06] <Jihar_> текс - текстовые
  331. [23:07] <Zeux> у меня только про рендер вопросы остались, кажется
  332. [23:08] <Jihar_> ща еще вопросик
  333. [23:08] <Jihar_> <kotenok_GJ> Как игра общалась с низкоуровневыми подсистемами?
  334. [23:08] <Jihar_> ну все лоу левел системы выделены в отдельные модули - звук, физика, рендер
  335. [23:09] <Jihar_> наружу - манагеры всего этого
  336. [23:09] * _NexiliaN_ (Miranda@212.120.27.ircnet-21114) has joined #gamedev_lecture
  337. [23:09] <Jihar_> через которые грузятся модели, текстуры, миры итд итп
  338. [23:09] <Jihar_> подробнее стоит рассказывать?
  339. [23:10] * Bac9I_kill (PunksXou_@192.168.113.ircnet-11378) has joined #gamedev_lecture
  340. [23:10] <Jihar_> <Sanyavirus> какие графические фейки юзались в движке? ( я про всякие deferred shading, hdr, parallax mapping, embm и т.д. ) ?
  341. [23:10] <Jihar_> ну в первую очередь у нас лайтмепы + динамическое освещение
  342. [23:11] <Jihar_> те есть разделение на прекомпьютид свет и динамик
  343. [23:11] <Jihar_> что используется при расчете лайтмепов - долгая очень тема
  344. [23:11] <Jihar_> процесс довольно долгий но и результат отличный :)
  345. [23:12] <xmvlad> радиосити?
  346. [23:12] * kotenok_GJ is now known as _Winnie
  347. [23:12] <Jihar_> в реал тайме - per-pixel освещение
  348. [23:12] <Jihar_> плюс пост эффекты
  349. [23:12] * ChanServ sets mode: +o _Winnie
  350. [23:12] <Jihar_> бамп в гонках не очень хорошо чебя ведет, т.к. больно мног ресурсов жрет
  351. [23:13] <Jihar_> да и не видно его на скорости-то 200 км\ч
  352. [23:13] <Jihar_> сейчас есть уже HDR
  353. [23:13] <Jihar_> постэффекты - различные  motion blur
  354. [23:13] <Jihar_> тот же glow
  355. [23:13] * dR|pefko is now known as dRake
  356. [23:13] <Jihar_> есть блеск асфальта как в бёрнауте :)
  357. [23:14] <Jihar_> да я забыл еще наверное учу всего...
  358. [23:14] <Zeux> а вы не забыли выключить поддержку perfhud-а перед релизом? ;-)
  359. [23:14] * ShT|B33R (shtirlic@ircnet-9538.rol.ru) has joined #gamedev_lecture
  360. [23:14] <Jihar_> Zeux не забыли :)
  361. [23:14] <Zeux> Статистика кадра - сколько дипов? Полигонаж в кадре (средний, пиковый?)
  362. [23:15] <Jihar_> xmvlad не стану отвечать на этот вопрос, т.к. точного ответа не знаю. если интересно, мог ответить позже
  363. [23:15] <Jihar_> Zeux точной не скажу, т.к. очень давно ее не смотрел
  364. [23:15] <Zeux> ну, примерно
  365. [23:16] <Jihar_> полигонаж средний тыщ 200 примерно, пиковый раза в полтора выше
  366. [23:16] <Jihar_> дипов довольно много, т.к. большое количество текстур и разных моделей
  367. [23:16] <Jihar_> ну кто играл думаю заметил
  368. [23:17] <Jihar_> <kotenok_GJ> и вопрос сбоку - как сопрягался скрипт и С++ :) Ручками? Что-то генерировалось автоматически?
  369. [23:17] <Zeux> ну ты называй число, больше, чем в NFS MW все равно не будет :)
  370. [23:17] <Jihar_> число - не хочу врать, опять же интересно - запужу под худом посмотрю :)
  371. [23:18] <Jihar_> много кароч, т.к. оптимизации не со стороны програмеров поддается с трудом
  372. [23:18] <Jihar_> а артистам хочется вот тут такой столб а тут такой...
  373. [23:18] <Jihar_> про скрипты
  374. [23:19] <Jihar_> есть механизм биндинга С++ кода в скрипты
  375. [23:19] <Jihar_> аля функции
  376. [23:19] <Jihar_> стандартный механизм в принципе
  377. [23:20] <Jihar_> надо что-то сделать - написал обвязку на С++ для получения в скрипте нужных данных, затем ворочай их как хочешь
  378. [23:20] <Jihar_> кстати вот по отзывам - народу понравилось наше меню в 3д
  379. [23:20] <Jihar_> а всех моделлеров и програмеров оно достало просто жуть
  380. [23:20] <Jihar_> в след проектах у нас будет новый гуи
  381. [23:20] <Jihar_> на хмл ну итд, все как у людей :)
  382. [23:21] <Zeux> Шейдеры - много ли? Использовались ли убер-шейдеры / микро-шейдеры? Или просто под каждый эффект шейдер писался вручную? Есть ли контроль параметров шейдеров дизайнерами?
  383. [23:21] <Zeux> D3DX FX или свое что-то?
  384. [23:23] <Jihar_> во еще у нас есть объемный туман :)
  385. [23:23] <Jihar_> артистам доступна система материалов
  386. [23:23] <Jihar_> которые они могут изменять
  387. [23:24] <Jihar_> не так много параметров чтобы накосячить но более чем достаточно чтобы получить что требуется
  388. [23:25] <Jihar_> коэффициенты отражения\преломления, прозрачность, блескучесть, рассеивание
  389. [23:25] <Jihar_> есть база стандартных материалов, аля камень стекло металл итд
  390. [23:25] <Jihar_> все шейдеры на асме
  391. [23:25] <Jihar_> с общей базой
  392. [23:26] <Zeux> Скиннинг, тени, партиклы - на GPU / на CPU?
  393. [23:26] <Jihar_> также параметры для физики - коэфф трения, шершавость итд
  394. [23:27] <Jihar_> скининг в гонках :))
  395. [23:27] <Zeux> ну, я не знаю, какие гонки у вас
  396. [23:27] <Zeux> но в NFS MW и в Carmaggedone есть персонажи :)
  397. [23:27] <Jihar_> да, есть анимация машины после превращения ее в робота
  398. [23:27] <Jihar_> ))))
  399. [23:28] <Jihar_> есть инверс кинематика, где сейчас скининг - хз, тк у нас анимация людей встречается только в паре роликов и всё
  400. [23:29] <Jihar_> партиклы на CPU
  401. [23:29] <Jihar_> у нас основная нагрузка на GPU идет с геометрии и текcтур
  402. [23:29] <Jihar_> вешать туда же партиклы смысла нету, хотя не такая уж сложная задача
  403. [23:30] <Jihar_> тени - если говорить про статику то в реал тайме на гпу, т.к. лайтмепы уже посчитаны :)
  404. [23:30] <Jihar_> в реал тайме шедоу мапы
  405. [23:31] <Zeux> шадоу мапы обычные или PSM / TSM / еще что-то?
  406. [23:31] <Jihar_> обычные
  407. [23:31] <Jihar_> тень отбрасывает в основном только машины, остальные тени можно и в лайт мепы
  408. [23:31] <Zeux> Shading paths - какие есть? Держите ли безшейдерные карты? Есть ли эффекты, использующие SM3.0? Vertex textures? Render 2 vb? Instancing?
  409. [23:32] <Jihar_> у нас в основном ps 1.x
  410. [23:33] <Jihar_> так что насчет инстансинга, Vertex textures, Render 2 vb думаю сразу ответил :)
  411. [23:33] <Jihar_> только особо сложные эффекты аля HDR на 2 шейдерах
  412. [23:33] <Jihar_> поддержка безшейдерных карт есть
  413. [23:33] <Jihar_> была покрайней мере, только было решено от нее отказаться
  414. [23:34] <Jihar_> конкретно трюкмания не станет работать на безшейдерных картах
  415. [23:34] <Jihar_> тут самая большая проблема на самом деле арт, чтобы он выглядел прилично без шейдеров
  416. [23:35] <Jihar_> HDR и на 1.4 есть вроде
  417. [23:35] <Jihar_> довольно демократичная политика у нас в этом плане. хорошо или плохо - не так просто сказать
  418. [23:36] <Zeux> Тени - используете ли мягкие тени в каком-нибудь виде (тупой блур? PCF? VSM? etc.)
  419. [23:36] <Jihar_> блюр для теней есть, что конкретно - я честно говоря не интересовался
  420. [23:36] <Jihar_> так уж получилось что графику не я програмлю :)
  421. [23:37] <Jihar_> у меня под рукой даже презентаций нашего движка нет... так что ответить не смогу
  422. [23:37] <Zeux> HDR - это fp16 буферы или всякие RGBE и подобные техники? (перефразируя - держите ли одновременно HDR и MSAA?)
  423. [23:37] * Bazzilic (Miranda@ircnet-25089.comex.ru) Quit (Quit: Miranda IM! Smaller, Faster, Easier. http://miranda-im.org)
  424. [23:38] * kas (Miranda@85.232.12.ircnet-21745) Quit (Connection reset by peer)
  425. [23:39] <Jihar_> могу сказать что фейковый вариант точно есть
  426. [23:39] <Jihar_> как работают - одновременно или нет итд - не могу сказать
  427. [23:39] <Jihar_> точно знаю что одновременно не держим, нет столько ресурсов
  428. [23:39] <_Winnie> http://www.yandex.ru/yandsearch?text=трюкомания+скриншоты
  429. [23:40] <Jihar_> <kotenok_GJ> подвопрос - как делилась игра между скриптами и С++
  430. [23:40] <Zeux> Про ресурсы (вспомнилось). Какие ресурсы хранятся в текстовом виде в релизе / хранились на этапе разработки? Это был/есть XML или свой формат?
  431. [23:41] <Jihar_> бОльшая часть логики на скриптах
  432. [23:41] <Jihar_> логика именно заездов
  433. [23:41] <Jihar_> на С++ лишь часть отвечающая за прогресс игрока в игре, апгрейды итд
  434. [23:41] <Jihar_> на скриптах - собсно сама гонка. ее смысл (тупо по кругу, какой-то слалом или экстрим)
  435. [23:41] * c|w00dy|night (cppg@ircnet-21256.toolsmedia.com) has joined #gamedev_lecture
  436. [23:41] * cppg|night (cppg@ircnet-21256.toolsmedia.com) Quit (Connection reset by peer)
  437. [23:42] <Jihar_> маршрут гонки, противники - на скриптах
  438. [23:42] <Jihar_> на этапе разработки большинство ресурсов в текстовом виде была
  439. [23:43] * frankinshtein (frankinsht@ircnet-10256.ufacom.ru) Quit (Quit: Глубина, глубина! Я не твой!)
  440. [23:43] <Jihar_> свой формат, хотя сейчас переходим на хмл+перегонка в бин для релиза
  441. [23:43] <Zeux> Использовались ли юнит тесты? Если да - для каких компонентов?
  442. [23:43] <Jihar_> но всякие ини все равно остаются в текстовом виде, только зашифрованном
  443. [23:43] * ShT|B33R (shtirlic@ircnet-9538.rol.ru) Quit (Ping timeout)
  444. [23:44] <Jihar_> ини, скрипты, настройки машин - в тексте, остальное в бинарном виде в релизе
  445. [23:45] * _Winnie changes topic to '1 июня, вечером будет лекция: постмортем игры "Трюкмания". Лектор: Jihar_ | Логи лекций: http://www.gamedev.ru/community/gamedev_lecture | Интересные вопросы лектору - в приват.'
  446. [23:45] <Jihar_> Winnie кстати Трюкмания а не ТрюкОмания )))
  447. [23:45] <_Winnie> *^_^*
  448. [23:46] <Jihar_> <Sanyavirus> может про мултиплеер расскажешь (интересно)? что юзали TCP/ IP, UDP, реалезацию сетевого движка ?
  449. [23:46] <Jihar_> мультплеер - свой протокол на базе UDP для локалки
  450. [23:46] <Jihar_> игры через интеренет нет по некоторым причинам
  451. [23:46] * _eden- (eden@ircnet-37.nline.ru) Quit (Connection reset by peer)
  452. [23:47] <Jihar_> вся интересность сет движка в физике
  453. [23:47] <neteraser> Jihar: у меня есть вопрос, финальный, положу в очередь. можно ли было сделать игру дешевле и быстрее и как. какие были допущены серьезные ошибки, которые сильно повлияли на срок шипмента.
  454. [23:47] * const (const@ircnet-10415.ukrtel.net) Quit (Quit: )
  455. [23:47] <Jihar_> у нас есть возможность гонять приличной толпой - до 8 игроков, плюс трафик, плюс различные сбиваемые объекты, та же возможность разрушения моделей
  456. [23:48] <Jihar_> все это работает быстро, честно говоря у конкурентов сетевого режима (говорим про локалку) не встречал
  457. [23:48] <neteraser> Jihar: это так сказать, оглядываясь на жопу что видно впереди.
  458. [23:49] <Jihar_> neteraser вопрос презабавнейший )))
  459. [23:49] <xmvlad> Jihar: а юнит тесты были и в каком виде?
  460. [23:49] <neteraser> Jihar: я думал с него надо начать, но теперь придется подвести этакий итог :)
  461. [23:49] <Jihar_> neteraser ок, только сначала владу отвечу :)
  462. [23:50] <Jihar_> юнит тесты в основном только для физики, можно сказать так исторически сложилось
  463. [23:50] <Jihar_> но помогли они очень хорошо (в принципе выше я про них уже рассказывал)
  464. [23:51] <Jihar_> все видно интерактивно - какие где параметры, какие результаты должны быть какие есть, запуск пачки тестов тот же самый.
  465. [23:51] <Jihar_> запись в логи ну куча вариантов
  466. [23:51] * Sanyavirus (Sanyavirus@87.239.110.ircnet-21654) Quit (Ping timeout)
  467. [23:51] <Jihar_> все таки физика одна из самых сложных вещей у нас
  468. [23:52] * ShT|B33R (shtirlic@ircnet-9538.rol.ru) has joined #gamedev_lecture
  469. [23:52] <Jihar_> если вопросов больше нет подвожу итог
  470. [23:52] <Jihar_> (то что просил neteraser)
  471. [23:52] * Zeux sets mode: +v Qiller
  472. [23:53] <Jihar_> ок
  473. [23:53] <Jihar_> кучу времени отняла физика - возможно она у нас слишком навороченная :)
  474. [23:53] <Jihar_> сократить - купить готовую, но тогда позволить этого себе не могли
  475. [23:54] <Jihar_> да и найти физику авто нужного уровня - фик кто продаст
  476. [23:54] <Jihar_> по крайней мере на просторах СНГ пока у нас конкурентов нету, подождем адреналина 2 :)))
  477. [23:55] <_Winnie> ня ^_^
  478. [23:55] <Zeux> %)
  479. [23:55] * _Winnie is now known as kotenok_GJ
  480. [23:55] <Jihar_> ))
  481. [23:55] * Retrieving #gamedev_lecture modes...
  482. [23:55] * Zeux sets mode: -m
  483. [23:55] <Jihar_> далее по списку - арт, но тут в первую очередь проблема кадров
  484. [23:55] * Zeux sets mode: +m
  485. [23:55] <neteraser> не ну я про ошибки, а он за пеар
  486. [23:56] <neteraser> :)
  487. [23:56] <Jihar_> </пеарЮ
  488. [23:56] <Jihar_> </пеар>
  489. [23:56] <Jihar_> обучать артистов самим очень дорого и долго, чем собсно и занималась наша контора
  490. [23:57] <Jihar_> по програмингу проколы были, серьезные и не очень
  491. [23:57] <Jihar_> в первую очередь это долбаный изменяющийся енайронмент
  492. [23:57] <Jihar_> вносились изменения, в том числе и те, которые сложно было ожидать
  493. [23:57] <Jihar_> просто потому, что теперь так стало модно
  494. [00:01] <Jihar_> ща покурю может еще что вспомню :)
  495. [00:01] * Zeux sets mode: -m
  496. [00:02] <ShT|B33R> Блять (с)
  497. [00:03] <Zeux> ?
  498. [00:03] <ShT|B33R> Эээ... так, вырвалось...
  499. [00:03] * kotenok_GJ выдал ShT|B33R кусок мыла.
  500. [00:04] <Zeux> :)
  501. [00:04] * ShT|B33R памыл изыг
  502. [00:05] <Jihar_> в принципе всё, в основном ошибки остальные - мелочи, которые встречаются в разработке любого софта
  503. [00:05] * Zeux sets mode: +m
  504. [00:05] <Jihar_> во, напоследок
  505. [00:06] <Jihar_> мой пусть в геймдев начался с gamedev.ru, тогда даже форума не было
  506. [00:06] <Jihar_> учился как все - не зная толком С++ начал писать мега движок
  507. [00:06] <Jihar_> кучу велосипедов итд
  508. [00:06] <Jihar_> теперь понимаю что это зло
  509. [00:07] <Jihar_> народ! начинающие! пишите моды!
  510. [00:07] <Jihar_> для халфы, варкрафта, анрила
  511. [00:07] <Jihar_> опыта будет в разы больше чем попытка выжать еще 5 фпс написав свой генератор с учетом тнл кеша
  512. [00:09] <Jihar_> 99% (тех кто пойдет в геймдев) пойдет в уже существующую контору, и там ваш опыт в модописании пригодится гораздо больше, чем доморощенная система материалов "круче чем dx fx"
  513. [00:10] * Bac9I_kill is now known as Bac9I_kill_AwAy
  514. [00:10] * Tscript_user2 (Tscript@ircnet-19335.tvcom.ru) has joined #gamedev_lecture
  515. [00:11] * ShT|B33R is now known as ShTiRLiC
  516. [00:12] * Jihar_ (Tscript@ircnet-19335.tvcom.ru) Quit (Ping timeout)
  517. [00:12] * Zeux sets mode: +v Tscript_user2
  518. [00:13] * Tscript_user2 is now known as Jihar__
  519. [00:13] * Jihar__ is now known as Jihar_
  520. [00:13] <Jihar_> вот, это ключевая мысль
  521. [00:14] <Jihar_> не надо просить програмеров - напиши плагин, сделай редактор, сделай консоль и поддержку звука
  522. [00:14] <Jihar_> берите готовые движки (не аля огре или небулы!), именно готовые и делайте игры!
  523. [00:14] <Jihar_> не тратьте время зря
  524. [00:15] <Jihar_> с опытом програмирования время на изучение тех же граф технологий потратите гораздо меньше чем в самом начале
  525. [00:15] <Jihar_> вот, собсно. я выдохся :)
  526. [00:15] * Zeux sets mode: -m
  527. [00:15] <Zeux> спасибо за лекцию.
  528. [00:16] <Jihar_> надеюсь было хоть немного познавательно
  529. [00:16] <xmvlad> ага спасибо за постмортем!
  530. [00:16] <Jihar_> пожалуйста :))
  531.  


Editing of pre-version support pastes is disabled.