Как Quake III помог мне отладить колбасу с начинкой из клубники
19 мая 2022 г.DM17 и рельсовая пушка — это все, что мне действительно было нужно в 2000 году. Я провел сотни часов, бегая, прыгая и целясь в стремительном шутере в реальном времени, которого мир еще не видел. Наслаждайтесь лучшими компьютерными развлечениями Джона Кармака, которые в свое время были даже лучше, чем GTA 2.
В то же время я хотел заработать свои первые деньги. Я хотел иметь возможность покупать книги о кодировании 3D-игр, таких как Quake. Интернета в том смысле, в каком мы его знаем сейчас, не было. Был только один онлайн-форум о демосцене, где люди делились умопомрачительными 3D-анимациями, но не рассказывали, как их делать. Это было время формирования польской индустрии 3D-игр. Что-то способствовало основанию некоторых замечательных компаний, таких как CD Studio Red, создавших монументальные творения Ведьмака и Киберпанка.
Библиотеки не предлагали ничего, кроме книг о микропроцессорах и ассемблере. Покупка книг по программированию была моим единственным шансом продвинуться вперед в моей страсти к разработке игр. Они были дорогими, поэтому в подростковом возрасте мне приходилось зарабатывать деньги.
Это было непросто в посткоммунистическом среднем городе в центре Польши. Страна, истощенная годами российской оккупации, с высоким уровнем безработицы и отставанием от мира почти во всех аспектах.
Возможности
Мой единственный шанс состоял в том, чтобы использовать свои компьютерные навыки для получения прибыли. Оценив свои варианты, я пришел к выводу, что самый близкий способ, который я могу найти, — это собирать клубнику на соседней ферме.
Когда я как раз собирался в очередной поход на вкусную, но не прибыльную работу, то заметил в газете (старый интернет) объявление о том, что кто-то ищет айтишника, который может создать сайт.
Я знал о создании веб-сайта не меньше, чем о сборе клубники, поэтому стало очевидно, что мне нужно связаться с компанией, стоящей за листингом.
Оказалось, что это местный производитель готовой еды. Я сел на автобус и поехал в пригород со своими клубничными деньгами, чтобы встретиться с владельцем, женщиной средних лет. После знакомства она объяснила мне, что хочет получать заказы через интернет. Хотя я мало что знал о создании веб-сайтов, я знал, в каком состоянии была так называемая WWW в то время. Я знал, что в ранних версиях Javascript это было невозможно. Никто этим не занимался. Должно быть, она сошла с ума.
Так вот я был. Сижу в автобусе и еду домой с предоплатой за новую книгу и 30 днями до дедлайна.
Я провел дни и ночи, пытаясь понять, как собирать заказы через Интернет. Я разбивал утку за уткой без ответов. В конце концов, с помощью некоторого волшебства, которого я не понимал, и клейкой ленты я смог настроить веб-сайт. Но была одна проблема.
Изделия были разной формы. Были вареники и колбаса. Были супы. Разные продукты, разные юниты, разные пакеты и дополнения. Мне пришлось кодировать его на чистой, очень ранней версии JavaScript. Код был беспорядок. И это не работало должным образом.
Например, когда пользователь выбрал колбасу, внезапно его единица измерения изменилась на миллилитры, и была предложена возможность выбрать клубничную начинку.
В то время браузеры не предлагали инструментов для разработчиков. Не было возможности настроить такие инструменты, как Sentry, для расследования происходящего.
Это были только вы, счастливо не имевшие понятия, что вы делаете, и Javascript, который счастливо предположил, что вы знаете, что делаете. И мы смотрели друг на друга, счастливо наслаждаясь концепцией людей, заказывающих колбасу с начинкой из клубники.
Я потратил все свои деньги, и у меня было семь дней, чтобы встретиться с дальновидной женщиной. Надеясь вернуться на земляничные поля, чтобы вернуть предоплату, я сделал то, что сделал бы каждый. Я запустил Quake III, чтобы немного повеселиться перед тем, как окончательно провалиться.
/cg_fov вселенная
Я открыл консоль и набрал /cg_fov, чтобы настроить поле зрения для большего количества фрагов. Удивительно, но в тот же момент мне показалось, что я набрал /cg_fov Universe. Мне пришла в голову мысль, безумная и прекрасная одновременно. Что, если бы я мог добавить консоль в приложение? Что… что, если бы я мог вызывать в браузере команды, выводящие значения переменных на каждом шаге обработки кода? Я мог видеть, где возникают ошибки и почему колбаса распознается как вареники!
Я закрыл Quake и начал кодить. Мне потребовалось шесть долгих дней, чтобы во всем разобраться и настроить консоль. Это было поле ввода с кнопкой. Кнопка передала команду коду Javascript. Затем код выполнил его и добавил результат к элементу div на веб-сайте. За день до крайнего срока я был готов попробовать это. Я вызвал команду /show_log, и сразу же страница заполнилась всеми данными и шагами алгоритма, предполагающими, что kiełbasa — это вареники.
После нескольких часов тестирования мне наконец удалось исправить все ошибки в коде. Он работал безупречно. И консоль позволила мне это доказать!
Я вернулся в компанию с окончательным проектом, гордящимся своим творением. Владелец компании ненавидел цвета приложения, и мне пришлось работать еще месяц, чтобы позаботиться об этом.
Но в итоге она приняла проект. Насколько мне известно, это была первая компания, которая принимала заказы на готовые блюда через онлайн-форму на основе условий. Я смог купить еще одну книгу о кодировании 3D-игр и занялся веб-разработкой.
Итак, это история о том, как Quake помог мне отладить мое приложение. Это также история о том, что иногда стоит воспользоваться возможностями, даже если вы к ним не готовы. Для меня это было началом моей успешной карьеры программиста.
Оригинал