Готова ли Игра?
253 subscribers
122 photos
20 videos
9 files
31 links
Научу делать игры ПРАВИЛЬНО!

Для связи со мной: @ArtemiZ_GD
Download Telegram
Я наконец-то разобрался в том, что хочу создать с помощью своего канала)

Поэтому представляю вам обновленную систему, в которой вы сможете получить хороший бесплатный материал и возможность поработать со мной лично! (если хотите быстро развиваться в сфере разработки)

В этом канале каждую неделю я буду публиковать:
Быстрые советы и трюки Unity
Проводить ответы на вопросы
Рассказывать о работе и жизни в целом!

Я создал закрыты канал для продвинутых. Если вы хотите научиться разрабатывать игры максимально быстро - вам туда!

В закрытом канале я буду постить фишки для продвинутых (все равно в основном канале не все понимают зачем они нужны)
Периодически писать статьи для улучшения работы в Unity
Помогать вашему карьерному развитию
Писать продвинутые техники разработки

Еще я открыл возможность Личного менторства! Да - дорого, зато я буду созваниваться с вами и лично разберу ваш код и дам совет на любую тему)

Подробнее про подписки можете почитать тут

Через две недели цены на подписки поднимутся, так-как сейчас там не так много информации. Так-что сейчас самое время, чтобы протестить и понять, нравится вам такой формат или нет)
Готова ли Игра? pinned «Я наконец-то разобрался в том, что хочу создать с помощью своего канала) Поэтому представляю вам обновленную систему, в которой вы сможете получить хороший бесплатный материал и возможность поработать со мной лично! (если хотите быстро развиваться в сфере…»
Атрибут MinMaxRange

Создает слайдер с двумя ползунками для определения минимального и максимального значения в инспекторе. Идеально подходит для настройки различных диапазонов (урон, время спавна, скорость и т.д.).

В коде ты сможешь взять рандомное значение в заданном диапазоне

using UnityEngine;

public class EnemySpawner : MonoBehaviour
{
[MinMaxRange(1f, 10f)]
[SerializeField] private MinMaxRange _spawnInterval;

void Start()
{
// Получаем случайное значение из диапазона
float nextSpawnTime = _spawnInterval.RandomValue;
Debug.Log($"Следующий спавн через: {nextSpawnTime} секунд");
}
}


#Фишки
Хотите статью про нейросети в разработке игр?
Так как в закрытом чате сейчас мало человек, делюсь с вами одним полезным постом оттуда)

🎮 Путь Unity-разработчика: Как построить портфолио, которое реально работает

Многие начинающие разработчики делают одну и ту же ошибку - пытаются сразу создать большую игру. Давайте поговорим, как построить портфолио правильно:

1️⃣ Начните с трех маленьких, но законченных проектов:

Простой 2D платформер (1-2 уровня)
Мини-головоломка
Аркада с простой механикой

Каждый проект должен быть полностью играбельным и отполированным!

2️⃣ Что должно быть в каждом проекте:

Базовое меню
Сохранение прогресса
Звуки и простые эффекты
Хотя бы минимальный UI

3️⃣ Главное правило: лучше три маленьких законченных игры, чем одна большая недоделанная.

🎯 Совет: После каждого проекта публикуйте его на itch.io и добавляйте ссылку в резюме. Работодатели ценят возможность сразу поиграть в ваши работы.

#ВИП
Ответ на вопрос: как сделать динамически меняющиеся статы?

Создал для вас простенькую систему статов для небольших проектов. Достаточно гибкая, если вы захотите дополнить ее)

Суть в том, что вы добавляете в список стат и описываете его (название, начальное значение)

Затем по имени вы сможете к нему обратиться и поменять

Рекомендация: добавьте файл с константами или перечислением статов, чтобы не использовать строки напрямую
Жду новые вопросы под этим постом! В следующую пятницу отвечу на один из них)

Если вы стесняетесь написать лично, можете оставить анонимный вопрос через специального бота
Для тех, кто хочет научиться работать с нейронками. Скорее всего сам скоро его полностью пройду)
Forwarded from Bithoven AI
👀 Один из лучших LLM-курсов обновился — разрабы Large Language Model Course дописали его (на момент текущего развития технологий).

