Зумеры из Москвы перекрасили стену Цоя на Арбате — теперь там красуется граффити Паши Техника Попаст…
Зумеры из Москвы перекрасили стену Цоя на Арбате — теперь там красуется граффити Паши Техника
Восток
Вот на таком устройстве советский гражданин Юрий Алексеевич Гагарин поднялся на орбиту.
Вопрос к яндексу…
Немецкий танк Leopard 2 с украинским флагом по 50% скидке не желаете?Такие игрушки продаются на Яндекс Маркете.
Это тот же Яндекс, который крутит украинские нацистские песни у себя в Музыке и отказывается их удалять.
GENSEK — 2025 — Первый (Видеоклип)
12 апреля (ранее в СССР), а теперь в России и Беларуси отмечается День космонавтики.
А может кто-то и не знал: 12 апреля — это и Международный день полёта человека в космос.
Решение об этой памятной дате принято на 65-й сессии Генеральной Ассамблеи ООН 7 апреля 2011 года.
Проект GENSEK к этой великой дате в истории человечества выпустил видеоклип «Первый».
Начиная с космических гитар, GENSEK выдает немного меланхолический, но все-таки уверенный и наполненный внутренней силой Metal.
Чеканным шагом, как Юрий Гагарин шел на доклад к Хрущеву, таким же ритмом двигает трэк с мрачно торжествующими гитарами и плавающими небесными соляками на втором плане.
Композиция решена в мид-темпо с лирическими воздушными мостами, но после центра ритм-гитара немного расцепляет рифф, захватывая еще более пространства — будто вдыхает полной грудью после скафандра.
В трэке впилено сообщение ТАСС об успешном полете первого человека в космос — для придания духа времени в этом отдельно взятом эпике.
Вполне возможно, кто-то задастся вопросом, отчего композиция решена в таком драматическом настроении.
Признаюсь, и сам так подумал поначалу, но пришел к выводу, что эмоциональный настрой клипа реально соответствует не только судьбе нашего первого космонавта, но и тем титаническим усилиям Союза, которые привели к такому успеху… А ведь они сопровождались не только мажором и победными донесениями.
«Первый останется навечно первым» (с) GENSEK.
P.
S.
Музыканты (о которых ничего не известно), отмечают, что «видео сделано с помощью нейронный сетей, поэтому не претендует на историческую достоверность».
Я думаю, что это норм отмечено.
В конце концов, первая полоса «Комсомолки» со словами «Человек в космосе» настоящая!
https://vk.com/gensekbandи на ютрубе , может кому-то надо
СТРАСТЬ РОЖДАЕТСЯ В НЕИЗВЕСТНОСТИ!
Секретный объект №4. Что спрятано под Амуром в Хабаровске и что скрывали от жителей СССР почти полвека?
Несколько дней назад, один человек, неплохо знающий историю, написал:
«Это невероятно.
Когда я узнал, меня пробрала такая гордость за нашу страну, что не передать.
Уникальные люди, непобедимая страна и лучшие умы».
Что так впечатлило человека?
Что он узнал, чего не знают миллионы?
Сегодня мы расскажем про секретный объект №4 под рекой Амур в Хабаровске.
Вот тот самый знаменитый мост, который вы тысячи раз видели на купюре.
Но под мостом и толщей воды в этом месте, скрыто то, что почти полвека скрывалось от всего мира.
И то, что там скрыто, помогло нашей стране отвоевать у японцев Сахалин и Курилы.
А суть вот в чём.
Летом 1945 года, Советский Союз перебросил из Центральной России, Урала и Сибири 150 тысяч вагонов с грузом, вооружением и солдатами.
Наша Армия собралась на границе с Китаем и Корейским полуостровом.
Через мгновение, Красная Армия нанесёт разящий удар по японцам.
Но как они смогли незаметно перебросить такие силы и провести их через единственный мост над Амуром в Хабаровске?
Ведь если бы японцы заметили, то просто бы разрушили его, сорвав операцию.
И ответ долгое время был скрыт от глаз посторонних.
Наши прошли по единственному в Советском Союзе подводному железнодорожному тоннелю прямо под рекой Амур.
До 70-х прошлого столетия эта дорога была засекречена.
Объект № 4 Народного Комиссариата путей и сообщения начали возводить после того, как японцы захватили часть Китая.
Было понятно, что рано или поздно они вторгнутся в Советский Союз.
Дело в том, что весь правобережный Хабаровский край, всё советское Приморье, с портом Владивосток, соединялись в приграничье всего лишь одним мостом через реку.
Ударь по нему японцы, и мы бы потеряли целый стратегический город и плацдарм.
Что сделали наши?
По сути, они реализовали планы Императорской России по строительству подводного тоннеля.
Строить начали за несколько лет до войны.
Это в тему того, что наши не готовились к войне.
Готовились.
Строить доверили специальной железнодорожной бригаде.
Одним из руководителей был Анатолий Чертков.
Чертков должен был решить задачу геодезиста.
А именно всё рассчитать, а затем начать строительство сразу в двух точках (с выхода и входа).
Они должны были встретиться посередине.
Наши пробурили несколько шахт, загнали специальные проходческие щиты на глубину до 85 метров.
А затем пошли друг другу навстречу.
Самой сложной задачей было сделать так, чтобы встретиться в одной точке с одинаковым перепадом.
Это и по сегодняшним меркам сложно, а тогда вообще практические невозможно.
Но они всё сделали.
Длина свыше 7 километров, изогнутый тоннель, разные перепады в несколько десятков метров.
Проект выполняли 900 инженеров и несколько тысяч железнодорожников.
В июне 1941 года проходы были соединены.
Отклонение составило меньше сантиметра.
Именно по этому тоннелю, спустя четыре года пойдут эшелоны техники, которые и разгромят японскую армию.
Но была ещё одна интересная история в этом проекте.
Дело в том, что наши предусмотрели, что противник тоже может пустить свои силы через этот тоннель, если всё пойдёт не по плану.
Для этого они сделали специальные проходы для воды из реки.
И как только японские поезда пошли бы по нашему тоннелю, их моментально затопили бы.
Тоннель был бы непригоден для переброски сил противника.
Рассчитали так, чтобы затопление произошло всего за пять минут, чтобы никто не успел выбраться.
Благодаря этому секретному объекту № 4, Красная Армия смогла незаметно скопить силы против японцев.
А в августе 1945 года, товарищ Сталин отдал приказ атаковать Квантунскую Армию.
Японцы были разбиты.
Их армия сдалась, а совсем немного времени спустя, они подписали капитуляцию.
Советский Союз решил все свои задачи на Дальнем Востоке.
Реванш за русско-японскую начала столетия был взят.
Сегодня реконструированный мост над Амуром и подводный тоннель работают для гражданских задач.
Они стали полноценной современной частью Транссибирской магистрали.
Всем добра и спасибо за внимание.
Что я узнал за 20 лет работы программистом в геймдеве
Вообще, я немного вру — юбилей трудовой деятельности у меня будет только в следующем году.
Но не думаю, что моё видение за это время сильно поменяется.
За это время, я успел поработать в 5 компаниях, делал ММО-убийцу-Варкрафта, ММО-как-арены-в-Варкрафте, мобильные говноклоны, и, наконец, в 2019 году пришёл в компанию, которая делает игры, которые мне нравятся.
Заранее прошу прощения за многословность — не люблю писать утверждения без развёрнутых объяснений.
Самое главное: разработка игр — это круто.Честно скажу — не любил ни школу, ни ВУЗ, и только придя в свою первую компанию я почувствовал себя на своём месте, среди людей, с которыми мне приятно общаться и работать.
Конечно, это субъективное.
Но очень важное.
Я всегда представлял себе идеальную работу чем-то средним между НИИЧаВО Стругацких и Малого Тайного Сыскного Войска из книжек Макса Фрая, и по-моему, геймдев — это оно.
Самое главное, что люди здесь не только делают игры, но и живут ими, играют сами, обсуждают их, болеют сердцем за то, что создают.
Очень редко можно встретить в разработке человека, который просто приходит работать за зарплату, независимо от возраста.
Конечно, есть и другие отрасли и компании, где такое норма, но, по рассказам, это, скорее, редкость.Тем больнее, когда ты чувствуешь, что делаешь что-то не то, но начальство/инвестор настаивает на своём видении.
Поэтому я больше не хочу возвращаться в мобильный геймдев: все мобильные игры, над которыми я работал, провалились, и, вроде бы, мне с самого начала было видно, что они провалятся, но люди, дающие деньги, были уверены в обратном.
Ну, и поскольку я не совсем целевая аудитория мобильных игр (играю на ПК, в основном, а если на мобиле — то не совершаю много покупок в игре), то я всегда утешал себя тем, что они, наверное, знают, что делают — всё-таки, своими деньгами рискуют.
Практика показала, что нет: зачем мы в одной компании два года делали прямой клон «Clash of Clans» с «улучшенной графикой» — так и осталось загадкой, поскольку в результате оказалось, что игрокам в «Clash of Clans» не нужна лучшая графика, и проект закрылся спустя месяц после релиза.Программировать игры — весело.
Но не для всех.
Потому что это вечный бардак.
Сбор требований?
Какие требования, есть только одно настоящее требование — чтобы игра была весёлой.
Если для этого в середине проекта надо полностью поменять всю боевую систему — программисты не могут сказать «ой, простите, этого не было в требованиях», даже в голову не придёт.
В начале разработки, как правило, никто себе толком не представляет, как будет выглядеть игра в конце, и системы, которые изначально писались простыми, потому что «вроде ничего сложного не надо будет, а готово должно быть прям завтра» обрастают слоями расширений и костылей до тех пор, пока не становятся совершенно непонятными для всех участников процесса.
Если повезёт — в этот момент система будет сожжена и написана заново, но это случается редко, потому что денег и времени нет.
Хорошо, если код кочует из предыдущего проекта в следующий: в волшебный момент между проектами иногда можно довольно радикально побороться с техническим долгом.Все игровые движки, существующие дольше нескольких лет -тоже набор жутких костылей, неисправимых багов и странных решений, которые теперь уже нельзя менять, потому что на них завязан код сотен или тысяч игр.
Что не мешает иногда авторам движков при выпуске очередного малозначительного обновления всё к хренам сломать.
И не верьте тем, кто хвалит (да и ругает) тот или иной движок за производительность: хорошая работа игры — это всегда кровь, пот и слёзы команды конкретной игры.
На любом движке можно сделать круто, а можно говно.
И круто — всегда сложно.
Если делать всё не думая и второпях — то игра всё равно может получиться, и даже быть весёлой, но никогда не будет нетребовательной к железу, скорость работы кода (и ресурсов) — всегда обратно пропорциональна скорости разработки.
Но «прожорливость» игры мало влияет на продажи, кроме редких случаев (новая платформа, например: у нас была гонка для Windows Phone, которая на голову обставляла конкурентов по скорости работы на этой платформе за счёт самодельного движка, даже на дешёвых китайских HTC, и в результате мы зарабатывали с мобильной Винды больше, чем с Android или даже Apple).Зарплатыпрограммистов в геймдеве хорошие по меркам России в целом, но не сказать чтобы топовые по меркам IT (знакомый по собачьей площадке удивлялся, почему я живу в спальном районе на окраине Москвы, а не в одной из башен Сити; ответ — потому что я близко не зарабатываю так, чтобы позволить себе даже однушку в престижном районе, ибо цены на недвижимость в Москве окончательно объелись ухи).
Перейти из геймдева в бизнес-разработку с заметным повышением зарплаты вполне реально.
Но там и скучнее будет, и ответственности больше — серьёзный баг в игре это неприятно, но, как правило, не страшно, и не ведёт к судебным искам против компании.
Впрочем, вопрос скуки, конечно, субъективный.
Лично мне пришлось на некоторое время перейти от игровых задач к более «приземлённым» (навигация в помещениях и криптокошелёк), и мне не понравилось — душа хотела бегающих по экрану человечков, ездящих машинок, чего угодно, но не просто сухих цифр и бесконечной войны с Bluetooth LE или протоколом Bitcoin.
Хотя казалось бы, код — он везде код.Не могу сказать за всю индустрию, но, судя по всему,российский геймдев очень сильно отличается от западного в плане рабочей культуры.
Ужасающие рассказы про 80-часовую рабочую неделю в EA — для меня так и остались рассказами, ни в одной из компаний, где я работал, постоянные переработки были не приняты.
Да, бывало, конечно, что выходили поработать в выходной, или оставались чуть попозже — но это были редкие, исключительные случаи, реже одного раза в год.
По своему желанию, конечно, бывало засиживался за работой, но это реально рабочий азарт — когда любишь то, что делаешь, и не хочешь бросать на пол пути, потому что иначе контекст из головы улетучится.Игроки, конечно, очень плохо представляют себе сложность/стоимость некоторых компонентов игры.
Особенно это касается поддержки мультиплеера и модов — и то, и другое, на самом деле, ОЧЕНЬ сложно и дорого, если не заложено изначально.
С другой стороны, даже разработчик не всегда представляет себе, сколько будет стоить добавить какую-то, вроде бы, мелкую фичу в игру, и понимает всю глубину пропасти, в которую катится, только после недели-другой усердной работы.
Как простой и не очень катастрофичный пример, меня в определённый момент начало бесить, что в игре, которую мы тогда разрабатывали, в бою довольно медленные анимации, и я захотел сделать возможность их ускорить/пропустить (это вообще моё больное место, я во всех играх всегда включаю все возможные ускорения, даже если авторы игры их не предусмотрели: вы знали, что если сначала запустить игру F117 Stealth Fighter 2, выйти из неё, а потом запустить Sid Meier’s Civilization — то юниты в «Цивилизации» будет двигаться намного быстрее?).
То, что на первый взгляд казалось приключением на 20 минут (ну, сделать галочку и добавить множитель где-нибудь, правда ведь?) оказалось задачей на несколько дней, породившей, а результате, несколько багов и необходимости поддержки этого самого ускорения в будущем.
Потому что если просто ускорить течение времени — то будет некрасиво и неудобно, а чтобы сделать хорошо — надо точечно и ПО РАЗНОМУ подпирать разные аспекты игры.
Например, передвижение работает так, что мы каждый кадр телепортируем персонажа на следующую клетку пути без анимации, а в применении умений надо именно ускорять анимации (и не у всех умений, а только у некоторых), но при этом ещё не забыть ускорить полёт снарядов на ту же величину — это отдельный код.
Или вот задача «добавить поиск по имени предмета в инвентаре» — она выливается в переделку части интерфейса, и отдельные увлекательные танцы с бубном, чтобы это и на чёртовых консолях, где нет ни мышки, ни клавиатуры, это тоже как-то работало.Многие программисты не умеют в отладку.Ну, то есть, не то чтобы совсем не умеют, но умеют не очень хорошо.
Приходилось встречаться с подходом, когда человек заявлял «ой, ошибка не в моём коде, пусть другая команда разбирается, это у них!», что могло приводить к перекидыванию одной и той же проблемы между отделами, и увеличению сроков исправления.
Нет, я не говорю, что надо бросаться исправлять чужой код — это чревато, если ты в нём не разбираешься, как в своём.
Но вот попробовать проследить причину, и принести другому человеку уже не просто баг «оно сломалось», а результат расследования в формате «у вас вот тут, кажется, такая-то ошибка, потому что когда мы вам отправили вот такие вот данные в таком-то состоянии, оно ломается таким-то образом, хотя мы ожидаем, что оно будет работать вот так» — это, по-моему, должна быть норма.
Тем более, что тот факт, что следы бага уходят в чужой код, далеко не всегда означает что ошибка в нём: возможно, косяк всё-таки у тебя, просто надо копнуть глубже.
Чаще всего такое происходит при взаимодействии игровой логики и пользовательского интерфейса: тебе приходит баг вида «я нажимаю на кнопку, а оно ничего не делает», ты видишь, что оно ничего не делает, потому что в UI происходит ошибка при нажатии кнопки, но потом оказывается, что ошибка эта возникает потому, что это ТВОЙ код ранее привёл UI в невалидное состояние.Я люблю отладку(и оптимизацию, которая, по сути, есть отладка проблем с производительностью) больше, чем все остальные аспекты программирования.
Это всегда увлекательный детектив — выяснить, какое же сочетание обстоятельств привело к ошибке.
Есть в этом азарт охоты, или, может быть, исследовательской работы: ты строишь гипотезы, проводишь эксперименты, проводишь археологические раскопки в коде, иногда даже опрашиваешь свидетелей.
Написание нового кода тоже по своему интересно, но для меня это задача со слишком многими неизвестными, что вызывает некоторый нервяк.
Отладка же — работа с «закрытой» системой, и ты точно знаешь, что где-то в этой системе есть правильный ответ на твой вопрос («почему оно сломалось?»), и тебе просто надо его найти.Люди — тупые, ленивые, невнимательные и забывчивые существа.
Я — в первую очередь.
Поэтому:всё что можно автоматизировать, должно быть автоматизированно.
Если в коде где-то есть два связанных места, которые всегда надо менять одновременно, но при этом между ними нет жёсткой связи — рано или поздно об этом забудут, и будет весёлый баг.
Всеми силами такого надо стараться избегать.
Меня убивает, что другие отделы часто работают на договорённостях вида «давайте вот так делать, а по другому не делать», которые хорошо если где-то зафиксированы, а часто есть только в головах тех, кто их обсуждал когда-то.
Всё, что не может быть автоматически проверено — рано или поздно будет проёбано, и вопрос только в цене этого проёба.
Кстати, документация в геймдеве — относительно редкий зверь.
Актуальная — так вообще.
У нас даже был мем «былинный геймдев», потому что вся важная информация передавалась из уст в уста, как легенды и предания у примитивных народов.
Впрочем, чем студия больше — тем и документации больше, надо признать, иначе совсем тяжко.Не верьте тому, кто говорит вам, чтоосновная проблема геймдева- пиратство.
Основная проблема геймдева — менеджмент, который не понимает, что хочет, или понимает, но хочет фигню.
Чтобы там всякие Мацанюки и прочие фанаты StarForce-подобных систем ни говорили.
До сих пор горжусь тем, что меня на старом DTF забанили «за пропаганду пиратства», а «директор» одной мелкой российской студии приходил ко мне в уютную ЖЖшечку и писал в личку чтобы я «жил и боялся», и как он «меня найдёт» (в индустриальных кругах у него была кличка «Леонид Позвонид», потому что писал он угрозы вообще всем подряд, и один раз чуть не был за это бит, когда на конференции встретил одного из тех, кому угрожал).
Ну и ни для кого не будет секретом, что весь российский геймдев (и значительная часть западного) вырос на пиратстве — почти ни у кого из нас в детстве не было лицензий на компилятор, или на Фотошоп, да и на DOS и Винду тоже.
И у любой российской IT-компании как минимум в «млаледчестве» обязательно был сетевой диск с «почти лицензионным», как мне один раз сказали на Горбушке, софтом.Вторая основная проблема геймдева- клиническая недооценка сложности задач, и, как результат, сроков и бюджетов.
И я честно ХЗ что тут делать.
Домножение на «Пи» или «e» не всегда помогает.
Мы как-то раз запланировали пользовательский интерфейс для игры сделать за 2 месяца, а потратили больше года, потому что к моменту начала работ выяснилось, что, собственно, графику для оного интерфейса, которую должен был предоставить заказчик, никто ещё делать и не начинал.А когда её доделали — художник, работавший над ней, уволился к хренам, и после этого любые элементы, которых нам не хватало, мы собирали из кусочков, своими кривыми программистскими руками.Искусственный интеллектПОКА не заменяет ни программистов, ни художников, ни сценаристов, ни тестеров.
Он МОЖЕТ делать то, что делают все эти профессии, но пока что делает это плохо и неконсистентно.
Я не знаю, у кого там ИИ уже за него половину работы делает, а в моём опыте ты чаще встречаешься с его галлюцинациями, когда он выдумывает на пустом месте несуществующие библиотечные функции, а если его в это ткнуть носом — вообще бред начинает нести.
На вопрос «а в чём тут может быть проблема» — отвечает совсем плохо, то есть к отладке непригоден.
Не знаю, может типовые сайты он скоро сможет клепать (с типовыми дырами в безопасности, хе-хе), но в играх, я думаю, ещё несколько лет у нас есть, даже если развитие будет идти ускоряющимися темпами.
А в тот момент, когда ИИ сможет ПОЛНОЦЕННО заменить программиста — у человечества уже будет сильно больше проблем, чем безработица.
Вот такое вот «что я узнал».
Не думаю, что открыл какую-то Америку, или рассказал что-то принципиально новое, но таковы мои основные впечатление от выбранной сферы деятельности.
Ни о чём не жалею, и если бы у меня были дети — был бы рад, если бы они заинтересовались этим же направлением.
Сам же планирую оставаться в профессии до тех пор, пока не выгонят 🙂 И на пенсии, если голова ещё будет варить, всё равно что-нибудь тихонечко программировать, если, конечно, будет та пенсия, а не ядерный армагедец или восстание машин.
Восток
Вот на таком устройстве советский гражданин Юрий Алексеевич Гагарин поднялся на орбиту.
Вопрос к яндексу…
Немецкий танк Leopard 2 с украинским флагом по 50% скидке не желаете?Такие игрушки продаются на Яндекс Маркете.
Это тот же Яндекс, который крутит украинские нацистские песни у себя в Музыке и отказывается их удалять.
GENSEK — 2025 — Первый (Видеоклип)
12 апреля (ранее в СССР), а теперь в России и Беларуси отмечается День космонавтики.
А может кто-то и не знал: 12 апреля — это и Международный день полёта человека в космос.
Решение об этой памятной дате принято на 65-й сессии Генеральной Ассамблеи ООН 7 апреля 2011 года.
Проект GENSEK к этой великой дате в истории человечества выпустил видеоклип «Первый».
Начиная с космических гитар, GENSEK выдает немного меланхолический, но все-таки уверенный и наполненный внутренней силой Metal.
Чеканным шагом, как Юрий Гагарин шел на доклад к Хрущеву, таким же ритмом двигает трэк с мрачно торжествующими гитарами и плавающими небесными соляками на втором плане.
Композиция решена в мид-темпо с лирическими воздушными мостами, но после центра ритм-гитара немного расцепляет рифф, захватывая еще более пространства — будто вдыхает полной грудью после скафандра.
В трэке впилено сообщение ТАСС об успешном полете первого человека в космос — для придания духа времени в этом отдельно взятом эпике.
Вполне возможно, кто-то задастся вопросом, отчего композиция решена в таком драматическом настроении.
Признаюсь, и сам так подумал поначалу, но пришел к выводу, что эмоциональный настрой клипа реально соответствует не только судьбе нашего первого космонавта, но и тем титаническим усилиям Союза, которые привели к такому успеху… А ведь они сопровождались не только мажором и победными донесениями.
«Первый останется навечно первым» (с) GENSEK.
P.
S.
Музыканты (о которых ничего не известно), отмечают, что «видео сделано с помощью нейронный сетей, поэтому не претендует на историческую достоверность».
Я думаю, что это норм отмечено.
В конце концов, первая полоса «Комсомолки» со словами «Человек в космосе» настоящая!
https://vk.com/gensekbandи на ютрубе , может кому-то надо
СТРАСТЬ РОЖДАЕТСЯ В НЕИЗВЕСТНОСТИ!
Секретный объект №4. Что спрятано под Амуром в Хабаровске и что скрывали от жителей СССР почти полвека?
Несколько дней назад, один человек, неплохо знающий историю, написал:
«Это невероятно.
Когда я узнал, меня пробрала такая гордость за нашу страну, что не передать.
Уникальные люди, непобедимая страна и лучшие умы».
Что так впечатлило человека?
Что он узнал, чего не знают миллионы?
Сегодня мы расскажем про секретный объект №4 под рекой Амур в Хабаровске.
Вот тот самый знаменитый мост, который вы тысячи раз видели на купюре.
Но под мостом и толщей воды в этом месте, скрыто то, что почти полвека скрывалось от всего мира.
И то, что там скрыто, помогло нашей стране отвоевать у японцев Сахалин и Курилы.
А суть вот в чём.
Летом 1945 года, Советский Союз перебросил из Центральной России, Урала и Сибири 150 тысяч вагонов с грузом, вооружением и солдатами.
Наша Армия собралась на границе с Китаем и Корейским полуостровом.
Через мгновение, Красная Армия нанесёт разящий удар по японцам.
Но как они смогли незаметно перебросить такие силы и провести их через единственный мост над Амуром в Хабаровске?
Ведь если бы японцы заметили, то просто бы разрушили его, сорвав операцию.
И ответ долгое время был скрыт от глаз посторонних.
Наши прошли по единственному в Советском Союзе подводному железнодорожному тоннелю прямо под рекой Амур.
До 70-х прошлого столетия эта дорога была засекречена.
Объект № 4 Народного Комиссариата путей и сообщения начали возводить после того, как японцы захватили часть Китая.
Было понятно, что рано или поздно они вторгнутся в Советский Союз.
Дело в том, что весь правобережный Хабаровский край, всё советское Приморье, с портом Владивосток, соединялись в приграничье всего лишь одним мостом через реку.
Ударь по нему японцы, и мы бы потеряли целый стратегический город и плацдарм.
Что сделали наши?
По сути, они реализовали планы Императорской России по строительству подводного тоннеля.
Строить начали за несколько лет до войны.
Это в тему того, что наши не готовились к войне.
Готовились.
Строить доверили специальной железнодорожной бригаде.
Одним из руководителей был Анатолий Чертков.
Чертков должен был решить задачу геодезиста.
А именно всё рассчитать, а затем начать строительство сразу в двух точках (с выхода и входа).
Они должны были встретиться посередине.
Наши пробурили несколько шахт, загнали специальные проходческие щиты на глубину до 85 метров.
А затем пошли друг другу навстречу.
Самой сложной задачей было сделать так, чтобы встретиться в одной точке с одинаковым перепадом.
Это и по сегодняшним меркам сложно, а тогда вообще практические невозможно.
Но они всё сделали.
Длина свыше 7 километров, изогнутый тоннель, разные перепады в несколько десятков метров.
Проект выполняли 900 инженеров и несколько тысяч железнодорожников.
В июне 1941 года проходы были соединены.
Отклонение составило меньше сантиметра.
Именно по этому тоннелю, спустя четыре года пойдут эшелоны техники, которые и разгромят японскую армию.
Но была ещё одна интересная история в этом проекте.
Дело в том, что наши предусмотрели, что противник тоже может пустить свои силы через этот тоннель, если всё пойдёт не по плану.
Для этого они сделали специальные проходы для воды из реки.
И как только японские поезда пошли бы по нашему тоннелю, их моментально затопили бы.
Тоннель был бы непригоден для переброски сил противника.
Рассчитали так, чтобы затопление произошло всего за пять минут, чтобы никто не успел выбраться.
Благодаря этому секретному объекту № 4, Красная Армия смогла незаметно скопить силы против японцев.
А в августе 1945 года, товарищ Сталин отдал приказ атаковать Квантунскую Армию.
Японцы были разбиты.
Их армия сдалась, а совсем немного времени спустя, они подписали капитуляцию.
Советский Союз решил все свои задачи на Дальнем Востоке.
Реванш за русско-японскую начала столетия был взят.
Сегодня реконструированный мост над Амуром и подводный тоннель работают для гражданских задач.
Они стали полноценной современной частью Транссибирской магистрали.
Всем добра и спасибо за внимание.
Что я узнал за 20 лет работы программистом в геймдеве
Вообще, я немного вру — юбилей трудовой деятельности у меня будет только в следующем году.
Но не думаю, что моё видение за это время сильно поменяется.
За это время, я успел поработать в 5 компаниях, делал ММО-убийцу-Варкрафта, ММО-как-арены-в-Варкрафте, мобильные говноклоны, и, наконец, в 2019 году пришёл в компанию, которая делает игры, которые мне нравятся.
Заранее прошу прощения за многословность — не люблю писать утверждения без развёрнутых объяснений.
Самое главное: разработка игр — это круто.Честно скажу — не любил ни школу, ни ВУЗ, и только придя в свою первую компанию я почувствовал себя на своём месте, среди людей, с которыми мне приятно общаться и работать.
Конечно, это субъективное.
Но очень важное.
Я всегда представлял себе идеальную работу чем-то средним между НИИЧаВО Стругацких и Малого Тайного Сыскного Войска из книжек Макса Фрая, и по-моему, геймдев — это оно.
Самое главное, что люди здесь не только делают игры, но и живут ими, играют сами, обсуждают их, болеют сердцем за то, что создают.
Очень редко можно встретить в разработке человека, который просто приходит работать за зарплату, независимо от возраста.
Конечно, есть и другие отрасли и компании, где такое норма, но, по рассказам, это, скорее, редкость.Тем больнее, когда ты чувствуешь, что делаешь что-то не то, но начальство/инвестор настаивает на своём видении.
Поэтому я больше не хочу возвращаться в мобильный геймдев: все мобильные игры, над которыми я работал, провалились, и, вроде бы, мне с самого начала было видно, что они провалятся, но люди, дающие деньги, были уверены в обратном.
Ну, и поскольку я не совсем целевая аудитория мобильных игр (играю на ПК, в основном, а если на мобиле — то не совершаю много покупок в игре), то я всегда утешал себя тем, что они, наверное, знают, что делают — всё-таки, своими деньгами рискуют.
Практика показала, что нет: зачем мы в одной компании два года делали прямой клон «Clash of Clans» с «улучшенной графикой» — так и осталось загадкой, поскольку в результате оказалось, что игрокам в «Clash of Clans» не нужна лучшая графика, и проект закрылся спустя месяц после релиза.Программировать игры — весело.
Но не для всех.
Потому что это вечный бардак.
Сбор требований?
Какие требования, есть только одно настоящее требование — чтобы игра была весёлой.
Если для этого в середине проекта надо полностью поменять всю боевую систему — программисты не могут сказать «ой, простите, этого не было в требованиях», даже в голову не придёт.
В начале разработки, как правило, никто себе толком не представляет, как будет выглядеть игра в конце, и системы, которые изначально писались простыми, потому что «вроде ничего сложного не надо будет, а готово должно быть прям завтра» обрастают слоями расширений и костылей до тех пор, пока не становятся совершенно непонятными для всех участников процесса.
Если повезёт — в этот момент система будет сожжена и написана заново, но это случается редко, потому что денег и времени нет.
Хорошо, если код кочует из предыдущего проекта в следующий: в волшебный момент между проектами иногда можно довольно радикально побороться с техническим долгом.Все игровые движки, существующие дольше нескольких лет -тоже набор жутких костылей, неисправимых багов и странных решений, которые теперь уже нельзя менять, потому что на них завязан код сотен или тысяч игр.
Что не мешает иногда авторам движков при выпуске очередного малозначительного обновления всё к хренам сломать.
И не верьте тем, кто хвалит (да и ругает) тот или иной движок за производительность: хорошая работа игры — это всегда кровь, пот и слёзы команды конкретной игры.
На любом движке можно сделать круто, а можно говно.
И круто — всегда сложно.
Если делать всё не думая и второпях — то игра всё равно может получиться, и даже быть весёлой, но никогда не будет нетребовательной к железу, скорость работы кода (и ресурсов) — всегда обратно пропорциональна скорости разработки.
Но «прожорливость» игры мало влияет на продажи, кроме редких случаев (новая платформа, например: у нас была гонка для Windows Phone, которая на голову обставляла конкурентов по скорости работы на этой платформе за счёт самодельного движка, даже на дешёвых китайских HTC, и в результате мы зарабатывали с мобильной Винды больше, чем с Android или даже Apple).Зарплатыпрограммистов в геймдеве хорошие по меркам России в целом, но не сказать чтобы топовые по меркам IT (знакомый по собачьей площадке удивлялся, почему я живу в спальном районе на окраине Москвы, а не в одной из башен Сити; ответ — потому что я близко не зарабатываю так, чтобы позволить себе даже однушку в престижном районе, ибо цены на недвижимость в Москве окончательно объелись ухи).
Перейти из геймдева в бизнес-разработку с заметным повышением зарплаты вполне реально.
Но там и скучнее будет, и ответственности больше — серьёзный баг в игре это неприятно, но, как правило, не страшно, и не ведёт к судебным искам против компании.
Впрочем, вопрос скуки, конечно, субъективный.
Лично мне пришлось на некоторое время перейти от игровых задач к более «приземлённым» (навигация в помещениях и криптокошелёк), и мне не понравилось — душа хотела бегающих по экрану человечков, ездящих машинок, чего угодно, но не просто сухих цифр и бесконечной войны с Bluetooth LE или протоколом Bitcoin.
Хотя казалось бы, код — он везде код.Не могу сказать за всю индустрию, но, судя по всему,российский геймдев очень сильно отличается от западного в плане рабочей культуры.
Ужасающие рассказы про 80-часовую рабочую неделю в EA — для меня так и остались рассказами, ни в одной из компаний, где я работал, постоянные переработки были не приняты.
Да, бывало, конечно, что выходили поработать в выходной, или оставались чуть попозже — но это были редкие, исключительные случаи, реже одного раза в год.
По своему желанию, конечно, бывало засиживался за работой, но это реально рабочий азарт — когда любишь то, что делаешь, и не хочешь бросать на пол пути, потому что иначе контекст из головы улетучится.Игроки, конечно, очень плохо представляют себе сложность/стоимость некоторых компонентов игры.
Особенно это касается поддержки мультиплеера и модов — и то, и другое, на самом деле, ОЧЕНЬ сложно и дорого, если не заложено изначально.
С другой стороны, даже разработчик не всегда представляет себе, сколько будет стоить добавить какую-то, вроде бы, мелкую фичу в игру, и понимает всю глубину пропасти, в которую катится, только после недели-другой усердной работы.
Как простой и не очень катастрофичный пример, меня в определённый момент начало бесить, что в игре, которую мы тогда разрабатывали, в бою довольно медленные анимации, и я захотел сделать возможность их ускорить/пропустить (это вообще моё больное место, я во всех играх всегда включаю все возможные ускорения, даже если авторы игры их не предусмотрели: вы знали, что если сначала запустить игру F117 Stealth Fighter 2, выйти из неё, а потом запустить Sid Meier’s Civilization — то юниты в «Цивилизации» будет двигаться намного быстрее?).
То, что на первый взгляд казалось приключением на 20 минут (ну, сделать галочку и добавить множитель где-нибудь, правда ведь?) оказалось задачей на несколько дней, породившей, а результате, несколько багов и необходимости поддержки этого самого ускорения в будущем.
Потому что если просто ускорить течение времени — то будет некрасиво и неудобно, а чтобы сделать хорошо — надо точечно и ПО РАЗНОМУ подпирать разные аспекты игры.
Например, передвижение работает так, что мы каждый кадр телепортируем персонажа на следующую клетку пути без анимации, а в применении умений надо именно ускорять анимации (и не у всех умений, а только у некоторых), но при этом ещё не забыть ускорить полёт снарядов на ту же величину — это отдельный код.
Или вот задача «добавить поиск по имени предмета в инвентаре» — она выливается в переделку части интерфейса, и отдельные увлекательные танцы с бубном, чтобы это и на чёртовых консолях, где нет ни мышки, ни клавиатуры, это тоже как-то работало.Многие программисты не умеют в отладку.Ну, то есть, не то чтобы совсем не умеют, но умеют не очень хорошо.
Приходилось встречаться с подходом, когда человек заявлял «ой, ошибка не в моём коде, пусть другая команда разбирается, это у них!», что могло приводить к перекидыванию одной и той же проблемы между отделами, и увеличению сроков исправления.
Нет, я не говорю, что надо бросаться исправлять чужой код — это чревато, если ты в нём не разбираешься, как в своём.
Но вот попробовать проследить причину, и принести другому человеку уже не просто баг «оно сломалось», а результат расследования в формате «у вас вот тут, кажется, такая-то ошибка, потому что когда мы вам отправили вот такие вот данные в таком-то состоянии, оно ломается таким-то образом, хотя мы ожидаем, что оно будет работать вот так» — это, по-моему, должна быть норма.
Тем более, что тот факт, что следы бага уходят в чужой код, далеко не всегда означает что ошибка в нём: возможно, косяк всё-таки у тебя, просто надо копнуть глубже.
Чаще всего такое происходит при взаимодействии игровой логики и пользовательского интерфейса: тебе приходит баг вида «я нажимаю на кнопку, а оно ничего не делает», ты видишь, что оно ничего не делает, потому что в UI происходит ошибка при нажатии кнопки, но потом оказывается, что ошибка эта возникает потому, что это ТВОЙ код ранее привёл UI в невалидное состояние.Я люблю отладку(и оптимизацию, которая, по сути, есть отладка проблем с производительностью) больше, чем все остальные аспекты программирования.
Это всегда увлекательный детектив — выяснить, какое же сочетание обстоятельств привело к ошибке.
Есть в этом азарт охоты, или, может быть, исследовательской работы: ты строишь гипотезы, проводишь эксперименты, проводишь археологические раскопки в коде, иногда даже опрашиваешь свидетелей.
Написание нового кода тоже по своему интересно, но для меня это задача со слишком многими неизвестными, что вызывает некоторый нервяк.
Отладка же — работа с «закрытой» системой, и ты точно знаешь, что где-то в этой системе есть правильный ответ на твой вопрос («почему оно сломалось?»), и тебе просто надо его найти.Люди — тупые, ленивые, невнимательные и забывчивые существа.
Я — в первую очередь.
Поэтому:всё что можно автоматизировать, должно быть автоматизированно.
Если в коде где-то есть два связанных места, которые всегда надо менять одновременно, но при этом между ними нет жёсткой связи — рано или поздно об этом забудут, и будет весёлый баг.
Всеми силами такого надо стараться избегать.
Меня убивает, что другие отделы часто работают на договорённостях вида «давайте вот так делать, а по другому не делать», которые хорошо если где-то зафиксированы, а часто есть только в головах тех, кто их обсуждал когда-то.
Всё, что не может быть автоматически проверено — рано или поздно будет проёбано, и вопрос только в цене этого проёба.
Кстати, документация в геймдеве — относительно редкий зверь.
Актуальная — так вообще.
У нас даже был мем «былинный геймдев», потому что вся важная информация передавалась из уст в уста, как легенды и предания у примитивных народов.
Впрочем, чем студия больше — тем и документации больше, надо признать, иначе совсем тяжко.Не верьте тому, кто говорит вам, чтоосновная проблема геймдева- пиратство.
Основная проблема геймдева — менеджмент, который не понимает, что хочет, или понимает, но хочет фигню.
Чтобы там всякие Мацанюки и прочие фанаты StarForce-подобных систем ни говорили.
До сих пор горжусь тем, что меня на старом DTF забанили «за пропаганду пиратства», а «директор» одной мелкой российской студии приходил ко мне в уютную ЖЖшечку и писал в личку чтобы я «жил и боялся», и как он «меня найдёт» (в индустриальных кругах у него была кличка «Леонид Позвонид», потому что писал он угрозы вообще всем подряд, и один раз чуть не был за это бит, когда на конференции встретил одного из тех, кому угрожал).
Ну и ни для кого не будет секретом, что весь российский геймдев (и значительная часть западного) вырос на пиратстве — почти ни у кого из нас в детстве не было лицензий на компилятор, или на Фотошоп, да и на DOS и Винду тоже.
И у любой российской IT-компании как минимум в «млаледчестве» обязательно был сетевой диск с «почти лицензионным», как мне один раз сказали на Горбушке, софтом.Вторая основная проблема геймдева- клиническая недооценка сложности задач, и, как результат, сроков и бюджетов.
И я честно ХЗ что тут делать.
Домножение на «Пи» или «e» не всегда помогает.
Мы как-то раз запланировали пользовательский интерфейс для игры сделать за 2 месяца, а потратили больше года, потому что к моменту начала работ выяснилось, что, собственно, графику для оного интерфейса, которую должен был предоставить заказчик, никто ещё делать и не начинал.А когда её доделали — художник, работавший над ней, уволился к хренам, и после этого любые элементы, которых нам не хватало, мы собирали из кусочков, своими кривыми программистскими руками.Искусственный интеллектПОКА не заменяет ни программистов, ни художников, ни сценаристов, ни тестеров.
Он МОЖЕТ делать то, что делают все эти профессии, но пока что делает это плохо и неконсистентно.
Я не знаю, у кого там ИИ уже за него половину работы делает, а в моём опыте ты чаще встречаешься с его галлюцинациями, когда он выдумывает на пустом месте несуществующие библиотечные функции, а если его в это ткнуть носом — вообще бред начинает нести.
На вопрос «а в чём тут может быть проблема» — отвечает совсем плохо, то есть к отладке непригоден.
Не знаю, может типовые сайты он скоро сможет клепать (с типовыми дырами в безопасности, хе-хе), но в играх, я думаю, ещё несколько лет у нас есть, даже если развитие будет идти ускоряющимися темпами.
А в тот момент, когда ИИ сможет ПОЛНОЦЕННО заменить программиста — у человечества уже будет сильно больше проблем, чем безработица.
Вот такое вот «что я узнал».
Не думаю, что открыл какую-то Америку, или рассказал что-то принципиально новое, но таковы мои основные впечатление от выбранной сферы деятельности.
Ни о чём не жалею, и если бы у меня были дети — был бы рад, если бы они заинтересовались этим же направлением.
Сам же планирую оставаться в профессии до тех пор, пока не выгонят 🙂 И на пенсии, если голова ещё будет варить, всё равно что-нибудь тихонечко программировать, если, конечно, будет та пенсия, а не ядерный армагедец или восстание машин.
Ланч
Dolri