Разработчик оригинальной Fallout объяснил, почему "спагетти-код" не связан с ленивыми программистами
Тим Кейн – один из оригинальных создателей Fallout, поделился на своем канале новым видео, где объяснил природу "спагетти-кода" – запутанного и нечитаемого программного кода. По его словам, проблема не в недисциплинированности или низкой квалификации разработчиков, а в постоянной нехватке времени на выполнение задач. В качестве примера он привед собственный опыт работы в Interplay.
Он описал гипотетическую ситуацию с системой сопротивления урону (DR – damage resistance), концепция которой предельно проста: при 10% сопротивления урона атака на 20 единиц наносит лишь 18, так как 10% от 20 составляет 2.
Согласно первоначальному дизайн-документу, DR зависел только от одного элемента брони, который носит персонаж. Кейн написал функцию "item armor get DR", которая считывала показатель сопротивления с надетой брони и возвращала значение.
Всё написано. Код великолепный, безупречный. Бриллиант
Но затем приходят изменения.
Сначала дизайнер решает, что DR должен учитывать несколько элементов брони, а не один. Программист дорабатывает код. Потом добавляются импланты, влияющие на показатель. Код усложняется. После появляются временные эффекты от стимуляторов и баффов. Функция разрастается дальше. Затем приходит дизайнер интерфейса инвентаря и спрашивает почему UI показывает неправильные значения. На что программист отвечает:
Это дополнительные бонусы от статусных эффектов.
На что дизайнер реагирует:
Мне это не нужно. Я никогда не просил этого, ты тупой ленивый программист!
И именно тут код начинает закручиваться в спагетти. Каждое новое изменение требований добавляет код в функцию, которая изначально создавалась для простой задачи. Безупречный "бриллиант" превращается в запутанный клубок логики, где каждая модификация накладывается на предыдущую. Разработчик вынужден латать систему на ходу, не имея времени на рефакторинг всей архитектуры.
Я всегда объяснял это всем с начала 80-х и до сих пор: игры – не продукты. Они настолько же искусство, насколько и продукт
Ветеран игровой индустрии отметил, что "спагетти-код" появляется не из-за некомпетентности, а из-за реальности игровой разработки, где требования постоянно меняются, а времени на качественную переработку архитектуры никогда не хватает.
- Создатель Fallout назвал главные грехи RPG – раздражающие NPC, плохая экспозиция и ужасные эскорт-миссии
- Создатель Fallout рассказал, почему делать игры по правилам D&D так сложно и почему Larian отказалась от них после BG3
- Игроки Fallout спустя 23 года после релиза обсудили самую жестокую анимацию смерти за всю историю серии