Лавка Разработчика
3.36K subscribers
394 photos
42 videos
16 files
637 links
Мы тут игры пилить будем, или как?

YouTube: https://youtube.com/@gamedevlavka

Автор: @vavilichev

Все контакты: https://linktr.ee/vavilichev
Download Telegram
🔖Интересный кейс о SerializedDictionary<K, V> в Unity

Наткнулся на список "лайфхаков" для Unity внутри которого между делом было указано - SerializedDictionary<K,V> - Inspector Friendly dictionary. Решил проверить.

Спойлерну - он совсем не Inspector Friendly. Но должен признать, что-то отображается в редакторе. Добавить только ничего нельзя, при нажатии на плюс, вылетает ошибка.

Покопался почему так, и нашел странное: SerializedDictionary<K, V> - лежит в неймспейсе UnityEngine.Rendering (что?), и доступен только в URP (чтоо?), т.к. видимо нужен был для Scriptable Rendering Pipeline. Возникает вопрос: зачем ему приделали нерабочий отрисовщик в редакторе и зачем его вписывают в подобные "лайфхаки" без проверок.

Ладно, в мире разработчиков всякого хватает, это не первый и не последний случай.

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

#полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥206❤‍🔥31🆒1
Скриншот-суббота
Vol. 133


Не очень продуктивная недеља

😐 Выздоравливаю после болезни, поэтому не получилось на этой неделе голосом потрындеть.

😐 Порт ЭкоКликера когда-то выйдет в Яндекс, но не в этот раз. Они перешли к стратегии - один запрос на модерацию - одна выявленная ошибка, так что просто ждём-с

🔠 ProjectLazyDungeon продвинулся немножко. Проектировал UX для отряда, покупки юнитов и их прокачки. Прошел несколько итераций, и вроде нащупал вариант. Кстати, если интересны вопросы UI/UX, поставьте огонь под постом, я эту тему также активно исследую, буду знать, что этим тоже можно делиться. Скотном делиться не буду, там пока ничего не понятно, одни квадратики:)

___
А вот вы делитесь! Результатами, гифками, мыслями, вопросами, всем, что накопилось за неделю!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥394❤‍🔥4👍1
Атрибут [field: SerializeField]

Периодически встречаю людей, которые не знают эту фичу, так что поделюсь ею невзначай

Безопасность - дело важной, и разбрасываться публичным доступом для полей, которым публичными быть не следует - это грех! Почему? Потому что в таких случаях велик риск соблазн менять эти переменные извне класса, а это вредно, так не надо, фу-фу-фу. Карается болью в будущем, когда эти поля будут меняться из нескольких мест подряд и не разберешься, кто прав, а кто виноват

Но часто такие поля должны быть доступны для чтения - например, в конфигах в ScriptableObject. Так вот, часто такие поля обрабатывают через пару:
[SerializeField] private MyClass _property;

public MyClass Property => _property;



Защита имеется. Но с относительно недавних версий можно сократить эту запись сразу до публичного свойства с приватным сеттером и для отображения в редакторе. Просто используй аттрибут:
[field: SerializeField] public MyClass Property { get; private set; }


Коротко, лаконично, беозопасно!

#полезное
👍57🔥85
У наших коллег, случилось событие, и хочется, конечно поддержать их и их проект Pao Pao

Недавно ребята участвовали в крупной скандинавской конференции Nordic Game и заслужили награду People's Choice со своим проектом Pao Pao, демка которого доступна на стиме. Сама игра - это Overcooked на максималках, где нужно не только готовить, но и менеджерить, собирать ресурсы, и обещают еще всякие дикости и по трейлеру их можно заметить. Онлайн коопчик означает, что надо брать!

Игра выйдет в четвертом квартале 2025 года, так что добавляйте в виш листы, я обязательно поиграю, как выйдет!

Трейлер можно посмотреть в стиме, или на YouTube
🎉126❤‍🔥2🥰2
Новая подборка бесплатных ассетов для Unity от SpeedTutor (май 2025)

Огромная куча визуальных и интересных ассетов на этот раз. Много чего добавил. Из наиболее прикольного:

- Кастомизация гравитации (для притягивания к стенам, потолкам, кубикам и др.)

- Пакет для прототипирования - там много всякого полезного и красивого

- Смена дня и ночи

