Сегодня у меня для вас только чужие туториалы
В последние годы устал твердить, что "в коде предметной логики не должно быть проверок на нулл"
Представьте, вот вы - ваш персонаж. Вы бегаете, стреляете из лука, даже не знаете о существовании Unity(везет ведь кому-то...) , и в какой-то момент проверяете что торговец в городе... не равен пустой ссылке на объект в оперативной памяти...
Для этого нам и нужны монады: штука из функционального программирования, обертка над каким-либо значением, которая уже содержит некоторый набор операций. Такой как проверка на нулл, например.
Помимо Nullable, в туторе еще рассказывают про Optional и Either. Первая похожа на nullable но дает возможность определить другой набор операций при отсутствии значения. Вторая дает возможность обрабатывать различные значения в зависимости от условий. Например, основное и дополнительное (или ближнее/дальнее) оружие у игрока.
Во многих случаях я бы предпочел наоборот инкапсулировать эту логику в объект предметной области, а не декорировать его. Хочется все таки максимально вглубь классов убрать эти некрасивые вызовы, чтобы вместо:
Была красивая и короткая запись:
Фух, так давно веду канал, пора бы и за код начать душнить)
Ставьте 🔥если понравился такой формат
#туториал@GamedevForge
В последние годы устал твердить, что "в коде предметной логики не должно быть проверок на нулл"
Представьте, вот вы - ваш персонаж. Вы бегаете, стреляете из лука, даже не знаете о существовании Unity
Для этого нам и нужны монады: штука из функционального программирования, обертка над каким-либо значением, которая уже содержит некоторый набор операций. Такой как проверка на нулл, например.
Помимо Nullable, в туторе еще рассказывают про Optional и Either. Первая похожа на nullable но дает возможность определить другой набор операций при отсутствии значения. Вторая дает возможность обрабатывать различные значения в зависимости от условий. Например, основное и дополнительное (или ближнее/дальнее) оружие у игрока.
Во многих случаях я бы предпочел наоборот инкапсулировать эту логику в объект предметной области, а не декорировать его. Хочется все таки максимально вглубь классов убрать эти некрасивые вызовы, чтобы вместо:
Either<Weapon, Weapon> weapon;
weapon.Match(
left => //do something with primary weapon,
right => //do something with secondary weapon);
Была красивая и короткая запись:
WeaponPair weapons;
weapons.DoSomething();
Фух, так давно веду канал, пора бы и за код начать душнить)
Ставьте 🔥если понравился такой формат
#туториал@GamedevForge
YouTube
Revolutionize Your Unity Game with Optionals and Monads
Nullable types (`int?`), the `default` keyword, and the null-forgiving operator (!) set the stage for creating powerful Monads like Optional and Either in Unity. In this video, we dive into how these Monads can eliminate null checks, handle success and failure…
🔥21❤3
Думал-думал какой бы контент для вас сделать. И решил сделать... полезный.
Конечно, видосы по UI и игровому ИИ может кому-то и пригодятся. Но как правило, эти части могут меняться до неузнаваемости в зависимости от контекста.
Поэтому забрал у менти последнее тестовое, которое ему выдали(вместо нормального собеседования, конечно же) и вместе с вами онлайн будем его решать. Может будет интересно увидеть, как их делают, а кто-то может получил такое же и благодаря этому сможет попасть на собес😏
Решать будем в среду 11.12 в 19:00 по мск!
Если зайдет, то можем сделать это постоянной рубрикой. Пусть у РАБотодателей закончится фантазия и они начнут собесить соискателей! Вместо траты их времени впустую на примитивные задачки)
Конечно, видосы по UI и игровому ИИ может кому-то и пригодятся. Но как правило, эти части могут меняться до неузнаваемости в зависимости от контекста.
Поэтому забрал у менти последнее тестовое, которое ему выдали
Решать будем в среду 11.12 в 19:00 по мск!
Если зайдет, то можем сделать это постоянной рубрикой. Пусть у РАБотодателей закончится фантазия и они начнут собесить соискателей! Вместо траты их времени впустую на примитивные задачки)
YouTube
Unity - решаем тестовое задание в JustMoby
Решаем реальное тестовое задание на позицию Middle Unity developer
Описание здесь: https://goo.su/X6xpZCt
Репозиторий с проектом: https://github.com/redHurt96/TestTask_1
Мой телеграм канал: https://t.me/GamedevForge
Менторство "с нуля до мидла": https:/…
Описание здесь: https://goo.su/X6xpZCt
Репозиторий с проектом: https://github.com/redHurt96/TestTask_1
Мой телеграм канал: https://t.me/GamedevForge
Менторство "с нуля до мидла": https:/…
👍16🔥8❤3
Мультивселенная безумия рекрутеров
Забавно, когда одна компания говорит: "да, конечно, это в нашей вилке, давайте пособеседуемся", а другая вместо нормального ответа "мы ищем разработчика подешевле" доказывает что ты, мальчик, многовато хочешь
Причем, это даже не какой-то большой множитель к текущей зарплате, это буквально сумма из пятничного оффера😂
Или занижение ожиданий кандидата реально работает и кто-то отвечает: "ой да, чет я зря быканул, давайте за хер с солью поработаю"?
Или рекрутеры и правда живут в мультивселенной и у каждого свои "реалии"?
Напишите в чате что думаете)
Забавно, когда одна компания говорит: "да, конечно, это в нашей вилке, давайте пособеседуемся", а другая вместо нормального ответа "мы ищем разработчика подешевле" доказывает что ты, мальчик, многовато хочешь
Причем, это даже не какой-то большой множитель к текущей зарплате, это буквально сумма из пятничного оффера😂
Или занижение ожиданий кандидата реально работает и кто-то отвечает: "ой да, чет я зря быканул, давайте за хер с солью поработаю"?
Или рекрутеры и правда живут в мультивселенной и у каждого свои "реалии"?
Напишите в чате что думаете)
😁16
Залетайте на стрим
YouTube
Unity - решаем тестовое задание в JustMoby
Решаем реальное тестовое задание на позицию Middle Unity developer
Описание здесь: https://goo.su/X6xpZCt
Репозиторий с проектом: https://github.com/redHurt96/TestTask_1
Мой телеграм канал: https://t.me/GamedevForge
Менторство "с нуля до мидла": https:/…
Описание здесь: https://goo.su/X6xpZCt
Репозиторий с проектом: https://github.com/redHurt96/TestTask_1
Мой телеграм канал: https://t.me/GamedevForge
Менторство "с нуля до мидла": https:/…
👍6🔥6
Как вам трейлер нового ведьмака?)
Мне не понравилось, что это какая-то калька на трейлер к самой первой игре и на killing monsters
Но с другой стороны понравилось, что судя по трейлеру, это будет вот тот самый ведьмак которого мы любим
P.S. хотя имхо первая часть все еще лучшая
Мне не понравилось, что это какая-то калька на трейлер к самой первой игре и на killing monsters
Но с другой стороны понравилось, что судя по трейлеру, это будет вот тот самый ведьмак которого мы любим
P.S. хотя имхо первая часть все еще лучшая
YouTube
The Witcher 4 - Official Reveal Trailer | The Game Awards 2024
The Witcher series returns with a new protagonist. CD Projekt Red's new RPG saga replaces Geralt with Ciri as the playable character to lead us into a new fantasy saga. From the developers of The Witcher 3: Wild Hunt and Cyberpunk 2077, CDPR give us our first…
🔥8🤝5
Ну штош
Новый год «отмечаю» на эльбрусе. В кавычках, потому что не люблю отмечать ни нг, ни день рождения (две недели назад был). Предпочитаю более интересные поводы чем «просуществовал как угодно еще 365 дней»
Поэтому кратко обо всем.
Итоги:
- План по бабкам перевыполнен, офферы дотянули до 6000$ на руки. Приходи, научу как это делать😉
- План по менторству не выполнен, но тем больше времени было нормально сформировать программу, которая уже показывает результаты (после нг как раз в связи с этим будут изменения). Так что будем считать - я играл в стратегию, а не в тактику😂
- неплохо попутешествовал (когда-нибудь и об этом расскажу), в следующем году хочется еще больше
Планы:
- по деньгам хочется не увеличивать сумму, а поменять основной источник дохода
- по менторству в целом туда же, больше медийки, больше народа, больше офферов и денег
- по своим проектам пока что все вилами по воде. Все пилим трейлер к альтушке, долго придумывали как бы сделать ее не похожей на уже вышедшую игру. Начали делать казуалку, и со следующего года впишусь в еще один инди-шедевр
- наверно будет даже ребрендинг канала😃 а то текущий вариант от chat gpt уже отжил свое и совсем не отражает меня
С Новым годом всех кто это празднует!!!
Новый год «отмечаю» на эльбрусе. В кавычках, потому что не люблю отмечать ни нг, ни день рождения (две недели назад был). Предпочитаю более интересные поводы чем «просуществовал как угодно еще 365 дней»
Поэтому кратко обо всем.
Итоги:
- План по бабкам перевыполнен, офферы дотянули до 6000$ на руки. Приходи, научу как это делать😉
- План по менторству не выполнен, но тем больше времени было нормально сформировать программу, которая уже показывает результаты (после нг как раз в связи с этим будут изменения). Так что будем считать - я играл в стратегию, а не в тактику😂
- неплохо попутешествовал (когда-нибудь и об этом расскажу), в следующем году хочется еще больше
Планы:
- по деньгам хочется не увеличивать сумму, а поменять основной источник дохода
- по менторству в целом туда же, больше медийки, больше народа, больше офферов и денег
- по своим проектам пока что все вилами по воде. Все пилим трейлер к альтушке, долго придумывали как бы сделать ее не похожей на уже вышедшую игру. Начали делать казуалку, и со следующего года впишусь в еще один инди-шедевр
- наверно будет даже ребрендинг канала😃 а то текущий вариант от chat gpt уже отжил свое и совсем не отражает меня
С Новым годом всех кто это празднует!!!
🔥26👍7🍾1
This media is not supported in your browser
VIEW IN TELEGRAM
Думаю провести очередной стрим с тестовым заданием на следующей неделе
А пока у меня для вас только мемы
А пока у меня для вас только мемы
😁10👍5🔥3
YouTube
Unity - решаем тестовое задание в Reaction Games
Менторство "с нуля до мидла": https://teletype.in/@redhurt/mentoring
Мой телеграм канал: https://t.me/GamedevForge
Решаем реальное тестовое задание на позицию Middle Unity developer
Описание здесь: https://goo.su/ldZP
Репозиторий: https://github.com/red…
Мой телеграм канал: https://t.me/GamedevForge
Решаем реальное тестовое задание на позицию Middle Unity developer
Описание здесь: https://goo.su/ldZP
Репозиторий: https://github.com/red…
В четверг 16.01. в 19:00 по мск порешаем очередное тестовое
Компания: Reaction Games
Текст тестового
Тут будет не совсем с нуля, одно решение я уже видел и им оно не понравилось (как мне кажется, по очень субъективным причинам). Но об этом расскажу на стриме
#тестовые
GamedevForge
Компания: Reaction Games
Текст тестового
Тут будет не совсем с нуля, одно решение я уже видел и им оно не понравилось (как мне кажется, по очень субъективным причинам). Но об этом расскажу на стриме
#тестовые
GamedevForge
🔥10👍8👏3
Ведьмак от создателей ведьмака, как вам?)
Как по мне, красиво конечно, но выглядит как фанфик
Как по мне, красиво конечно, но выглядит как фанфик
YouTube
The Blood of Dawnwalker — Cinematic Trailer & Gameplay Teaser
Things will be different now.
For all of you.
***
The Blood of Dawnwalker is the first chapter of Rebel Wolves’ brand new role-playing saga — a single-player open-world dark fantasy action-RPG with a strong focus on story and narrative. Developed on Unreal…
For all of you.
***
The Blood of Dawnwalker is the first chapter of Rebel Wolves’ brand new role-playing saga — a single-player open-world dark fantasy action-RPG with a strong focus on story and narrative. Developed on Unreal…
👍5
Mikhail Kolobov | Gamedev Forge
В четверг 16.01. в 19:00 по мск порешаем очередное тестовое Компания: Reaction Games Текст тестового Тут будет не совсем с нуля, одно решение я уже видел и им оно не понравилось (как мне кажется, по очень субъективным причинам). Но об этом расскажу на стриме…
Стрим перенесем на 22.01
Небольшие технические неполадки. Те, кто смотрел последние стримы, уже и там видел что порой запись шакалит
Если кратко, то новый комп чет совсем распидорасило, даже созвониться ни с кем нормально не могу. Сделаю ход конем и в любой непонятной ситуации переустановлю винду. Посмотрю как одиннадцатая выглядит как раз😂
Небольшие технические неполадки. Те, кто смотрел последние стримы, уже и там видел что порой запись шакалит
Если кратко, то новый комп чет совсем распидорасило, даже созвониться ни с кем нормально не могу. Сделаю ход конем и в любой непонятной ситуации переустановлю винду. Посмотрю как одиннадцатая выглядит как раз😂
👌8🫡6😭4👍2
Мистическая ошибка #1
Почему мистическая? Потому что не понимаю, откуда она берется) Не видел такого ни у Гоши Дударя, ни в других "качественных" туториалах. Да и не видел ни на одном рабочем проекте.
Что за ошибка? Очень часто вижу в MonoBehaviour классах подписки/отписки в методах OnEnable/OnDisable. Причем происходит это в тех объектах, в которых нет логики многократного включения/выключения. Допустим, какой-нибудь сервис или, например, игрок, который существует от запуска сцены до ее уничтожения.
Почему мне это не нравится? Да потому что подает неверное представление о классе. Если у нас, например, есть компонент, у которого подписки в OnEnable/OnDisable, сразу начинаешь думать, что мы должны его показывать и прятать. И это может быть верно, например, для хп бара игрока - нет смысла показывать его на экране, если игрок не получает урон или вообще во время катсцены. И мы все к этому привыкли. Пусть это и неявный контракт, но он точно такой же неявный как вьюшка в любом MVx паттерне, у которой мы не ждем сложной логики (если вы не в Game Insight работали, конечно, там и не такое дерьмо в коде было)
Кстати, у меня есть заметка, которую я кидаю всем (когда не забываю) при написании проекта в рамках менторства. Чтобы не приходилось делать лишнюю итерацию правок.
Если наберем 30🔥 , то закину ее в комментарии
UPD: закинул, жесть вы быстрые)
#мистические_ошибки
Почему мистическая? Потому что не понимаю, откуда она берется) Не видел такого ни у Гоши Дударя, ни в других "качественных" туториалах. Да и не видел ни на одном рабочем проекте.
Что за ошибка? Очень часто вижу в MonoBehaviour классах подписки/отписки в методах OnEnable/OnDisable. Причем происходит это в тех объектах, в которых нет логики многократного включения/выключения. Допустим, какой-нибудь сервис или, например, игрок, который существует от запуска сцены до ее уничтожения.
Почему мне это не нравится? Да потому что подает неверное представление о классе. Если у нас, например, есть компонент, у которого подписки в OnEnable/OnDisable, сразу начинаешь думать, что мы должны его показывать и прятать. И это может быть верно, например, для хп бара игрока - нет смысла показывать его на экране, если игрок не получает урон или вообще во время катсцены. И мы все к этому привыкли. Пусть это и неявный контракт, но он точно такой же неявный как вьюшка в любом MVx паттерне, у которой мы не ждем сложной логики
Кстати, у меня есть заметка, которую я кидаю всем (когда не забываю) при написании проекта в рамках менторства. Чтобы не приходилось делать лишнюю итерацию правок.
Если наберем 30
UPD: закинул, жесть вы быстрые)
#мистические_ошибки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥59👍4
Продолжим душнить про архитектуру
Один из менти хочет выступить на конфе (да, такие тоже менторятся) и рассказать про излишне переусложненную архитектуру
Я в свою очередь наоборот топлю за то, что архитектура как правило излишне отсутствует. Да и сами посудите по любому собесу в мире. Дальше вопросов про MVC/MVP/MVVM архитектуры в геймдеве как будто не существует, мы просто вываливаем пакетговна паттернов и либ в проект, а посередине какие-то костыли как обычно. Причем так не только в мелких студиях, ни MyGames, ни OwlCat тоже ничего интересного в этом плане не предлагают) Про Тарков и говорить страшно😅
Короче собираем материал для выступления - рассказывайте про свои проекты и кейсы, где такой архитектуры не хватало или наоборот было «слишком много» и каждое изменение приходилось через десяток инстанций протягивать. Мы тоже что-нибудь интересное расскажем в группе
Один из менти хочет выступить на конфе (да, такие тоже менторятся) и рассказать про излишне переусложненную архитектуру
Я в свою очередь наоборот топлю за то, что архитектура как правило излишне отсутствует. Да и сами посудите по любому собесу в мире. Дальше вопросов про MVC/MVP/MVVM архитектуры в геймдеве как будто не существует, мы просто вываливаем пакет
Короче собираем материал для выступления - рассказывайте про свои проекты и кейсы, где такой архитектуры не хватало или наоборот было «слишком много» и каждое изменение приходилось через десяток инстанций протягивать. Мы тоже что-нибудь интересное расскажем в группе
👍15
Теперь тоже хочу номинироваться на эту премию
Назовусь "корпорейт скуф". Первый рилс будет о том как же круто дома пить пиво во время дейлика, играть в baldurs gate на ретро и валяться на диване с собакой и смотреть рилсы после обеда
P.S. изначально писал пост по приколу, но теперь и правда думаю попробовать😂. Так что 50🔥 и становлюсь рилсмейкером
Назовусь "корпорейт скуф". Первый рилс будет о том как же круто дома пить пиво во время дейлика, играть в baldurs gate на ретро и валяться на диване с собакой и смотреть рилсы после обеда
P.S. изначально писал пост по приколу, но теперь и правда думаю попробовать😂. Так что 50
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Разоблачаем корпоративные рилсы / Премия "Золотой шершавый язычок"
Все анонсы, активности и путешествия: https://t.me/m0rtymerr_channel
Канал Сани: @digital_ninja
Смотрим восхищенные рилсы корпоративных шестеренок, выдаем премию "Золотой шершавый язычок 2025".
https://t.me/m0rtymerr_channel — анонсы стримов и эксклюзивные…
Канал Сани: @digital_ninja
Смотрим восхищенные рилсы корпоративных шестеренок, выдаем премию "Золотой шершавый язычок 2025".
https://t.me/m0rtymerr_channel — анонсы стримов и эксклюзивные…
🔥39❤🔥1❤1