Telegram Group Search
Давно в голове крутилась мысль. И вот впервые за 3 года небольшой отпуск организовался, решил потыкать Unity и попробовать накидать прототипчик идеи. Как раз Unity 6 вышел не так давно, на нём и попробую.

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

А идея проста: симулятор игрового журналиста. Думаю, все в курсе про Game Dev Tycoon и Game Dev Story. Вот что-то такое, но про игрожуров.

Буду по возможности прототипировать, а канал использовать для своего рода дневника разработки.
Если верхнеуровнево прикинуть по задачам, то:
1. Код. С ним я худо-бедно смогу справиться.
2. Арт. Тут совсем жесть. Для прототипа буду паки готовые использовать и AI.
3. Анимации. Полный ноль (не считая Меканим в Юнити). Игра пиксельная, поэтому Спайн вряд ли буду использовать. Буду аниматором делать, но большущий вопрос с тем, как сделать нормально спрайты в различных позах для всех этих анимаций 🤔
4. UI. Спрайты на первое время из какого-то пака возьму. А вот сама система окон/попапов сложная, нужно тщательно продумать, т. к. игра в целом про мету и сидении в окошках.
5. ГД. Тут у меня очень много набросков механик и идей есть. Можно много чего накрутить. Вопрос только в том, насколько готов затянуть разработку.
6. Со звуками совсем беда. Если именно UI'ные звуки для кликов и эффектов смогу подобрать, то фоновый саунд не смогу. Явно нужно будет к спецу обращаться. Но пока что этот момент можно отложить.

Помимо этого, само собой, нужно потыкать более современные тайкуны, чтоб подсмотреть, во что нынче играют и к какому UI люди привыкли.

Отдельным моментом стоит юридический вопрос: даже если это пародия и fair use, то имена и пикчи нужно будет изменить, чтоб на иск не напороться.

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

Хотелось бы до лета хоть какой-то прототип рабочий накидать.

#producing
По поводу арта и уровней думал над разными вариантами. 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
2025/01/09 02:23:17
Back to Top
HTML Embed Code: