Wild Russian GameDev Mentor
98 subscribers
116 photos
5 videos
60 links
Обучаю созданию игр на Unity и программированию на C#.

Запись на занятия – сообщения канала
Лайвкодинг/игры – twitch.tv/ko1ba5er
Бустануть канал – t.me/boost/WRGDM

Please, be patient, я не умею пользоваться отложкой.
Download Telegram
ГАЙД ПО РЕАКЦИЯМ

Товарищи! Для того, чтобы вы могли точнее выразить свое впечатление от статьи, добавил еще больше кастомных реакций, даже пришлось запариться с созданием собственного пака. И, так как они все имеют неочевидное для обывателя назначение, в этом посте поясню, как этим пользоваться:

🤡 – Ну это просто, это когда вы считаете, что автор, хоть и волк, но в цирке выступает.
👌 – И так сойдет, тут тоже несложно.
🩼 – Костыль, если решение, упомянутое в статье, временное, "уродливое" и используется для обхода проблемы, требующей более сложного и долгосрочного исправления.
😀 – Реакция для Майнкрафта и для 🗿.
🎸 – Когда душа поет или нужно сказать ЯРУССКИЙ.
😐 – Пиксельный Ленин, означает коммунизм или небольшой шок.
🦖 – Динозаврик из моего проекта по нейросетям. Используется для указания на глупость нейросетей, автора или кого-то еще.
🗿 – Жаренные окурки. Значит все, и одновременно ничего не значит. Делайте с этим что хотите.
Please open Telegram to view this post
VIEW IN TELEGRAM
1042🤔1💅11
В ЗДОРОВОМ ТЕЛЕ ЗДОРОВЫЙ НОЖ #3

Запела весна, а это значит, что шанс выгнать вас на улицу немного повышен🎉.
Но во мне самом из медицинского только шприцы и таблетки💊, так что этот цикл статей написан совместно с моей дорогой подругой❤️ физическим реабилитологом Судаковой Елизаветой 💉 – врачом, в котором почти в равной степени нуждаются программисты👨‍💻 и дети с врожденными патологиями🩼 (программистам нужнее)...

Оглавление:
Иди поспи, реально
Спорт – сила, сычевание – могила
• Держи осанку, ты же принцесса
📍

📯Держи осанку, ты же принцесса

Сидячий образ жизни ведет к вполне однозначным последствиям, и все они давно изучены👨‍⚕️: гиподинамия, кривая спина и повышенные риски многих заболеваний💀.

В прошлой статье мы поговорили о том, почему важно заниматься вообще, а сегодня сделаем упор на то, что нужно делать📋.

📯Делай это упражнение три раза в день, и спина болеть не будет

И так, четыре непростых шага, которые не сделают вас полностью здоровым, но хоть немного отсрочат ваше превращение в шахматного коня:

1. Следи за осанкой.
Твоя спина должна быть прямая все время♾️. Сиди прямо, ходи прямо, спи в планке💪. Сначала будет тяжело, зато потом будет совсем чуть-чуть полегче👍.


Я когда начал следить за осанкой, моя спина после трех часов уже изнывала от боли😫. А сейчас, по прошествии нескольких месяцев, я могу сидеть прямо целых шесть часов, и даже не заплакать😭! Это дело не быстрое, и растянется на многие месяцы. Но, выработав привычку, ты сможешь держать осанку практически без усилий, и оно того стоит🥇!

А еще, поставь монитор на уровне глаз, чтобы не приходилось смотреть на свой код сверху вниз😀.

2. Перерывы с разминкой.
Каждые 30-60 минут ты обязан делать короткий перерыв на разминку🔋. Подрыгай руками и ногами в разные стороны, убедись, что твои суставы еще не заржавели🕸.


Важно регулярно напоминать своему организму о том, что он все еще мягкий и подвижный🤸, иначе он легко об этом забывает😶‍🌫️. Здесь нужно покрутить шеей, свести лопатки, поднять руки к небу и проклясть его за 5/2🏃‍♂️. Также важно дать отдохнуть глазам: отвести их от монитора, посмотреть близко-далеко, ну вы знаете👁.

3. Спорт.
Подробно уже говорили в прошлой статье, здесь добавлю, что спорт хорошо бы направить на спину и/или растяжку💪. То есть, плавание, йога, воркаут, вот это все🏊‍♂️.


Конечно, полезной будет любая двигательная активность, но выбирая определенные ее виды, мы сможем убить двух зайцев одновременно🐇: и от гиподинамии спастись🏃‍♂️, и спину выпрямить📏.

4. Массаж.
Это не только приятно, но и единственное, что по-настоящему расслабит зажатые мышцы😌. А зажатые мышцы – это твоя главная проблема❗️.


