Мастер выживания: почему Гарри Ньюман не боится «вляпаться» в сложные проекты
Это перевод статьи от автора Garry’s Mod и Rust — Гарри Ньюмана, человека, который не боится запускать «сырые» игры и заставлять аудиторию невольно становиться тестировщиками. Он откровенно рассказывает, как многократно начинал всё с нуля, учил новые языки программирования «на бегу» и закалялся в процессе. Да, некоторые игроки могут пожурить его за такой подход, но именно в этих ошибках и экспериментах кроется его секрет успеха.

Когда я был ребёнком, мой отец постоянно что-то перестраивал в доме. То менял стены, то ставил новые двери, то подключал радиаторы отопления или заново укладывал подъездную дорожку.
Помню, как он всегда повторял одну и ту же фразу. Отключал воду, монтировал несколько радиаторов, снова включал подачу — и отовсюду начинали хлестать протечки. Мама к тому же подзывала к ужину, а он только кричал: «Я ПО УШИ В ДЕРЬМЕ!»
Для меня это выражение значит, что ты пробуешь что-то сделать, но всё выходит из-под контроля. Ты словно захлёбываешься в проблемах и стараешься выплыть на поверхность.
Garry’s Mod
Я не раз сам оказывался в такой же ситуации. Когда впервые занялся Garry’s Mod, я немного разбирался в C++, но явно не на профессиональном уровне. В итоге мод постоянно вылетал, а я не мог понять причину. И без системы контроля версий уже нельзя было просто взять и вернуться к прошлой рабочей сборке.
В итоге я удалил всё к чертям, снова скачал исходный SDK и собрал проект заново. Проделывал так пару раз, пока не перешёл на нормальный контроль версий.
В конце концов я добавил поддержку Lua, чтобы как-то обезопасить игру от вылетов. Я недостаточно разбирался в С++ для окончательного решения проблемы, зато мог аккуратно прописывать механику на Lua, обходя потенциальные сбои.
Rust
Когда мы выпустили Rust, а он внезапно стал мега-популярным, мы оказались в глубоком дерьме. Код был сырым и совсем не подходил для быстрых улучшений. По сути, вышел «черновой» прототип, который мы запустили в массы. Я, к тому же, тогда не умел толком работать с C#, мог лишь слегка править интерфейс. А сообщество было ОГРОМНЫМ и требовало срочных обновлений и новых функций.
Мы с головой погрузились в проблемы.
Начали думать, что же делать: это код безнадёжен или мы просто ничего не понимаем? В конце концов решили, что сам код безнадёжен.
Я занялся переписыванием движка с нуля и параллельно изучал C#. Сообщество тогда буквально взбесилось: все хотели оставить старую версию, но мы понимали, что надо потерпеть сейчас, чтобы потом не сидеть в тупике.
Я ещё не до конца понимал, что делаю, но структура получалась связной и модульной. Со временем она стала настолько жизнеспособной, что к проекту смогли подключиться другие, а вскоре стало реально и поиграть.
Люди до сих пор хотят вернуть «ту самую» Rust, но я не сомневаюсь, что мы поступили верно.
Основаная мысль
Чтобы развиваться, совершенствоваться и добиваться своих целей, важно научиться получать удовольствие от того, как ты выпутываешься из дерьма. Избежать этого всё равно не выйдет. Нужно просто увидеть перед собой груду дерьма и без страха нырнуть в неё.
См. также: