В октябре 1994 года я только начал свою карьеру добросовестного программиста видеоигр в небольшом стартапе SingleTrac, который позже получил славу и почёт (но, к сожалению, не очень много удачи) благодаря таким сериям игр, как Warhawk, Twisted Metal и Jet Moto. Но в то время в компании было меньше 20 сотрудников, и официально она работала всего около месяца. Это случилось в мою первую рабочую неделю, возможно, в первый или второй день. Из кабинета разработчиков слышались восторженные крики.
Финансовый контролёр и действующая HR-леди нашей компании Джен вышла посмотреть, что за невероятный успех празднуют инженеры и художники. Все смотрели в экран телевизора, подключённого к комплекту разработки Sony Playstation. На экране на фоне одноцветного фона отображался чёрный треугольник.
«Это чёрный треугольник», — сказала она удивлённым, но саркастическим голосом. Один из программистов движка попытался ей объяснить, но она покачала головой и вернулась в свой офис. Я почти мог слышать её мысли: «У нас осталось десять месяцев, чтобы выпустить две игры для Sony, а они радуются чёрному треугольнику? На ЭТО понадобился почти месяц разработки?»
Позже она осознала (и объяснила другим), что чёрный треугольник был первым шагом. Он не значил, что нам просто удалось вывести треугольник на экран, с этим мы бы справились и за день. Всё дело было в путешествии, которое совершил треугольник, чтобы попасть на экран. Он прошёл сквозь наши новые инструменты моделирования, через два промежуточных программы-конвертера, был загружен как полная база данных, а потом отрендерен через довольно сложную иерархию сцены, полностью затекстурен и освещён (хоть освещение и отсутствовало, поэтому он выглядел чёрным). Чёрный треугольник продемонстрировал, что фундамент наконец готов, ядро довольно сложной системы завершено, и мы готовы начать работать над интересной игрой. К концу дня мы завершили экранные модели и уже управляли ими с помощью контроллеров. Через неделю у нас была среда, внутри которой могла двигаться модель.
После этого мы начали называть достижения определённого типа «чёрными треугольниками». Так называли важные достижения, требовавшие кучи работы, но после выполнения которых почти ничего нельзя было продемонстрировать, оставалась только работа, которую можно было делать дальше. Чтобы оценить чёрный треугольник, человек должен по-настоящему знать внутренние подробности того, над чем ты работаешь.
Годы спустя я чатился с ещё одним коллегой из SingleTrac и с восторгом рассказывал о моей работе над кодом многопользовательской части. Я потратил почти неделю на внутреннюю архитектуру, стремясь сделать её понятной, надёжной и простой в использовании. В ней использовался UDP вместо TCP/IP (ради скорости), поэтому я создал собственный протокол «гарантированной доставки» для тех редких пакетов, передача которых должна быть обязательной. Я редко работал над низкоуровневым кодом до этого, поэтому для меня это был новый опыт. Когда я закончил всё, то подключил другой компьютер к игре — и бум! Всё получилось, он соединился к хост-машине. Круто. Ни каких обновлений, я почти больше не добавлял, ядро архитектуры было готово. Остальное ДОЛЖНО было добавиться быстро. Объясняя это моему другу по мессенджеру, я сказал: «Это чёрный треугольник». Он сразу понял, что я имею в виду. Это была удобная и краткая метафора.
Можете украсть этот термин. И когда прогресс будет казаться немного медленным, потому что приходится выполнять серьёзную работу над архитектурой, то просто помните — это «чёрный треугольник».