5763
Вьетконговец с керосиновой лампой напомнил мне печальный случай с моим одногруппником. Купив пиратский диск с Half-Life 2, он вполне ожидаемо получил знаменитую надпись «A.I. Disabled» и полностью отключённый ИИ. Многие из вас наверняка помнят передаваемую в то время из уст в уста волшебную команду ai_norebuildgraph 1; так вот, мой друг про этот солюшн не знал. Так как с отключённым ИИ не работали скриптовые сцены, необходимые для нормального прохождения игры, пробраться дальше первой двери было невозможно.
Человек слабый и малодушный сдался бы, но не таков был мой друг. Без гравипушки и фомки, голыми руками он собирал из валяющегося вокруг мусора поражающие воображение конструкции, по которым упрямо перебирался через игровые препятствия. Пикантности занятию добавляло то, что мусора, как правило, было мало, поэтому его часто приходилось тащить за полкилометра, к тому же тщательно продумывать конструкцию, чтобы обойтись минимальным количеством элементов. Я не знаю, сколько времени это у него заняло, но таким способом он дошёл до Нового проспекта — мимо упорно молчащих и глядящих в одну точку друзей, мимо тупо стоящих на месте врагов, в полной тишине, изредка нарушаемой включающимися музыкальными треками.
Когда позже друг показал мне скриншоты со своими шаткими нагромождениями чайников, вёдер, щепок и даже бутылок (всё шло в ход), у меня случилась истерика. Скажу честно: я начал по-настоящему уважать этого человека.
5762
Работаем в команде техподдержки одного из хостинг-провайдеров. Пришёл запрос из МВД: хотят получить все данные об одном из клиентов.
Начали разбираться, что произошло. Клиент поставил у нас свой сервер, поднял там игровой онлайн-ресурс. Некий геймер купил за 40 WMZ Меч Силы, но получил Колоду Х#&ни. Недолго думая, парень пожаловался в МВД, и теперь Меч Силы уже четыре месяца ищет весь отдел по киберпреступлениям.
5761
На втором курсе нам преподавали Delphi. В конце года сказали для доступа к экзамену задали написать программу. Дали темы, провели несколько консультаций и сказали: «Шуруйте!» Однокурснику Андрею выпало писать игру «Танчики».
Сдав свои проекты и стоя в коридоре, мы обсуждали, кто как сдал и как писал код. Тут из кабинета послышались громкие возгласы: кто-то сильно удивился. Мы решили проверить, что стряслось, и, войдя в кабинет, увидели толпу около Андрея.
Посмотрев пояснительную записку, преподаватель, мягко говоря, офигел. У всех записки вышли на 10–30 листов, а у Андрея их было около 400. Танчики ездили, стреляли, врезались в стенки, даже мины работали, но в коде не было ни одного цикла и ни одного массива. Переделывать программу преподаватель просить побоялся — мало ли что ещё вылезет!
Теперь я стараюсь как можно сильнее оптимизировать свой код — неприятно, когда в тебя весь курс пальцами тыкает.
5749
Я — прогер-геймдевелопер, по совместительству — заядлый геймер. После нескольких часов, потраченных на разработку проекта, решил отдохнуть. Выдал другу архив с бесплатной 2D-мочилкой, сообщил айпишник сервера.
— У меня игра глючит!
— А что именно в ней глючит?
— Всё!
Недоумеваю: как в игре может глючить всё?
— А ты игру-то распаковал?
— Нет… А что, надо было?
Поматерился про себя.
— Надо. Распакуй и заходи.
Жду десять минут. Товарищ вваливается на сервер, и эпопея продолжается:
— Всё равно глючит!
— Да что именно у тебя глючит? Комп старый?
— Да нет, новый, GTA IV летает.
— Графика или клавиатура? Может, мышь?
— Клавиатура! Я нажимаю, а она через секунду срабатывает.
Жму Tab — пинг больше 700 мс. Про другой сервер товарищ и слушать не хотел:
— Не буду я в это глюкало играть! Я удалил уже.
С тех пор к подбору товарищей для игр я отношусь гораздо тщательнее.
5736
Полгода назад в наш мужской коллектив отдела информационных технологий пришла милая девочка с зажигательной улыбкой, большими красивыми глазами четвёртого размера, в чём-то вроде вечернего платья, только короче. Программист 1С, как и я.
В долгие рассказы о том, как повлияло на эту особу общение со мной, ударяться не буду. Скажу лишь, что Doom является неплохим способом борьбы с перепадами настроения в преддверии наступления «дней Красной армии». Ну, или если только что окончился разговор с бухгалтершей, начавшийся с фразы: «Помогите! Не могу поставить ни на приход, ни на расход!»
— Это кислота, зай. Не надо по ней бегать.
— От этих шариков лучше всего убегать боком. А этого из ружья, пистолетом долго.
— Бензопилу лучше пока убери.
— Хм, за бочками от них лучше не прятаться.
— Нет, нету фонарика. Есть карта зато, вот.
В общем, если так и дальше пойдет, время от времени свидания при свечах будут проходить где-нибудь в Skulltag Invasion. Романтика, тысяча чертей!
5732
Когда я ещё был борзым карасём, поставил себе игрушку «Вьетконг». Кто играл, тот помнит миссию во вьетнамских подземельях. Через три дня мучений я пришёл к админу за советом: сколько ещё будет продолжаться эта крысиная жизнь?
— А на фига тебе керосиновую лампу со стенки снимать?
— Дык ничё не видно! Темень сплошная.
— А ты фонарик штатный не пробовал включить?
— Какой фонарик?
— По клавише «L» у тебя зажигается фонарик.
— ?
— А как же ты вообще ходил?
— По курсору. Когда на стенку наводишь, курсор исчезает. На активных предметах принимает форму кольца. Ну, звуки всякие, освещение от керосиновых ламп…
— И далеко ты уже продвинулся?
— А хрен знает. Во вторых подземельях уже два дня бегаю — заколебался сейвиться…
Когда на последнем сейве я включил фонарик, оказалось, что до лестницы наверх было рукой подать. С тех пор я въедливо читаю мануалы и не считаю себя кулхацкером.
5716
В 1985 году в наш отдел пришли два мужика. Они долго маялись в коридоре, пока ожидали начальство. Наконец один из сотрудников пожалел их и предложил занять время игрой в тетрис.
— Умеешь? — спросил он одного из мужчин.
Ответил товарищ:
— Умеет ли он? Да он был чемпионом мира, когда играл в него один.
Да, к нам приходил Алексей Пажитнов.
5707
Как-то я работал сервис-инженером в компьютерном магазине. Приносит мне в ремонт видеокарту один товарищ, не обременённый интеллектом. Жалоба: «В играх квадраты появляются и картинки совсем не видно». Я по неопытности решил, что надо этим заняться — может, с видеопамятью проблемы?
С клиентом и видеокартой я безуспешно боролся два месяца. После очередного визита к нам в сервис клиент подходит в торговом зале к Аймаку, на необъятном мониторе которого запущена третья «квака» в разрешении 1024×768, тычет пальцем на квадраты на несглаженных краях объектов в игре и восклицает:
— Вот видите, тут та же проблема!
5559
Вспомнился и мне случай запуска программы из несуществующего каталога. Было это давно, когда после пройденного-перепройденного Wolfenstein 3D (да-да, тогда любой «вид из глаз» котировался как 3D) я приступил наконец к Spear of Destiny. Саундтреки обеих игр были сплошным набором шедевров (Бобби Принс же!), но заставка «Вольфа» крутилась в цикле до нажатия эникея и позволяла дослушать ремикс «Horst-Wessel-Lied» до конца, а мелодия «Towering Above», занимающая аналогичное место в «Копье», через X секунд неизбежно заканчивалась меню с соответствующей заменой музыки на «Wondering…». Ситуация интриговала, и дослушать «Towering» до конца хотелось.
Оказалось, «Копьё» под музыкальный шумок подгружало свои ресурсы, и время «X» ощутимо зависело от скорости диска. Wolfenstein в кастрированном виде влезал на один флоп, который можно было просто вынуть в процессе, но «Копьё» было ощутимо толще, и подобный номер с ним не прокатывал. Соединив по RS-232 две машины, я поднял на одной serial server, а на другой запустил досовский драйвер сетевых дисков. Запустив «Копьё» с сервера, я заботливо его уронил, организовав клиенту бесконечное время отклика, и успешно слил «Towering Above» на обыкновенный кассетник, пока игрушка пыталась подгрузить свои ресурсы.
Чуть позже мне пришло в голову более простое решение: в HEX-редакторе я изменил имя небольшого файлика, добавив в него абсолютный путь типа «a:\aaa.a», и скинул на дискету только этот файл, переименовав его в «aaa.a». Дальше — как в бета-тесте с флешкой: запустил, вынул, подвесил, послушал до конца.
5540
Однажды пришлось восстанавливать кучу мускуловских баз из бэкапа. Зная, что в базах данные не менялись (бэкап был очень свежим), восстанавливаю всё. Через 15 минут к программисту подходит диспетчер: «Мы в программу войти не можем». Первая мысль — проблема с MySQL. Захожу на сайт (базы которого я тоже восстановил из бэкапа) — всё работает без нареканий. Несколько других проектов тоже в порядке. Стандартная рекомендация: «Перезагрузитесь».
Ещё через 15 минут пришлось всё-таки запускать phpMyAdmin. С первого взгляда угадывается кодировка UTF-8.
Часть баз имеет в параметрах странный для них charset — cp1251_bin. С ними-то и происходила фигня при резервировании. Другие же базы, вышедшие из-под пера нашего программера, были в cp1251_general_cs, и с ними проблем не было. Когда подошёл узнать, с какой целью программер использовал двоичное представление, ответ меня убил:
— Я вообще не в курсе, в чём разница. А то, что в конце с CS, я иногда пишу просто потому, что мне Counter-Strike нравится.
Видимо, есть у него индусские корни, и бог Ганеша иногда помогает найти правильное решение, но маскирует его под странные ассоциации.