«Свой проект», большой издатель и тысячи строк боли

Когда мне было 16, я устроился в небольшую геймдев-студию. Это была, по сути, официальная работа: с задачами, пайплайном, дедлайнами и даже крупным издателем. Всё казалось серьёзным: у игры были красивые промо, понятная аудитория, маркетинг — мы верили, что делаем настоящую вещь.

Центром команды был парень, наш старший разработчик. Ему было 23, и на тот момент он уже 7 лет программировал. Я смотрел на него как на пример: уверенный, самостоятельный, всё знает. Для 16-летнего меня он был почти легендой.

Но спустя время к нам пришли более опытные ребята. Те, у кого за плечами были и выпущенные проекты, и провальные, но главное — был реальный профессиональный опыт. Они быстро начали задавать неудобные вопросы:

— Почему у нас 6000 строк в одном скрипте?

— Где архитектура? Почему переменные называются a, b1, mainLogic?

— Почему мы дублируем код, а не выносим общие части?

Тогда я впервые понял: человек с «7 годами опыта» может оказаться на уровне, лишь немного превышающем мой, новичковый. Просто потому что все эти годы он писал только свои проекты — без критики, без роста, без окружения, которое тянет вверх.

Игра не взлетела. Хотя был издатель

Да, у нас был издатель. Большой, уважаемый, с контактами в индустрии. Мы дошли до стадии открытого теста, но игра не зашла аудитории. Почему?

  • Механики были не до конца продуманы

  • Баланс — почти случайный

  • Архитектура не позволяла быстро чинить баги

  • Новый контент добавлялся вручную, через копипаст

  • И всё это писалось в духе «я так чувствую, значит правильно»

Проект буквально задохнулся от неструктурности. Люди старались, но система не тянула. Всё рушилось при попытке внести малейшие изменения.

6000 строк боли

Я до сих пор помню файл MainGameScript.cs. Это был единый скрипт, в котором хранилось всё: логика спавна, атаки, анимации, сохранения, работа с сетью, даже музыка. Один класс. Несколько тысяч строк. Всё связано между собой через глобальные переменные, флаги, костыли.

Менять там что-либо было как обезвреживать мину.

— «Главное — не трогай там сверху», — говорили. — «Оно как-то работает».

Это был учебник антипаттернов. flagImportant, bool superFix = true; // костыль, не трогать, CheckChecker() и другие монстры, порождённые отсутствием структуры и контроля. Всё это существовало потому, что никто не знал, как нужно. А тот, кто должен был знать — просто не знал сам.

«Пусть побудет, вдруг пригодится»

Отдельное веселье — гигантские закомментированные блоки. 300, 500, иногда тысяча строк. Иногда вложенные /* */, иногда просто Ctrl + K, C.

Спрашиваешь:

— Зачем оно здесь?

Ответ:

— Ну, пусть побудет. Вдруг пригодится.

Никогда не пригодилось.

Но мешало — постоянно. Эти «кладбища» ломали навигацию, мешали читать код, отпугивали новичков. Но главное — они были признаком страха. Вместо того чтобы удалить, человек копил, боясь «сделать хуже».

В профессиональной разработке так не делают. Нужен старый код? Git всё помнит. Ненужный код? Удаляй. Всё, что работает «на авось» — это технический долг, который однажды сожрёт проект.

Мораль

Ты можешь писать код 7 лет — и остаться на уровне джуна.

Ты можешь иметь издателя, команду и бюджет — и сделать игру, в которую никто не будет играть.

Ты можешь думать, что знаешь лучше всех — и стать тормозом своего же проекта.

Если ты не учишься — ты не растёшь. А если не растёшь — начинаешь деградировать, даже не замечая этого.

Делать своё — это классно. Но если ты всё время работаешь только на свой вкус, без фидбэка, без ориентиров, без среды, где кто-то умнее тебя — ты просто ходишь по кругу.

Что делать вместо этого

  • Иди в команды, где ты не самый умный

  • Разбирай чужой код — особенно тот, который тебя бесит

  • Учись архитектуре, не только на собственных ошибках

  • Делай мелкие проекты на 1–2 недели, а не один долгострой на годы

  • Показывай свой код, проси фидбэк

  • Не бойся сказать: «я не знаю, как лучше» — это нормально

Заключение

Геймдев — это не только вдохновение. Это системы, архитектура, баланс, производительность, UX, психология, планирование. Если ты хочешь сделать игру, в которую будут играть — развивай себя, а не только свой проект.

Не бойся делать маленькие игры. Не бойся быть слабее. Бояться стоит только одного — остаться на месте.

Комментарии (7)


  1. GospodinKolhoznik
    26.06.2025 11:35

    Самоучке книги в помощь. Все перечисленные в посте проблемы стандартные, о них давно известно и в литературе подробно описано, как эти проблемы разрешать.

    Хорошие, проверенные годами книги + собственный опыт набивания шишек творят чудеса. А коллеги, бывает, такого насоветуют, что лучше бы вообще ничего не советовали.


    1. DDroll
      26.06.2025 11:35

      Вот поэтому 3-х летние сеньоры - это миф. Тупо невозможно за 3 года прочитать достаточное количество книг, применить этот опыт на практике на разных проектах и пройтись по достаточному количеству граблей. Профессионально юный сеньор - беда для проекта, хуже только трехлетний тимлид.


    1. gun_dose
      26.06.2025 11:35

      Проблема книг часто в том, что примеры в них очень маленькие, из-за чего польза написанного выглядит неочевидной. Поэтому помимо книг нужно ещё читать код больших удачных проектов. Или, если проект на каком-нибудь фреймворке, читать код самого фреймворка, и ходить по нему с дебагером.


  1. SadOcean
    26.06.2025 11:35

    Проблема не только в самом опыте разработки, проблема в том, что опыт работы в команде и требования к нему иные.
    Так что да, рост связанный с работой с другими людьми сложно переоценить - как в хорошем, так и в плохом смысле (что тоже дает опыт)


  1. SolidSnack
    26.06.2025 11:35

    На самом деле, мне кажется, тут все сложнее. Я тоже видел людей по 10-15 лет в индустрии, которые работали в большой компании и например не могли разобраться почему строка не выводит русский текст, а каракули...

    Человек даже попадая в компанию встаёт перед выбором - осваивать тёплое место или двигаться вперёд, но часто в компаниях это движение вперёд может быть воспринято негативно. Да и хорошей архитектуре далеко не в каждой команде научишься.


  1. xSVPx
    26.06.2025 11:35

    Ловушка для новичка не свой проект, а ЧСВ не позволяющее читать литературу и общаться с более компетентными коллегами.


  1. MrCooger
    26.06.2025 11:35

    Работаю в месте где коллеги намного умнее меня, желания учиться чему-то всё равно нет(

    А коллеги никогда нигде не делились компетенциями, только какие то общие фразы, ничего конкретного не видел, не везёт наверное