___

Обзор от SpeedTutor

Подборка из 122 ассетов

#полезное #ассеты
👍14🔥2
Еще один пост поддержки!

Михаил, с которым мы когда-то записывали разные видео, участвует в фестивале демок в Steam. Говорит, мол, пробуйте играть, давайте отзывы, закидывайте в вишлисты. Игра чиловая, симпотичная, необычная. Задумка мне нравится!

Если в кратце, то там надо строить всякие домики, строения на островах необычной формы.

Игра Dreamnest
🔥13
⚡️Новое видео в Лавке Разработчика!
Объекты на карте. Часть 3 - создание объектов в рантайме через читы.
#пилимигру 14

После того, как мы наконец-то восстановили работу строений, но не как строений, а как сущностей - можно переходить к подготовке создания их уже внутри геймплея (aka стройка/размещение). Первый шаг наиболее интересный: так как у нас еще нет подготовленной визуализации и управления - мы сделаем создание сущностей (строений) через чит-консоль. Собственно, в выпуске можно глянуть, как можно быстренько организова чит-консоль для помощи в тестировании всякого на проекте. Смотрим, господа и дамы!

P.S. Не забываем лайки, комменты для поддержки

https://www.youtube.com/watch?v=Ek58v6W2jJI

Полный плейлист "пилимигру"

Версия ВК Видео | Версия RuTube

#видео #видеоизлавки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20👍6❤‍🔥41
Скриншот-суббота
Vol. 134


Нам некогда ждать

🔠 Порт ЭкоКликера все еще не принимают, как я и говорил - один запрос на модерацию - одна выявленная ошибка. В последний раз жалуются на то, что можно сохранить картинку с бэкграунда игры. Проблема только в том, что я хз, как они это сделали (на правую кнопку мыши не реагирует), и как проверить/починить пока не понятно. Похоже придется ставить Яндекс арбузер.

🔠 ProjectLazyDungeon продвигается. Продолжаю окно с менеджментом отряда юнитов игрока. Скриншот и описание закинул в комментарии

🔠 #пилимигру очередной вышел, там замутили чит консоль и при помощи нее в реалтайме создавали сущности на карте. Движемся, хоть и медленно, и с минимальными просмотрами :)

___
Напоминаю, что делиться своими результатами в комментариях - это полезно для психического здоровья и для развития собственных проектов, так что не стесняемся и присылаем наработки, господа и дамы!

#скриншотсуббота
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍4🤔1
Еще месяц назад я вообще не понимал, как делаются игры.

А сейчас собираю первый прототип на Unity.
Удивительно, но в индустрии почти половина всех проектов — на нем. Он реально простой, и при этом мощный. Даже Pokémon Go сделали на нем.

Если тоже интересно попробовать — вот ссылка на бесплатную онлайн-конференцию. Там с нуля показывают, как стартовать.

А за раннюю регистрацию дают гайд «Как создать своего Ведьмака».
🤡36😁19🥴8🗿31🌚1
Я не пропал, я тут потихоньку двигаюсь!

Вот например, на конференции у Гришакова посветился, навалил базы про эффективное изучение Unity

Но сегодня я тут не за этим. Подписчик накатал статью об его опыте трудоустройства в геймдеве. Из статьи можно примерно прикинуть актуальную ситуацию на рынке игростроя в рф, так что многим здесь будет полезно ознакомиться. Да и вообще, посмотреть, как бывает.

Статья

#статьи
21🔥6👌3
Скриншот-суббота
Vol. 135


Интересно, сколько это может продолжаться

🔠 Порт ЭкоКликера продолжает морозиться)) Когда-то я его добью. На этот раз на айос в мобильном браузере игра не грузится. Благо есть iOS девайс. А так по-прежнему: одна модерация - одна выявленная проблема.

🔠 ProjectLazyDungeon движется, сделал норм так, построенная архитектура начинает приносить плоды: разработка ускоряется при этом оставаясь стабильной и функциональной. Подробным описанием поделился в комментариях.

🔠 На мини-конференции выступил, вещал для начинающих, как можно эффективно погрузиться в геймдев с движком Unity

🔠 А, да, и ВНЖ получил после нескольких месяцев возни с документами. Но, стоило того :)

