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