Telegram Group Search
По поводу арта и уровней думал над разными вариантами. 3d почти сразу отмёл, т. к. трудоёмко, да и незачем. Тут даже коллайдеры не особо нужны на объектах.

Для 2d тоже вариантов так-то много. Сами уровни можно в 3d делать, но спрайтами обвешивать. В итоге (т. к. ранее работал над мобильными кликерами) прикинул, что можно и чисто в 2d всё сделать.
1. Весь задник — просто большая пикча.
2. Пропсы небольшими спрайтами. Вообще проблем с этим нет, т. к. это тупо статика. Но решил не вшивать в бэграунд, т. к. нужны слои. Условно, когда перс садится за стол, то его спрайт за столом должен быть, но перед стулом. Просто z-индексом разрулю. Там есть пограничные случаи, но это не крит.
3. Персы тоже спрайтами.

Если игра доползёт до стадии, когда реально решу в стор выкладывать, то буду искать художника. А пока для прототипа взял подписки на сервисы типа Миджорни и пытаюсь генерить всякое. Первые выводы:
1. Беки можно, но сложно написать промт для настройки деталей.
2. Пропсы неплохо рисует.
3. Персов нигде не получилось нагенерить. 1-2 спрайта ок, а вот получить одного и того же перса с разных углов камеры в разных позах, чтоб потом анимации прикрутить, не смог.
4. Генерация пиксельных авок/фоток (для диалогов) по фото реальных игрожуров неплохо получается.

#art
И меня опять поразила болезнь велосипедостроения — решил простенький модуль для Dependency Injection запилить. В целом, там не то, чтоб для базовых вещей много чего сделать надо. Простейших биндингов и [Inject] атрибута уже хватило бы. Но потом добавляются фабрики, спавн префабов, отложенная инициализация...В итоге после пары дней решил, всё же, взять готовое.

Из чего выбирал:
1. По классике Zenject. Но он какой-то мёртвый. Не знаю, есть ли какой-то живой форк, но мне в Зенжекте всегда не нравилась монструозность. А потыкав код, сам убедился, что они что-то там с рефлексией перемудрили уж слишком. Плюс памяти оно лишней аллоцирует немало. Из интересного: там пулы используются даже для внутренних служебных задач, что весьма круто.
2. Reflex. Выглядит неплохо, поддерживается. Код в целом намного проще Зенжекта, всё также есть различные контексты: Проект -> сцена -> другие сцены.
3. Победил VContainer. Мелкий, быстрый и памяти меньше остальных выделяет (по словами автора). Покрывает вроде как большую часть хотелок. Код несложный, в случае чего форкну и допилю под себя. Единственный минус пока что в том, что не умеет из коробки [Inject] резолвить на монобехах на сцене. Приходится явно для всех указывать builder.RegisterComponentInHierarchy<Office>(). В принципе, ничего не мешает пробежать по сцене и проверить монобехи на аттрибут field.GetCustomAttributes, но это, всё же, будет весьма медленно для жирных сцен с кучей вложенных объектов. Ну и круто, что, если нужно будет выжать перфоманс, можно прикрутить Roslyn Source Generator для сорсгена.

#unity
Про DI на Реддите тоже вопросик задал (можете полайкать, кстати 🌚). Довольно занимательные ответы, скажу я вам. Мнения прям разительно отличаются:
1. По поводу Зенжекта все в целом сходятся — монстр.
2. Немало тех, кто не понимает, зачем в Unity использовать DI, если он и так компонентный, и есть уже все нужные методы типа GetComponent. Видимо, не работали с крупными проектами.
3. Кто-то в целом не понимает, зачем DI нужны.
4. Есть и те, кто удивился, что можно писать логику без завязки на Unity и UnityEngine неймспейс.
5. Есть отдельные замечания по поводу того, что DI перфоманс ухудшает. Оно порой и правда так, но сорсген часть этих проблем решает. И тут вопрос: ради простоты/удобства разработки можно/допускается немного просесть по производительности или нет? 🤔

#reddit
Решил потихоньку вкатываться в геймдев сообщества на Реддите, чтоб потом периодами пиарить игру свою. А то если просто из ниоткуда залетать, то минусуют, т. к. видно, что просто для рекламы используешь площадку.

Заметил странную/неприятную вещь в различных сабредитах — люди негативят в постах, в которых нет ошибок, т. к. думают, что текст писался с помощью ChatGPT.

Я сам для многих вещах использую AI'шку. Для текстов на английском особенно, т. к. грамматика у меня страдает. Вот, ей-богу, борьба с ветряными мельницами.

#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
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
Нарисовал иконку. Довольно долго над концептом думал. Ключевые элементы, которые могли бы быть:
- Ручка/карандаш
- Комп
- Печатная машинка
- Блокнот
- Что-то с играми связанное. Телик/консоль/контроллер

Телик/комп сразу отпали, т. к. при размерах менее 64x64 не очень читалось. Блокнот ок, но не хватает чего игрового. В итоге выбрал контроллер+карандаш = игры+писательство.

А вот теперь нужно придумать капсулу для Стима 920x430. Пока не знаю, что там изобразить. У меня есть небольшой мудборд с примерами похожих игр. Идеи:
- Очевидно должно быть название. Слева либо справа.
- Нужно что-то либо внутриигровое, либо по теме.
- Внутриигровое эт, например, упрощённый вид офиса.
- По теме эт, например, лого или что-то из идей для лого. Печатная машинка? Блокнот? 🤔

#art #Steam
Я постоянно пишу, что использую Obsidian, и меня потом спрашивают про плагины и прочее. Возможно и правда стоит отдельную рубрику под это дело завести.

В этот раз поговорим про 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'ы у объектов.

Пример: нужно, чтоб объект был в верхнем левом углу. Если оставлять дефолтный анкор [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 выставить лучше.
2025/01/25 02:06:38
Back to Top
HTML Embed Code: