Нефелия: сквозь облака
رفتن به کانال در Telegram
Дневник разработки инди-игры "Нефелия: сквозь облака". https://vk.com/through_the_clouds_game https://syjgin.itch.io/through-the-clouds
نمایش بیشتر273
مشترکین
-124 ساعت
اطلاعاتی وجود ندارد7 روز
اطلاعاتی وجود ندارد30 روز
آرشیو پست ها
Продолжаю вычищать авгиевы конюшни давным-давно написанного кода — это и подготовка к возможности апгрейда дирижабля, и упрощение внутренней логики. Правда, визуально в основном видны различия только по перекрашенным иконкам товаров (сделал это раньше, чтобы они были нормально видны при установке в качестве балласта).
Зато в плане логики теперь громоотводы могут стакаться и давать защиту от более мощных гроз или теслаганов (когда они появятся).
А глобально продолжаю ожидать запланированный на 0.9 контент, зависящий не от меня: возможность совершить несколько торговых рейсов между фермой и городом + новую 3D-модель фермы. Надеюсь, что в течение 2 недель, наконец, выпустим 0.9
Repost from N/a
Фестиваль игр IGRA (Initiative Gaming & Russian Awards). День 2
Стрим с 17:00 до 00:00
1. Sea Walker Saga
2. Нефелия: сквозь облака
3. Lord Ambermaze
4. Schematic Void
Youtube | www.youtube.com/@FrolovAB
VK PLAY | live.vkvideo.ru/frolovalex
Twich | www.twitch.tv/frolovalpha
После 18 МСК заглянем на стрим Фролов Может Всё, чтобы узнать, как справится стример-физик с аэростатикой. В трансляции будет последняя на данный момент опубликованная демо-версия 0.8.5.1. Надеемся позже вернуться к Алексею после выхода 0.9.
Поправил все оставшиеся баги (из тех, что удалось воспроизвести) и уже переключаюсь на связанное с будущей механикой апгрейда: у нас было много отложенных изменений, до которых раньше не доходили руки. UI одного из них — на экране: теперь починка корпуса с помощью ремонтных наборов это одно из растянутых действий по аналогии с тушением пожара.
После перейду к также долго откладываемой правке по добыче ресурсов (это уже более непосредственно связано с апгрейдом лебёдок). В целом именно по механикам от релиза нас отделяют правки по боёвке, случайные события в полёте и апгрейд дирижабля. С исопльзованием LLM появилось ощущение, что именно игромеханическую часть всего этого удастся осилить в этом году. С контентной частью такой уверенности нет, но ситуация ещё может измениться.
+1
На этой неделе ожидал доработок по текстам радиопереговоров с пролетающими мимо дирижаблями и доделывал мелкие оставшиеся моменты вроде "парктроников" при швартовке и правильной обработки сложности чрезвычайных ситуаций (теперь она зависит от того, насколько удачной была атака, если это произошло в бою).
Завтра соберём пробный билд, чтобы поискать в нём баги командой, а затем отправить билд на конкурс Игропром.
Для версии 0.9 осталось добавить новую модель фермы и (если успеем) возможность взять у Чепмена его товары для повторных доставок на платформу.
+1
Нет истории, лучше объединяющей 8 марта и дирижабли, чем полёт Мюриэль Меттерс, суфражистки-активистки, разбрасывающей с высоты тысячи листовок за право женщин голосовать.
Это был 1909 год и британские суфражистки к этому моменту перепробовали почти все законные методы борьбы, а некоторые уже перешли на незаконные. Дошло до того, что им прямо запретили раздавать листовки на улицах Лондона. Как вы понимаете, способ обхода этого запрета был у всех на виду.
Организовать акцию взялась молодая актриса Мюриэль Мэттерс, уроженка австралийской Аделаиды, уже известная приковыванием себя к решеткам Палаты Общин. Есть байка, что на политический активизм подбил её лично князь Кропоткин. Когда Мюриэль выступила на одном из его вечеров с драматической декламацией, он сказал что-то в духе "Ваши бы умения да на пользу делу. Искусство не цель жизни, а средство для чего-то большего". Слова эти глубоко запали ей в душу.
Итак, 16 февраля 1909 года торжественная процессия из 6 карет повезла короля Эдуарда Седьмого на торжественную церемонию открытия Парламента. В 12 километрах от него прогревал свой слабенький движок желтый дирижабль "Идея", расписанный агитационными надписями. План был забросать кортёж листовками, скандируя призывы в мегафон. За техническую часть отвечал Персиваль Спенсер (по другим данным его брат Герберт) – представитель семьи, где уже третье поколение подряд занимались подъемами на аэростатах, парашютными прыжками, управляемыми полётами и всем таким.
Полёт пошел не совсем по плану – ветры на километровой высоте оказались сильнее 6-лошадного двигателя и дирижабль пролетел мимо цели и дальше на юг. В итоге он зацепился за ветви деревьев в Кройдоне и на этом полёт закончился. Тем не менее, дирижабль привлёк внимание, полёт попал в газеты, а листовки достигли земли, так что акция была сочтена успешной.
Мюриэль продолжила заниматься активизмом, читала лекции и вышла замуж. Она прожила долгую жизнь (92 года) и увидела как стало реальностью всё, за что они вместе с подругами боролись.
💐 Дорогие дамы! Желаем вам найти себя, делать крутые вещи и достигать поставленных целей. Попутного ветра во всём! С 8 Марта!
+2
Доделал все правки по багам, найденным на шоукейсе, в том числе упростил UI выбора попутного ветра и добавил возможность попросить диспетчера выслать буксир, если мы уже рядом с платформой, но кончилось топливо или двигатель был сломан.
На шоукейсе 1 раз получилось так, что плевуны сломали двигатель, но за счёт разведки попутных ветров всё равно получилось добраться до платформы, однако дальше уже не удалось, т.к. рядом с платформой всегда штиль. Теперь в этом случае можно связаться с диспетчером, если радио добивает.
Кроме того, углубляем возможности болтовни с пролетающими дирижаблями (постарался сделать максимально не спойлерный скриншот).
Был смешной баг, связанный с бесконечной прокруткой внутриигрового времени: при швартовке просчитывается, сколько топлива нужно вычесть у игрока и сколько времени будет потрачено на полёт. Если же топливо не рассчитывается (когда прилетают к нам или когда нас буксируют до цели), то и вместо времени нужно добавить какую-то константу (чтобы не заморачиваться с расчётом со стороны другого дирижабля или вообще виртуального буксира), а я не отключил расчёт времени исходя из максимально возможной скорости игрока. Т.к. максимальная скорость была 0, то такая швартовка занимала бесконечное количество внутриигрового времени, от чего небо чернело, а консоль сыпала ошибками:)
+9
Побывал сегодня на шоукейсе в "Респавне". Получил ценный фидбек, наловил много багов) Надеюсь, что хотя бы за пару недель успею поправить, но может оказаться, что выпуск 0.9 сдвинется на конец марта-начало апреля.
Посреди мероприятия был внезапный интерактив с организаторами, которые отмечали год проекта "Респавн" и спрашивали, что было бы здорово сделать со стороны государства в интересах инди-разработчиков. Самое пронзительное из озвученных предложений звучало как "гарантия отсутствия блокировки Steam". Основное, что сработало бы, это откат хотя бы внутренних санкций против населения (и геймдева в частности: очень вряд-ли, что наша зарубежная целевая аудитория будет в трёхбуквенном мессенджере — да и будет ли вообще какая-либо зарубежная аудитория?). Но, увы, товарищ К. хочет кушать, интересами остальных можно пренебречь.
А в плане разработки за неделю успел только немного поправить со своей стороны радио-переговоры с пролетающими дирижаблями. Очень надеюсь, что в 0.9 успеем добавить побольше отвлечённого трёпа помимо утилитарных реплик типа "помоги с топливом, братан". На новой работе более-менее освоился, поэтому дальше по исправлению багов успею побольше.
На этой неделе на постоянной основе начал работать над новым проектом. Надеюсь, что выгорит, иначе максимум через 3 месяца придётся снова искать работу, а в 2026 это такое себе.
Правда, это означает, что по крайней мере в ближайшее время над Нефелией смогу работать только по остаточному принципу.
Тем не менее, к концу февраля планируем успеть доделать бартер и помощь и чрезвычайных ситуациях со стороны пролетающих дирижаблей. Логику подсказки точных координат — единственного взаимодействия, не подразумевающего швартовку — уже сделал. Теперь добавил логику катсцены при швартовке к исходно движущемуся дирижаблю.
Внутри, правда, пришлось наставить довольно много костылей вроде ручных вызовов функций, которые в нормальных условиях должна вызывать физика: были проблемы как с тем, чтобы исходно недоступный для швартовки дирижабль стал доступным на момент катсцены, а потом снова убрал эту доступность, так и с тем, чтобы после обмена он не рвался сразу к своей основной цели, разбивая наш дирижабль, а на какое-то время останавливался и "понимал", что рядом вдруг появился объект, который нужно обходить. Но, так или иначе, большую часть багов я выловил, теперь очередь за обратной катсценой, когда швартуются уже к нам, если мы попросили о помощи. Ну ил логика самого бартера.
Приходите через неделю на шоукейс в "Респавн", если будете в Петербурге: @respawn_announcements
Мы, наконец, покажем, что будет в новой версии демки.
+4
Добавил логику названий NPC дирижаблей — теперь они на шаг ближе к тому, чтобы не быть клонированными болванчиками. Следующее, что хотим успеть добавить в 0.9 — это возможность для игрока связываться по радио с пролетающими мимо дирижаблями для бартера, помощи или даже для вымогательства грузов под угрозой нападения:)
+3
На этой неделе успел откровенно мало из-за того, что большая часть времени ушла на тестовые задания в несколько потенциальных мест работы.
А ещё пришлось немного сдать назад в плане UX швартовки. С одной стороны, плохо, что до какого-то тестирования = взгляда на разрабатываемое с осени незамыленным глазом, дошло только сейчас, когда наш звуковик начал внедрять озвучку новых функций. С другой стороны, он их сразу застал в состоянии "типа готово", а не видел мелкие промежуточные итерации, в ходе которых как раз слишком привыкаешь к изменениям.
Поэтому был вынесен вердикт "нас проклянут", по крайней мере, для части игроков: в общем случае пришвартоваться не сложно, но если по какой-то причине нос дирижабля был направлен под очень уж большим углом к причальной мачте, игра никак не предупредит, что врезаться к причал уже можно, а вот пришвартоваться ещё нельзя.
Поэтому решили добавить вспомогательный интерфейс, который будет показывать соотношение между зоной, в которой мы можем выстрелить крюком, и зоной, в которой доступна причальная мачта.
А ещё случайно попал в ситуацию, когда во время причаливания на посадочную площадку опустилось облако — в этом случае всё исчезало, кроме дирижаблей рядом. Поправил, чтобы сама платформа не исчезала, хотя на скриншотах это особо и не заметно:)
На этой неделе большую часть времени поглотила подготовка к презентации проекта в акселераторе Сколково, а также собеседования и подготовка к собеседованиям.
Но хотя бы в промежутке успел добавить поддержку Steamworks API —пока только в том, что касается паузы при активации оверлея, и то, это получится проверить, только когда загрузим демку в стим.
А ещё прописал логику приглашения пройти анкету после первой игры, осталось только саму анкету составить.
И мы начинаем готовить возможность радио-переговоров по инициативе игрока. Первое, что для этого нужно — это чтобы встреченные дирижабли не были не отличающимися друг от друга клонами. Для этого накидали множество вариантов названий "несюжетных" встречных, и теперь осталось реализовать логику отображения этих названий на NPC.
На этой неделе добавил в игру аналитику и почти полностью внедрил "более финальную" графику глобальной карты.
Скорее всего, в итоге будет ещё 1 итерация, когда команда разживётся отдельным UI/UX специалистом, но на данном этапе оставим в таком виде.
По поводу аналитики сначала пробовал поднять на своём сервере инстанс опенсорсного сервера https://aptabase.com/ , но в процессе выяснил, что smtp там не работает (параметры верные) ни с гуглом, ни с яндексом, поэтому залогиниться возможности нет. Плюс, даже если использовать их сервер, при установке пакета в Unity почему-то не устанавливается ассет с настройками, в котором нужно указать id своего инстанса. В общем, учитывая, что версия пакета для Unity 0.чвототам пока всё на стадии интенсивной разработки и для продакшена не готово.
После этого попробовал решение https://www.gameanalytics.com/ , но там вообще при попытке подтвердить почту через gmail и через яндекс возвращается ошибка 406 not acceptable. Как-то вообще до этого не знал о её существовании. Хотя у другого разработчика нормально получилось настроить эту аналитику.
Посмотрел в сторону Google Firebase и AppMetrica от Яндекса, но обе поддерживают только Android и iOS в случае Unity. Причём в случае AppMetrica об этом нигде не сказано на уровне документации, только на гитхабе в исходном коде можно увидеть, что, если не Android или iOS, будет использоваться пустая реализация.
В итоге остановился на Unity Game Services и их аналитике. Пока непонятно, как строить графики на их диалекте SQL, но в остальном события отправляются и можно фильтровать по типам и id сессии игрока, чтобы делать какие-то выводы и добавлять новые метрики позже.
А ещё я поставил плагин https://kodacode.ru/ и попробовал навайбкодить каркас реализации аналитики — непривычно, вроде и время экономится, но и часто нужно не упускать ничего из конкретики реализации, которая есть в голове, иначе потом больше времени уйдёт на переделку того, что по своему разумению добавил агент. В общем, буду осваивать потихоньку.
Теперь осталось поправить несколько найденных багов и можно будет переходить к реализации переговоров по радио с пролетающими мимо дирижаблями.
На этой неделе успел довольно много: доделал механизм катсцены с телепортацией для швартовки у объекта без выхода из текстового диалога + добавил режим выбора цели для радиопереговоров (с переключением целей по колесу мыши или нажатию — как в этом случае, так и с целями стрельбы) и на начальном уровне добавил таймер для квестов — пригодится для миссий по доставке срочной почты и скоропортящихся продуктов.
А ещё почти целый день был на первой встрече "Кузни роста" от Индикатора и рассказывал про свои злоключения с внедрением Obi Rope. Скорее всего, чуть позже сделаю статью на основе доклада
+2
За эту неделю добавил возможность швартовки не только дирижаблю игрока, но и всем остальным. Правда, те, кого будем встречать во время полёта, воспользуются этой возможностью только в катсценах: в их обычной логике такое не понадобится.
Также сделал каркас механики катсцен и почти доделал причаливание к объекту в небе в таком режиме: забирать управление у игрока, если используется "новая" InputSystem, оказывается, проще всего через SwitchCurrentActionMap на пустую схему с возвращением стандартной, когда катсцена закончится. Для убирания UI тоже не пришлось писать какую-то полностью новую логику: за его видимость уже отвечает логика, которая до этого активировалась, когда включался туториал или игрок активировал специальную опцию выключения UI для "недофоторежима" в настройках игры.
По тому, что непосредственно примыкает к причаливанию, осталась самая малость: доделать возобновление прерванного швартовкой диалога и переделать туториал с учётом того, что теперь именно швартовка — необходимый элемент для схода на относительно твёрдую поверхность платформ, а вот обращение по радио — уже опциональный.
Однако остаются ещё косвенно примыкающие механики: сбор лута тем же крюком и загарпунивание китов и других крупных обителей Нефелии.
На этой итерации до этих механик пока не доберёмся: для первой нужно будет сначала продумать спавн лута с шансами выпадения разного, а для второй сначала нужно переписать по-нормальному ИИ псевдоцета, чтобы с ним можно было сражаться (а ещё доделать боевые анимации), это точно задача на несколько месяцев.
Поэтому после перейду и перестройке радиопереговоров: по крайней мере, устраним логическую дыру, которая сейчас появляется, когда в зоне доступа сразу несколько объектов, а может быть, успеем и хотя бы на начальном уровне сделать возможность переговоров по инициативе игрока с пролетающими мимо дирижаблями.
На этой неделе доделал подноценную логику UI причаливания к летающим платформам и начать распутывать сильно переплетённую между собой логику ответов по радио со стороны объектов в небе и собственно причаливание (и гарпун в будущем).
В целом уже ближе к концу, чем к началу: осталось синхронизировать посадочные огни с выходом на дистанцию, с которой можно выстрелить крюком + добавить заскриптованную телепортацию в диалогах для ситуаций типа торговли в воздухе.
Проект "Нефелия: Сквозь облака": @through_the_clouds
На этот год были большие планы, связанные с переходом от правки внутренних механик к горизонтальному масштабированию.
До него, увы, не удалось добраться: с одной стороны, я недооценил сложность переделываемых механик. Самыми времяёмкими оказались правки физики полёта, благодаря которым, в частности, сейчас дирижабль корректно разворачивается от равнодействующей силы двигателя и ветра вокруг и логика глобальной карты. Самой "тяжёлой" в плане геймдизайна оказалась механика работы навигатора: было несколько разных точек зрения, в каждой из которых было что-то, что стоило взять от неё. Но в итоге, кажется, получилось лучше, чем в первоначальном варианте.
С другой стороны, на долгой доработке версии 0.8.4 сказалось то, что из команды практически полностью ушли те, кто в начале года занимался 3D-моделированием. После удалось найти замену, но какое-то время всё было достаточно печально в этом вопросе. Я понял, что у каждого человека есть какой-то свой ресурс времени, в течение которого он может продолжать заниматься одним и тем же проектом (даже на коммерческой основе), а потом происходит выгорание.
Поэтому критически важно на этапе планирования ставить реалистичные цели и сроки. В этом году мы окончательно вышли за исходную дату, в которую планировали выпуск: 2025 год. Я надеюсь, что всё-таки в следующем году мы доберёмся до раннего доступа Steam. То, с чем уже точно есть ясность: в следующем году мы выпустим в Steam плейтест и постараемся увеличить узнаваемость игры за пределами русскоязычной аудитории.
Из того, что отделяет нас от раннего доступа, остались 3 не реализованные основные механики: случайные события во время полёта, апгрейд дирижабля и найм новых членов экипажа. Но также есть и много того, что нужно переделать в существующих: в первую очередь это боёвка, а также нужно будет обновить много внутриигрового UI и добавить отдельный под-режим эллинга на платформе (такой аналог ангара из World of Tanks).
Это займёт примерно полгода в фултайм-режиме. Понятно, что, если заниматься основной работой, цифру можно смело умножать на 2 или больше. Но я рассчитываю, что в новом году освою на нормальном уровне взаимодействие с ИИ в агентном режиме, и это позволит хотя бы немного срезать углы.
Также в планах: новая модель фермы (и других малых платформ — лесопилки, эллинга), шейдеры для глобальных природных объектов (большой туман, восходящий вихрь, пыльные бури) и в целом большее разнообразие неба вокруг нас.
Нам по-прежнему не хватает арт-директора и 2D-художников разных профилей: от UI до промо-артов. Если вы готовы присоединиться к команде (пока только за % от продаж игры после релиза, когда решу вопрос с финансированием, это м.б. пересмотреть), будет здорово, если свяжетесь с нами.
В целом, из-за продолжающейся мировой нестабильности, нет ощущения, что дальше будет лучше. Но есть готовность, в случае чего, сделать всё от меня зависящее, чтобы продолжать работу над проектом. В этом плане тревожность настолько усилилась, что уже перешла в спокойствие. Его и желаю всем в новом году:)
Почти вся неделя ушла на вылавливание косяков и подгонку параметров для нормального использования ассета Obi Rope.
Не обошлось без переписки с автором, т.к. с теми технологиями, что реже встречались в просьбах о помощи на форумах, нейросети чаще галлюцинируют + на третий день индеец Зоркий глаз заметил, что в папке с примерами уже был крюк-кошка, что тоже помогло.
Исходно я пытался так или иначе добиться отсутствия растягивания верёвки, но оказалось, что для этого нужно сделать, чтобы масса верёвки соотносилась с массой того, что к ней привязано (15-тонный дирижабль) хотя бы как 1:100, а лучше ещё меньше. Но при такой массе верёвки её уже никуда не запустишь нормально + это будет решение из серии "мы сделали воду с плотностью ртути, чтобы она эпичнее волновалась, когда в ней что-то тонет, но теперь пришлось сделать ящики с плотностью урана". Поэтому пришлось плюнуть на то, что верёвка тянется, а ещё на настоящую физику при "запуливании" в цель: даже если направить импульс ровно в нужный объект, получается слишком много неизвестных типа инерции самой верёвки, ветра и скорости дирижабля, и крюк периодически всё равно пролетал мимо цели. Поэтому в итоге я просто симулирую равноускоренное движение, которое в итоге всегда наведёт крюк на цель (если она в пределах досягаемости крюка, которую я заранее подсчитал). А вот сматывание получилось сделать с помощью физики, но на практике и то, и другое смотрится практически одинаково:)
По этой механике ещё много работы: нужно добавить нормальный UI причаливания, + штраф за причаливание без разрешения диспетчера и реплики в полёте, подразумевающие стыковку с собеседником (торговля, заправка, помощь с ремонтом...): исходно предполагали, что после предварительных переговоров по радио будем вручную подводить дирижабль и швартоваться носами, но в итоге будем делать "телепортацию" без отрыва от диалога с шаблонным расходом топлива исходя из оставшегося расстояния.
По поводу итогов года, думаю, напишу уже на следующей неделе, а сейчас пора собираться на встречу с друзьями.
На прошлой неделе хорошо поработали над туториалами по глобальной карте и навигации, т.ч. теперь эти фичи можно считать по-настоящему интегрированными.
Осталось только UI обновить. Кстати, переделал UI подсказок от наблюдений навигатора, кажется, стало лучше.
А ещё начал внедрять ассет Obi rope, который, если всё будет хорошо, будет использоваться во множестве механик: причаливание, абордаж, загарпунивание кита и буксировка других дирижаблей и даже небольших платформ. Уже вижу, что верёвочная физика работает: даже с небольшим грузом крюка-кошки на конце, если он приобретает большую скорость, дирижабль начинает сносить при движении. Пока осталось придумать, как сделать (и можно ли это сделать через этот ассет), чтобы такая верёвка пряталась в кабестане и выстреливала, когда нужно пришвартоваться или загарпунить кого-то (в последнем случае будем менять наконечник — если игрок в принципе прокачал возможность использовать гарпун, а не только якорь).
Модель крюка пока взял со скетчфаба, спасибо этому чуваку https://sketchfab.com/MaxwellWalton
Но в итоге будет что-то своё
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