🔠 Настряпал YouTube Shorts на тему не срабатывания инпута в FixedUpdate, можете заскочить, лайк закинуть

🔠 Борюсь с гуглом за монетизацию, которая отключена уже несколько лет. Сейчас ВНЖ появилось, но всё равно всякие бюрократические сложности с палками в колеса от самого гугла. Да, я делаю видосики практически бесплатно. Так что, если вдруг есть желание - подписуйтесь на Boosty

___
Врачи рекомендуют делиться своими недельными результатами в комментариях, это улучшает кровоток, а также придает сил и бодрости на следующую неделю!

#скриншотсуббота
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥194🫡3
Почитал статью от Deconstruction of Fun про 10 тенденций мобильной игровой индустрии 2025 и немножк.. приуныл?

Нет, всё неплохо в целом. Индустрия подкатывается потихоньку к потолку и одновременно начинает перестраиваться. Важность количества установок падает, т.к. само количество установок перестало расти и даже падает. Поэтому крупные игроки переходят на новую метрику качества - удержание игрока. Если раньше была цель: привлечь, заработать, отпустить. То сейчас: привлечь, и держать, чтобы заработать как можно больше.

Это логическое развитие в условиях ограниченности, но есть тут такое, знаете.. Чувство несправедливости, что-ли. Потому что ресурсов на удержание игроков достаточно у уже устоявшихся гигантов, а вот новичкам с гораздо меньшим количеством контента и удерживающих механик на старте очень сложно прорваться, особенно если попасть в одну категорию с каким-то мастадонтом. Раньше шансов было очень мало, теперь их практически нет.

Масла в огонь добавляет новое поколение игроков, которым нужно качество и глубина, а так же соц механики. Что опять же усложняет новичкам жизнь, т.к. на подобные пункты нужны не малые ресурсы.

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

#статьи
😱12🤔2😢2
💸 Зарубежный клиент готов платить — а как деньги получить?

Делаешь концепт-арт, анимацию, левел-дизайн или даже полноценную мини-игру для студии из Европы или США? Клиент спрашивает куда переводить. А ты — завис на этапе оплаты.

PayPal не работает, SWIFT не дойдет, крипта — рискованно.
Что делать?

EasyStaff Invoice — это сервис получения оплат от зарубежных заказчиков, просто, прозрачно и официально.

Выставляешь инвойс клиенту в EUR или USD — получаешь оплату на баланс сервиса и выводишь на карту или счет в любом банке, в удобной валюте. Для продвинутых - можно и на криптокошелек закинуть.

Идеально подходит для:
🎮 фрилансеров в геймдеве
🎨 художников, 3D-дизайнеров, саунд-дизайнеров
👾 небольших студий и инди-команд

Твоему заказчику тоже понравится, ведь EasyStaff Invoice зарегистрирован в Европе, работает с клиентами официально по B2B договору и предоставляет закрывающие документы.

Сомневаешься? Приходи в Telegram-канал и чат — там реальные отзывы от тех, кто уже получает оплату через EasyStaff Invoice.

А если ты только выходишь на международный рынок — попробуй себя на EasyStaff Connect. Это биржа фриланса с бесплатными тасками и комиссией только за вывод средств.

Регистрируйся и выставляй первый инвойс.
Или найди первый проект: https://clck.ru/3MkRDh
3👍2
Прошел Superliminal - небольшую инди-игрушку, ломающую мозг

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

Как я и сказал, игра построенна на головоломках через проекции (смотри видео на странице в Steam). Механика интересная, но быстро надоедающая. Очень круто, что разработчики наигрались комбинациями головоломок на паре механик с неожиданными переворотами восприятия и вовремя завершили игру. Я прошел за 3 часа и получил удовольствие, а самое главное - приятное послевкусие.

Академический интерес игры как раз и заключается в том, чтобы соблюсти баланс простоты механик с их эксплуатацией, не гриндом, а исследованием, с приправой в виде глубокого сюжета, поданного лишь через немногочисленные реплики из радиоприемника. Глубина которого раскрывается под самый конец. Ну и вишенкой на торте является букет ачивок, из которых я получил только 3, и многие из неполученных направлены на разные подходы к игре: например, несколько для спидраннеров.

Игра однозначно попадает в список рекомендаций

P.S. Если есть интересные небольшие инди-игры, которые вы считаете важными для прохождения - делитесь ими в комментариях!

