- Формат работы: офис, Кипр, Лимассол
- Уровень: Middle/Senior
- Отдел: Engineering
Наша команда ищет специалистов уровней Middle и Senior с уверенными знаниями C++ и принципов проектирования для работы над созданием новых игровых функций для крупного многопользовательского проекта!
О продуктеМы развиваем MMO 4X стратегию с глубокой политической системой и активным взаимодействием игроков. Игроки развивают город, создают альянсы, сражаются с монстрами и другими игроками. Мы постоянно добавляем новые игровые механики, и проект продолжает активно расти.
Кодовая база проекта — около 300k строк кода, несколько сервисов, работающих в сотнях инстансов. Архитектура — шардированная система для горизонтального масштабирования.
Главная задача команды — создавать технические решения, обеспечивающие качество, гибкость и простоту разработки игровых фич.
Задачи:- Проектировать и разрабатывать новые игровые механики на основе документации от геймдизайнеров.
- Подготавливать RFC-документы с описанием предлагаемого решения и обсуждать их с командой.
- Поставлять реализованные решения в прод и следить за их корректной работой.
- Рефакторить и оптимизировать существующий функционал для повышения производительности, поддерживаемости и масштабируемости.
- Проводить code review и следовать командным стандартам кодирования.
- Создавать прототипы для проверки новых идей и механик.
- Писать и поддерживать техническую документацию по реализованным решениям.
- Участвовать в командных обсуждениях и встречах.
Требования:- Хорошие коммуникативные навыки и проактивность.
- 3+ лет опыта разработки на C++ в продуктовой компании.
- 2+ года опыта backend-разработки (не обязательно на C++).
- Глубокие знания принципов проектирования и умение применять их на практике.
- Умение анализировать задачи и разбивать их на подзадачи.
- Опыт сетевого и многопоточного программирования.
- Практический опыт работы с реляционными базами данных.
- Опыт разработки и отладки под Linux.
- Готовность или желание изучать Python для создания утилит и автоматизации.
Преимуществом будет:- Наличие примеров кода.
- Знание других высокоуровневых языков.
- Опыт применения Domain-Driven Design.
- Опыт работы с Akka.NET, Microsoft Orleans или другими actor-based фреймворками.
Мы используем:- C++20, Clang, CMake
- Boost (только библиотека, не в игровом коде)
- PostgreSQL
- GitLab, TeamCity, Ansible
- SonarQube, Clang-Tidy, Clang-Format
- Python (утилиты)
- Linux
Наши технические разработки- Собственная библиотека/фреймворк для создания игровых фич
- ORM для работы с БД без ручного написания запросов
- Генератор кода для бинарного RPC протокола и ORM
- Pub/Sub система событий для игровых клиентов
- Телеметрия с отображением статуса продукта в реальном времени (Grafana)
- Интерпретатор выражений для гибкой конфигурации игры
- HotReload окружение — ежедневные обновления игры
- Синхронный и асинхронный сетевой дизайн
- Внутренняя система событий
- Система транзакционных и персистентных сообщений
- R-tree карта мира