Винтажный publish: Когда мы были молодыми

@kas откопал кусок старых логов #gamedeff, тогда еще из IRC.
Всегда удивительно, что ты думал аж восемь (восемь!) лет назад.

Итак, в связи с массовым внедрением в народное сознание всяческих бесплатных Unity и прочих UDK вот кусочек логов. на дворе 2004 год, вступление, интерлюдия, кода.

[00:10] <CEMEH> Кода на порядки больше, чем команда может написать и уж тем более саппортить.
[00:11] <aruslan> CEMEH – в мире бизнес приложений – это охуенная новость.
[00:11] <CEMEH> Т.е. у них реально кода раза в 4 больше, чем у нас.
[00:11] <aruslan> Там весь код настолько перепизженный – мама.
[00:11] <aruslan> Если бы не IDEA и прочие умные тулзы – они бы сдохли.
[00:11] <aruslan> Семен, у меня мальчик работает – он до этого работал в Nortel Networks
[00:11] <aruslan> там кода через него прошло метров на 500.
[00:12] <CEMEH> И никто толком не понимает, не то что как этот код примерно работает, а вообще как он устроен?
[00:12] <aruslan> и вот это – не FC.
[00:12] <aruslan> а нахуа?
[00:12] <aruslan> вот ты втыкаешь, как .NET Framework устроен?
[00:12] <CEMEH> Да не-е-ет!
[00:12] <aruslan> в смысле не язык, а набор библиотек?
[00:12] <aruslan> хотя бы на самом верхнем уровне?
[00:12] <aruslan> но программы писать можешь.
[00:12] <CEMEH> Да нет ни у кого такого понимания!
[00:12] <aruslan> то же и у них.
[00:13] <aruslan> никакой документации.
[00:13] <aruslan> код чужой или свой – не поймешь – он не отличается.
[00:13] <aruslan> текучесть кадров – процентов 100%
[00:13] <aruslan> и живут.
[00:13] <CEMEH> Руслан – и если бы мне надо было править код и юзать части .NET, мне тоже было бы похуй?
[00:13] <aruslan> да, я отвлекся, прости.
[00:13] <aruslan> так и чего?
[00:13] <aruslan> конечною
[00:13] <aruslan> :)
[00:14] <CEMEH> Интуитивная хирургия, блядь.
[00:14] <aruslan> тебе пример из личной игровой жизни нужен?
[00:14] <CEMEH> Давай.
[00:14] <aruslan> не буду называть конкретные проекты и конкретных действующих лиц,
[00:14] <CEMEH> Ну черт….
[00:14] <aruslan> но группа людей из трех человек
[00:14] <aruslan> в течение полугода успешна делала демки
[00:15] <aruslan> (технологические)
[00:15] <aruslan> на пяти разных движках
[00:15] <aruslan> причем на движки не было практически ничего, кроме одного.
[00:15] <aruslan> в смысле, документация была только на один движок.
[00:15] <aruslan> причем демки подразумевали
[00:15] <aruslan> расширение возможностей двигла
[00:16] <aruslan> один был до того странный – там анимаций не было. вообще.
[00:16] <aruslan> времени не было.
[00:16] <aruslan> ну и т.п.
[00:16] <aruslan> объем кода – где-то от 300 KLOC.
[00:16] <aruslan> т.е. это еще не полноценные движки, но там много чего уже есть.
[00:16] <aruslan> веселая такая работа.
[00:16] <aruslan> Пойнт:
[00:17] <aruslan> а вот хуй бы они это сделали на хорошем реальном законченном двигле со всей документацией.
[00:17] <aruslan> понимаешь?
[00:17] <aruslan> одноразовое производство.
[00:17] <aruslan> .
[00:17] <aruslan> Ты давай про Платова рассказывай :)
[00:17] <CEMEH> Вот.
[00:18] <CEMEH> Он в конторе, которую почти всю поглотил Интел.
[00:18] <aruslan> да, я в курсе.
[00:18] <aruslan> это одна фирма, в Питере, Нск и Мск.
[00:18] <aruslan> там еще кусок Сана есть в некоторых местах.
[00:19] <aruslan> я тебя заибал перебивать?
[00:19] <aruslan> .
[00:19] <CEMEH> Жуть как этого не хочет.
[00:20] <aruslan> .
[00:20] <CEMEH> А, да, я отвлекся.
[00:20] <CEMEH> Ну, мне вот эти рассказы про процесс разработки были откровением.
[00:21] <CEMEH> Рассказывали, что это живет только за счет Java/Eclipse.
[00:21] <aruslan> Ага. IDEA, Eclipse, да.
[00:21] <CEMEH> А IDEA – это что?
[00:22] <aruslan> ну, ты рефакторинг читал?
[00:22] <CEMEH> Кныжку?
[00:22] <aruslan> “рефакторинг”, в смысле.
[00:22] <aruslan> ага
[00:22] <CEMEH> Не-а.
[00:22] <aruslan> ну, в общем, все базовые примитивы рефакторинга – это пункты в контекстном меню,
[00:23] <aruslan> которое выскакивает по правой кнопке в IDEA после того, как ты выделил кусок текста.
[00:23] <aruslan> т.е. выделил шмоток кода – хуяк “Extract method” – она все связанные переменные вычленила как параметры и т.п.
[00:24] <aruslan> выделил – шмоток класса – хуяк “сделать базовым” – и понеслась.
[00:24] <aruslan> ну и т.п.
[00:24] <aruslan> там Class Browser – это что-то.
[00:24] <CEMEH> Да-да.
[00:24] <aruslan> В общем, я слышал, что Visual Studio 2005 будет примерно что-то типа IDEA 1999 разлива.
[00:24] <aruslan> если не раньше.
[00:24] <CEMEH> А IDEA – это таки что такое? :_
[00:24] <aruslan> Eclipse – из этой же серии.
[00:24] <CEMEH> Тулзина такая?
[00:25] <aruslan> IDEA – это framework в оригинале по символической обработке исходников. На нем сделан ряд IDE, в частности, вроде бы даже JBuilder (но могу спиздеть).
[00:26] <aruslan> вот:
[00:26] <aruslan> http://www.jetbrains.com/idea/features/refactoring.html
[00:26] <aruslan> http://www.jetbrains.com/idea/index.html
[00:26] <CEMEH> А нынче IDEA еще круче?
[00:27] <aruslan> Да вроде да.
[00:27] <aruslan> Насколько мне известно, MS лицензировало что-то у кого-то, кто лицензировал что-то в IDEA
[00:28] <CEMEH> И это все специально, чтобы пиздить код? :)
[00:29] <aruslan> Ага.
[00:29] <aruslan> Ты понимаешь, что такое “рефакторинг”?
[00:29] <CEMEH> Ну, примерно :)
[00:29] <aruslan> Это когда никто уже ничего не понимает, но нужно, чтобы работало.
[00:29] <CEMEH> Да, ты круче понимаешь.
[00:30] <aruslan> Он может быть только полуавтоматическим, иначе грош ему цена.
[00:30] <CEMEH> А для С++ такое уже захуярили?
[00:30] <aruslan> Во: фича IDEA: “Finds similar blocks of code and factorizes them”
[00:30] <aruslan> Нет, на эту тему Фаулер и кто-то из монстров типа Вандевурда говорили.
[00:30] <aruslan> C++ мало того что мультипарадигмальный
[00:31] <aruslan> так еще к тому же и очень свободный. много степеней свободы.
[00:31] <aruslan> только одни указатели способны закрыть все это нах.
[00:31] <aruslan> там сразу по списку – Halting problem и т.п.
[00:31] <aruslan> Т.е. автоматической формальной трансформации кода не получаецца.
[00:32] <aruslan> Т.е. даже переименование переменных в общем случае невозможно.
[00:32] <aruslan> Ну, там restrict и т.п. aliasing.
[00:32] <CEMEH> C++ плахой изык.
[00:32] <CEMEH> Да-да.
[00:32] <aruslan> Это все верхушка айсберга, в принципе, но самое жёсткое.
[00:33] <aruslan> Самое беспонтовое, что все как бы пишут на другом языке.
[00:33] <aruslan> С определенной семантикой. Скажем, многопоточность и тп
[00:33] <aruslan> но!
[00:33] <aruslan> .
[00:33] <aruslan> но!
[00:33] <aruslan> C++ мало кого ебет, потому что рефакторинг, XP и проч – это все для группы Б.
[00:34] <CEMEH> Группы Б?
[00:34] <aruslan> А там – только в gamedev в силу его ламернутости и временного отсутствия XNA еще принципиальны инженеры.
[00:34] <aruslan> В нормальных бизнес приложениях в группе Б строго C#, Java и прочие правильные языки.
[00:34] <aruslan> В которых рефакторинг рулит.
[00:34] <aruslan> VB.
[00:35] <aruslan> Это приятель один озвучил мои давешние мысли по поводу двух каст.
[00:35] <aruslan> Оказывается, в HR и headhunter уже давно есть разделение программеров на два класса.
[00:35] <CEMEH> Как озвучил?
[00:36] <aruslan> Группа А – это то, что можно было бы назвать “системный программист”. Тот, кто делает инструменты для Группы Б.
[00:36] <aruslan> Компиляторы, ОС, некоторые части движка, некоторые части инструментов, некоторые средства интеграции, стеки протоколов и т.п.
[00:37] <aruslan> Группа Б – те, кто делают “the produkkt”.
[00:37] <aruslan> Создатели контента.
[00:37] <aruslan> Используют RAD, Visual и проч средства, наборы ползунков, пишут код на языках Группы Б, используют рефакторинг в смысле Б и т.п.
[00:37] <aruslan> .
[00:37] <CEMEH> Крутяк, да…
[00:39] <aruslan> gamedev пока резко выпадает из этой стройной схемы, но не везде.
[00:39] <aruslan> в крупных конторах с крупным издателем типа EA
[00:39] <aruslan> уже давно есть очень широкая прослойка программистов, которые
[00:39] <aruslan> даже не представляют себе, что есть какой-то там D3D и OpenGL.
[00:39] <aruslan> я утрирую, конечно, но идея примерно такая.
[00:40] <aruslan> и XNA нас мощно в этом направлении ведет.
[00:40] <CEMEH> Наверно, скушно на стороне контента…
[00:40] <aruslan> Что не может не наполнить наши души контентом.
[00:40] <aruslan> Пачиму, Семен?!
[00:40] <aruslan> Не!
[00:40] <CEMEH> Хуяришь себе и хуяришь…
[00:40] <aruslan> Ты не подумай, что Группа А и Группа Б – это типа Хуяторы и Фтыкатели :)
[00:40] <aruslan> Нет.
[00:40] <aruslan> Просто это действиетльно разные точки зрения на жызнь.
[00:41] <aruslan> “Арт – решает” – помнишь, да? Вот это – Группа Б.
[00:41] <CEMEH> Да-да.
[00:41] <aruslan> Т.е. Фотошоп делает Группа А, а Картинки беспезды – Группа Б.
[00:41] <aruslan> Я бы поспорил, где круче ;)
[00:41] <CEMEH> Я занимался таким…
[00:41] <CEMEH> Больше A, чем Б, но все же.
[00:41] <CEMEH> Мне в A нравиццо больше.
[00:41] <aruslan> Мне тоже в А нравится значительно больше.
[00:42] <aruslan> Но и зависть – соответственно :)
[00:42] <aruslan> Потому что по секрету могу сказать, что
[00:42] <CEMEH> Не, понятно, там хорошо, где нас нет…
[00:42] <aruslan> рожденный пукать насрать не сможет.
[00:42] <CEMEH> Зато от пукать торкает сильнее :)
[00:42] <aruslan> :)
[00:42] <aruslan> Это да, аж глаза щиплет.
[00:42] <aruslan> Вот так вот.
[00:43] <aruslan> Но!
[00:43] <aruslan> Естественный путь развития любой индустрии – и бизнес приложений в т.ч. -
[00:43] <aruslan> показывает, что необходимость в Группе А возникает только собственно у производителей Опиума для Группы Б.
[00:44] <aruslan> А это говно очень быстро рассасывается по а) Очень Крупных Мегакорпорациям и б) свободному софту
[00:44] <aruslan> Т.е. Microsoft, EA, японцы. Ну, может быть Ubisoft и прочая мелочь.
[00:44] <aruslan> Так что готовицца надо уже сейчас.
[00:45] <aruslan> Как мне всегда говорил приятель-подлодник, ласты надо готовить с берега.
[00:45] <aruslan> .

