Яковлев Илья | Gamedev
4.96K subscribers
269 photos
36 videos
18 files
233 links
Download Telegram
⭐️ Screenshot Saturday! ⭐️

Давненько не было движа на канале

Делимся и пиарим свои наработки/проекты/идеи в комментариях!🔥🔥🔥

p.s. Не сидел сложа руки, скоро буду тестить новые рубрики с постами в телеге, надеюсь получится полезно и интересно😎
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23🐳42
Последние пару дней у нас в чатике обучения обсуждалась новость про уязвимость в юнити, о которой сообщили разрабы движка, решил оповестить тут на всякий случай:)

❗️ В Unity была найдена уязвимость системы обработки файлов, позволяющая загружать вредоносный код в билды игр на Android, macOS, Windows и Linux! Проблема затрагивает все версии Юнити, вышедшие за последние 8 лет, начиная с Unity 2017.1.2p4.

➡️ Третьего октября Unity Technologies разослали пользователям электронные письма с информацией о найденной уязвимости. Компания советует разработчикам срочно загрузить новый релиз редактора Unity подходящей версии, где дыра уже была залатана. Из-за серьёзности проблемы было решено выпустить обновление безопасности даже на версиях движка, поддержка которых была прекращена, вплоть до 2019.1. Для уже выпущенных игр был представлен инструмент для внедрения патча напрямую в бинарные файлы игры.

🔔 Больше информации о проблеме, а также полный список версий, где уязвимость была исправлена, можно найти в посвящённой ей статье на официальном сайте Unity.

p.s. добавлю, что глобально для ваших пет проектов или каких-то небольших выпущенных игрушек особо опасности никакой нет, т.е. можно спокойно просто обновить версию движка и работать дальше ни о чем не переживая. Однако, если у вас есть проект с большой аудиторией, то стоит обеспокоиться и выкатить апдейт билда по быстрее)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥44🫡10👍75🐳2
Недавно у моего знакомого вышел долгий и довольно подробный ролик на тему генерации 3д ассетов с помощью нейронок

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

🔣 Ссылочка на видосик

🧐 Кстати как относитесь к генерации графики/ассетов нейронками?) Используете для этих целей или ну его?))) Пишите в комменты свой опыт:)
Please open Telegram to view this post
VIEW IN TELEGRAM
47👍7👎4🐳3🤔2
#ПриветИзПрошлого

Тестируем новую рубрику с фактами из темного прошлого юнити... Ну или не очень темного:) Поставьте 🔥 если нравится такая идея:)

Взгляните на вот такой интересный пример реализации базового передвижения персонажа в Unity!

Да это юнити:) Вопрос "С каких пор Юнька перешла на Python?!" отложите в сторону. Здесь всё гораздо интереснее!

ℹ️ Перед вами находится программа, написанная на Boo - нишевом питоноподобном скриптовом языке, про который сегодня успели забыть даже его создатели. Тем не менее, приведённый код действительно рабочий, и вы спокойно можете использовать его в своём проекте... если, конечно, по какой-то причине не обновляли движок дальше версии 2019.1.0b9

➡️ С момента своего появления Unity пытался быть максимально доступным для разработчиков любого уровня - настолько, что на протяжении более чем десяти лет позволял писать скрипты аж на трёх языках на любой вкус и цвет: C#, UnityScript и Boo.

👩‍💻 Шарпы, надеемся, в представлении не нуждаются
👩‍💻 UnityScript, по сути, был статически типизированной вариацией JavaScript (И, заметьте, за долгие годы до появления всеми любимого сегодня TypeScript! Гордитесь!)
👻 А Boo... он хотел быть таким же быстрым и надёжным, как С#, но при этом оставаться максимально простым для изучения и использования, как Python

⚡️ Подобно остальным языкам, Boo был статически типизированным решением, интегрированным в .NET и Mono. Но, в отличие от C# и UnityScript, он не мог похвастаться ни вниманием со стороны разработчиков движка, ни тесным сообществом вокруг себя. В то время Python и близко не был настолько популярен, как сегодня, поэтому мало кто решал выбрать этот необычный язык, имея более понятные и знакомые альтернативы. Не помогало и отсутствие должной поддержки со стороны самой Unity Technologies. Документация к движку практически не содержала примеры кода на Boo, отдавая приоритет C# и UnityScript, что не способствовало улучшению позиций первого.

📉 Cудьба Boo оказалась предрешена. В 2014 году его поддержка в Unity была прекращена из-за слишком малой базы пользователей. Со временем все упоминания языка были окончательно вытеснены из документации и панелей интерфейса, а в 2019 компилятор Boo и вовсе удалили из файлов движка. А жаль. Возможно, сейчас, когда Python становится первым выбором для многих новичков в IT, питоноподобный скриптовый язык с призраком на логотипе мог бы очень сильно пригодиться нашему любимому движку...

вот такой сегодня #ПриветИзПрошлого
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6711🆒3🐳2🎃2
⭐️ Screenshot Saturday! ⭐️

Делимся и пиарим свои наработки/проекты/идеи в комментариях!🔥🔥🔥
🔥17🐳32🤩2👀1
Новые лайфхаки!?

Сегодня будет длинно, но интересно...)
Ставьте 🔥, если поддерживаете длинные постики, мне нада знать стоит ли оно того:)

🧐 Кто помнит историю с Yandere Simulator?) Игры, разработчик которой настолько... своеобразно программирует, что в какой-то момент обнаружилось: практически весь его проект работает на километровых цепочках if-else, из - за чего поддерживать проект становилось совсем невозможно, разработчики бежали, проект сыпался... А вот если бы он использовал switch case...

Тооо ничего бы не поменялось, так как архитектуру проекта это не исправит, нооо возможно код был бы чуточку симпотнее)

Так что предлагаю познакомиться с парой плюшек, связанных с этой конструкцией:)

Начиная с C# 7, switch-выражение умеет работать не только с конкретными значениями, но и с диапазонами. Всё, что нужно сделать - поставить между ключевым словом case и значением знак сравнения >, <, >= или <=!

private const int CriticalDamageThreshold = 10;

private void HandleDamage(int amount)
{
switch (amount)
{
// "Поймает" значения ∈ [10; ∞]
case >= CriticalDamageThreshold:
Debug.Log("Critical damage!");
break;

// "Поймает" значения ∈ (0; 10)
case > 0:
Debug.Log("Damaged!");
break;

case 0:
Debug.Log("Miss!");
break;

default:
throw new ArgumentOutOfRangeException($"{amount}");
}
}


Поддерживаются и комбинации нескольких сравнений сразу - нужно только написать их через специальные операторы or...
case > 1 or < -1:
// Делаем что-то
break;

...или and...
case >= 0 and < 10:
// Делаем что-то
break;


Но что делать, если порог CriticalDamageThreshold не константен, а подсчитывается динамически или настраивается геймдизайнером через Инспектор? В таком случае, switch не позволит вставить поле напрямую в диапазон case'а!

Тут на помощь приходит ключевое слово when, которое позволяет работать и с не константами. С ним мы можем закешировать наше значение в переменную - а уже её спокойно запихивать в любые операции, возвращающие булевое значение.

[SerializeField]
private int _criticalDamageThreshold = 10;

private void HandleDamage(int amount)
{
switch (amount)
{
case int damage when damage >= _criticalDamageThreshold:
Debug.Log("Critical damage!");
break;

// <...>
}
}


Выражения после when называются case guards и позволяют добавлять условия любой комплексности, которые должны выполняться, чтобы конкретный кейс свича "поймал" значение. Таким образом одни и те же данные можно заставить попадать в разные части switch-конструкции в зависимости от конкретных обстоятельств, что здорово прокачивает гибкость кода в конкретных моментах.

Честно скажу, на практике такое использую редко, уж больно замароченно выглядит это дело, но фишка интересная:)

Кстати, это еще не все фокусы со свитчом, так что ставьте 🔥 если хотите видеть еще #лайфхаки на канале
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17310👍3🤝3😁2🐳2
Спорим вы не знали об игре, которая перевернула разработку игр?)

Мне всегда нравилось узнавать об играх сделанных на Unity, поэтому решил выделить это дело в отдельную рубрику на канале, поставьте 🔥 в поддержку:)

Сегодня мы не будем говорить о полезных фишках для Unity. Вместо этого обсудим одну игру - чёрного лебедя, о которой вы, скорее всего, ничего не знаете... а ведь если бы не она, то сегодня вся игровая индустрия выглядела бы совсем иначе - и далеко не факт, что в лучшую сторону.

🧐 Инфы получилось довольно много, так что оформление будет в виде карточек:)

Ну а подобные постики будем помечать тэгом #MadeWithUnity
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥118🐳32🌚2👍1