Заклинания Духов
Заклинания с "Духами драконов"!
Мыши Атакуют!
Как ожили мышки, которых вы выбирали?
Обновлена Аватарка проекта!
Ваша поддержка очень важна для нас!
Подписывайтесь, добавляйте в отслеживаемое и следите за новостями проекта!
Только тссс
Подглядываете?
Ваш выбор важен для нас!
Какой тип крыльев главного героя вам больше по душе?)
Как это будет
Демонстрирую основной принцип работы, магии в игре!
Потребуется вводить руны на экране, собирая комбинации для заклинаний!
Какие знаки и руны вы бы хотели видеть в игре?
Классная музыка!
Отличная новость! Александр Кропачев выразил свою заинтересованность нашим проектом! И мы принимаемся за импорт замечательных треков в проект!
Музыку вы можете прослушать на странице автора: https://vk.com/randoms
Также у него есть классный проект МЕГАГЕРЦЫ: https://vk.com/mhzbl
Как это было
Вот так выглядели наши первые концепты по игре! Вскоре, мы решили отказаться от тайлов и перейти полностью на растровую графику))
Как это было
Вот такие варианты персонажа рассматривались, они все хороши, но пришлось выбирать)
Ваш голос важен для нас!
Выбор вида, одного, противника в игре (Летучая Мышка)
Держу в курсе
А как вы относитесь к таким созданиям как «Божья коровка»?
Создание проекта
Всем привет! По мере разработки я буду рассказывать, о прогрессе и демонстрировать проект изо всех сторон :)
Проект «Ковен» Дистанционная подзарядка дронов в небе
Думается, что самая экономичная, быстрособираемая, быстрореализуемая, долговечная и практичная система подзарядки в небе — решена именно в России и нами! Представляем Вам Проект «Ковен» — сбор, шабаш, группа. название придумано не случайно, предполагает дистанционную подзарядку дронов различного назначения прямо в воздушном пространстве, при помощи летающих в небе дронов-платформ. Целиком автономных машин! Которые могут спускаться на землю исключительно для технического обслуживания или вовсе для замены единицы. «Ковен» не имеет ограничений в количестве себе подобных единиц, которые будут прибывать постоянно в воздушном пространстве. Сможет собираться в единую платформу крайне быстро, сообщаясь между собой. Дроны системы «Ковен» в прямом смысле могут просто от «безделья» посидеть на любой крыше и наслаждаться теплым Солнцем, заряжая сами себя для помощи иным, примчавшись в группу. Систему «Ковен» можно так, же наделить (ИИ) и использовать как летающие наблюдательные камеры для нужд различных ведомств. Которым не нужно штатное питание с земли. Но и этим система не побрезгует. Область применения широчайшая.
Дроноплатформы «Ковен» это дроны, которые прикреплены к кристаллической решетке с сильным магнитным каркасом. Они постоянно могут находиться в небе питая себя как между группой себе подобных, так и отдельно от солнечного света днем, лазерообменом между собой на коротком расстоянии, магнитной индукцией, а так же впервые предложенным методом пьезоэлементами от работы винтов (ВИЭ) В небе одновременно может находиться тысячи подобных систем «Ковен» они целиком автономны и сами себя обеспечивают не летая на дальние расстояния. Их задача это добыча и раздача заряда иным дронам различного назначения
Система «Ковен» работает в автономной сцепке между себе подобными и количество единиц подобных себе в одном месте, будет зависеть от нагрузки в определенной локации города. То есть в необходимости энергии для подзарядки дронов приемников от станции «Ковен»
Уникальность системы именно в самой кристаллической решетке, способной сближать дроны словно пазл, в стаи различных форм и фигур для самоподзарядки различных видов и в комплексе одновременно.
Для передачи энергии между дронами используются различные технологии, включая:
Лазерные системы: Лазерные системы передачи энергии используют лазерный луч для передачи энергии между дронами.
Микроволновая передача энергии: Были проведены эксперименты по использованию микроволновой передачи энергии для зарядки БПЛА
Магнитно-резонансная индукция: Беспроводные зарядные станции, которые требуют подключения магнитно-резонансной индукции для передачи энергии на расстояние до нескольких километров.
Электромагнитный поле: Беспроводные зарядные станции, которые используют электромагнитное поле для передачи энергии.
Солнечная энергия: В некоторых случаях для питания дронов в полевых условиях используются электронные панели, которые подключаются к беспроводным зарядным станциям
Тип идеи
Цифровые решения, Законодательная инициатива, Бизнес-проект, Другое
Тема идеи
Развитие беспилотных технологий
Зрелость идеи
Проработанная инициатива — подготовленная концепция реализации идеи, для которой уже проведены базовые исследования и переговоры с заинтересованными сторонами, собраны исходные данные, подготовлен общий план действий
Описание проблемной ситуации
При отсутствии подзарядки в небе дронов через лазер возникает проблема долговечности полета. Беспилотные летательные аппараты (БПЛА) Необходимы удобные подзарядки, чтобы увеличить время полета и расширить область применения. Несмотря на развитие технологий подзарядки, включая использование лазеров, такие проблемы, как ограничения погоды и типы аккумуляторов, все еще существуют и требуют исследований и разработок.
Затраты и ресурсы
Порядка 5 миллионов рублей на полный цикл, от создания первых в мире подобных моделей до первого тестового запуска дроноплатформы «Ковен» в долговременный полет над городом. С быстрым запуском на рынок целых серий подобных платформ, абсолютно не требующих контакта с землей для подзарядки
Прогнозируемые эффекты, видение результата реализации идеи
Решение данной задачи, глобально изменит мир не только в беспилотных системах, но и послужит толчком для тысяч прорывных открытий и воплощений приостановленных изобретений абсолютно во всех сферах.
Преимущества лазерной подзарядки дронов включают в себя:
Непрерывная дистанционная зарядка: Технология обеспечивает возможность непрерывной дистанционной зарядки дрона на расстоянии до полутора километров и выше.
Увеличение времени полета: Лазерная подзарядка позволяет дронам увеличить время автономной работы, что особенно важно для решения различных задач, связанных с эксплуатацией беспилотников.
Автономное пополнение энергии: дроны могут получать энергию от лазерного излучателя, не приземляясь, благодаря фотоэлектрическому преобразователю, установленному в их нижней части.
Широкий спектр применения: Дроны на лазерной подзарядке могут использоваться в логистике, контроле над движением транспорта, в сельском хозяйстве, патрулировании, спасательных и военных операциях, а также для создания воздушных транспортных маршрутов и стратосферных спутников.
Таким образом, лазерная подзарядка дронов обладает рядом преимуществ, среди которых увеличение времени полета, возможность непрерывной зарядки на расстоянии и в широком спектре действия.
БЕСПЛАТНЫЕ ИГРЫ
выбери что по душе и скачай — список
Разработка: гардероб
Вчера поработала с окном гардероба.
- Для фона решила взять новое изображение, которое недавно нарисовала для кулона Беатрис. Оно хорошо подходит из-за круглой формы, которую используют практически во всех тайтлах, которые я посмотрела в качестве референсов.
- Основной цвет взяла сиренево-розовый, т.к. он ощущается достаточно спокойным, дружелюбным и на его фоне хорошо читается сама Беатрис, в любом из её нарядов.
- Решила убрать рамку, т.к. она создаёт проблемы с геометричностью элементов и сужает пространство.
- Добавила скроллбар, который можно переключать вручную или воспользоваться колёсиком мыши, чтобы приблизить/отдалить фигуру Беатрис.
- При скролле, Беата всегда центрируется по верхнему краю.
Пришлось немного нарушить правила и написать в классе Update, чтобы сделать окно максимально самобытным. Хотя, в данный момент это решение временное, потому что мне в любом случае нужно будет прокидывать связи к этому классу из других, чтобы модели знали о новой переменной одежды, выбранной игроком.
Разработка: результат полутора месяца рефакторинга
С 14 июня я плотно занимаюсь переработкой проекта.
В течение пары дней я перенесла проект с версии Unity 2020 на 2022, восстановила все ассеты, обновив их до актуальных версий и отказавшись от неподдерживаемых. Создала отдельную сборку, в которую скармливаю гугл-таблицы, чтобы из них парсить итоговый JSON и не хранить ничего лишнего в основном проекте. Сохранила старые интерфейсы в виде префабов для дальнейшего улучшения.
С 16 по 28 июня я занималась обновлением вёрстки основных интерфейсов, переписывала поведение кнопок, их отклик, собирала небольшие изображения в атласы и документировала все изменения, чтобы QA специалистам было проще тестировать новую сборку. Были готовы следующие интерфейсы:
- Дисклеймер (добавлена смена локализации)
- Стартовое меню (добавлена информация о прогрессе игрока и версии сборки)
- Боковое меню основного экрана.
- Текст-бокс (реализованы подсказки при наведении на кнопки интерфейса, объясняющие их функции)
- Смартфон и его экраны.
- Логи (добавлено меню с репутацией персонажей)
Связала все эти меню, чтобы между ними можно было переключаться. Задала позиционирование всем подвижным интерфейсам.
29 июня - подготовила новую структуру гугл-таблиц из которых воспроизводится вся игра.
3-9 июля были посвящены настройкам. Поиск нового дизайна, вёрстка экранов, замена кривых скроллбаров на слайдеры, работа с откликом панелей настроек, реализация функций, вроде локализации, изменения громкости разных источников звуков, сохранения настроек в специальный файл, его создания и чтения при запуске игры. Так же, проверила все используемые изображения в проекте, их настройки, собрала в атласы и т.д.
10 июля - реализация подсказок, которые будут воспроизводиться во время игры, при изменении репутации отношений с кем-то из персонажей.
11 июля - реализация карты маршрутов, чтобы игрок мог увидеть прогресс в различных сюжетных нодах.
С 12 по 17 июля я занималась контроллерами для отрисовки персонажей. Это сложный конструктор, содержащий много слоёв, с вариативностью под разные размеры исходных изображений с персонажами, с зацикленными и обрывающимися анимациями. Реализовано несколько удобных функций, которых мне не хватало в прошлой сборке. Все изображения персонажей перенесены в Addressables. Переписан инструмент реализованный через Editor.
С 17 по 20 июля - сборка единого универсального префаба для всех персонажей, в котором хранятся SO со ссылками на изображения в Addressables, которые будут загружаться исключительно по запросу.
С 21 по 30 июля - реализация подобных скриптов для аватаров. Сборка аватаров для девяти персонажей.
Планы на август (+):
- Реализация выведения таблиц в игре, основные механики переключения фреймов и сцен.
- Вёрстка обновлённого меню сохранений и их новая реализация.
- Реализация подсчёта прочитанного текста и выведение этой информации.
- Реализация окна с концовками.
- Доработка смартфона.
- Галерея с артами.
- Галерея с персонажами.
- Механика переодевания главной героини.
- Поддержка контроллера и добавление ещё одного окна в меню настроек для переназначения клавиш.
- Проверка состояния интерфейсов, чтобы управлять ими через горячие клавиши не создавая конфликтов.
Разработка: персонажи и аниматор
Ровно год назад я рефакторила префабы персонажей, для того чтобы узнать много нового про аниматор, и в конце концов, совсем отказаться от него.
В прошлый раз я добивалась целей:
- Снизить количество вложенных в префаб объектов.
- Снизить количество контроллеров анимации.
- Навести порядок в папках с изображениями.
- Сделать единое позиционирование изображений мимики.
- Исправить «залипание» на последний проигранной анимации.
Та архитектура была неплоха, я узнала много про оверрайд спрайты, про работу со слоями, про задержки и многое другое. Но эта сложная стейт машина оказалась излишней для моего проекта.
Аниматор очень хорош, когда в игре нужны интерполяции, с плавным переходом из одной картинки в другую. Очень классно, если речь идёт об анимациях персонажа, которым управляет игрок. Взять например, любой 2D платформер, где ветви анимаций и их зависимости выстраиваются единожды, и обеспечивают мягкий переход из состояния в состояние.
В "Тенебре" есть лишь один случай плавного перехода из состояния в состояние, когда персонаж меняет позу. Я это реализовала через дублирование изображения. Под слоем с фигурой персонажа, есть ещё один точно такой же слой, и он включается в тот момент, когда на верхний подаётся новое изображение. Потом он плавно затухает, создав эффект шлейфа, и по завершению принимает новую, актуальную картинку.
Немного о том, как это выглядит под капотом:
Но главная причина, по которой я отказалась от готового решения, это переход на хранение ассетов в adressebbles бандлах. В файле с основной сборкой игры будут лежать только изображения используемые для интерфейсов: рамки, заглушки, иконки, кнопки и т.д.
Весь контент, который относится исключительно к сюжету, теперь убран в адрессеблы и подгружается оттуда только по запросу. Это изображения персонажей, фоны, иллюстрации, музыка, звуки, озвучка.
Но в аниматор нельзя положить адрессебл изображение, а значит при его использовании, в игре будет дублироваться много изображений. Они будут храниться и в основной сборке, и в адрессеблах. Отказавшись от стейт машины, я решила эту проблему. И не только её. Сборка персонажей стала в разы проще, гибче, удобнее и быстрее. Я всё ещё прокидываю вручную много зависимостей, но их стало в разы меньше.
Это весь код, который мне потребовался, чтобы реализовать анимацию глаз и речи. Через Update в центральном контроллере, каждый фрейм происходит проверка bool значения, предусмотрена ли вообще анимация в данный момент, а потом проверяет на то же bool играет ли она сейчас или уже закончилась и её требуется повторить.
Количество префабов с персонажами было сокращено с 20 (у каждого единовременно работал аниматор, даже в скрытом состоянии) до 3-4. Скорее всего размещу четыре, потому что на сцене как правило находится не более трёх персонажей, а один будет запасным для рокировок при режиссуре.
И немного об устройстве префабов в данный момент:
Character - основной контроллер персонажа, который получает и обрабатывает информацию извне. Обычно, это набор индексов. Ещё он управляет координатами и размером префаба.
Sprites - в нём находится свитчер/переключатель, который управляет слоями с изображениями. Внутри него хранятся SO с персонажами и их характеристиками. Это набор циферных, строчных и булевых значений, собранных в листы.
Body - четыре слоя, рассчитанные на две формы персонажей. У нас есть спрайты 2к на 4к, а есть 4к на 4к. Через bool проверку, свитчер включает или отключает нужные слои, поскольку менять размер картинки напрямую - это очень рискованно и ненадежно. Можно испортить префаб.
Confuse, Eyesm Brows, Mouth, Specific - это небольшие слои для отрисовки разнообразной мимики.
Scriptble Objects:
Внутри SO с персонажем лежат три списка:
- SO с позами персонажа.
- SO со списками анимаций для глаз и губ.
SO с позой:
SO со слоями для позы:
SO с айдишниками для анимации:
На последнем стриме эту систему верно назвали "конструктором", потому что персонаж собирается из кусочков. Это даёт большую гибкость при конструировании префабов и при режиссуре.
И мне придётся переделывать всю демку, потому что у нас очень сильно изменилась индексация.
- Раньше не было индекса под названием Prefab, потому что у каждого персонажа был свой собственный шаблон, с персональным аниматором.
- Не было слоя Red или Confuse. Это небольшая картинка, которая отрисовывается поверх лица, но под мимикой. Это кровь, румянец при смущении. Благодаря этой картинке, удалось избавиться более чем ста больших изображений.
- Я добавила индекс Rotate, чтобы зеркалить префабы. Это иногда нужно при постановке кадра. Совсем не годится для асимметричного дизайна персонажей, но безумно важно для проходных персонажей, у которых мало спрайтов.
- Появился индекс Shader, который работает нифига не через шейдер. Он просто плавно затемняет все слои персонажа, чтобы показать лишь силуэт. Раньше я сохраняла отдельные картинки для каждого такого случая, потому что внедрять новый индекс посреди полуготового проекта - это накладно. Слишком много таблиц требовалось переписать вручную.
Всё это я сделала за две недели ежедневной работы часов по 12. Переписала логику, реализовала в движке, изучила много новой информации, собрала большую часть персонажей. Осталось совсем чуть-чуть и можно будет взяться за аватары. Им требуется отдельная логика, значительно отличающаяся от полноростовых персонажей.
Разработка: addressables
Unity предоставляет несколько способов хранения контента:
- Общая папка Assets, из которой в билд уходят используемые на сценах компоненты.
- Папка Resources, которая билдится в игру целиком, а объекты подгружаются запросом по имени и типу контента.
- Папка StreamingAssets, в которой контент никак не пакуется и отдаётся в чистом девственном виде - как есть (пока не знаю примеров его использования, но думаю на тему использования для сейвов, в жёстко закэшированной папке)
- Addressables, которые пакуются в самостоятельные бандлы и позволяют подгружать этот контент даже по сети.
В первом случае, я храню всё что используется для интерфейса игры.
От второго - я сейчас всеми правдами и неправдами избавляюсь. Проблема в том, что эта папка билдится очень тяжёлой. Обращение по именам - это опасно, потому что я могу изменить структуру папок или названия файлов. И код придётся переписывать. А если поместить эти объекты прямо в поля объектов на сцене или в используемые Scriptable objects, все компоненты тут же потянутся в оперативку при загрузке сцены. Это замедляет загрузку игры, а так же вынуждает потреблять оперативную память для редко используемых комполнентов.
Ещё один нюанс такого решения - это сборка из большого и тяжёлого моно файла, что является большой проблемой для веба и мобайла. Они обычно ограничены 25Мб на один файл. В будущем я планирую порт, да и сборка в вебе, которую тут же можно дать потыкать с планшета - это безумно удобно и хорошо работает на конверсию вовлечённой аудитории.
Последний вариант с адрессеблами позволяет разбить большой файл на небольшие бандлы, вес которых я могу контролировать. Кроме того, можно хранить прямые ссылки в объектах, но контент не будет сразу подгружаться в игру, если те размещены на сцене. Подгрузка происходит только по прямому запросу из кода.
Я уже организовала новую структуру и логику хранения изображений для персонажей, а так же способы их отрисовки. Ресёрч и работа заняли меньше недели, но у меня появились новые проблемы, которые подводят к отказу от базового аниматора из коробки.
Подробнее расскажу в следующей статье.
Разработка: глобальный прогресс игры
Обычно, такого в визуальных новеллах не делают. По крайней мере я, моя команда и активные подписчики, подобного нигде не видели. Как правило всё ограничивается галереей с иллюстрациями и списком концовок. Если что-то осталось закрыто, значит есть ещё контент для чтения.
Мне захотелось пойти дальше и визуализировать ветвление не только в презентациях, но и в интерфейсе игры. Здесь отображены глобальные сюжетные ноды и концовки. Прогресс будет заполняться в зависимости от данных в специальном файле на ПК юзера, где ведётся учёт ранее прочитанных фреймов.