bash.im ithappens.me zadolba.li

Игры

733

Watch your six

В университете в качестве курсовой работы по программированию мы небольшой группой писали игрушку — двумерную платформер-стрелялку.

Все было здорово, пока мы не стали учить героя пользоваться ружьём. Планировался хитрый расчёт траектории пули, но привязать её начало к кончику дула никак не получалось. На время мы убрали объект героя и сделали так, что пуля начинает свой полет с земли, а ее прорисовка начинается лишь от положения дула. Реализовали — всё замечательно, «невидимка» перемещается по экрану, а вылетающие из пустоты пули исправно поражают врагов.

Принялись за объект героя, написали ему систему поражений и прикрутили обратно. Тут началось странное — при попытке атаковать первого же врага главный герой погибал.

В чём дело? Условия смерти героя мы описали верно, разве что кровь ещё не нарисовали. В игре используется всего один объект «пуля». Бились над проблемой долго и безрезультатно.

Наконец меня осенило. Герой оказался самоубийцей! При выстреле пуля начинала полет с земли, догоняла героя и смертельно поражала его в пятую точку.

Проблему решили, написав новый объект «пуля_героя», для которой сам герой был неуязвим. Товарищи, никогда не забывайте про кровь — по крайней мере на время разработки!

718

Хорошо, что не Автокад

Работал я в прошлом году в одной фирме по продаже компьютеров, комплектующих и Висты. Естественно, на некоторых компах был и Линукс, на одном — ХР, но большей частью именно Она.

Приходит к нам мамаша с сыном. Я понял, что мальчику мощный компьютер особо и не нужен, и меня передёрнуло, когда мать заявила: «Что угодно в пределах 45 тысяч».

Сынок протянул мне бумажку с каракулями. 4 гига оперативки, хард на полтерабайта, трёхгигагерцовый процессор и видеокарта с 512 МБ памяти. Куда такой монстр, да ещё и с ХР?!
— Мальчик, зачем тебе ХР? Это же такое старьё, — начал было я.
Мальчик честно посмотрел на меня добрыми глазами и отрезал:
— Под Вистой Макс не тянет.
Я подавился. Парню лет тринадцать. Если это тот Макс, про который я думаю, то что будет дальше?

Компьютер подобрали достаточно быстро. Меня толкает под рёбра товарищ Сеня и подмигивает. Да, у него в запасниках есть ещё пара дисков с ХР, но просто так он их не отдаст.
— Давай так, мой юный друг. Если докажешь, что тебе действительно нужна ХР, то поставлю бесплатно. Окей? — спрашивает его Сеня, тот кивает. — Пойдём-ка.

Иду за ними из интереса. Сеня что-то рассказывает мальчишке, усаживает за свой комп и запускает Макс. Паренёк кивает головой, за три минуты изображает примитивный, довольно уродливый космический корабль, минут за пять раскидывает развёртку, ещё восемь — рисует текстуру...

Когда закончился рендер, Сеня вздохнул и молча приволок диск с ХР.
— Откуда умеешь так? — удивился я.
— Моды для игрушек с друзьями делаем, — парень пожал плечами.

698

Крутится, вертится шар голубой

Работал я когда-то системным программистом, а заодно и админом на крупной фабрике. Контингент был большей частью женский, в том числе около 20 «операторш ЭВМ», которые занимались вводом данных.

Настоящей напастью была известная игрушка Lines (помните — пять шариков в линию?) «Дэвушки» играли в нее в любое возможное и невозможное время. В конце концов начальство это достало, и меня попросили с этим разобраться.

Раз надо, чтобы не играли, значит, не будут. Как же, размечтался — в сети сто компьютеров, а у каждого в укромном углу лежит дискета с «шариками».

Но где наша не пропадала? За вечер была написана программка, которая садилась в память и сканировала ее на предмет злосчастной игрушки. Если она находилась, код правился прямо в памяти и программка делала все шарики голубыми. С точки зрения игры шары оставались разноцветными, так что выстроить их правильно было практически невозможно. Оставалось только с утра вставить эту штучку в глобальный логон-скрипт.

