Про DI на Реддите тоже вопросик задал (можете полайкать, кстати 🌚). Довольно занимательные ответы, скажу я вам. Мнения прям разительно отличаются:
1. По поводу Зенжекта все в целом сходятся — монстр.
2. Немало тех, кто не понимает, зачем в Unity использовать DI, если он и так компонентный, и есть уже все нужные методы типа
3. Кто-то в целом не понимает, зачем DI нужны.
4. Есть и те, кто удивился, что можно писать логику без завязки на Unity и
5. Есть отдельные замечания по поводу того, что DI перфоманс ухудшает. Оно порой и правда так, но сорсген часть этих проблем решает. И тут вопрос: ради простоты/удобства разработки можно/допускается немного просесть по производительности или нет? 🤔
#reddit
1. По поводу Зенжекта все в целом сходятся — монстр.
2. Немало тех, кто не понимает, зачем в Unity использовать DI, если он и так компонентный, и есть уже все нужные методы типа
GetComponent
. Видимо, не работали с крупными проектами.3. Кто-то в целом не понимает, зачем DI нужны.
4. Есть и те, кто удивился, что можно писать логику без завязки на Unity и
UnityEngine
неймспейс. 5. Есть отдельные замечания по поводу того, что DI перфоманс ухудшает. Оно порой и правда так, но сорсген часть этих проблем решает. И тут вопрос: ради простоты/удобства разработки можно/допускается немного просесть по производительности или нет? 🤔
Reddit
From the Unity3D community on Reddit: Best DI for Unity in 2024?
Explore this post and more from the Unity3D community
Решил потихоньку вкатываться в геймдев сообщества на Реддите, чтоб потом периодами пиарить игру свою. А то если просто из ниоткуда залетать, то минусуют, т. к. видно, что просто для рекламы используешь площадку.
Заметил странную/неприятную вещь в различных сабредитах — люди негативят в постах, в которых нет ошибок, т. к. думают, что текст писался с помощью ChatGPT.
Я сам для многих вещах использую AI'шку. Для текстов на английском особенно, т. к. грамматика у меня страдает. Вот, ей-богу, борьба с ветряными мельницами.
#reddit
Заметил странную/неприятную вещь в различных сабредитах — люди негативят в постах, в которых нет ошибок, т. к. думают, что текст писался с помощью ChatGPT.
Я сам для многих вещах использую AI'шку. Для текстов на английском особенно, т. к. грамматика у меня страдает. Вот, ей-богу, борьба с ветряными мельницами.
На Реддите выложил пост (можно полайкать 🌚) про ассеты, которые использую в каждом проекте. Так-то куча всяких полезных есть под задачи, но вот эти я прям вообще в любом проекте использую, т. к. они универсальны:
1. Odin inspector. Улучшает сильно работу с Редактором в целом, очень помогает в создании кастомных окон.
2. Editor Console Pro. Мощно улучшает дефолтную юнитишную консоль.
3. DOTween PRO. Упрощает анимирование gameObject'ов. Там люди посоветовали попробовать PrimeTween вместо него. Надо будет потыкать.
4. UnityAssetUsageDetector. Позволяет найти ссылки на конкретный ассет. Весьма полезная штука.
5. UnityIngameDebugConsole. Внутриигровая консоль. Очень помогает с дебагом на мобилках.
6. HierarchyDecorator. Полезное улучшение дерева объектов. Сразу видно, какие компоненты на объекте висят.
7. MyBox. Набор полезных расширений для Редактора.
8. Hot Reload. Позволяет менять код без перезапуска сцены. Да, в Редакторе есть встроенный хот-релоад, но он в прошлых версиях подтупливал. Возможно имеет смысл использовать этот плагин.
Ну и в комментах там много всего насоветовали. Рекомендую глянуть, может что подберёте под свой проект. Например NoesisGUI. Судя по списку студий, в том же BG3 оно используется. Есть биндинги и интеграция и с другими движками, не только с Юнькой.
#unity #reddit
1. Odin inspector. Улучшает сильно работу с Редактором в целом, очень помогает в создании кастомных окон.
2. Editor Console Pro. Мощно улучшает дефолтную юнитишную консоль.
3. DOTween PRO. Упрощает анимирование gameObject'ов. Там люди посоветовали попробовать PrimeTween вместо него. Надо будет потыкать.
4. UnityAssetUsageDetector. Позволяет найти ссылки на конкретный ассет. Весьма полезная штука.
5. UnityIngameDebugConsole. Внутриигровая консоль. Очень помогает с дебагом на мобилках.
6. HierarchyDecorator. Полезное улучшение дерева объектов. Сразу видно, какие компоненты на объекте висят.
7. MyBox. Набор полезных расширений для Редактора.
8. Hot Reload. Позволяет менять код без перезапуска сцены. Да, в Редакторе есть встроенный хот-релоад, но он в прошлых версиях подтупливал. Возможно имеет смысл использовать этот плагин.
Ну и в комментах там много всего насоветовали. Рекомендую глянуть, может что подберёте под свой проект. Например NoesisGUI. Судя по списку студий, в том же BG3 оно используется. Есть биндинги и интеграция и с другими движками, не только с Юнькой.
#unity #reddit
Пока все отходят от похмелья и доедают салаты (с Новым 2025 Годом, кстати, котята 🥳 ), продолжаю натыкивать систему диалогов.
Изначально взял Dialogue System на посмотреть. Крутая штука, но слишком уж вещь в себе и кастомизировать сложновато некоторые моменты. Вопросики возникли:
1. По UI и показу окон
2. По показу меню выбора
3. Свой редактор диалогов и своя мини-база под фразы и акторов
В итоге, если данные сами (фразы, локализации, персы) в другом месте, то всё это метчить как-то костыльно получается. Но сама система топчик! Я бы рекомендовал всем, кто хочет диалоги в игру добавлять.
Но в моей игре диалоги будут относительно простыми, поэтому решил сам сделать. С вёрсткой вообще проблем нет. С данными...пока в JSON'е будут. Но глянул NodeCanvas. Скорей всего в будущем именно его поверх своего хранилища прикручу, чтоб был удобный UI чисто для настройки дерева диалогов/фраз.
Остаётся (лол) лишь вопрос с артом для UI. Взял готовый пак для начала, буду на нём делать. А в плане структуры UI/UX всем рекомендую:
1. Gameuidatabase. Очешуенная база по UI из кучи игр. По категориям и типам разбито.
2. Interfaceingame. База чуть поменьше, но тоже много полезного.
Я в итоге по различным аспектам покопировал себе в мудборды скрины UI из подходящих игр, а потом выбираю. Да, для заметок/документации и мудбордов я Obsidian использую.
P. S. отгадаете, кто фразу говорит на скрине? 🌚
#unity
Изначально взял Dialogue System на посмотреть. Крутая штука, но слишком уж вещь в себе и кастомизировать сложновато некоторые моменты. Вопросики возникли:
1. По UI и показу окон
2. По показу меню выбора
3. Свой редактор диалогов и своя мини-база под фразы и акторов
В итоге, если данные сами (фразы, локализации, персы) в другом месте, то всё это метчить как-то костыльно получается. Но сама система топчик! Я бы рекомендовал всем, кто хочет диалоги в игру добавлять.
Но в моей игре диалоги будут относительно простыми, поэтому решил сам сделать. С вёрсткой вообще проблем нет. С данными...пока в JSON'е будут. Но глянул NodeCanvas. Скорей всего в будущем именно его поверх своего хранилища прикручу, чтоб был удобный UI чисто для настройки дерева диалогов/фраз.
Остаётся (лол) лишь вопрос с артом для UI. Взял готовый пак для начала, буду на нём делать. А в плане структуры UI/UX всем рекомендую:
1. Gameuidatabase. Очешуенная база по UI из кучи игр. По категориям и типам разбито.
2. Interfaceingame. База чуть поменьше, но тоже много полезного.
Я в итоге по различным аспектам покопировал себе в мудборды скрины UI из подходящих игр, а потом выбираю. Да, для заметок/документации и мудбордов я Obsidian использую.
P. S. отгадаете, кто фразу говорит на скрине? 🌚
#unity
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Между тем, пытаюсь сам хоть что-то нарисовать. Купил Aseprite, вкатываюсь в пиксель-арт. Не до конца понимаю, что тут такого супер особенного именно для пикселей. В том же PS или, дай боже, Гимпе это всё не сделать разве? Ну, не считая анимаций.
Доводить сгенеренное AI'шкой геморрно. Если в обычном арте это незаметно, то при генерации пиксель-арта тот же Миджорни оооочень много лишних цветов использует, постоянно по краям левые цвета пихает, неровные границы делает.
Выглядит так, что действительно быстрее потом будет заказать пропсы у художника, чем фиксить то, что AI'шка нагенерит. Попробую, конечно, с промптами поиграть и другие сервисы использовать, но не думаю, что там прям намного лучше будет.
#aseprite #art
Доводить сгенеренное AI'шкой геморрно. Если в обычном арте это незаметно, то при генерации пиксель-арта тот же Миджорни оооочень много лишних цветов использует, постоянно по краям левые цвета пихает, неровные границы делает.
Выглядит так, что действительно быстрее потом будет заказать пропсы у художника, чем фиксить то, что AI'шка нагенерит. Попробую, конечно, с промптами поиграть и другие сервисы использовать, но не думаю, что там прям намного лучше будет.
#aseprite #art
Нарисовал иконку. Довольно долго над концептом думал. Ключевые элементы, которые могли бы быть:
- Ручка/карандаш
- Комп
- Печатная машинка
- Блокнот
- Что-то с играми связанное. Телик/консоль/контроллер
Телик/комп сразу отпали, т. к. при размерах менее 64x64 не очень читалось. Блокнот ок, но не хватает чего игрового. В итоге выбрал контроллер+карандаш = игры+писательство.
А вот теперь нужно придумать капсулу для Стима 920x430. Пока не знаю, что там изобразить. У меня есть небольшой мудборд с примерами похожих игр. Идеи:
- Очевидно должно быть название. Слева либо справа.
- Нужно что-то либо внутриигровое, либо по теме.
- Внутриигровое эт, например, упрощённый вид офиса.
- По теме эт, например, лого или что-то из идей для лого. Печатная машинка? Блокнот? 🤔
#art #Steam
- Ручка/карандаш
- Комп
- Печатная машинка
- Блокнот
- Что-то с играми связанное. Телик/консоль/контроллер
Телик/комп сразу отпали, т. к. при размерах менее 64x64 не очень читалось. Блокнот ок, но не хватает чего игрового. В итоге выбрал контроллер+карандаш = игры+писательство.
А вот теперь нужно придумать капсулу для Стима 920x430. Пока не знаю, что там изобразить. У меня есть небольшой мудборд с примерами похожих игр. Идеи:
- Очевидно должно быть название. Слева либо справа.
- Нужно что-то либо внутриигровое, либо по теме.
- Внутриигровое эт, например, упрощённый вид офиса.
- По теме эт, например, лого или что-то из идей для лого. Печатная машинка? Блокнот? 🤔
#art #Steam
Я постоянно пишу, что использую Obsidian, и меня потом спрашивают про плагины и прочее. Возможно и правда стоит отдельную рубрику под это дело завести.
В этот раз поговорим про Dataview. Штукенция позволяет писать SQL-like запросы и потом формировать отображение.
Простейший пример: вывести список файлов с тегом diary.
Оно отобразит файлы с возможностью перейти в него.
Но для меня фишечка в том, что можно запросы писать на JavaScript! Реальный пример: мне нужно автоматически формировать список заголовков из всех дневников.
Этот код автоматически в режиме чтения будет формировать актуальный список того, что я делал по дням с возможность перейти или посмотреть превью при наведении на ссылку.
#Obsidian #documentation
В этот раз поговорим про Dataview. Штукенция позволяет писать SQL-like запросы и потом формировать отображение.
Простейший пример: вывести список файлов с тегом diary.
TABLE
FROM #diary
Оно отобразит файлы с возможностью перейти в него.
Но для меня фишечка в том, что можно запросы писать на JavaScript! Реальный пример: мне нужно автоматически формировать список заголовков из всех дневников.
```dataviewjs
const resultItems = [];
const diaries = app.vault.getFiles()
.filter(file => file.parent.path === 'Diary' && file.path.includes('.md') && file.name !== 'Diaries.md');
for (let i = 0; i < diaries.length; ++i) {
const d = await dv.io.load(diaries[i].path);
const path = diaries[i].path.substring(0, diaries[i].path.indexOf('.'));
const titles = d.split('\n').filter(line => line.contains('# '));
resultItems.push(...titles.map(t => dv.fileLink(path + t, false, t.substring(2))));
}
dv.list(resultItems);
```
Этот код автоматически в режиме чтения будет формировать актуальный список того, что я делал по дням с возможность перейти или посмотреть превью при наведении на ссылку.
#Obsidian #documentation
This media is not supported in your browser
VIEW IN TELEGRAM
Купил несколько ассетов, и...не понимаю, почему люди так не любят использовать pivot'ы у объектов.
Пример: нужно, чтоб объект был в верхнем левом углу. Если оставлять дефолтный анкор
1. Нужно позицию задавать, которая зависит от размера. С анкором
2. Если поменяется размер объекта, то нужно и позицию твикать.
В общем, советую покурить анкоры и пивоты в Юньке, если вы ещё не. Очень упрощает работу по созданию UI того же.
#unity
Пример: нужно, чтоб объект был в верхнем левом углу. Если оставлять дефолтный анкор
[0.5;0.5]
, то:1. Нужно позицию задавать, которая зависит от размера. С анкором
[0;1]
можно всегда [0;0;0]
оставлять.2. Если поменяется размер объекта, то нужно и позицию твикать.
В общем, советую покурить анкоры и пивоты в Юньке, если вы ещё не. Очень упрощает работу по созданию UI того же.
#unity
Больше всего времени уходит на документацию. И даже нравится, на удивление. Для меня это вот как раз тот самый процесс "творения", о котором многие мечтают и из-за которого хотят вкатиться в геймдев. Мне, как технарю, этот процесс вдвойне нравится, т. к. позволяет структурировать и разложить по полочкам всё. Отдельный кайф всё это в Obsidian перелинковывать и тегами обвешивать 😅
Установил ещё standalone-плагин excalidraw. Схемки там рисую, да и прототипы окошек. Не особо нравится формат хранения этого всего, т. к. гит загрязняется дифами бинарей, но если не особо часто пушить изменения, то норм.
Пока что докидываю доки по:
- Корлупу
- Экономике
- Персам, их атрибутам, трейтам/перкам
Ну и параллельно над UI работаю. Для прототипа нужно:
- Базовый UI
- Оконный менеджер
- Окна для создания/настройки заданий для игрожурчиков
Между тем, по промо и арту:
- Нашёл людей, которые помогут с капсулой и банером для Стима. Несколько человек отдельно от этого ещё накидали хороших идей для капсулы.
- Через артовиков Blasphemous нашёл человечка, который поможет со спрайтами и анимациями. Пока проверим как пойдёт с пропсами мебели/техники, а дальше посмотрим.
С артом мне прям совсем тяжковато, слишком много вопросов, особенно из-за специфики пиксель-арта:
- Какое брать эталонное разрешение? Если б не пиксель-арт, то взял бы 1920x1080. Но, судя по всему, нужно брать 640x360.
- Аналогичный вопрос для UI. В таком мелком разрешении тяжковато верстать. Вероятно, UI надо в 1920x1080 делать, а основную камеру под уровни в 640x360.
- Какой pixel per unit выставить лучше.
Установил ещё standalone-плагин excalidraw. Схемки там рисую, да и прототипы окошек. Не особо нравится формат хранения этого всего, т. к. гит загрязняется дифами бинарей, но если не особо часто пушить изменения, то норм.
Пока что докидываю доки по:
- Корлупу
- Экономике
- Персам, их атрибутам, трейтам/перкам
Ну и параллельно над UI работаю. Для прототипа нужно:
- Базовый UI
- Оконный менеджер
- Окна для создания/настройки заданий для игрожурчиков
Между тем, по промо и арту:
- Нашёл людей, которые помогут с капсулой и банером для Стима. Несколько человек отдельно от этого ещё накидали хороших идей для капсулы.
- Через артовиков Blasphemous нашёл человечка, который поможет со спрайтами и анимациями. Пока проверим как пойдёт с пропсами мебели/техники, а дальше посмотрим.
С артом мне прям совсем тяжковато, слишком много вопросов, особенно из-за специфики пиксель-арта:
- Какое брать эталонное разрешение? Если б не пиксель-арт, то взял бы 1920x1080. Но, судя по всему, нужно брать 640x360.
- Аналогичный вопрос для UI. В таком мелком разрешении тяжковато верстать. Вероятно, UI надо в 1920x1080 делать, а основную камеру под уровни в 640x360.
- Какой pixel per unit выставить лучше.
Из-за работы над Balancy жёстко устаю, под вечер нет ресурса игрой своей заниматься. Вместо этого трачу время на что-то другое. На Реддите поделился этой проблемой. Немало у кого похожая ситуация. Кто как справляется.
Понравился совет про то, что нужно каждый день хоть что-то делать по игре, пускай это даже несколько записей в блокноте.
Ещё из интересных советов: ставить себе реальные задачи, не смотря на то, что это пет-проект. Правда, у меня с TODO'шками и задачами есть проблема, что я, если не успеваю сделать, просто переношу на другой день. В итоге это накапливается и ещё сильнее негативно влияет на кукуху и мотивацию.
Понравился совет про то, что нужно каждый день хоть что-то делать по игре, пускай это даже несколько записей в блокноте.
Ещё из интересных советов: ставить себе реальные задачи, не смотря на то, что это пет-проект. Правда, у меня с TODO'шками и задачами есть проблема, что я, если не успеваю сделать, просто переношу на другой день. В итоге это накапливается и ещё сильнее негативно влияет на кукуху и мотивацию.
This media is not supported in your browser
VIEW IN TELEGRAM
На самом деле...я не забил на игру. Просто у меня нет столько свободного времени, чтоб прям игру пилить целыми днями.
Но у меня урывками хватает времени, чтоб изучать/прокачивать базу.
1. В рисовании и пиксель-арт я ноль. Поэтому сейчас изучаю теорию, смотрю туторы, пытаюсь сам рисовать. Если финальный арт не мой будет, то я всё равно хотя бы буду понимать арт-дирекшн на базовом уровне, чтоб заказы (и ТЗ) людям давать нормально.
2. Я ж по профилю бекендщик, в Юнити я раньше делал чаще всего именно логику, геймплей, AI-ботов. Со всеми этими рендерами не работал нормально. Вот сейчас как раз тыкаю все эти штуки.
Изначально я думал по поводу сцен:
1. Беки картинками
2. Пропсы просто на сцене с разным z-индексом
Но...покурил тут немного, что там в Юньке по пиксель-арту, и...возможно иначе буду делать,
1. URP
2. grid + tile maps изометрические
3. Свет можно динамический завести
4. Даже какие-никакие тени есть
Продолжаю ковырять. Подумал, что возможно какую-то мини-игру (которую можно до конца года сделать) для начала выпущу, чисто, чтоб руку набить.
#unity
Но у меня урывками хватает времени, чтоб изучать/прокачивать базу.
1. В рисовании и пиксель-арт я ноль. Поэтому сейчас изучаю теорию, смотрю туторы, пытаюсь сам рисовать. Если финальный арт не мой будет, то я всё равно хотя бы буду понимать арт-дирекшн на базовом уровне, чтоб заказы (и ТЗ) людям давать нормально.
2. Я ж по профилю бекендщик, в Юнити я раньше делал чаще всего именно логику, геймплей, AI-ботов. Со всеми этими рендерами не работал нормально. Вот сейчас как раз тыкаю все эти штуки.
Изначально я думал по поводу сцен:
1. Беки картинками
2. Пропсы просто на сцене с разным z-индексом
Но...покурил тут немного, что там в Юньке по пиксель-арту, и...возможно иначе буду делать,
1. URP
2. grid + tile maps изометрические
3. Свет можно динамический завести
4. Даже какие-никакие тени есть
Продолжаю ковырять. Подумал, что возможно какую-то мини-игру (которую можно до конца года сделать) для начала выпущу, чисто, чтоб руку набить.
#unity
This media is not supported in your browser
VIEW IN TELEGRAM
Всё ещё играюсь с динамическим светом и тенями.
Попробовал отрисовать нормалмепы для спрайтов. Всё ещё странные результаты порой, но теперь, по крайней мере, без проблем могу их читать.
Да, я понимаю, что для такого типа игр проще отрисовать как надо без всякой динамики, чтоб свет/тени прям на уровне спрайтов были, но хочется ещё поэкспериментировать 😅
Попробовал отрисовать нормалмепы для спрайтов. Всё ещё странные результаты порой, но теперь, по крайней мере, без проблем могу их читать.
Да, я понимаю, что для такого типа игр проще отрисовать как надо без всякой динамики, чтоб свет/тени прям на уровне спрайтов были, но хочется ещё поэкспериментировать 😅
This media is not supported in your browser
VIEW IN TELEGRAM
Одинаковые цвета видятся иначе в зависимости от окружающих пикселей. Тут один и тот же цвет бордера видится разным в зависимости от фона и окружения. Помните сине-золотое платье? 😭
Не то, чтоб это какая-то новость, но всегда страдал из-за того, что не могу считывать/понимать сочетания цветов. До сих пор проблемы с подбором одежды, про интерьеры вообще молчу. Не знаю, если честно, как руку в этом вопросе набить. Очень всё не консистентно пока выглядит, но буду пробовать и пытаться дальше😤
Это ещё к вопросу о том, что очень важно подобрать нужную палитру, особенно в пиксель-арте, где ты работаешь на уровне пикселей, явно.
Не то, чтоб это какая-то новость, но всегда страдал из-за того, что не могу считывать/понимать сочетания цветов. До сих пор проблемы с подбором одежды, про интерьеры вообще молчу. Не знаю, если честно, как руку в этом вопросе набить. Очень всё не консистентно пока выглядит, но буду пробовать и пытаться дальше
Это ещё к вопросу о том, что очень важно подобрать нужную палитру, особенно в пиксель-арте, где ты работаешь на уровне пикселей, явно.
Please open Telegram to view this post
VIEW IN TELEGRAM