⚡️ Двигаем камеру в 2D стратегии: перетаскивание + зум (с подробными комментариями)
Забудь про края экрана. Хочешь управлять камерой как в дорогих тактиках?
Зажимаешь правую кнопку — тащишь карту, крутишь колёсико — приближаешь/отдаляешь.
Код ниже — готовый компонент с подробными комментариями. Вешай на камеру и настраивай под себя.
✅ Что важно знать
- Ортографическая камера — используй для 2D, тайлов, стратегий. В инспекторе поставь
- Скорости (
- Ограничения:
📌 Сохрани пост — пригодится в любом проекте с картой.
🔔 Подпишись — дальше будет про инерцию, ограничение краёв карты и сглаживание движения.
👉 Akrus Games | Unity
💬 А ты камеру двигаешь или оставляешь статичной? Пиши в комментах.
Забудь про края экрана. Хочешь управлять камерой как в дорогих тактиках?
Зажимаешь правую кнопку — тащишь карту, крутишь колёсико — приближаешь/отдаляешь.
Код ниже — готовый компонент с подробными комментариями. Вешай на камеру и настраивай под себя.
using UnityEngine;
public class CameraDragZoom : MonoBehaviour
{
[Header("Перетаскивание")]
[Tooltip("Скорость движения камеры за мышкой")]
[SerializeField] private float dragSpeed = 1f;
private Vector3 dragOrigin; // точка в мире, где была мышь в момент начала перетаскивания
[Header("Зум")]
[Tooltip("Чувствительность колёсика мыши")]
[SerializeField] private float zoomSpeed = 5f;
[Tooltip("Минимальный размер камеры (сильное приближение)")]
[SerializeField] private float minSize = 3f;
[Tooltip("Максимальный размер камеры (сильное отдаление)")]
[SerializeField] private float maxSize = 10f;
private Camera cam;
private void Start()
{
// Получаем компонент камеры на этом же объекте
cam = GetComponent<Camera>();
// Если камера не ортографическая (например, 3D), можно переключить режим в инспекторе
// Для 2D стратегии камера обычно ортографическая
}
private void Update()
{
// --- Перетаскивание (правая кнопка мыши) ---
// При зажатии ПКМ запоминаем позицию мыши в мировых координатах
if (Input.GetMouseButtonDown(1))
{
// ScreenToWorldPoint переводит экранные пиксели в координаты мира
dragOrigin = cam.ScreenToWorldPoint(Input.mousePosition);
}
// Пока кнопка зажата — двигаем камеру
if (Input.GetMouseButton(1))
{
// Разница между запомненной точкой и текущим положением мыши в мире
Vector3 difference = dragOrigin - cam.ScreenToWorldPoint(Input.mousePosition);
// Перемещаем камеру на эту разницу (игнорируем Z, т.к. камера смотрит сверху)
transform.position += difference;
}
// --- Зум колёсиком мыши ---
// Input.GetAxis("Mouse ScrollWheel") даёт значение:
// > 0 если крутим вверх (приближение)
// < 0 если крутим вниз (отдаление)
float scroll = Input.GetAxis("Mouse ScrollWheel");
if (scroll != 0f)
{
// Для 2D камеры меняем orthographicSize
cam.orthographicSize -= scroll * zoomSpeed;
// Ограничиваем размер, чтобы камера не улетела слишком близко или далеко
cam.orthographicSize = Mathf.Clamp(cam.orthographicSize, minSize, maxSize);
}
}
}
✅ Что важно знать
- Ортографическая камера — используй для 2D, тайлов, стратегий. В инспекторе поставь
Projection: Orthographic. - Скорости (
dragSpeed, zoomSpeed) сейчас используются по-разному: для перетаскивания скорость жёстко не регулируется (движение 1:1). Если хочешь замедлить перетаскивание — умножай difference на dragSpeed * Time.deltaTime. Но обычно 1:1 удобнее. - Ограничения:
minSize и maxSize подбирай под размер своей карты. Чтобы камера не выходила за края, можно добавить проверку границ (это уже другая тема).📌 Сохрани пост — пригодится в любом проекте с картой.
🔔 Подпишись — дальше будет про инерцию, ограничение краёв карты и сглаживание движения.
👉 Akrus Games | Unity
💬 А ты камеру двигаешь или оставляешь статичной? Пиши в комментах.
1❤7👍3🎄2🔥1
⚔️ 2D-стратегия: выделение юнитов рамкой за 5 минут
Делаешь RTS или тактику в 2D? Показываю, как реализовать выделение нескольких юнитов рамкой. Весь код ниже — бери и пользуйся.
Суть: зажимаешь ЛКМ, тащишь — рисуется прямоугольник. Отпускаешь — все юниты внутри становятся выбранными.
Что понадобится:
- У всех юнитов должен быть Collider2D (Box, Circle — любой).
- Юниты лежат на слое
- На сцене есть камера с тегом MainCamera.
Код менеджера выделения (вешаем на пустой объект):
Компонент Unit (вешаем на каждого юнита):
Лайфхак:
- Не забудь в инспекторе у
- Чтобы рамка рисовалась красиво, используй не
-
✅ Готово. Теперь зажимай мышку и выделяй армию!
Хочешь такое же передвижение камеры с помощью курсора? Тогда читай этот пост!
🔔 Подпишись, чтобы видеть новые гайды!
👉 Akrus Games | Unity
Делаешь RTS или тактику в 2D? Показываю, как реализовать выделение нескольких юнитов рамкой. Весь код ниже — бери и пользуйся.
Суть: зажимаешь ЛКМ, тащишь — рисуется прямоугольник. Отпускаешь — все юниты внутри становятся выбранными.
Что понадобится:
- У всех юнитов должен быть Collider2D (Box, Circle — любой).
- Юниты лежат на слое
Units (так проще фильтровать).- На сцене есть камера с тегом MainCamera.
Код менеджера выделения (вешаем на пустой объект):
using UnityEngine;
public class SelectionManager : MonoBehaviour
{
[SerializeField] private LayerMask unitLayerMask; // Слой юнитов в инспекторе
private Vector2 startMousePos;
private bool isDragging = false;
private Rect selectionRect;
void Update()
{
// Начало выделения
if (Input.GetMouseButtonDown(0))
{
startMousePos = Input.mousePosition;
isDragging = true;
}
// Завершение выделения
if (Input.GetMouseButtonUp(0) && isDragging)
{
isDragging = false;
SelectUnitsInRect();
}
// Обновление рамки (для отрисовки)
if (isDragging)
{
UpdateSelectionRect();
}
}
void UpdateSelectionRect()
{
Vector2 currentMousePos = Input.mousePosition;
selectionRect = new Rect(
Mathf.Min(startMousePos.x, currentMousePos.x),
Mathf.Min(startMousePos.y, currentMousePos.y),
Mathf.Abs(startMousePos.x - currentMousePos.x),
Mathf.Abs(startMousePos.y - currentMousePos.y)
);
}
void SelectUnitsInRect()
{
// Конвертируем экранные координаты в мировые
Vector2 min = Camera.main.ScreenToWorldPoint(selectionRect.min);
Vector2 max = Camera.main.ScreenToWorldPoint(selectionRect.max);
// Ищем все коллайдеры внутри прямоугольника
Collider2D[] hits = Physics2D.OverlapAreaAll(min, max, unitLayerMask);
// Сначала снимаем выделение со всех
DeselectAllUnits();
// Выделяем найденных
foreach (var hit in hits)
{
if (hit.TryGetComponent<Unit>(out var unit))
{
unit.SetSelected(true);
}
}
}
void DeselectAllUnits()
{
// Можно найти всех юнитов по тегу или держать список
// Для простоты — ищем все объекты с компонентом Unit
Unit[] allUnits = FindObjectsOfType<Unit>();
foreach (var unit in allUnits)
{
unit.SetSelected(false);
}
}
// Визуализация рамки в редакторе (для отладки)
void OnGUI()
{
if (isDragging)
{
// Конвертируем экранный rect в GUI-координаты
Rect guiRect = new Rect(
selectionRect.x,
Screen.height - selectionRect.y - selectionRect.height,
selectionRect.width,
selectionRect.height
);
GUI.Box(guiRect, "");
}
}
}
Компонент Unit (вешаем на каждого юнита):
using UnityEngine;
public class Unit : MonoBehaviour
{
[SerializeField] private GameObject selectionVisual; // например, спрайт кружка под юнитом
public void SetSelected(bool selected)
{
if (selectionVisual != null)
selectionVisual.SetActive(selected);
}
}
Лайфхак:
- Не забудь в инспекторе у
SelectionManager выставить слой Units в поле unitLayerMask.- Чтобы рамка рисовалась красиво, используй не
GUI.Box, а натяни на Canvas обычный Image и двигай его размеры. Но для старта хватит и этого.-
FindObjectsOfType в DeselectAllUnits — не самый производительный вариант. Для продакшена лучше держать список всех юнитов в менеджере и обновлять его при спавне/смерти.✅ Готово. Теперь зажимай мышку и выделяй армию!
Хочешь такое же передвижение камеры с помощью курсора? Тогда читай этот пост!
🔔 Подпишись, чтобы видеть новые гайды!
👉 Akrus Games | Unity
🔥8❤2
Какая у вас скорость интернета?
Anonymous Poll
9%
0 Мбит/с
18%
1-50 Мбит/с
30%
51-100 Мбит/с
14%
101-200 Мбит/с
12%
200-500 Мбит/с
17%
>500 Мбит/с
🔥4
Как делать UI, который не ломается
📌 Middle-уровень — это не просто «UI работает». Это UI, который масштабируется, адаптируется и не разваливается на любом экране.
1️⃣ Canvas Scaler: Scale With Screen Size
📌 UI масштабируется пропорционально экрану. Не забудь установить Screen Match Mode в Match Width Or Height.
2️⃣ Layout Group + ContentSizeFitter — друг, но с оглядкой
📌 Уходи от фиксированных размеров. Пусть элементы растягиваются и подстраиваются.
НО: ContentSizeFitter тяжёлый в Scroll View. На списках — лучше вручную контролировать размеры через LayoutElement.
3️⃣ Safe Area — must have на мобилках
📌 Используй Screen.safeArea и адаптируй UI под вырезы, чёлки, панели.
Особенно важно для iPhone X+, Samsung с закруглёнными краями.
Есть готовые плагины (например, SafeArea.cs) — или пиши свой, обрезая RectTransform под safeArea.
4️⃣ Anchors и Pivot — основа адаптивного UI
📌 Никогда не ставь UI в абсолютные координаты.
Используй anchorMin и anchorMax — например, чтобы кнопка «назад» всегда оставалась в левом верхнем углу, независимо от разрешения.
5️⃣ UI Manager — централизованное управление интерфейсом
📌 Используй один UIManager, который управляет:
• текущими экранами (через стэк или FSM)
• открытием/закрытием окон
• блокировкой ввода
• переходами (анимации, звук, пауза)
💡 Идеально: событийная архитектура. Панель не знает о других панелях — всё через UIManager.Show("Settings").
🎯 Почему это важно?
UI — это первое, что видит игрок. Даже простая игра выглядит “профессионально”, если у неё стабильный и адаптивный интерфейс.
💬 Что у тебя чаще всего ломается в UI?
🔔 Подписывайся — впереди посты про оптимизацию, UI-архитектуру и best practices
👉Akrus Games | Unity
📌 Middle-уровень — это не просто «UI работает». Это UI, который масштабируется, адаптируется и не разваливается на любом экране.
1️⃣ Canvas Scaler: Scale With Screen Size
UI Scale Mode: Scale With Screen Size
Reference Resolution: 1920 x 1080 (или 1080 x 1920 для вертикали)📌 UI масштабируется пропорционально экрану. Не забудь установить Screen Match Mode в Match Width Or Height.
2️⃣ Layout Group + ContentSizeFitter — друг, но с оглядкой
📌 Уходи от фиксированных размеров. Пусть элементы растягиваются и подстраиваются.
НО: ContentSizeFitter тяжёлый в Scroll View. На списках — лучше вручную контролировать размеры через LayoutElement.
3️⃣ Safe Area — must have на мобилках
📌 Используй Screen.safeArea и адаптируй UI под вырезы, чёлки, панели.
Особенно важно для iPhone X+, Samsung с закруглёнными краями.
Есть готовые плагины (например, SafeArea.cs) — или пиши свой, обрезая RectTransform под safeArea.
4️⃣ Anchors и Pivot — основа адаптивного UI
📌 Никогда не ставь UI в абсолютные координаты.
Используй anchorMin и anchorMax — например, чтобы кнопка «назад» всегда оставалась в левом верхнем углу, независимо от разрешения.
5️⃣ UI Manager — централизованное управление интерфейсом
📌 Используй один UIManager, который управляет:
• текущими экранами (через стэк или FSM)
• открытием/закрытием окон
• блокировкой ввода
• переходами (анимации, звук, пауза)
💡 Идеально: событийная архитектура. Панель не знает о других панелях — всё через UIManager.Show("Settings").
🎯 Почему это важно?
UI — это первое, что видит игрок. Даже простая игра выглядит “профессионально”, если у неё стабильный и адаптивный интерфейс.
💬 Что у тебя чаще всего ломается в UI?
🔔 Подписывайся — впереди посты про оптимизацию, UI-архитектуру и best practices
👉Akrus Games | Unity
❤11👍2🔥1🎄1
Мы объединились и создали лучшую папку каналов по геймдеву "The Gamedev"!
Это место, где собраны самые полезные, активные и вдохновляющие каналы индустрии, где каждый разработчик найдёт для себя что-то действительно ценное:
Подключайтесь к папке The GameDev и станьте частью сильного комьюнити!
👉https://t.me/addlist/Ca1yrpya6iwxYzky
Это место, где собраны самые полезные, активные и вдохновляющие каналы индустрии, где каждый разработчик найдёт для себя что-то действительно ценное:
🧑💻 Помощь и практические советы по разработке игр
🆓 Бесплатные раздачи ассетов и промокоды
📣 Актуальные новости геймдева
📱 Советы по заработку на разных игровых площадках
📱 Авторские каналы по геймдизайну
📸 Личные блоги разработчиков
Подключайтесь к папке The GameDev и станьте частью сильного комьюнити!
👉https://t.me/addlist/Ca1yrpya6iwxYzky
❤6🔥3
⚡️ Патруль врага в 2D платформере
Когда враг ходит туда‑сюда между двумя точками — базовая механика любого платформера.
Сохраняй, пригодится в каждом втором проекте! 👇
Компоненты:
✅ Плюсы: враг не пройдёт сквозь стены, реагирует на физику.
❌ Минусы: нужно следить за застреванием (можно добавить Raycast для проверки края).
📌 Сохрани пост, чтобы не потерять коды.
🔔 Подпишись – дальше будет ещё больше готовых решений для 2D и не только.
👉 Akrus Games | Unity
Когда враг ходит туда‑сюда между двумя точками — базовая механика любого платформера.
Сохраняй, пригодится в каждом втором проекте! 👇
Компоненты:
PointA, PointB(границы патрулирования) + Rigidbody2D (кинематик или динамик – по желанию).using UnityEngine;
public class Patrol : MonoBehaviour
{
[SerializeField] private Transform pointA;
[SerializeField] private Transform pointB;
[SerializeField] private float speed = 3f;
private Rigidbody2D rb;
private Transform targetPoint;
void Start()
{
rb = GetComponent<Rigidbody2D>();
targetPoint = pointA;
}
void FixedUpdate()
{
// направление к цели
Vector2 direction = (targetPoint.position - transform.position).normalized;
// двигаем через velocity (сохраняем гравитацию по Y)
rb.velocity = new Vector2(direction.x * speed, rb.velocity.y);
// если почти дошли по X – меняем цель
if (Mathf.Abs(targetPoint.position.x - transform.position.x) < 0.1f)
{
targetPoint = targetPoint == pointA ? pointB : pointA;
// разворачиваем спрайт (опционально)
Flip();
}
}
private void Flip()
{
Vector3 scale = transform.localScale;
scale.x *= -1;
transform.localScale = scale;
}
}
✅ Плюсы: враг не пройдёт сквозь стены, реагирует на физику.
❌ Минусы: нужно следить за застреванием (можно добавить Raycast для проверки края).
📌 Сохрани пост, чтобы не потерять коды.
🔔 Подпишись – дальше будет ещё больше готовых решений для 2D и не только.
👉 Akrus Games | Unity
❤7🔥3👎1😁1
⚡️ Unity: шпаргалка по Input
Сохрани, чтобы управление в твоей игре всегда работало чётко! Два основных подхода — старый и новый.
1️⃣ Классический Input Manager (Input.GetKey)
Старый добрый способ, который все знают. Идеален для быстрого прототипа.
✅ Быстро и понятно
❌ Жёстко зашито в коде, сложно переключать схемы управления
2️⃣ Новая система Input System (Unity Package)
Мощный и гибкий инструмент. Нужно поставить через Package Manager.
📌 Сначала настрой Input Actions:
• Создай Action Map (например, "Player")
• Добавь Actions ("Move", "Jump", "Fire")
• Назначь кнопки (WASD, Space, Mouse)
✅ Переключаемые схемы управления (геймпад, клавиатура)
✅ Автоматическая ремаппинг кнопок
❌ Нужно время на настройку
🔥 Важно:
• Для нового Input System не забудь
• В Build Settings → Player → Active Input Handling выбери "Both"
💬 Какую систему используешь ты? Классику или новую?
🔔 Подпишись — впереди ещё много шпаргалок по Unity и C#!
👉Akrus Games | Unity
Сохрани, чтобы управление в твоей игре всегда работало чётко! Два основных подхода — старый и новый.
1️⃣ Классический Input Manager (Input.GetKey)
Старый добрый способ, который все знают. Идеален для быстрого прототипа.
// Движение
float horizontal = Input.GetAxis("Horizontal");
float vertical = Input.GetAxis("Vertical");
// Прыжок
if (Input.GetKeyDown(KeyCode.Space))
{
Jump();
}
// ЛКМ
if (Input.GetMouseButtonDown(0))
{
Shoot();
}
✅ Быстро и понятно
❌ Жёстко зашито в коде, сложно переключать схемы управления
2️⃣ Новая система Input System (Unity Package)
Мощный и гибкий инструмент. Нужно поставить через Package Manager.
📌 Сначала настрой Input Actions:
• Создай Action Map (например, "Player")
• Добавь Actions ("Move", "Jump", "Fire")
• Назначь кнопки (WASD, Space, Mouse)
using UnityEngine.InputSystem;
// Чтение вектора движения
private void OnMove(InputValue value)
{
Vector2 moveInput = value.Get<Vector2>();
// перемещаем объект
}
// Обработка одиночного нажатия
private void OnJump(InputValue value)
{
if (value.isPressed) Jump();
}
✅ Переключаемые схемы управления (геймпад, клавиатура)
✅ Автоматическая ремаппинг кнопок
❌ Нужно время на настройку
🔥 Важно:
• Для нового Input System не забудь
PlayerInput компонент на объект• В Build Settings → Player → Active Input Handling выбери "Both"
💬 Какую систему используешь ты? Классику или новую?
🔔 Подпишись — впереди ещё много шпаргалок по Unity и C#!
👉Akrus Games | Unity
🔥11❤6
ИИ
Если бы не было чатагпт, не было таких цен на оперативную память, скорость работы программирования не возросла, не было бы этого канала.
Большинство из вас использует ИИ. Я в том числе.
Однако у ИИ есть проблема — он любит фантазировать, очень много фантазировать. Чтобы этого избежать, нужна правильная структура запроса.
Вот вам полезный промт, который убирает лишнюю "фантазию" ИИ:
Чтобы составить свой промт, надо:
Используя эти 4 пункта и промт, можно достать максимум из ИИ
Если бы не было чатагпт, не было таких цен на оперативную память, скорость работы программирования не возросла, не было бы этого канала.
Большинство из вас использует ИИ. Я в том числе.
Однако у ИИ есть проблема — он любит фантазировать, очень много фантазировать. Чтобы этого избежать, нужна правильная структура запроса.
Вот вам полезный промт, который убирает лишнюю "фантазию" ИИ:
Прежде чем дать мне ответ, оцени его
неопределённость. Если она больше, чем 0.1 — задавай
мне уточняющие вопросы до тех пор, пока
неопределённость будет 0.1 или меньше
Чтобы составить свой промт, надо:
1. Объяснить что ты делаешь
2. Что ты уже сделал
3. Объяснить, что должен сделать ИИ
4. Добавить примеры по возможности.
Используя эти 4 пункта и промт, можно достать максимум из ИИ
❤8🔥1
Какой ии в используете?
Anonymous Poll
43%
чат гпт
37%
дипсик
19%
claude
9%
codex
29%
gemeni
4%
яндексгпт
12%
что-то еще(напишите в комментариях)
6%
не использую
🔥8
Присылайте свои работы в комментарии!👊
Лучшие выложу здесь!
Присылайте лучше видео. Хороший компрессор https://tools.rotato.app/compress , если не грузит используйте https://github.com/codeforreal1/compressO
Для новеньких поясняю: по сути это бесплатная реклама вашей игры и канала, только если у вас реально крутая игра)
#работыПодписчиков
🎧Akrus Games | Unity
Лучшие выложу здесь!
Для новеньких поясняю: по сути это бесплатная реклама вашей игры и канала, только если у вас реально крутая игра)
#работыПодписчиков
🎧Akrus Games | Unity
❤5🔥2🎄1
This media is not supported in your browser
VIEW IN TELEGRAM
Игра подписчика @Lenya418
Канал: https://t.me/StarGamesOne
Присылайте свои игры сюда
Akrus Games | Unity
С января я делал Roguelike игру и сейчас могу поделиться прогрессом
Сейчас в игре:
•100+ скриптов
•10+ уникальных оружий
•20+ уникальных пуль для них
•15+ уникальных эффектов которые можно комбинировать между собой
•5+ бонусов
•Система генерации комнат
•Механика бомб
•Система волн с разными паттернами
Канал: https://t.me/StarGamesOne
Присылайте свои игры сюда
Akrus Games | Unity
👍13❤1🎄1
Игра подписчика @pingalinux
Канал: @LumaPlayUG
Игра: Плей маркет игры
Присылайте свои игры сюда
Akrus Games | Unity
Моя игра марбл судоку💎
Выпустила 2 недели назад и радуюсь
Уже более 3к скачиваний и несколько сотен активных игроков в день
В игре множество режимов, а также есть ачивки, лидерборд и ивенты🐈
Сейчас тружусь над уведомлениями
Канал: @LumaPlayUG
Игра: Плей маркет игры
Присылайте свои игры сюда
Akrus Games | Unity
🔥7❤3👍2
Возможно, у кого-то есть старый аккаунт Google Play Разработчика (любого года).
Есть возможность хорошо заработать на этом.
Закрытые за неактив аккаунты тоже принимаются(помогу бесплатно восстановить)
По любым вопросам в ЛС @Ilya01s.
Есть возможность хорошо заработать на этом.
Закрытые за неактив аккаунты тоже принимаются(помогу бесплатно восстановить)
По любым вопросам в ЛС @Ilya01s.
🔥5
Media is too big
VIEW IN TELEGRAM
Игра подписчика @blackdragon3129
Канал: t.me/dragodev3129
Присылайте свои игры сюда
Akrus Games | Unity
Мой проект: Wall Walker - головоломка, где изменение гравитации стало ключевой механикой. В нём тебя ждёт:
⚙️ Множество разнообразных механик (помимо изменения гравитации)
🎨 Приятный глазу визуальный стиль
🗺 Куча уникальных уровней
Игра уже на финишной прямой, скоро релиз.
Канал: t.me/dragodev3129
Присылайте свои игры сюда
Akrus Games | Unity
🔥6
ART DOGS
Мы оформляем Steam-страницы для инди-проектов. Помогаем с капсулой, визуалом и упаковкой, чтобы игра выглядела профессионально с первого взгляда.
Что делаем:
— Полный комплект капсул для магазина и библиотеки Steam;
— Оформление фона страницы;
— Разработка логотипов;
— Геймплейные трейлеры;
— Короткие видео (Shorts, Reels, TikTok);
— Текстовое описание, гифки, скриншоты для страницы;
— Ачивки и трейд-карточки;
— Консультации по стилю, геймплею, позиционированию и оформлению;
— Тестирование проектов;
— Любое промо по договорённости;
Формат работы:
Можем выполнить задачи сдельно (по договору) или стать частью команды в формате внутренней студии.
📁 Канал с работами: https://t.me/ART_DOGS_STEAM_DESIGN
📁 Канал с отзывами: https://t.me/OTZIVARTDOGS
Мы оформляем Steam-страницы для инди-проектов. Помогаем с капсулой, визуалом и упаковкой, чтобы игра выглядела профессионально с первого взгляда.
Что делаем:
— Полный комплект капсул для магазина и библиотеки Steam;
— Оформление фона страницы;
— Разработка логотипов;
— Геймплейные трейлеры;
— Короткие видео (Shorts, Reels, TikTok);
— Текстовое описание, гифки, скриншоты для страницы;
— Ачивки и трейд-карточки;
— Консультации по стилю, геймплею, позиционированию и оформлению;
— Тестирование проектов;
— Любое промо по договорённости;
Формат работы:
Можем выполнить задачи сдельно (по договору) или стать частью команды в формате внутренней студии.
📁 Канал с работами: https://t.me/ART_DOGS_STEAM_DESIGN
📁 Канал с отзывами: https://t.me/OTZIVARTDOGS
❤8👍2🔥2