[09:10] <look4awhile> прочитал те логи за 10-е
[09:11] <CEMEH> Ну? Ну? :)
[09:13] <look4awhile> что ну? про группы А и Б? или про моё мнение – на предмет чем заниматься?
[09:13] <CEMEH> Да-да.
[09:13] <CEMEH> И про то, есть ли вообще такое.
[09:15] <look4awhile> озадачил ты меня, если честно. тут очень на разные вопросы отвечать можно :)
[09:15] <CEMEH> Ну, на какие-нибудь ответь :)
[09:17] <look4awhile> я могу только за моё понимание рассказать. а оно у меня несколько однобокое таки, а именно
[09:17] <look4awhile> индустрия. т.е. процесс, производство, и прочая дрянь
[09:17] <look4awhile> когда технические сложности – это всего-лишь технические сложности
[09:17] <look4awhile> а оценивается работа продюсера
[09:18] <look4awhile> оно туда идёт, и ему оттуда никуда не деться
[09:18] <look4awhile> наглядный пример, из последнего – дум-3.
[09:18] <look4awhile> тупо из за размеров, независимые разработки – они не для зарабатывания денег
[09:18] <look4awhile> а зависимым нужен процесс
[09:18] <look4awhile> пока понятно излагаю?
[09:18] <look4awhile> .
[09:19] <CEMEH> Не сильно.
[09:19] <CEMEH> Точнее, не очень понятно как это к тем группам относится :)
[09:20] <look4awhile> продюсерство – это вообщем-то сложившаяся дисциплина.
[09:21] <look4awhile> а какой софт при этом разрабатывается – вопрос совершенно 10-ый
[09:21] <look4awhile> т.е. те, кто реально контролируют денежные потоки – ожидают определённый процесс
[09:22] <CEMEH> Что такое – это процесс?
[09:22] <CEMEH> Контролируемое, предсказуемое, с четкими рисками?
[09:22] <CEMEH> *этот процесс
[09:22] <look4awhile> предсказуемое, контролируемое – да, конечно
[09:22] <look4awhile> с расписанием работ, с запланированными итерациями
[09:22] <look4awhile> с диз=доком и тех-диздоком
[09:23] <CEMEH> Вот, скажем, TBM – это процесс?
[09:23] <look4awhile> с выделенным прототипом. или несколькоими
[09:23] <look4awhile> ТБМ – нет, что-ты. это попытки собрать в контору нужных людей
[09:23] <look4awhile> процесс – это давольно таки дорого, особливо в самом начале
[09:24] <CEMEH> И, как я понимаю, большинство разработок в России – не процессы.
[09:24] <look4awhile> если делать совсем по уму, то после прототипа пишется вся документация
[09:24] <CEMEH> И мне вот и интересно, что такое процесс. Как это выглядит.
[09:24] <look4awhile> а это 4-6 месяцев писанины. тестов. митингов. мини-прототипов. и опять писанины
[09:24] <look4awhile> начинающей комманде пока издатель такого позволять не будет, скорее всего
[09:24] <look4awhile> процесс, ох
[09:25] <look4awhile> это тема для большой, неинтересной беседы. лучше почитай
[09:25] <look4awhile> всякого, по теме. нудного.
[09:25] <CEMEH> Что почитать?
[09:25] <look4awhile> давай я завтричка поспрошаю своего начальника, на предмет присоветовать почитать
[09:25] <look4awhile> потому как оно – не моя основная специализация. т.е
[09:26] <CEMEH> Ага, спасиб.
[09:26] <look4awhile> я читал MDP (Midway Development Process)
[09:26] <CEMEH> Ладно, основной вопрос все равно не в этом был.
[09:26] <CEMEH> Примерно – то что раньше излагал, понятно.
[09:26] <CEMEH> Давай дальше.
[09:26] <look4awhile> итак, ожидается определённый процесс. который предполагает определённую специализацию
[09:27] <look4awhile> вот тебе типичный экстримум
[09:27] <look4awhile> дизайном занимается дизайнер. всегда. т.е. программист может высказать свои измышления, в частном порядке
[09:27] <look4awhile> но за дизайн он не участвует ни разу. на дизайн-митингах не присутствует
[09:27] <look4awhile> только оценивает – сколько займёт времени то, или иное изменение в дизайне
[09:28] <CEMEH> Причем дизайн – в широком смысле?
[09:28] <look4awhile> ага. и это – старший программист. те, какие мал-мала поменьше – и того менее
[09:28] <look4awhile> т.е. если senior – то тот решает, возможно, за систему. консультируя старшего
[09:29] <look4awhile> но опять-же “решает” – шибко толстое слово
[09:29] <look4awhile> потому как техдизайны вообщем-то написали заранее, и пересматриваются очень умеренно
[09:29] <look4awhile> и тут получается крайне забавно
[09:29] <CEMEH> Мне вот интересна структура, которая позволяет техдизайны заранее писать…
[09:29] <CEMEH> Потому что все же меняется жуть как быстро.
[09:30] <look4awhile> никак нет. нельзя “всё менять жуть как быстро”. надо “заранее принимать умные решения”
[09:30] <look4awhile> т.е. менять можно, а всё менять – нельзя
[09:30] <look4awhile> если чуть-чуть подумать – процесс не заточен делать “лучшую игру всех времён и народов”
[09:30] <look4awhile> процесс заточен доделать в сроки и в бюджет
[09:31] <CEMEH> Приведи пример изменения, которое на грани критического?
[09:31] <look4awhile> замечу, что “качественно, быстро, дешево” – выбери 2. причём 2, в хорошей конторе
[09:31] <look4awhile> критическое – да легко. начать изучать новый метод рисования теней посреди проекта
[09:31] <look4awhile> потому как страый – не понравился
[09:31] <CEMEH> О, это мы ;)
[09:32] <look4awhile> тот самый риск. какой, скорее всего будет решён – “давайте как-то заставим жить эти”. или “поглядим потом2
[09:32] <shodan> это не вы
[09:32] <shodan> PSM это те же SM
[09:32] <shodan> требуют R&D, допкода, но не требуют переделки всего арта
[09:32] <look4awhile> под R&D специальное время – прототип. т.е. если менять тени надо посреди проекта – значит глав. программер облажался неподетски
[09:33] <CEMEH> shodan, ты думаешь у нас было SM? :)
[09:33] <shodan> ыыы :)
[09:33] <look4awhile> и вот тут то и возникает вопрос. какой вы 10-го и обсуждали
[09:33] <look4awhile> а именно
[09:33] <look4awhile> “а где моё место в этом самом процессе?”
[09:33] <CEMEH> Да-да.
[09:33] <look4awhile> и группа Б – по определению в нём
[09:33] <look4awhile> а группа А – это те, кто в нём не участвуют
[09:33] <look4awhile> потому как не занимаются деланьем игр
[09:34] <CEMEH> Да-да.
[09:34] <look4awhile> а делают инструменты, движки, итд итп
[09:34] <look4awhile> можно копать золото. можно продавать кирки и лопаты
[09:34] <look4awhile> но это – уже другая точка зрения, совсем не про группу А и группу Б
[09:34] <CEMEH> Вот вопрос заключается в чем – что будет происходить в ближайшее будущее с этими и другими?
[09:35] <CEMEH> В связи с разрастанием правильных процессов и прочего.
[09:35] <look4awhile> до сих пор масштабы только росли
[09:36] <look4awhile> специализация, и работа с тулсами – она никуда не девается
[09:36] <look4awhile> делать тулсы – требует большей квалификации
[09:36] <look4awhile> но продаются игры
[09:36] <look4awhile> т.е. зарплата будет выше на технологиях. в конторе всегда будет СТЕО
[09:37] <shodan> “CTEO”??
[09:37] <look4awhile> но роялти часто технарям не платят
[09:37] <look4awhile> chif technical executive officer
[09:37] * shodan grins
[09:38] <CEMEH> Вот я просто писал код разный, который четко попадает под это разделение.
[09:39] <CEMEH> Скажем, система отображения облаков vs. географическая привязка погоды к конкретной карте.
[09:39] <CEMEH> Первый – писать значительно интереснее.
[09:40] <shodan> и как любую другую вещь в себе – никому сам по себе писать не нужно? ;)
[09:40] <CEMEH> Ну, как. В прямом смысле – да.
[09:41] <look4awhile> тут цели надо чётко определить
[09:41] <look4awhile> 1. интересная работа
[09:41] <look4awhile> 2. много денег
[09:41] <look4awhile> и расставить приоритеты
[09:41] <look4awhile> а касательно интересной работы – тут как раз всё не так плохо
[09:42] <look4awhile> если не стоит целей заработать шибко много денег, несмотря на
[09:42] <look4awhile> то могут быть призабавные проекты, итд итп
[09:42] <look4awhile> “независимое кино”
[09:42] <CEMEH> Ну, это если приоритет стоит в “делать игры”.
[09:42] <look4awhile> впрочем, мне пока трудно здесь что-то говорить. желание – это конечно, хорошо
[09:43] <look4awhile> но пока – 3 года в разработке… вот такие пироги :)
[09:43] <look4awhile> а что до “делать игры” – для меня этот вопрос не стоит
[09:43] <look4awhile> мне оно – интересно. геймдизайн, технология, итд итп.
[09:44] <look4awhile> а процесс мне неинтересен нисколько. а деньги – постольку, поскольку
[09:44] <shodan> “3 года в разработке”?
[09:45] <look4awhile> начиная с идеи в голове, бумаг, итд итп.
[09:45] <look4awhile> т.е. со дня написания первых набросков
[09:46] <shodan> дайошь crimson land.
[09:46] <shodan> может за 1.5 года управишься…
[09:46] <shodan> :)
[09:47] <CEMEH> look4awhile, ну дык – неинтересен процесс = технарь, да?
[09:47] <look4awhile> и да и нет. мне не интересна индустрия. нисколько. мне интресны игры
[09:48] <look4awhile> “домашнее кино. камера на плече”. blair witch итп
[09:48] <look4awhile> но не на таком допотопном уровне
[09:51] <look4awhile> продавать “кирки-лопаты” – ни разу не зазорно.
[09:51] <look4awhile> делать игры – опять-же хорошо очма.
[09:51] <look4awhile> а процесс – то местами неизбежное зло. особливо на стартапе
[09:52] <look4awhile> вроде на все вопросы, какие там – ответил?
[09:52] <look4awhile> .
[09:53] <CEMEH> Медитировать надо, и думать.
[09:53] <look4awhile> ты меня не слушай. я маленький ещё – и всё сказки рассказать наровлю
[09:54] <CEMEH> Ну, я всегда был фанатом твоих сказок.
[09:54] <shodan> главное в них не верить
[09:55] <CEMEH> look4awhile, вот что хочу спросить. Сейчас – почти каждый делает свои кирки/лопаты.
[09:55] <CEMEH> Ты тоже считаешь, что это будет консолидировацца?
[09:56] <CEMEH> Т.е. их в основном будут покупать, а не делать самим?
[09:56] <look4awhile> будет консолидироваться. потому как купить дешевле, чем делать. с точки зрения рисков. в итоге
[09:59] <CEMEH> И, значит, эта вот группа А – таки будет сокращаться?
[10:00] <look4awhile> спорный тезис. пока что – только растёт
[10:00] <CEMEH> Ну, вот с одной стороны – консолидируецца, с другой – только растет ;)
[10:01] <shodan> цена входа выше
[10:01] <look4awhile> никакой крупный паблишер в геймдеве не будет рассчитывать только на аутсорс
[10:01] <look4awhile> по крайней мере минимум ещё одно поколение консолей
[10:02] <shodan> CEMEH, ну и собственно еще один вопрос, который следует поднять :)
[10:02] <CEMEH> Хуячь.
[10:02] <shodan> почему обязательно выбирать группу? :)
[10:04] <CEMEH> Ну, потому что это все консолидируеццо как раз, как я понимаю.
[10:04] <CEMEH> Т.е. разделение между группами растет.