Расскажи про компании в которых работал
Комментарии (2)
Ответ сгенерирован нейросетью и может содержать ошибки
Я работал в нескольких компаниях, каждая из которых дала мне уникальный опыт в разработке на Unity. Вот краткий обзор моих ключевых мест работы и проектов:
🎮 GameDev-студия (Мобильные гипер-казуальные игры)
Здесь я погрузился в мир мобильной разработки с акцентом на производительность и быстрый прототипинг. Мои задачи включали:
- Разработка геймплейных механик для казуальных игр (прыжки, сбор предметов, простые головоломки).
- Оптимизация под слабые устройства: работа с Draw Calls, атласами текстур, LOD-ами.
- Интеграция рекламных SDK (Unity Ads, AppLovin) и аналитики.
- Создание инструментов для дизайнеров уровней в редакторе Unity.
Пример кода (простейший контроллер персонажа для гипер-казуалки):
public class SimpleJumpController : MonoBehaviour
{
[SerializeField] private float jumpForce = 5f;
[SerializeField] private Rigidbody rb;
[SerializeField] private GroundChecker groundChecker;
private void Update()
{
// Управление тапом/кликом для максимально простого геймплея
if (Input.GetMouseButtonDown(0) && groundChecker.IsGrounded)
{
rb.velocity = Vector3.up * jumpForce;
}
}
}
🏢 IT-аутсорс (Корпоративные приложения и симуляторы)
В этой компании фокус сместился на неигровые проекты:
- Разработка AR/VR-приложений для промышленности (тренажеры для обучения, визуализация оборудования).
- Создание интерактивных 3D-конфигураторов для B2B-клиентов.
- Работа с Netcode for GameObjects для многопользовательских демо-симуляторов.
- Активное использование Addressable Asset System для управления ресурсами в больших проектах.
Здесь я глубоко изучил архитектуру клиент-серверных приложений и важность чистого, поддерживаемого кода.
🚀 Собственные проекты и фриланс
Параллельно с основной работой я всегда вел личные или коммерческие indie-проекты, что позволило:
- Пройти полный цикл разработки: от идеи и прототипа до публикации в магазинах.
- Освоить Universal Render Pipeline (URP) и Shader Graph для создания уникальной графики.
- Научиться работать с анимациями, Timeline, Cinemachine для создания качественных кат-сцен.
- Интегрировать различные SDK (игровые сервисы, социальные функции).
Пример архитектуры менеджера игрового состояния:
public class GameStateManager : MonoBehaviour
{
public static GameStateManager Instance { get; private set; }
public enum GameState { Menu, Playing, Paused, GameOver }
public GameState CurrentState { get; private set; }
public UnityEvent<GameState> OnStateChanged;
private void Awake()
{
if (Instance == null) Instance = this;
else Destroy(gameObject);
}
public void SetState(GameState newState)
{
if (CurrentState == newState) return;
CurrentState = newState;
OnStateChanged?.Invoke(newState);
// Логика обработки состояний
switch (newState)
{
case GameState.Paused:
Time.timeScale = 0f;
break;
default:
Time.timeScale = 1f;
break;
}
}
}
💡 Ключевые выводы из опыта в разных компаниях
В GameDev-студии:
- Скорость итераций критически важна. Умение быстро создавать и тестировать прототипы.
- Понимание метрик (Retention, CPI, LTV) и их влияние на геймдизайн.
- Жесткие требования к оптимизации под целевые устройства.
В IT-аутсорсе:
- Качество кода и документация становятся приоритетом для долгосрочной поддержки.
- Коммуникация с заказчиком и умение переводить бизнес-требования в технические задачи.
- Работа с специфичными технологиями (ARCore/ARKit, промышленные форматы данных).
В собственных проектах:
- Полная ответственность за все аспекты проекта: код, графика, дизайн, публикация.
- Необходимость самоорганизации и приоритизации задач.
- Постоянное изучение новых инструментов и подходов для конкуренции на рынке.
Этот разнообразный опыт научил меня главному: гибкости. Разработка мобильной гипер-казуальной игры, корпоративного VR-тренажера и инди-игры — это три разных мира со своими требованиями, технологиями и подходами. Я научился быстро адаптироваться, выбирать правильные инструменты под задачу и находить баланс между скоростью разработки и качеством кода.