Mikhail Kolobov | Gamedev Forge
689 subscribers
106 photos
8 videos
121 links
Unity - менторство и разработка игр.
https://teletype.in/@redhurt/mentoring
Boosty - https://boosty.to/gamedevforge
Мой тг: https://t.me/mikhail_kolobov
Download Telegram
Сегодня у меня для вас только чужие туториалы

В последние годы устал твердить, что "в коде предметной логики не должно быть проверок на нулл"
Представьте, вот вы - ваш персонаж. Вы бегаете, стреляете из лука, даже не знаете о существовании 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
🔥213
Думал-думал какой бы контент для вас сделать. И решил сделать... полезный.

Конечно, видосы по UI и игровому ИИ может кому-то и пригодятся. Но как правило, эти части могут меняться до неузнаваемости в зависимости от контекста.

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

Решать будем в среду 11.12 в 19:00 по мск!

Если зайдет, то можем сделать это постоянной рубрикой. Пусть у РАБотодателей закончится фантазия и они начнут собесить соискателей! Вместо траты их времени впустую на примитивные задачки)
👍16🔥83
Мультивселенная безумия рекрутеров

Забавно, когда одна компания говорит: "да, конечно, это в нашей вилке, давайте пособеседуемся", а другая вместо нормального ответа "мы ищем разработчика подешевле" доказывает что ты, мальчик, многовато хочешь

Причем, это даже не какой-то большой множитель к текущей зарплате, это буквально сумма из пятничного оффера😂

Или занижение ожиданий кандидата реально работает и кто-то отвечает: "ой да, чет я зря быканул, давайте за хер с солью поработаю"?
Или рекрутеры и правда живут в мультивселенной и у каждого свои "реалии"?

Напишите в чате что думаете)
😁16
Как вам трейлер нового ведьмака?)
Мне не понравилось, что это какая-то калька на трейлер к самой первой игре и на killing monsters
Но с другой стороны понравилось, что судя по трейлеру, это будет вот тот самый ведьмак которого мы любим

P.S. хотя имхо первая часть все еще лучшая
🔥8🤝5
Ну штош
Новый год «отмечаю» на эльбрусе. В кавычках, потому что не люблю отмечать ни нг, ни день рождения (две недели назад был). Предпочитаю более интересные поводы чем «просуществовал как угодно еще 365 дней»
Поэтому кратко обо всем.

Итоги:
- План по бабкам перевыполнен, офферы дотянули до 6000$ на руки. Приходи, научу как это делать😉
- План по менторству не выполнен, но тем больше времени было нормально сформировать программу, которая уже показывает результаты (после нг как раз в связи с этим будут изменения). Так что будем считать - я играл в стратегию, а не в тактику😂
- неплохо попутешествовал (когда-нибудь и об этом расскажу), в следующем году хочется еще больше

Планы:
-
по деньгам хочется не увеличивать сумму, а поменять основной источник дохода
- по менторству в целом туда же, больше медийки, больше народа, больше офферов и денег
- по своим проектам пока что все вилами по воде. Все пилим трейлер к альтушке, долго придумывали как бы сделать ее не похожей на уже вышедшую игру. Начали делать казуалку, и со следующего года впишусь в еще один инди-шедевр
- наверно будет даже ребрендинг канала😃 а то текущий вариант от chat gpt уже отжил свое и совсем не отражает меня

С Новым годом всех кто это празднует!!!
🔥26👍7🍾1
Форк как обычно подъебывает по праздникам
😁15
Вот настоящие инфоцыганские прогревы, а не эти ваши «последний день скидок» или «места ограничены»

UPD: Я прогрелся
😁18
This media is not supported in your browser
VIEW IN TELEGRAM
Думаю провести очередной стрим с тестовым заданием на следующей неделе
А пока у меня для вас только мемы
😁10👍5🔥3
В четверг 16.01. в 19:00 по мск порешаем очередное тестовое

Компания: Reaction Games
Текст тестового

Тут будет не совсем с нуля, одно решение я уже видел и им оно не понравилось (как мне кажется, по очень субъективным причинам). Но об этом расскажу на стриме

#тестовые

GamedevForge
🔥10👍8👏3
Mikhail Kolobov | Gamedev Forge
В четверг 16.01. в 19:00 по мск порешаем очередное тестовое Компания: Reaction Games Текст тестового Тут будет не совсем с нуля, одно решение я уже видел и им оно не понравилось (как мне кажется, по очень субъективным причинам). Но об этом расскажу на стриме…
Стрим перенесем на 22.01

Небольшие технические неполадки. Те, кто смотрел последние стримы, уже и там видел что порой запись шакалит
Если кратко, то новый комп чет совсем распидорасило, даже созвониться ни с кем нормально не могу. Сделаю ход конем и в любой непонятной ситуации переустановлю винду. Посмотрю как одиннадцатая выглядит как раз😂
👌8🫡6😭4👍2
Раз ютуб блочат, то может сюда перекатимся?)
💯16🔥11😁6
Мистическая ошибка #1

Почему мистическая? Потому что не понимаю, откуда она берется) Не видел такого ни у Гоши Дударя, ни в других "качественных" туториалах. Да и не видел ни на одном рабочем проекте.

Что за ошибка? Очень часто вижу в MonoBehaviour классах подписки/отписки в методах OnEnable/OnDisable. Причем происходит это в тех объектах, в которых нет логики многократного включения/выключения. Допустим, какой-нибудь сервис или, например, игрок, который существует от запуска сцены до ее уничтожения.

Почему мне это не нравится? Да потому что подает неверное представление о классе. Если у нас, например, есть компонент, у которого подписки в OnEnable/OnDisable, сразу начинаешь думать, что мы должны его показывать и прятать. И это может быть верно, например, для хп бара игрока - нет смысла показывать его на экране, если игрок не получает урон или вообще во время катсцены. И мы все к этому привыкли. Пусть это и неявный контракт, но он точно такой же неявный как вьюшка в любом MVx паттерне, у которой мы не ждем сложной логики (если вы не в Game Insight работали, конечно, там и не такое дерьмо в коде было)

Кстати, у меня есть заметка, которую я кидаю всем (когда не забываю) при написании проекта в рамках менторства. Чтобы не приходилось делать лишнюю итерацию правок.
Если наберем 30 🔥, то закину ее в комментарии

UPD: закинул, жесть вы быстрые)

#мистические_ошибки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥59👍4
Работяги: просто хотят больше денег за большее количество потраченного времени
Любой трясущийся CEO:
💊13
Продолжим душнить про архитектуру

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

Я в свою очередь наоборот топлю за то, что архитектура как правило излишне отсутствует. Да и сами посудите по любому собесу в мире. Дальше вопросов про MVC/MVP/MVVM архитектуры в геймдеве как будто не существует, мы просто вываливаем пакет говна паттернов и либ в проект, а посередине какие-то костыли как обычно. Причем так не только в мелких студиях, ни MyGames, ни OwlCat тоже ничего интересного в этом плане не предлагают) Про Тарков и говорить страшно😅

Короче собираем материал для выступления - рассказывайте про свои проекты и кейсы, где такой архитектуры не хватало или наоборот было «слишком много» и каждое изменение приходилось через десяток инстанций протягивать. Мы тоже что-нибудь интересное расскажем в группе
👍15
Теперь тоже хочу номинироваться на эту премию

Назовусь "корпорейт скуф". Первый рилс будет о том как же круто дома пить пиво во время дейлика, играть в baldurs gate на ретро и валяться на диване с собакой и смотреть рилсы после обеда

P.S. изначально писал пост по приколу, но теперь и правда думаю попробовать😂. Так что 50🔥 и становлюсь рилсмейкером
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥39❤‍🔥11
Нашел это на просторах телеграма, указан как пример хорошего кода (и в контексте поста оно так и есть). Но также тут кроется лютейшая и очень бесячая ошибка
Какая?
👍6
Как там в геймдеве? Денег нет?
🔥40👏8😱6