Да, это даже хуже, чем кофе на коровьем молоке вместо миндального☕️. По-сути, твои мышцы так напряженно удерживают спину в согнутом положении, что уже не могут расслабиться🥵. Для того, чтобы это исправить, требуется сначала их размять🛤, а потом заставить работать в правильном направлении🔙. Только, ходить нужно к специалисту, а не в дрочильни спа-салоны🧖. Да, удовольствие не из дешевых, но тут же все айтишники с зп $300к/наносекунду – переживете💰.

📯Почему это важно?

Как стержень, держащий все тело💀, спина влияет на все, и проблемы с ней тебе точно не нужны🙅‍♂️. Так что, если будешь придерживаться рекомендаций, в старости тебе придется меньше времени тратить на очереди в поликлинике🏥, а значит больше времени ты сможешь отдавать сидению на лавке и ругани в ЖЭКе👵.

Люби свое тело, и оно ответит тебе взаимностью🍃.

🔝 В начало поста 🔝

😭 – Я уже хожу буквой Г(((
👌 – Йа криветко🦐! главное, чтоб к пиву не зохавали...
Please open Telegram to view this post
VIEW IN TELEGRAM
7💅3🔥1😭11
This media is not supported in your browser
VIEW IN TELEGRAM
🍓31
Корова чешется, спасибо за внимание
4🔥1🍓1
ЗАБУДЬТЕ GRASP

Хочу с вами открыть разговор про паттерны проектирования с такого любимого дедами👨‍🦳 набора как GRASP.

📯Это что за покемон?

Во-первых, что, вашу мать, такое этот ваш GRASP🤷‍♀️? Википедия пишет:
— шаблоны ПО для назначения главных ответственностей

, однако это просто неправда🤥!

Чтобы вы составили представление, вот типичные "паттерны" GRASP📜:
– Низкое зацепление⛓️‍💥 – ну это, короче, когда подпрограммы/модули слабо связаны друг с другом.
– Высокая связность🧶 – это когда в одном модуле содержится только то, что непосредственно с ним связано.
– Полиморфизм🐏 – Нет, ну это уже ни в какие ворота...

Ну вы поняли, это больше похоже на жизненные советы от пьяного бати🍷, чем ясные☀️ паттерны, которые вообще хоть что-то означают🤨.

📯Цель была упростить программирование

Я до этого GRASP не смотрел внимательно, а так, издалека посмеивался👉. Но для статьи должен был вникнуть👩‍🎓. И мне пришлось вникать🧐... То есть, вместо 5 минут, я потратил около часа на прочтение нескольких статей📖, выяснил, что каждая о чем-то своем, добрался до первоисточника, и наконец разобрался💡. И результат не то, чтобы стоил усилий.

Там никакой мудрости предков😺, никакого космического озарения🧘, только немного воды💦 и сложносочиненный пятикратно переваренный SOLID😅.


📯О чем на самом деле GRASP

В книге Крейга Лармана «Применение UML и шаблонов проектирования», где они впервые появились, прямым текстом об этом написано🫳:
Что такое шаблоны GRASP?
– Это шаблоны, описывающие фундаментальные принципы распределения обязанностей между объектами.


Уберите отсюда совершенно не к месту использованное слово "шаблоны"🚜, и станет ясно, что хотел сказать автор🤔:
Сейчас я вас научу распихивать отношения между классами на основании их ответственностей.


Если прочитать главу целиком📖, дополнительно откроется, что уважаемый учитель👨‍🏫 пытается объяснить, как так из предметной области🚢 нарисовать красивую UML-диаграмму 🚤, чтобы потом, может быть, это спрограммировать🛳️.

Резюмируя📦, GRASP – список принципов, имеющих довольно узкую сферу применения🤏, и неоправданно сложных для понимания🧐.


Тем удивительнее, что каждый второй университет пытается засунуть их в свою программу, и чаще всего, без самих UML🤡.

🤡 – Я репер, я умею только грррясп.
👌 – Нельзя забыть то, чего не знал.
Please open Telegram to view this post
VIEW IN TELEGRAM
72💅1
Вот и закончился мой отпуск в солнечной Карелии☀️
Болота радостно встретили бесконечными комарами и неожиданно хорошей погодой (обещали дождь на все эти дни)🪷
Но как только появился интернет, на душе как кошки заскребли😩.. и вдруг я осознал, что хорошо понимаю, тех людей, которые сбегают из IT и открывают свою пасеку🐝...

Темой сегодняшней статьи могло быть выгорание🔥, но вместо того, чтобы ее писать я решил позволить себе отдохнуть😁.
И вы тоже отдыхайте почаще🏖️.

А спросить подробнее, как там Карелия, вы можете на
📱 стриме по Майнкрафту, уже онлайн 📱
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥73211
MVVM – ОТДЕЛЯЕМ МОРДУ ОТ ТЕЛА

Обплевав GRASP, давайте теперь поговорим о настоящих паттернах.

📯Model-View-ViewModel

– шаблон, разделяющий программу на три части:
Model – бизнес-логика🏭;
View – графический интерфейс🖼;
ViewModel – мостик между ними🌉.


Таким образом, мы разделяем проект на два независимых друг от друга модуля: картинку и данные. А между ними для сообщения кидаем мостик в виде ViewModel.

📯Где его можно использовать?

Да практически в любом приложении с графикой💅. Ведь он позволяет:
Во-первых, работать независимо дизайнерам👨‍🎨 (возможно, даже без кода) и программистам👨‍💻.
Во-вторых, легко перенести часть или всю модель на другую платформу🚉. То-есть, при резком изменении интерфейса программы, нам не придется переделывать ее всю, а только View🧠.

Также этот шаблон позволяет цеплять несколько интерфейсов к одним данным🪝 (заходить Вконтактик с компьютера и телефона): в вебе и мультиплеерных играх🌐 MVVM "включен" по-умолчанию, потому что там сервер⌨️ и морда😐 (бэкенд и фронтенд) выполняются на разных машинах🚗.

📯Расширяем сознание

Конкретно наш паттерн в узком смысле строго привязан📍 к платформам WPF и Silverlight (даже не гуглите, что это), потому что использует их механизм привязки данных🧶. Однако в такой трактовке было бы мало смысла его тут разбирать🤡.

Но стоит заменить "конкретный механизм привязки" на "любой механизм привязки", и дело становится намного интереснее😳. Тогда нам будет безразлично, как именно организован ViewModel: хоть этим самым биндингом, хоть Observer'ом, хоть вручную🫳.


📯Семья MVVM

Вообще-то, придумать, как разделить картинку и данные пытались уже давно👵, и у MVVM есть два (не очень удачных) старших брата👨‍👨‍👦:

1. MVC – Model-View-Controller:
Контроллер изменяет модель, а модель изменяет вид♻️. Такой вот любовный треугольник получается❤️. На мой взгляд, тут два минуса: неполное разделение модели и вида🔪, а также лишнее разделение ввода📥 и вывода📤.

2. MVP – Model-View-Presenter:
Presenter управляет как View, так и Model. Здесь тот же MVVM, но промежуточное звено не просто адаптер, а управляющий элемент👑. Соответственно, Model – превращается в DTO с небольшим количеством логики📦.

⬇️ Пишите в комментариях, какие еще паттерны стоит разобрать! 💬

🤡 – О да, моя программа прямо модель, и у нее такие виды🫦
🎸 – Классы MVC такие:
"Я кондуктор, я кондуктор,
Люди для меня как фрукты"
Please open Telegram to view this post
VIEW IN TELEGRAM
44🔥1💅1
Wild Russian GameDev Mentor
ВАЙБ-КОДИНГ ИЛИ ПОЧЕМУ ИИ НЕ СДЕЛАЕТ ИГРУ МЕЧТЫ ЗА ВАС Когда-то давно я пояснял за уровни языков программирования и упомянул там, что т.н. Zero-coding0️⃣ – мертворожденное направление💀. И вот недавно всплыла💩 очередная вершина человеческой лени и жадности…
Помните пост про вайбкодинг🤔?
Теория теорией, но давайте на практике посмотрим, на что способен современный искусственный интеллект🤖: попробуем навайбкодить себе простую игру и посчитаем, сколько критических багов в ней окажется😂!
📱 Конечно, в прямом эфире на твиче 📱,
так что вы можете в этом поучаствовать!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥211
ОСЬ ИЗМЕНЕНИЙ (НА КОТОРОЙ Я ВЕРТЕЛ ВАШ SRP)

Во многих статьях я уже упоминал ее вскользь👀, пришло время поговорить подробнее об этом явлении💬.

📯Ось изменений

– это линия, проходящая через модуль/класс, когда его необходимо затронуть🫴 для внесении того или иного изменения.


Сами изменения могут быть любыми, от исправления багов🪲 до удаления старых🗑 или добавления новых фич🎇.

📯Зачем она нужна?

Если вкратце, то для измерения соответствия SRP📐, но и не только. Ведь если у нас через модуль проходит единственная ось изменений, то у нас есть единственная причина его менять – значит, он имеет только одну ответственность🧠.

На практике, кончено, такого никто добиваться не будет😂. Однако больше 2-3 осей на модуль свидетельствуют о том, что вам лучше встать на кухню, ведь вместо кода получается лапша🍜.


📯В смысле 2-3, написано же SINGLE responsibility?!

Понимаешь ли, дело в том, что всем немного насрать...
На самом деле, есть разница еще в размере класса🤏, а так же в связности этих изменений.

Первое просто: если модуль небольшой и позволяет держать его весь в голове одновременно🤔, можно пока что не думать о его разделении👌.
Второе говорит о вероятности затронуть две оси вместе👋. Например, когда мы меняем способ формирования данных👩‍💻, мы наверняка захотим изменить и их вывод🖼. В большинстве случаев.


Да, MVVM идет в жопу с таким подходом, однако.. а оно нам правда всегда нужно🤔? Как итог, я никогда не разделяю логику счета каких-то мелочей и их отрисовку🤟.

📯Не плодите классы

Давайте немного изменим определение:
Ось изменений – это линия, проходящая через модули/классы, которые необходимо затронуть🫴 для внесении того или иного изменения.


Таким образом, как шашлык на шампур🍢 мы насаживаем всех, кто касается нашего обновления🆕. И их тоже не должно быть слишком много. Иначе ты очень скоро запутаешься, что на чем завязано🧐, и сам утонешь в своем же болоте🐸.

🤡 – В моем коде нет лишних ответственностей, потому что я писал его безответственно😂.
👌 – В мой код не нужно вносить изменения, он и так идеален!
Please open Telegram to view this post
VIEW IN TELEGRAM
533💅2
КАК Я ПОБЕДИЛ БЕЛЫЙ ЛИСТ

Страх белого/чистого листа – распространенное явление. Это состояние, когда решил начать новый проект, но.. с чего начать-то🤔..?

📯Ножницы бьют бумагу

Суефа дает важную подсказку: лист надо разрезать✂️. Иначе говоря, слона надо есть по частям🐘. В общем, разбей задачу на подзадачи, эти подзадачи на еще более мелкие подзадачи, и так пока не достигнешь размера в 5-10 минут👊. Короткое и простое дело легче начать, но главное – ты будешь знать, что делать👍.

Имея список📜 (а лучше – план🚫) действий, ты убьешь сразу двух зайцев🐇:
Во-первых, в маленькой задаче глаза не разбегаются👀;
Во-вторых, само написание плана действий – уже действие✍️.


📯Возьми этот лист и подотрись им

Во многом страх начать новое продиктован ответственностью, возлагаемой первым заложенным кирпичиком🧱. Ведь от того, как начнешь, зависит ход всего проекта🏃! А что, если ты накосячишь в самом начале, и это аукнется так, что потом придется все переделывать😨?

Как хорошо, что все это не правда🙅‍♂️. Мы не запускаем марсоходы, наши ошибки не стоят миллиарды долларов🪐. Но что самое важное, наши ошибки стоят намного меньше, чем промедление🐢 в стремительном потоке рынка🤑. К тому же, вероятность провалить проект из-за плохой идеи намного выше, чем вероятность провалить проект из-за каких угодно ошибок на старте🩼.


Почти все в ИТ сделано через жопу, и ничего, работает💩! Вот и ты снимай белые перчатки, засучай рукава, и начинай работать👨‍💻. В конце концов, ошибки – это ценнейший ресурс – опыт😎, который как раз и нужен для (зачаровывания инструментов📚💎) успешного проекта😁!

📯Аппетит приходит во время еды

Создай проект📱, настрой гит📱, создай беседу в тг📱 или другом настоящем мессенджере для работы📱, если у тебя команда. В общем, сделай вид, что ты уже начал проект🤥.


Подсознание обмануть не так сложно, оно сформировано для управления доисторической ящерицей🦖, которая в разы тупее курицы🐔.

📯Прекрати прокрастинировать

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


Благодаря всему вышеперечисленному, меня больше не пускают в магазины канцелярии📎, потому что их запасы белых листов начинают трястись и плакать при моем приближении😨.


👌 – Следую только второму совету, на этом мои новые проекты и заканчиваются...
🤡 – Страх белого листа сформировался из-за многолетнего систематического угнетения ими черных листов.
Please open Telegram to view this post
VIEW IN TELEGRAM
32🖕1💅11
Давно меня не было в уличных гонках🏎...
Но все хорошее когда-то заканчивается, так и мое отсутствие в этом паблике🤷‍♀️. Да-да, вы не ослышались, снова буду душнить про код и около него🎉!!!
А пока вы ждете новый пост, посмотрите, как я делаю новую прикольную игру в прямом эфире👀!
📱 Уже начали, присоединяйся! 📱
Please open Telegram to view this post
VIEW IN TELEGRAM
2211
Простите, не мог писать посты. Ел крыжовник с куста.
1🔥73111
Как думаете, он реально умер или просто хайпит на своей смерти?
7🤔4👻3