Нефелия: сквозь облака
Ir al canal en Telegram
Дневник разработки инди-игры "Нефелия: сквозь облака". https://vk.com/through_the_clouds_game https://syjgin.itch.io/through-the-clouds
Mostrar más274
Suscriptores
Sin datos24 horas
+17 días
+330 días
Archivo de publicaciones
В общих чертах доделал переход на топливный бак как отдельную сущность. Юнит-тесты в порядке, но всегда может что-то сломаться уже в самой игре, нужно ещё проверить основные "живые" кейсы, после этого смогу смержить в основную ветку.
В целом, наше продвижение к цели очень замедлилось, если вы заметили: частично это связано с блокировками ресурсов правительством (вместо того, чтобы дальше работать дальше над игрой, приходится выделять ресурсы на то, чтобы искать информацию и делать резервные чаты), частично - с тем, что регулярно в настоящий момент разработкой занимается примерно 4 человека, а на моей жене и воспитание маленького ребёнка, и маркетинг, и нарративный дизайн. На мне - основная работа, а ещё хорошо бы находить время, чтобы учиться чему-то новому хотя бы в своей области (про деградировавшие навыки иностранных языков и не говорю) и видеться с детьми и вообще когда-то жить:) "Регулярно" в таких условиях означает примерно 4-5 часов в неделю.
Также после многократных попыток мы выяснили, что нарративные дизайнеры (и другие люди, работающие с внутриигровыми текстами - сценаристы и те, от кого мы бы хотели переработки художественных идей первых в конкретные тексты на нарративном языке Ink), независимо от того, насколько они были воодушевлены проектом на старте, через какое-то время исчерпывают свой ресурс и становятся "зрителями" в чате разработки. Это не плохо, это просто реальность.
Я совершенно не знаю, что может быть даже через полгода — ещё одна волна мобилизации, полная изоляция от международного интернета с перекрытием границ или нашествие марсиан. Но в том, что от меня зависит, я буду использовать все имеющиеся возможности, чтобы довести проект до релиза, тем более, что сейчас в плане механик всё действительно куда ближе к концу, чем к началу. Пока рабочий план примерно такой: доделать ту часть проекта, которая зависит от меня, чтобы получить возможность устроиться на вторую работу/в фоне освоить смежную специальность или как-то иначе увеличить количество ресурсов, и на эти средства найти человека, который сможет сотрудничать с нами на коммерческой основе в направлении текстового наполнения игры.
Само собой, мы не будем упускать ни одной возможности, связанной с грантами и инвестициями, которые можно привлечь.
Но, если вы хотите поддержать разработку, сейчас самое время для этого: https://boosty.to/nepheliagame
На этой неделе сначала были бестолковые попытки сделать резервный канал по разработке перед "полной блокировкой телеграма": по-хорошему, нужно было сразу смотреть в сторону Mattermost или чего-то аналогичного, но я попробовал поднять свой сервер Matrix. Оказалось, что именно в части федеративности идея работает: блокировка основного сервера федеративной сети никак не влияет на доступность собственного (естественно, пока не включены белые списки). Однако с клиентами получается как обычно в опенсорсе: основной Element в РФ не может даже отрисовать UI (никогда бы ни подумал, что можно спроектировать UI таким образом, чтобы даже его отрисовка зависела от доступности основного сервера), менее популярный FluffyChat не позволяет зарегистрироваться на серверах, отличных от дефолтного Matrix.org (хотя технически такая возможность есть). В общем, когда-нибудь в будущем нужно попробовать, пока всё очень сыро. С Mattermost попробую позже, когда станет получше с наличием времени.
После этого посмотрели несколько наших стримов в рамках Игропрома, я обнаружил и исправил древний баг, который никак не проявлялся, пока не появилась возможность переходить на другую сцену из кат-сцены: оказывается, нужно быть очень внимательным при подписке/отписке на события "новой" (хз, как её теперь назвать, после стольких лет) InputSystem: если пробегаться только по активной схеме ввода при отписки от событий, то подписки на не активные в данный момент источники ввода никуда не денутся, будут жрать память и срабатывать повторно при нажатии. В общем, при отписывании — только PlayerInputPrefab.actions, никаких PlayerInputPrefab.currentActionMap.
Также долго искал и правил периодически возвращающийся баг, балгодаря которому плевуны могут не нападать, а ещё их может сдувать посреди штиля. На этот раз удалось найти исходную причину: непонятно почему, но, если использовать UniTask и в WaitForSeconds использовать PlayerLoopTiming.Update, то по какой-то причине заспавнившийся объект может не воспринять в первом кадре те коллайдеры, которые он должен "ощутить" — соответственно, враги не ощущали, что находятся в коллайдере штиля и что приближается игрок. Причину так и не понял, но замена на PlayerLoopTiming.FixedUpdate помогла всё исправить.
И, наконец, почти готова новая модель фермы. Надеюсь, что за эти выходные, наконец, довнедрим её и обновим билд для Игропрома, а там уже и до новой версии недалеко
Продолжаю вычищать авгиевы конюшни давным-давно написанного кода — это и подготовка к возможности апгрейда дирижабля, и упрощение внутренней логики. Правда, визуально в основном видны различия только по перекрашенным иконкам товаров (сделал это раньше, чтобы они были нормально видны при установке в качестве балласта).
Зато в плане логики теперь громоотводы могут стакаться и давать защиту от более мощных гроз или теслаганов (когда они появятся).
А глобально продолжаю ожидать запланированный на 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
¡Ya disponible! Investigación de Telegram 2025 — los principales insights del año 