Курс представляет собой роадмап по туториалам разной степени сложности. Само собой, всё разбито на три категории:

— LLM Fundamentals: для совсем новичков, тут учим Python, линейную алгебру и устройство LLM;

LLM Scientist: уже для смешариков, тут учимся тренировать свои нейросети, познаём файнтюн и прочее;

LLM Engineer: самый интересный, так как тут учимся превращать наши знания в деньги — строить ИИ-приложения, интегрировать модели в бизнес и так далее.

Очень полезно и бесплатно 👍
Сегодня сделал разгрузочный (во всех смыслах) день для себя. Сходили на прыжковый турнир по ФК (меня кажется завербовали), неплохо отдохнули.

Кажется я созрел на то, чтобы завести канал на YT (рутуб, вк видео). Мне кажется, что контент, который я создаю - достоин чуть большей аудитории. Поэтому будем пытаться расширять ее всеми возможными способами:)
Как я докатился до жизни такой часть 3

Начало истории

Естественно, с таким багажом никто брать не хотел.

В феврале я все таки нашел вакансию на ХедХантере, где я прошел собеседование и начал работать. Но было один подвох - 20к в месяц. За такие деньги в Питере хватит максимум на еду. А руководство требовало делать невыполнимые задачи.

Как вы поняли, долго я там не задержался. Через неделю уже уволился, даже не рассчитали...

Пошел дальше на hh.ru. Около недели я откликался и неожиданно меня пригласили на ПК проект в стим, еще и с очень интересной идеей!
Прошел собеседование, ответил на вопросы, и дал оценку по времени выполнения проекта - 3 месяца. Это было максимально сжатые сроки, за которые я скорее всего успел.

Но и тут оказался небольшой подвох! Меня попросили сжать сроки еще больше! Мол, 3 месяца для такого проекта слишком много... Естественно, когда ты устраиваешься на первую работу, ты готов демпинговать, лишь бы взяли. Пришлось сказать 1,5 месяца.

В итоге: за первый месяц - я не успел практически ничего. Прошло 2 месяца - я сделал меньше половины, но менеджер сказал, что дает мне еще времени. Прошло 3 месяца - я все еще делал проект...

Если вы думали, что все так просто - не переживайте, все еще впереди! Жду комментарии от вас, если хотите узнать финал истории)

Продолжение

#ЖизньArtemiZ
🚀 Как правильно использовать Update() и не убить производительность

Привет, геймдев! Сегодня разберём самую частую ошибку джунов - неправильное использование Update().

⚡️ Почему это важно?
Update() вызывается КАЖДЫЙ КАДР для КАЖДОГО активного скрипта. На 100 объектах при 60 FPS это уже 6000 вызовов в секунду!

🛠 Три золотых правила оптимизации Update():

1. Кэшируйте компоненты:// Плохо 
void Update() {
GetComponent<Rigidbody>().velocity = Vector3.up;
}

// Хорошо
Rigidbody rb;
void Start() {
rb = GetComponent<Rigidbody>();
}
void Update() {
rb.velocity = Vector3.up;
}


2. Избегайте Find и GetComponent в Update:// Очень плохо

void Update() {
GameObject.Find("Player").transform.position;
}


3. Используйте правильные события:
- FixedUpdate() - для физики
- LateUpdate() - для камеры
- Update() - для инпута и геймплея

💡 Лайфхак: Для редких проверок используйте корутины:// Вместо проверки каждый кадр
IEnumerator CheckEverySecond() {
while (true) {
CheckSomething();
yield return new WaitForSeconds(1f);
}
}

🎯 Результат:
- Стабильный FPS
- Меньше нагрузка на CPU
- Счастливые игроки

#Фишки
Please open Telegram to view this post
VIEW IN TELEGRAM
Жду новые вопросы под этим постом! В следующую пятницу отвечу на один из них)

Если вы стесняетесь написать лично, можете оставить анонимный вопрос через специального бота