Игра подписчика @Frutonyana
Канал: а где
Присылайте свои игры сюда
Akrus Games | Unity
срочно в канал меня!!!
Игра про путешествия по планете на парусно-моторном судне, можно управлять направлением движения судна через рубку. На материки можно выходить . Есть механика штормов .
срочно в канал меня!!🥹🥹😎😭😁😁😝😱😢😌😌😂
Канал: а где
Присылайте свои игры сюда
Akrus Games | Unity
🔥6❤3 2
Игра подписчика @ArkadiyKul
Канал:
https://t.me/tochno_kesha
Присылайте свои игры сюда
Akrus Games | Unity
Делаю хоррор игру про станцию в Антарктиде❄️
Канал:
https://t.me/tochno_kesha
Присылайте свои игры сюда
Akrus Games | Unity
❤7🔥2
Игра подписчика @Frone0
Канал: https://t.me/FroneGameDev
Присылайте свои игры сюда
Akrus Games | Unity
РТС стратегия где надо выживать и развивать деревню
Кому интересно можете следить за разработкой - https://t.me/FroneGameDev
Канал: https://t.me/FroneGameDev
Присылайте свои игры сюда
Akrus Games | Unity
❤7🔥1 1 1
🔥6❤2 1
Игра подписчика @avetrill4real
Канал: https://t.me/ventadynamics
Присылайте свои игры сюда
Akrus Games | Unity
Самое крупное и долгожданное обновление. Речь идёт о мультиплеере.
Эмоции при первых тестах, проведённых не локально, а дистанционно на разных устройствах, просто не передать словами. Это было круто!
Почти вся архитектура механик была переписана под сетевое взаимодействие, реализовано подключение по принципу «клиент-сервер» (P2P) через Steam Lobby, прикручены всякие технические мелочи в виде корректного сохранения и передачи мира при перезаходе в комнату, а также визуальные, например, уведомление о входе игрока в комнату (система уведомлений о ачивках, тратах и т.д. в целом), курсор другого игрока.
Большая работа также была проделана над отловом и фиксом багов с сетевой экономикой, которые целиком и полностью ломали начисление средств, и любой игрок становился миллиардером за секунды. Это было сложно, но задача выполнена!
На текущий момент это самая большая итерация разработки, которая затронула почти все элементы проекта.
Канал: https://t.me/ventadynamics
Присылайте свои игры сюда
Akrus Games | Unity
🔥4❤1
Привет, маи чуваки!
Я сделал еще один обучающий канал, на этот раз по питону!
https://t.me/PYTH0N_PR0
В нем также будут обучающие гайды и фишки питона, НО поскольку я сильно шарю в питоне, я буду все писать сам от руки.
Так что подписывайтесь чтобы стать настоящим ПРО!
https://t.me/PYTH0N_PR0
Я сделал еще один обучающий канал, на этот раз по питону!
https://t.me/PYTH0N_PR0
В нем также будут обучающие гайды и фишки питона, НО поскольку я сильно шарю в питоне, я буду все писать сам от руки.
Так что подписывайтесь чтобы стать настоящим ПРО!
https://t.me/PYTH0N_PR0
❤7🔥1
Media is too big
VIEW IN TELEGRAM
С новым годом, маи чуваки!
Участники этого видео: https://t.me/addlist/gUG24bKxIdg3ZTIy
Участники этого видео: https://t.me/addlist/gUG24bKxIdg3ZTIy
❤11
Что вам подарили на новый год? Присылайте в комментарии!
Мне подарили механическую клавиатуру(она на видео)
Мне подарили механическую клавиатуру(она на видео)
This media is not supported in your browser
VIEW IN TELEGRAM
❤13🔥6 1
1😁10❤1
⚡️ Количество задаваемых вопросов на StackOverflow близится к нулю.
Спад начался еще пару лет назад с появлением ИИ, но сейчас достиг рекордно низких значений.
👆 Так, за весь декабрь поступило всего 3800 вопросов, а за первые дни января ~300.
Спад начался еще пару лет назад с появлением ИИ, но сейчас достиг рекордно низких значений.
👆 Так, за весь декабрь поступило всего 3800 вопросов, а за первые дни января ~300.
😱13 1
Какое у вас разрешение монитора? укажите ближайшее
Anonymous Poll
63%
1920 × 1080 (Full HD)
9%
3840 × 2160 (4к)
30%
2560 × 1440 (2к)
3%
1366 × 768 (HD)
9%
3440 × 1440 (Ultra Wide)
❤6🔥2
⚡️ SOLID в Unity: пиши код, который не сломается через месяц
Сохрани — эти 5 принципов спасут твой проект от бардака, когда ты начнёшь добавлять новую фичу в старую игру.
S — Единая ответственность (Single Responsibility)
Класс должен делать что-то одно. Не создавай монстров вроде
✅ Правильно:
O — Открытость/закрытость (Open/Closed)
Код должен быть открыт для расширения, но закрыт для изменений.
Допустим, у тебя система урона. Не пиши
✅ Правильно: создай базовый класс
L — Подстановка Лисков (Liskov Substitution)
Наследник должен уметь всё то же, что и родитель. Если твой
✅ Правильно: не переопределяй методы базового класса так, чтобы они ломали логику (например,
I — Разделение интерфейсов (Interface Segregation)
Не заставляй класс реализовывать то, что ему не нужно. Не создавай монстро-интерфейс
✅ Правильно: сделай узкие интерфейсы
D — Инверсия зависимостей (Dependency Inversion)
Завись от абстракций (интерфейсов), а не от конкретных классов.
Не пиши в коде
✅ Правильно:
💎 Итог: SOLID — это про то, чтобы добавлять фичи быстро, а не разгребать баги неделями. Начни с принципов S и O — они дают самый заметный эффект.
💬 Какой принцип для тебя самый полезный?
📌 Сохрани шпаргалку.
🔔 Подпишись — дальше будем разбирать паттерны в геймдеве.
👉Akrus Games | Unity
Сохрани — эти 5 принципов спасут твой проект от бардака, когда ты начнёшь добавлять новую фичу в старую игру.
S — Единая ответственность (Single Responsibility)
Класс должен делать что-то одно. Не создавай монстров вроде
PlayerController, который и двигается, и стреляет, и UI обновляет.✅ Правильно:
PlayerMovement, PlayerShooter, PlayerHealth — отдельные скрипты. Меняешь движение — не трогаешь логику выстрела.O — Открытость/закрытость (Open/Closed)
Код должен быть открыт для расширения, но закрыт для изменений.
Допустим, у тебя система урона. Не пиши
if (enemy is Goblin) {...} else if (enemy is Dragon) {...}.✅ Правильно: создай базовый класс
Enemy с виртуальным методом TakeDamage(). Для нового типа врага просто создай новый класс — старый код менять не придётся.L — Подстановка Лисков (Liskov Substitution)
Наследник должен уметь всё то же, что и родитель. Если твой
FlyingEnemy наследуется от Enemy, он должен корректно работать во всех сценариях, где используется Enemy.✅ Правильно: не переопределяй методы базового класса так, чтобы они ломали логику (например,
Move() в наследнике не должен телепортировать объект, если в базовом классе это плавное движение).I — Разделение интерфейсов (Interface Segregation)
Не заставляй класс реализовывать то, что ему не нужно. Не создавай монстро-интерфейс
IUnit с методами Move(), Shoot(), Build().✅ Правильно: сделай узкие интерфейсы
IMovable, IAttackable, IBuilder. Класс Turret реализует только IAttackable, а Worker — IMovable и IBuilder.D — Инверсия зависимостей (Dependency Inversion)
Завись от абстракций (интерфейсов), а не от конкретных классов.
Не пиши в коде
public Rifle currentWeapon;.✅ Правильно:
public IWeapon currentWeapon;. Теперь можно подсунуть любое оружие — пистолет, меч, гранату — и система будет работать. Идеально для быстрого прототипирования и тестов.💎 Итог: SOLID — это про то, чтобы добавлять фичи быстро, а не разгребать баги неделями. Начни с принципов S и O — они дают самый заметный эффект.
💬 Какой принцип для тебя самый полезный?
📌 Сохрани шпаргалку.
🔔 Подпишись — дальше будем разбирать паттерны в геймдеве.
👉Akrus Games | Unity
🔥13❤4 2
⚡️ Unity: Классы, Наследование — Базовый Арсенет для Логичной Архитектуры
Сохрани — эти два подхода разложат архитектуру твоей игры по полочкам. Понял их — избежишь спагетти-кода, когда игра растёт.
🧱 Классы в Unity — это чертежи твоих объектов
Они описывают, что объект может делать и какие данные хранить. Всё в C# построено на классах. В Unity каждый твой скрипт — по умолчанию класс.
🔄 Наследование — Когда «Враг» и «Босс» имеют общее
Зачем копировать один и тот же код? Создай базовый класс и унаследуй от него.
🎯 Вариант 1: Классическое наследование (Иерархия «is-a»)
Идеально, когда у объектов общая логика, но есть специфика.
➡️ Когда использовать: Чёткая иерархия (например,
🎯 Вариант 2: Композиция + ScriptableObject (Гибкость «has-a»)
Чаще используется в современных подходах. Разделяй данные и поведение.
➡️ Когда использовать: Нужна быстрая настройка и вариативность (10 типов врагов с разными HP/уроном). Легко балансить игру без изменения кода.
💎 Итог:
• Наследование — строй иерархию «от общего к частному».
• Композиция (использование отдельных классов/данных) — чаще практичнее в геймдеве.
• В Unity MonoBehaviour — уже базовый класс. Твои скрипты наследуются от него.
📌 Правило для инди: Начинай с простого наследования для 2-3 типов врагов. Когда появится 10+ типов с кучей параметров — выноси данные в ScriptableObject.
💬 Твой код больше похож на первый или второй вариант? Делись в комментах!
🔔 Подпишись — дальше разберём интерфейсы и абстрактные классы на реальных примерах из игр.
👉Akrus Games | Unity
Сохрани — эти два подхода разложат архитектуру твоей игры по полочкам. Понял их — избежишь спагетти-кода, когда игра растёт.
🧱 Классы в Unity — это чертежи твоих объектов
Они описывают, что объект может делать и какие данные хранить. Всё в C# построено на классах. В Unity каждый твой скрипт — по умолчанию класс.
public class Enemy
{
public int health = 100;
public void Attack() { /* Логика атаки */ }
}
🔄 Наследование — Когда «Враг» и «Босс» имеют общее
Зачем копировать один и тот же код? Создай базовый класс и унаследуй от него.
🎯 Вариант 1: Классическое наследование (Иерархия «is-a»)
Идеально, когда у объектов общая логика, но есть специфика.
// Базовый класс для ВСЕХ врагов
public class Enemy : MonoBehaviour
{
[SerializeField] protected int health; // protected — видно в наследниках
public virtual void TakeDamage(int damage)
{
health -= damage;
Debug.Log($"Enemy health: {health}");
}
}
// Конкретный тип врага
public class FlyingEnemy : Enemy
{
public override void TakeDamage(int damage)
{
base.TakeDamage(damage); // Вызов метода из родителя
// Уникальное поведение для летающего врага
if (health < 30) FlyAway();
}
}
➡️ Когда использовать: Чёткая иерархия (например,
Enemy → MeleeEnemy / RangedEnemy). Логика общая, но дополняется.🎯 Вариант 2: Композиция + ScriptableObject (Гибкость «has-a»)
Чаще используется в современных подходах. Разделяй данные и поведение.
// Данные врага вынесены в отдельный объект
[CreateAssetMenu]
public class EnemyData : ScriptableObject
{
public int health;
public int damage;
public GameObject prefab;
}
// Основной класс врага использует данные
public class Enemy : MonoBehaviour
{
public EnemyData data;
private int currentHealth;
void Start()
{
currentHealth = data.health; // Берём данные из ScriptableObject
}
}
➡️ Когда использовать: Нужна быстрая настройка и вариативность (10 типов врагов с разными HP/уроном). Легко балансить игру без изменения кода.
💎 Итог:
• Наследование — строй иерархию «от общего к частному».
• Композиция (использование отдельных классов/данных) — чаще практичнее в геймдеве.
• В Unity MonoBehaviour — уже базовый класс. Твои скрипты наследуются от него.
📌 Правило для инди: Начинай с простого наследования для 2-3 типов врагов. Когда появится 10+ типов с кучей параметров — выноси данные в ScriptableObject.
💬 Твой код больше похож на первый или второй вариант? Делись в комментах!
🔔 Подпишись — дальше разберём интерфейсы и абстрактные классы на реальных примерах из игр.
👉Akrus Games | Unity
🔥7❤4👍1 1
БЕСПЛАТНЫЙ ассет GIZMO MONSTER
Этот набор содержит 6 монстров с анимацией
Используйте размер 32x32, подходит для фэнтези, данженов и игр на выживание, и он будет продолжать обновляться!
Ссылка
Этот набор содержит 6 монстров с анимацией
Используйте размер 32x32, подходит для фэнтези, данженов и игр на выживание, и он будет продолжать обновляться!
Ссылка
🔥5❤1👎1 1