Следующие два дня были для меня настоящим испытанием. Я старался не смеяться. Я делал постную рожу, когда они бегали к соседям за «правильной версией» и доставали из сейфа заклеенную дискету с дистрибутивом. Они приносили её из дома, переписывали у друзей и знакомых — все усилия были тщетны. Игры не выходило.

На третий день «операторши» выбросили белый флаг и выслали ко мне бригадира-парламентёра. С тех пор в Lines играли только в обед под чутким надзором коллег.

678

Геймер-вивисектор

Есть у меня знакомый мужик, лет около сорока, банщиком работает. Причём банщик классический — и выпьет, бывает, и поматюгается. Однако компьютер имеет и в игрушки погонять любит.

Попросил он меня сегодня переустановить винду ему за пивко, глючит, мол, достала. Я собрался, приехал, за часок управился и засобирался домой. Напоследок он рассказывает мне ещё об одной проблеме: поиграет во что-нибудь, игрушку сносит, потом новую ставит, а свободного места всё меньше и меньше. Начитавшись IT happens, решил, что мужик просто удаляет ярлычки, и полез проверять папки с играми.

Удивлению моему не было предела, когда я понял, что к чему. Банщик-кулибин разобрался, что такое ярлычок, сообразил, что, удаляя их, ничего не добьётся, и по пути, прописанному в свойствах ярлыка, просто-напросто удалял экзешники! Несчастные обезглавленные игры так и оставались валяться в дебрях харда.

668

Жестокие игры

На тему #661.

Детство мое тоже проходило за компами, правда, чужими. Там я методом тыка ставил пароли на БИОСе, находил скрытую, запиханную невесть куда, порнуху... Немногим позже начал обходить LockWin в комп. залах, шариться везде, куда только мог залезть. Удалять злым людям, не говорящим пасс от сервака контры, части движка КС через сетку..

Пишущие дисководы тогда были в новинку, и найти их у кого-то возможности не представлялось. Вот и носился я от флопика к флопику с приличной пачкой 3,5 дюймовых дискет. Пришел как-то к подруге и начал скидывать с компа все то интерестное, что только попадалось. И, естественно, при копировании увлекательной игры Arkanoid, скинул только ярлык от нее. Проверил - работает. Приехал к двоюродному брату, вставил дискетку со словами: "Я тут крутую игруху нарыл". Открываю дискету, двойной клик по иконке - о чудо, работает. Сижу играю. И тут мне друг сообщает, что эта игра была у них когда-то, но не работала, и ее удалили. Понятное дело, что удалили только ярлык, но тогда я об этом не подумал. Поэтому следующие двое знакомых были поставлены перед фактом, что у них плохие компы, т.к. игра на них не работает.

Но в итоге с ярлыками я таки разобрался, игра оказалась на 2 мб и заняла 2 дискеты. В нее же мы играли в кабинете технологии, на очень старом десктопнике, с вин 95 и 20Мб на жестком. Надо сказать, что мышь у этого детища техники колесиком не обладала, потому приходилось засовывать палец в мышь, и крутить контактные датчики вручную. Таким образом, мы повысили сложность аркады до эксперта.

667

Я построю свой луна-парк! С блэкджеком...

Было это года 2 назад. Работал я тогда в небольшой госконторе, компов на 40, програмистом. По сути работа заключалась в сопровождении оркл сервера, дописывания мини-приложений, ну и борьбе с кривыми руками пользователей... Основная пролема заключалась в том, что "штат" набирался "по блату", а не по уму. А у директора данной конторы компа не было совсем, впрочем, как и понятия о нём.

Зато директриса усиленно боролась со всеми проявлениями безделья на работе, будь то простейшие игрушки или еще что... В очередной раз "отловив бездельника", дамочка издала распоряжение выявить всех "бездельников", положить ей список игр, у кого - что, ну и, соответственно, снести всё. Естественно, все на это забили, единственное, что было сделано - спрятаны ярлыки, а особо нерадивым - в пуске папку игры я сделал скрытой (быстро и эффективно). Многие, правда, в итоге держали на этот случай дежурную дискету с ярлыками игрушек.