#надопоиграть
15👍3
Сегодня стартовала летняя распродажа в Steam!

Расчехляйте копилки, господа!

P.S. Под последним постом в комментах как раз делились хорошими играми, авось они и скидку получат на распрадаже!
👍5❤‍🔥4🫡2
This media is not supported in your browser
VIEW IN TELEGRAM
Затрону тему геймдизайна баланса, или то, чем еще приходится заниматься разработчикам игр

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

Технически - всё просто. Особенно, учитывая, что на результат кроме рандома влияет всего лишь один параметр: сила отряда. Ну, вернее два: сила отряда игрока и сила отряда врагов в комнате. И вот тут возникает вся магия математики в играх: как сделать так, чтобы результаты имитации боя были хотя бы отдаленно похожи на результат настоящего боя?

Ключевой и стратегический момент в игре - игрок может нести потери. Если потерь нет - то это просто айдл механика, если потери есть - начинается стратегия. А стратегию нужно просчитывать, что и является тем лакомым кусочком игр данного жанра.

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

Поэтому я ввожу градацию сложности: в зависимости от соотношения сил, я выдаю шансы понести потери. Например, если у игрока отряд в два раза слабее вражеского - то он теряет до 80-90% отряда, и если у него кто-то остается, то захват комнаты проходит успешно. Таких градаций несколько, все сводится к тому, что чем меньше сил у игрока - тем больше потерь он понесет, но это еще не значит, что он проиграет. Если в отряде будет достаточно юнитов, что даже при потерях в 99.99% отряда, останется хотя бы один юнит - комната будет захвачена.

Я сделал в итоге 6 отрезков для определения потерь в отряде игрока, в зависимости от соотношения "сила отряда игрока / сила отряда врага". 0-0.5, 0.5-0.75, 0.75-1, 1-1.25, 1.25-1.5, 1.5-2. Минимальное соотношение будет всегда больше 0, т.к. как минимум 1 юнит то в отряде будет, шансы на победу при соотношении сил меньше 0.5 стремятся к 0, потому что потери стремятся к 100% (но никогда не будут 100%, пограничное значение 99.99%). И наоборот, если отряд игрока в 2 и более раз сильнее вражеского, то шансы на победу стремятся к 100%, потому что потери стремятся к 0.

Далее я определяю "корридоры сложности". Например: 0-20% потерь = ваще легко, 20-40% потерь - легко, 40-60% средне и т.д. Это и видит игрок и строит стратегию, готов ли он нести такие потери или нет.

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

___
В крупных компаниях обычно такими задачами занимается отдельный геймдизайнер, он так и называется - геймдизайнер баланса. Такому человеку предстоит много считать, заполнять множество табличек, придумывать множество формул, и чтобы это всё гармонично работало на опыт игроку.
👍18🔥6🆒42
Скриншот-суббота
Vol. 13
6

Праздная (читай ленивая). Если вы это читаете, то я где-то в Златиборе на пути в Сараево

🔠 ProjectLazyDungeon движется: занимаюсь юнитами. Помимо покупки, из можно ещё и выкидывать из отряда с возвращением части монеток. И прорабатываю имитацию боя через формулу. Кстати о ней я и рассказывал вчера в посте

___
Ну и всё! Где-то новости почитал, где-то сценарий почиркал, где-то игру прошел, где-то вдохновился. Кстати, об этом тоже надо рассказать, думаю интересно будет. А вы пока в комментах накидайте своих результатов за неделю, за побольше!

#скриншотсуббота
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8🆒3
Архитектура_проектов_с_использованием_MVVM_drawio_1.png
96.6 KB
Всем понедельника!

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

В общем, давайте начнем со входа в игру. Схема простая, но самая важная. Какие вопросы возникают глядя на схемку? Какой момент вызывает больше всего вопросов, вроде "А что это значит? А как это делается?". По вашим вопросам, буду дополнять/изменять, так что заранее благодарю. Вопрошать можно в комментах.

А здесь будет большая абоба, содержащая все схемки и подсхемки. Кстати, да, имеется ввиду архитектура на MVVM:

https://drive.google.com/file/d/1jFBCFzzhSuKG8rdnW-XEPON1HabQl56O/view?usp=sharing
🔥24👍7❤‍🔥3