А в списке для директора я написал все компы и стандартные игры. В итоге диалог:
Директор: Почему на всех ПК установлены игры?
Я: Они ставятся вместе с системой... Удалять бесполезно, всё равно останутся.
Директор: Так напишите такую ОС, в которой не будет игрушек!

666

Скучаете? Тогда мы идем к вам!

Когда несколько лет назад я возглавлял отдел тестирования, в производстве находился очень интересный модуль. Модуль позволял работать с графическими образами отсканированных файлов и сшивать их в PDF документы на основе предварительно нанесенных штрих-кодов.

Работа кипела, баги правились, добавлялась поддержка новых форматов. Но в один прекрасный день при запуске процесса - откуда-то появились нещадные "тормоза", особенно на быстрых машинах. Тестеры зафиксировали проблему, но причину понять так и не удалось: на медленных машинах все окей, на быстрых - тормозит. При этом иногда каждый раз, иногда ни разу за сессию.

Когда полезли в код ковырять - удивлению не было прeдела! Мало того, что разработчиком на момент запуска была добавлена непонятно зачем "закладка" вида:
for(i = 0; i < 100000000; i++);
так еще и в момент запуска, инициализировалось "пасхальное яйцо", которое наш товарищ наваял во время обеденного перерыва.

Дальше с его слов: "Ну а чего, если файлов много - скучно же сидеть и ждать! Пусть юзер в тетрис порубится!".
Он-то и сжирал основную часть ресурсов, иногда забывая отрисоваться на экране.

653

Инкапсулировали, инкапсулировали, да доинкапсулировались

Купил на днях себе второй компьютер, чтобы жена не отвлекала со своими пасьянсами. Ну и как положено - свитч, сетка, все дела.
Принес, повтыкивал пачкорды, диски расшарил - пинги есть, интернет есть, сетевого окружения нет. Так, думаю, начинается. Смотрю, на обоих компах запрещена гостевая учетная запись. Разрешил - сетевого окружения все равно нет. Создал одинаковых пользователей - не работает.

Ну, думаю, продавцы ставили какую-то самопальную сборку винды, может там что-то с политиками безопасности. Синхронизировал политики на обоих компах - нет сетевого окружения и все тут. Ладно, может у меня тож что-то с политиками не так. Позвонил знакомому, синхронизировал с ним. Не работает. Поднял впн, сконектились со знакомым - по впн работает, а по локалке - нет. Лана, сборка винды с какими-то обновлениями, которые не пускают тех, у кого нет этих обновлений. Ну, мало ли что в майкрософте придумают? Сношу винду на новом компьютере, устанавливаю, настраиваю все так, как у меня - не работает!
Блин, думаю, наверно надо мою винду сносить. Жалко, привык я к ней. Делаю последнюю проверку перед решительными действиями. Смотрю - в свойствах локалки присутствует IPX (в старкрафт по впн игрался, видимо сетевым подключением промазал). Убираю - есть сетевое окружение, ести расшареные диски! Эта зараза винда зачем-то пустила NetBIOS через IPX.

Вот так, 4 часа возни и головной боли из-за когда-то не туда поставленой галочки.

647

AI Интеллектович

Историей про шашки навеяло... Писал я как-то в универе морской бой - такая курсовая была. Компу была прописана рекурсивная процедура, чтобы после попадания в корабль он стрелял по соседним клеткам, добивал, так сказать, "подранка". Ну, конечно, писалось все в посленюю ночь перед сдачей, отлизывать программу было некогда и задержку между выстрелами я не ставил. И после попадания мгновенно следовал следующий залп компа. При двух-трех попаданиях за ход создавалось впечатление, что комп долбит очередями.

Так вот, при сдаче процедурка где-то забарахлила и потрясенному преподавателю комп расстрелял все корабли хода за полтора - ну, повезло железяке, что попадала часто, бывает! - оставив каждому ровно по одной(!) целой клеточке! А затем, на секунду задумавшись, и, клянусь, злорадно ухмыляясь, бездушная вроде бы железяка одной длинной "очередью" садистки добила всех оставшихся на плаву.
Зачет мне поставили, не задумываясь.