TGViewer
Channel Public Channel
Goga's Space

Goga's Space

@spaceisthegogasplace

Just some guy really updating his journal.
Subscribers
271
Photos
243
Videos
68
Links
158
Recent Posts 20 shown
Post #531 117
Теперь давайте я применю это все к собственной игре, проведу демонстрацию на примере.

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

Интенция: сделать ровно ту игру, которую могу и в которую самому бы было не противно играть, желательно с друзьями. Заодно разобраться в процессе, какой именно из меня игродел нефильтрованный.

Ограничения: конечность моих собственных времени, сил, знаний. Необходимость выстраивать игру на фундаменте решений Unreal Engine. I am also lucky enough to have some help and support from some truly amazing people, но преимущественно полагаться приходится все же на себя. Поэтому добрую треть идей приходится оставлять на разделочной доске, а на всем остальном оставлять ровно столько мяса, чтобы не пропал вкус.

Конечно же, стоит в очередной раз упомянуть, что я нахожусь в достаточно привилегированной позиции, чтобы не только быть в состоянии этим заниматься, но и не быть намертво привязанным к исходу. Не то чтобы прямо хотелось сделать игру в жанре "коммерческий провал", я все же чуть поэгоистичнее, но деньги и финансовая мотивация не определяют дизайн-решения в моей игре. If there's some bullshit in the game, it's either because I wanted that thing specifically in the game, or couldn't get around having it in the game. Такие вот политические реалии.

Подводя черту под всем сказанным выше, на энергии собранных комплиментов я точно буду держаться уже даже и после публичного запуска страницы в Steam и демо. А вот работа еще далека от завершения. Если продолжать использовать мои любимые заезженные вусмерть марафонские метафоры, то пройдена пока половина дистанции, и самая тяжелая половина еще впереди. Но когда первую половину уже прошел, начинаешь верить, что и вторую половину пройдешь. А еще на финише ждет пиво: пусть, скорее всего, и безалкогольное, но уже не менее желанное.
  • ❤‍🔥 17
  • 🫡 1
Post #530 90
Верится все еще не до конца, но наконец-то мы с #icebreaker доползли до той точки, где в демо попал весь тот функционал и контент, которые хотелось показывать.

Впереди еще предстоит вычистить все настолько, насколько я способен, и подготовить ассеты к запуску странички в Steam, но если кто-то вдруг держал кулачки и ждал, то, во-первых, спасибо, во-вторых, ждать осталось недолго.

В предшествующие этому пару недель я аккуратно давал потрогать демо нескольким группам близких людей + поиграл вместе с ребятами, которые игру видели впервые и без мыла в глазах. Некоторые были достаточно добры, чтобы не только игру запустить, но и мнением поделиться.

Фидбек, в сухом остатке, я могу разбить на несколько категорий:

- Комплименты. Приятно! Больше всего хвалили три аспекта: ко-оп хаос, интерфейс и музыку (за музыку отвечала Аня, Аня лучшая!).
- Баги, куда же без них, родных.
- Недокрученная идея, игрок вне контекста не разобрался.
- Неудачная идея, мешает всему остальному.
- Игрок другого типа и просто хотел бы другую игру.

Тут еще не всегда очевидно, что есть что, и лучшее, что я могу сделать как дизайнер — пытаться отфильтровать фидбек в лучшую версию игры, но при этом десять пальцев в пол и верить в свое видение. Ну и в рамках нашего с вами одностороннего договора, где я стараюсь в меру своих скромных сил про разработку рассказывать и показывать, постараюсь в этот раз порассказывать.

Некоторые считают, что искусство должно говорить само за себя. Мне кажется, вполне резонный вектор мысли. А еще мне кажется, что если про тебя как художника никто не знает — так думать вредно.

Я в целом считаю, что если слишком усердно слушать некоторых ЛОМов в игровой индустрии, получится как в рубрике "Вредные советы". Возможно, фундаментальное недоверие к власть и влияние имущим — с возрастом просто все более явная черта моего характера. Но я бы хотел, чтобы и ко мне так относились, и чтобы если у меня есть какое-то ограниченное влияние и какая-то ограниченная экспертиза в чем-то — чтобы мои слова не брали просто на веру.

Two things do ring true to me, though. I think art should be done outside of any and all institutions, unrestrained by conventions and expectations. And if it turns out you're a mediocre (or even a bad) artist, you shouldn't be ashamed, and you still gotta risk sharing your work anyway. As long as it's not some AI "art", since that's the last thing this world needs more of.

Я не пытаюсь проповедовать анти-интеллектуализм и не считаю, что мнение других людей в вашей общей сфере деятельности неважно. Но я бы хотел подчеркнуть, что если слишком полагаться на мнение других, увеличивается и риск заглушить собственный голос. В контексте геймдева я еще частенько встречаю, что некоторые путают способность анализировать и как-то критически мыслить о том, как игра сделана, со способностью принимать решения о том, как игру делать. И тоже испытываю желание подчеркнуть, что это два разных навыка, и прокачиваются они независимо друг от друга, и площадь пересечения у них не такая большая, как может показаться.

Если уж говорить об анализе игр, то признаюсь, что все еще не совсем отучил себя мыслить категориями плохой геймдизайн / хороший геймдизайн, старый геймдизайн / современный геймдизайн, etc / etc. По ряду причин, но чаще всего просто не хватает ресурса делать нормально, ярлыками оперировать проще. Но внутренний фреймворк для этого "нормально" у меня все-таки наработался за годы, и состоит он из трех пунктов:

- Какой был контекст (создания / производства)?
- Какая была интенция (создания / производства)?
- Какие были ограничения (создания / производства)?

Много вижу, как в интернете неверно интерпретируют выражение "All art is political", и чувствую острую нужду добавить и свой вариант в этот хор голосов. Любое искусство создается в социальных и экономических отношениях, а это всегда хотя бы отчасти про власть: есть те, кто платит и решает, и те, кто от них зависит. Поэтому ни одно произведение не может быть политически нейтральным, развести искусство и условия производства не получается, во всяком случае у меня.
  • ❤‍🔥 14
  • 🔥 3
Post #529 230
Всегда хотел себе таймлапс из разряда "мама смотри я как будто реальный художник".

On a side note, I'm getting quite efficient when it comes to rigging multi-legged creatures. Этого дурачка за 12 минут зариггал.

Правда чтобы научиться нормально риггать за 12 минут, понадобилась добрая сотня часов проб и ошибок.

UPD: забыл указать, на фоне Floating Points - Fast Forward,

#icebreaker
  • ❤‍🔥 10
  • 🔥 2
  • ❤ 1
Post #528 242
Продолжаю потихоньку приближаться к полноценному демо #icebreaker. В этот раз собрал первую и пока единственную запланированную мини-катсценку.

Свыкся уже с рожей думгая, но к большому моему сожалению, она находится под копирайтом. Поэтому к демке придется от нее избавиться.

А вот нарезать на память маленькое видео мне никто не помешает.
  • ❤ 14
  • ❤‍🔥 6
Post #527 351
Позволю себе немного шитпостинга в честь праздника, извините.

В очередной раз преисполнюсь честью делить один день рождения с легендой.
  • 🔥 19
  • ❤ 6
  • 🌚 3
  • 🐳 1
Post #526 345
К добру ли, к худу, но админ этого канала продолжает коптить небо.

А сегодня так вообще еще один круг вокруг Солнца закончил наматывать.

Во первых, спасибо всем, кто следит за происходящим тут. Подпитываюсь вашими добрыми словами и помыслами, и надеюсь, хотя бы толику этой энергии отдаю обратно в мир.

Во вторых, извините, что мало пишу в последнее время.

Я уже потерял счет времени, сколько нахожусь в состоянии гиперфокуса на #icebreaker. Много говорю тут про процесс и про то, что надо про него говорить, но в погоне за желанием побыстрее насобирать материала на страничку в Steam и на демо широты канала внимания просто не остается ни на что другое. Последние месяца, наверное, четыре, моя рабочая неделя неуклонно растет в продолжительности, и сейчас приближается часам к 80 в неделю.

Я не жалуюсь, просто наконец взобрался на такую высоту, что уже и вершину видно, и это неплохо так подстегивает и прибавляет сил карабкаться дальше.

Честно говоря, хотел успеть к сегодняшнему дню запустить демкой в публику, но запускать хочется не чем попало, и пока качество меня самого устраивает не до конца.

Но вертикальный срез игры наконец-то более-менее готов и даже иногда работает. Игру можно запустить, в нее можно позвать друзей, отправиться вместе играть, и даже дойти до пока очень условной и не менее временной финишной черты. Так что дело за малым, за отловлей багов и производством контента.

Все еще не считаю, что занимаюсь конкретно на этом канале чем-то, что заслуживало бы монетарной награды. Поэтому если вдруг кто-то хочет сделать мне приятное, то напомню про три предпочтительных способа.

1. Если у вас есть кто-то родной или близкий, которому вы (не обязательно) давно не говорили, что их любите — сходите скажите. Себе тоже можно!

2. Если у вас в вишлисте вдруг завалялась игра от маленьких инди-разработчиков, которая вам интересна, но вы по какой-то причине откладывали с ней знакомство — купите и поиграйте в нее наконец! А если очень смело себя чувствуете, еще и отзыв напишите!

3. Еще я считаю, что здорово поддерживать FOSS проекты. Например, Blender, или Godot вот. А может у вас что-то еще близкое сердцу есть!

Ну и напоследок еще оставлю тут в архивных целях самое первое успешное прохождение самого первого более-менее функционального данжа своей игры. Отдельное спасибо моим дорогим брату и Сане за компанию. И King Gizzard & the Lizard Wizard за альбом Alien Metal.
  • ❤‍🔥 24
  • 🔥 6
Post #525 336
Еще один #icebreaker девлог перед тем, как вернуться к радиомолчанию на разработческом фронте по причине мои позорные данжи сами себя не задизайнят.

Одна штука, которую я понял довольно рано, но жалею, что не понял еще раньше — это что важно иметь целевое железо, важно держать его под рукой и важно время от времени прогонять на нем сборки игры и делать замеры. Уточню, что под целевым железом подразумеваю платформу с минимально принимаемыми во внимание техническими спецификациями, потому что в разных контекстах насчет термина могут возникать разные идеи.

У меня это Steam Deck первой ревизии, просто потому, что это самая слабая железка под рукой, на которую есть возможность залить билд.

На всякий случай сделаю две оговорки.

Первое. Мне после вот почти уже декады в геймдеве говорить такое легче, чем многим, но я большой оппонент преждевременной оптимизации и большой пропонент профилирования: если что-то работает — то и хорошо, а мы замерим, как оно работает, чтобы понять, где именно упираемся в железные лимиты и где именно надо потратить усилие на подумать и доделать или сделать иначе. It's important to have any working implementation first, but experience definitely helps make good calls more often.

Второе. Я не считаю себя первоклассным программистом: с моей колокольни я довольно средний. Но меня очень выручает то, что я средний в большом количестве доменов. Если не терять лес за деревьями, это тоже позволяет попадать в удачные решения чаще, даже там, где знаний недостает.

Есть ряд параметров, которые хорошо бы замерять. Современное железо и выбранный уровень графической детализации позволяют мне практически не обращать внимания на, например, оперативную и видеопамять. В то время как за процессорным временем нужен глаз да глаз.

Немного занимательной игровой математики. Видеоигра — эта программа, которая чаще всего стремится отрисовывать картинку на экран с частотой N кадров в секунду. В секунде 1000 миллисекунд. Если мы хотим рисовать картинку на экран 60 раз в секунду, это значит на кадр у нас остается 16.67мс. При таргете в 30 FPS получается 33.34мс. Официальный термин тут frame budget, бюджет на кадр. Современный игровой движок должен в это время уместить просчет всей игровой логики за кадр, просчет физики, синхронизацию с видеокартой по вопросам выводимых на экран пикселов, и многое другое. Немалая часть general purpose игровых движков, кстати, все еще довольно плохо справляется с многопоточностью, когда речь заходит о просчете игровой логики, поэтому преимущества современных процессоров получается утилизировать не всегда и не на полную. Это случай как, например, Unity, так и Unreal.

Моя игра не выглядит как что-то, что должно требовать сколько-то мощного железа, хотя под капотом в ней происходят не совсем тривиальные штуки, ну и в целом с большим количеством движущихся логических сущностей general purpose движки из коробки все еще справляются не так хорошо, как хотелось бы. Не играют мне тут на руку и предубеждения среднего игрока о неоптимизированности Unreal Engine, к чему не то, чтобы совсем не было оснований. Еще в целом как-то не хочется, чтобы игрок видел мою игру и думал что вот она на таком-то движке была сделана. Ну и какая-никакая гордость за ремесло тоже присутствует. Поэтому приходится осознанно прилагать усилия к тому, чтобы плыть против течения.

Ну и приятно, когда усилия приносят плоды, и что несмотря на то, что на Steam Deck я целюсь в 30 кадров в секунду, при желании в довольно нагруженном сценарии с парой тысяч единовременно крутящихся сущностей получается почти всегда попадать в 60. Получалось бы всегда, будь из меня техартист получше, потому что системы партиклов, которых в демонстрации единовременно спавнится несколько десятков штук, не такие оптимальные, какими могли бы быть. Но в целом хорошо, что одной требующей серьезного внимания вещью меньше и что у страха не попасть в таргет поменьше оснований.
  • 🔥 11
  • ❤ 6
Post #524 319
В продолжение к предыдущему посту, наделал еще ног и раздал всем ботам немного мозгов.

Недоложил чувства заботы к ближнему своему правда.

#icebreaker
  • 🔥 11
  • ❤ 4
Post #523 411
На фоне новостей индустрии тяжеловато наскрести энтузиазма не только что-то показывать и рассказывать, но иной раз и делать тоже. Но пусть дух в упадке, руки делают.

Наконец-то прогресс с #icebreaker дошел до стадии, когда можно пособирать уровней и прикинуть, каких инструментов в моем тулсете все еще недостает. С данжн-дизайном должно пройти еще какое-то количество времени, чтобы можно было публично позориться, поэтому в сегодняшней серии речь пойдет про доделку деталей.

You see, I don't like being smart and doing smart things the smart way. Еще не люблю, когда людей засовывают в коробочки с ярлыками, но если посмотреть на классификацию игровых разработчиков за авторством небезызвестного Дерека Ю из меня получается вполне себе Burrower: путь мне куда важнее цели, процесс мне приносит куда больше удовольствия, нежели результат, и очень мне нравится поотклоняться от пути и поисследовать что-то.

Только иногда приходится пытаться быть поумнее.

Одного типа противников в игре с каким-никаким упором на бой явно недостаточно. Мои мясные куклы скроены таким образом, что какое-то количество разнообразия достигается через комбинации экипировки, но хорошо бы иметь другие типы противников тоже. И хорошо бы не потратиить все силы на процесс их анимирования.

Я могу анимировать небольшие штуки, но целых персонажей все же не хотелось бы. Как и возиться с кустарным мокапом. Да и с теми анимациями, которые можно выдернуть бесплатно с Mixamo, из сэмпл-проектов Epic Games, либо же купить на маркетплейсах, подавляющее большинство рассчитано на тех же гуманоидных противников.

Так что оставшихся опций у меня тут не слишком много. И среди них процедурные анимации в явном фаворе.

В игру было решено (с самого начала, на самом деле) добавить механических противников, у которых ножки двигаются процедурно, в зависимости от пройденной дистанции и случившегося вращения. Эта штука носит чисто косметический характер, на перемещение персонажа в пространстве эти ножки не влияют никак.

Ну и тут нашелся еще небольшой простор на попробовать выжать чуть больше из ограниченного ресурса. Ведь можно разбить таких болванчиков на, условно, голову и те же ножки. И можно комбинировать разные типы голов с разными типами ножек. И таким образом получить еще немного желанного разнообразия контента. Чтобы выглядело так, как будто я и в самом деле умный инди-разработчик.

Ножки, к сожалению, все еще приходится отдельно риггать в Blender чтобы гнулись как надо, и это все еще больновато. But at this point I'm getting the hang of it.
  • ❤‍🔥 16
  • ❤ 2
  • 🔥 1
Post #522 467
Вчера глубокоуважаемая корпорация Epic Games, возглавляет которую горячо мною любимый Тим Суини, показала дорожную карту Unreal Engine 6.

Увиденное, честно говоря, не поразило меня до глубины души, потому что если чуть-чуть следить за событиями в компании в частности и индустрии в целом, не произошло ничего совершенного неожиданного. Ну и ещё честно признаюсь, I do not like wasting energy on being negative, there are plenty of places that do just that; here on this channel, I prefer to talk about things that excite me.

Но в который раз испытываю чуть ли не моральное обязательство выговориться.

Я допускаю, что новости про UE6 могут вызывать энтузиазм, но только в одном из двух случаев: вы или креативный банкрот и вам своего сказать настолько нечего, что вы решили даже не пытаться, или же ваше представление о видеоиграх пересекается с превращением Fortnite в Roblox-like платформу. Вся дорожная карта, в общем-то, о двух вещах: о превращении UE в соперника Roblox и о том, как LLM тут могут помочь.

Не буду пересказывать все содержание дорожной карты, сфокусируюсь на двух моментах.

Первое. Epic games анонсировала переход в будущем с Actor / Blueprint на совершенно новый язык Verse, с потенциальным отказом от визуального скриптинга совсем. В то время, как я понимаю и в какой-то степени поддерживаю желание уйти немного в сторону в частности от Actor и в целом от парадигмы, что the year is 1995 and OOP is a new hot thing in town, я не могу представить себе более разрушительного анонса для сообщества разработчиков Unreal Engine. Actor / Blueprint — два краеугольных камня движка, отказ от которых приведет как к потере подавляющего массива собранного сообществом знания о том, что вообще с UE делать как минимум со времен UE3 (Blueprint прямо стоит на фундаменте Kismet, visual scripting фреймворка UE3), так и к полной инвалидации и к необходимости в полной пересборке кодовых баз всех UE проектов за последние 12 лет. This is an enormous ask, and I do not think that Epic Games is in any position to make such ask of its community.

Второе. Следующую версию движка решили настолько безоговорочно сфокусировать вокруг возможностей LLM, что все вопросы, почему глубокоуважаемый мистер Суини был и остается довольно громко против обязательной маркировки использования genAI на страничках игр в Steam, окончательно отпадают. Going forward, несложно представить будущее, в котором любая игра на UE6 по умолчанию будет ассоциироваться с генеративным AI, поэтому ничего удивительного, что вчерашняя презентация State of Unreal была сплошь про формирования положительного общественного мнения об использовании genAI инструментов в контексте разработки игр.

Я бы соврал, если бы сказал, что ни разу в жизни не открывал claude чтобы сэкономить себе пару калорий и нервных клеток. Я не знаю всего на свете, и к сожалению, про те вещи, о которых я ничего не знаю, LLM "знают" больше, so I took an occasional shortcut, I'll admit. Но до сих пор получалось избегать давать LLM принимать за меня какие бы то ни было креативные решения. В моих игровых проектах (но не в движках, как мы уже, к сожалению, выяснили) нет кода, который бы я сам руками хотя бы единожды не вбил. Нет ассетов, не созданных мной или другими людьми. И не планируется. По крайней мере до тех пор, пока у меня есть возможность отличать человеческое от машинного. Потому что в эпоху слопификации всех сфер жизни я особо остро чувствую нужду показывать хотя бы самому себе, что можно иначе. Потому что иначе это встает мне поперек горла и идет полностью вразрез с тем, что лично для меня значит творчество и человеческих дух.

Which for me personally means that if this crap doesn't change, I won't be using UE6 for anything, unless I absolutely have to to make some living. И что подводит меня к последней теме сегодняшнего поста.

В индустрии есть присказка, что в среднем игровой разработчик не задерживается в ней дольше чем на 5 лет. Как и во всех творческих индустриях, игровая всегда прятала за своей улыбкой хищнический оскал, всегда паразитировала на широкоглазом энтузиазме и неопытности только в нее входящих. Мне довелось продержаться в индустрии почти вдвое дольше, и честно говоря, никогда ещё из ее пасти не разило таким трупным смрадом.

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

У меня нет советов как починить индустрию. Когда в чужом доме в одной из комнат воняет и мне не дают прибраться, я могу только поспешить убраться восвояси и других остеречь в эту комнату заходить.

Но это не значит, что кто-то может указывать вам, чем заниматься у себя дома. Для самого себя у меня есть способ продолжать делать игры и сохранять рассудок — это делать их как хобби. Творчески реализовывать себя — это всегда усилия, не потраченные впустую. В худшем случае, что-то новое про самого себя и границы возможного узнаешь. В лучшем — получится поделиться плодами своих трудов с другими. А искусство-то оно в этом как раз, в диалоге между автором и аудиторией.

Не могу и не буду отрицать, что мое положение очень привилегированное, и что так, как получается у меня, могут позволить себе не все. Но я никогда не воспринимаю это как само собой разумеющееся, и в том числе поэтому стараюсь показывать процесс и расказывать о нем настолько подробно, насколько позволяют мои скромные силы и желание не злоупотреблять вашим вниманием.

Пока есть возможность, пока машины позволяют бороться за свое внутреннее человеческое — будем продолжать. Как писал Антонио Грамши, пессимизм интеллекта, оптимизм воли.
  • ❤‍🔥 24
  • ❤ 3
  • 🙏 1
Post #521 345
В очередной раз про Unreal Engine, genAI и немного про состояние индустрии.
  • 😭 3
  • 🤩 1
  • 🌚 1
Post #520 414
Но с затмениями вот ведь какая штука — для них одновременно нужны два астрономических тела, Солнце и Луна. А как мы узнаем по ходу игры, у Каркозы Луны-то на самом деле нет.

В адвайта-веданте есть концепция такая, майя. Человек из-за своего неведения строит в уме ложное представление о существующем мире, вот этим самым ложным представлением майя и является, при этом объективная реальность где-то есть, но остаётся скрытой вуалью искажённого восприятия, подпитываемой привязанностями, желаниями и эго.

Now this is what I've come to think. На Каркозе эта вуаль обретает физическую оболочку, Желтое Побережье со своей Луной. В то время как Солнце символически воплощает объективную реальность, затмение в прямом смысле эту реальность блокирует. И с водной глади Желтого Побережья внутренние искажения начинают отражаться обратно во взор смотрящего.

Вернемся к Арджуну. По ходу игры его портрет потихоньку складывается, и у игрока есть шанс понять, что:
- Перед нами эталонная иллюстрация hurt people hurt people. Отец Арджуна основательно вдолбил в него только две вещи: ненависть к отцу же и мантру might makes right.
- Арджун в прошлом многократно пренебрегал благополучием окружающих ради собственных интересов, и не изменяет привычкам, даже застряв на Каркозе.
- Арджун алкоголик, изменщик и, скорее всего, убийца.
- Нитья не нуждалась в спасении Арджуном, она все это время спасалась от него.

Арджун, конечно же, слеп к тому, как выглядит со стороны. Он видит себя тем, кем хочет быть. Человеком, у которого всегда были причины: беспросветно пить, изменять, пытаться скрыть измены любой ценой. Спасителем. Come Back Stronger, гласит слоган игры. Арджун верит, что нужно всего лишь овладеть достаточной силой, тогда-то он точно "спасет" свою жену.

Про судьбу эшелонов и попытку в междусобойные power struggles экипажа Echelon I, повлекшую за собой сначала восход новой цивилизации, руины которой игрок поначалу и воспринимает как инопланетные, а потом войну и гибель подавляющего большинства вовлеченных, можно отдельный пост с анализом писать, но если совсем по верхам, то получится вот что. У каждого из эшелонов изначально было свое четкое предназначение. Echelon I прибыл с типичными колониальными установками: провести первичную разведку на местности, установить контроль, установить иерархию, начать извлекать ресурсы. Echelon II — рабочие руки, для создания инфраструктуры. Echelon III — жители, для окончательного закрепления на месте и последующего расширения экспансии. Но из-за нелинейного хода времени разница между прибытиями каждой новой волны составила века. And you see, Echelon I crew was mostly a bunch of power-hungry corporate bastards already, поэтому ничего удивительного, что после первого контакта с Желтым Побережьем некоторые особо рьяно уверовали в свою избранность и богоподобность. Именно так экипаж Echelon I стал Оверлордами, главными боссами игры. Именно так Оверлорды схлопнулись в Короля в Желтом. Именно по этому же пути и следует Арджун в своем "спасительном" квесте.

Желтое Побережье не привносит от себя абсолютно ничего нового, оно делает ровно две вещи. Работает с тем, что уже было: c желаниями контролировать, доминировать, присваивать, отражая их обратно и усиливая так, что сама реальность начинает подстраиваться под искажения, inner becomes outer. И убирает все внутренние сдержки и противовесы.

And then Arjun follows through. He beats the King in Yellow. Only to see himself become the next one, achieving his hollow victory, sitting on his fake throne holding a hand of an illusion of his wife. Цель, достичь которой никто не просил, подарила приз, который никто не обещал. Идеальный акт контроля, доминирования и присвоения. Конец. До тех пор, пока иллюзия держится.

Но это только первый из концов, потому что иллюзию разрушает сама Нитья, только уже настоящая и все еще живая. И с этого момента Арджун впервые видит проблески того, как на него смотрят другие. Начинается новый квест, про поиск знания, которое, в свою очередь, приведет к принятию себя, осознанию ошибок прошлого, и отказу от желания. Желание все это время было ложным. Цель все это время была самообманом.

Столько всего еще можно про эту игру сказать. Про то, насколько мощным инструментом сторителлинга тут работает архитектура. Про то, как Saros концептуально накладывается на какую-то мысль с Запада. Про то, что она имеет сказать о колониализме и капитализме. Про то, какую большую роль в нарративе играет цвет, и что даже у выбора цветов буллетов в игре есть особое значение.

Но моя персональная цель, если честно, заключалась в желании не столько даже про игру рассказать, сколько показать, что пусть я могу заблуждаться и что на самом деле в Housemarque никто никогда слыхом про Baroque не слыхивал, у игр столько общего вокабуляра, что найдут общий язык как больше не сможет никто. А насколько получилась победа, и насколько такая победа пустая — это уже со стороны виднее.
  • 🔥 17
  • ❤‍🔥 2
  • ❤ 1
  • 🤩 1
  • 🗿 1
Post #519 330
Никогда еще настолько остро не испытывал, что мне не хватает лексикона воздать игре должное. Потому что чтобы сказать что-то внятное, нужно понимать про индуизм чуть более полно, чем можно почерпнуть из пары статей на википедии. В какой-то степени меня спасает то, что у индуизма есть ненулевая площадь соприкосновения с буддизмом, поэтому получается смотреть на пробелы в знаниях через чуть более доступные линзы.

Still, I'll have to ask you to keep in mind that most of this is just some guy's interpretations. Я вот как сделаю: сначала расскажу про что-то кроме нарративных тем, а потом будет полная спойлеров территория потуг в тематический анализ.

А еще мне очень жаль, но чтобы поговорить про Saros, придется в очередной раз вспомнить о Baroque. Saros я чуточку меньше обычного боюсь спойлерить, потому что половина сюжета игры спокойно пролетает мимо всех сенсорных органов, если не прикладывать осязаемых усилий к обратному, в то время как другую половину спокойно можно разбить на информацию, которая дается в лоб, и информацию, которая специально оставлена открытой к интерпретации. Но если вы все-таки хотите спойлеров избежать, следующее упоминание Baroque будет вашим сигналом к выходу.

После Returnal в Saros заходишь как домой. Это все тот же процедурный роуглайт с большим акцентом на перемещении, но теперь с еще более широким арсеналом доступных действий и куда более сильно повернутый лицом к игроку. При всей моей любви к Returnal, нечестно было бы отрицать, что вступительный акт игры зубодробительно сложный, и судя по статистике ачивментов в Steam, 2 из 5 игроков кроме синевы первого биома в игре так ничего и не увидели, до третьего биома добралось менее половины, а к концу третьего акта пробилось всего 6 процентов. Поэтому у меня не вызывает никакого удивления, что Saros принимает это к сведению и дает игроку более жирные перманентные пауэрапы между циклами (которыми, при желании, можно не пользоваться) и вводит систему Модификаторов Каркозы, представляющих из себя, по сути, глобальные настройки сложности для подкручивания шансов как в свою пользу, так и не в свою.

I hate to geek out about some Sony tech, но хочется отдельно отметить, что игра потрясающе использует возможности DualSense. Тяжело описать, сколько текстуры добавляют игровому процессу фичи тактильного фидбэка контроллера, и как крайне грамотно и к месту они применяются. В игре, которая не в последнюю очередь про попытки понять, что же до сих пор реально, все эти тактично задеплоенные саундбайты, поющие акапеллой в игрока со всех сторон, кратно усиливают ощущение, что что-то ускользает как песок сквозь пальцы.

Еще очень нравится дистанция в арт-дирекшне, но с сохранением рифмы. Returnal со своим глубоководно-синим лунным. Saros со своим предзакатно-золотым солнечным.

При чем же тут Baroque?

Подниму ключевой контекст настолько кратко, насколько cмогу.

С высокой долей вероятности не совру, если скажу, что Baroque была первой игрой, которая одновременно:

- Сделала смерть частью нарративной прогрессии. Твоему возвращению раз за разом есть не только геймплейная, но и нарративная причина. Мир реагирует на каждую смерть аватара, и каждая смерть приближает к истинной развязке на нескольких уровнях.

- Зеркально отразила внутреннюю нелицеприятность ансамбля персонажей во внешний же игровой мир. Все патологии игрового мира возникли не на пустом месте, все Гротески появились не сами по себе. Это сам окружающий мир утратил возможность сдерживать и фильтровать искажения и уродства, тем самым позволив им прорваться наружу и усилиться.

- Дала игроку возможность достичь победы путем конвенциональной для жанра power fantasy, чтобы при первом же случае выбить почву из-под ног и показать, что a victory through mechanical mastery alone is a hollow victory.

- Вместо этого сделала ключевой акцент на стремлении к познанию, которое в итоге и должно подвести игрока к мысли, что к настоящей победе можно прийти только через отказ от желания. Настоящего освобождения можно достичь только через отказ от цели. Потому что само желание в игре — ложь. Сама изначальная цель — ложь.

Baroque стремительно стала одной из самых важных игр в моей жизни. Я не думаю, что когда-либо смогу перестать о ней думать. В том числе думать о том, насколько же колесо сансары служит идеальной нарративной оберткой для роуглайк-механик, и насколько этот концепт недоисследован. А еще у меня нет этому прямых доказательств, но с самого знакомства с Baroque меня не покидает ощущение, что кто-то в Housemarque тоже является ее большим поклонником. И что Returnal (в меньшей степени) и Saros (куда более прямо) являются ближайшими духовными наследниками этой игры.

Если вы не играли в Returnal, то сделайте себе одолжение. Если играли, то я попрошу вас посмотреть на четыре буллет-поинта, которые я вывел для Baroque, и задуматься на минутку. За вычетом последнего пункта, тут все вполне себе неплохо ложится на структурный скелет Returnal. Последний тоже в какой-то степени ложится, но через другой фрейминг и не один к одному. По наиближайшей мне интерпретации, нарратив Returnal крутится вокруг того, что Селена, протагонист игры, не может обработать пережитую психологическую травму, поэтому игровой цикл будет повторяться раз за разом, до тех пор, пока не наберется критическая масса осознания и воли, и не произойдет принятие. То есть стремление к познанию и желание освобождения все еще присутствуют, но не отказ от цели.

Помимо этого, в Returnal можно отследить явные заимствования геймплейных механик. Заимствования в рамках жанровых конвенций достаточно специфичные, чтобы поднять бровь и подсыпать дров в теорию о духовном родстве между играми. Ограничусь несколькими примерами. И в Baroque, и в Returnal, часть апгрейдов носит паразитический характер. И в Baroque, и в Returnal, часть апгрейдов приводит к менеджменту рисков, потому что могут давать не только позитивные, но и негативные эффекты. И в Baroque, и в Returnal, если употреблять лечащие предметы при полном здоровье — растет шкала здоровья.

А вот уже на Saros метанарративное ядро Baroque ложится безупречно. Но чтобы провести линии, придется попытаться объяснить, а что в игре-то происходит. I'm sorry, please bear with me.

В центре сюжета Saros расположился Арджун Деврадж. Бывший ЧОПовец. Член экипажа Echelon IV, посланного мегакорпорацией Soltari (местная Weyland-Yutani) разведать, почему же три предыдущих экипажа решили перестать выходить на связь вместо колонизации и извлечения мегаприбылей с планеты Каркоза путем налаживания добычи и поставки обратно на Землю уникальных и крайне ценных ресурсов. И последняя сволочь.

Игра начинается с пробуждения Арджуна без какой-либо памяти о событиях с самого момента высадки на планету, что не мешает ему не забывать об основной персональной цели вояжа — найти и спасти свою жену, Нитью Чандран, члена экипажа Echelon I. Но частичной потерей памяти Арджуна странности на планете Каркоза не заканчиваются. Когда он все-таки добирается до операционной базы Echelon IV, выясняется, что кто-то саботировал корабль при высадке, что привело к гибели большей части экипажа, а значительная часть выживших начала сходить с ума. Но и это еще не все. Даже те немногие, кто умудрился сохранить остатки рассудка, теперь ощущают на себе пристальный взгляд некоей сущности под названием "Желтое Побережье".

Исследуя планету в поисках своей жены, Арджун постепенно обнаруживает, что на ней не только концепт перманентности пространства отсутствует, но и что время на ней течет нелинейно. Когда он все-таки находит остатки колонии Echelon III, выясняется, что и от Echelon II мало уже что осталось, с той лишь разницей, что судьба Echelon II разрешилась два столетия назад, хотя между отправкой экипажей с Земли прошли в худшем случае считанные годы.

И даже на этом причуды Каркозы не заканчиваются. Сарос как термин обозначает астрономический цикл продолжительностью в 223 месяца, по прошествии которого лунные и солнечные затмения повторяются в одной и той же последовательности. В самой игре этому циклу не только 223 месяца не нужно, он вообще сбрасывается каждое воскрешение Арджуна, а сам Арджун может провоцировать затмения вручную.
  • 🔥 13
Post #518 306
Saros.

#games
  • 🔥 10
Post #517 373
Man what a game.

Осталось мысли в кучу собрать.
  • ❤ 14
Post #516 473
Прошел вот уже месяц с релиза, а игра настолько не хотела ехать в Сакартвело, что пришлось напрягать родню и добывать ее в Германии.
  • 🔥 13
Post #515 458
Когда-нибудь я вновь буду постить сюда про что-то помимо разработки #icebreaker. Но не сегодня.

Сегодня речь пойдет о том, что несмотря на всю мою внутреннюю борьбу с желанием избежать механик стамины и блока в игре, они все равно напросились. (На самом деле это все ложь, стамина была в игре с самого начала, просто все это время нигде не использовалась и науськивала меня как маска Зеленого Гоблина науськивала персонажа Уиллема Дефо в первом Человеке-Пауке Сэма Рейми).

Раз уж напросились, пришлось и ботов научить новому положению дел, заодно перелопатить все дерево атаки в поведении ботов. Для поддержки новых механик пришлось вводить механику "одышки". Это когда боту хочется немного дистанции от игрока и восстановить потраченное, и главной моей находкой тут стало надоумить ботов отдавать приоритет отступлению не назад, а под углом. Теперь когда бот, "отдышавшись", возвращается давать игроку люлей, он естественным образом заходит с флангов, и вынуждает игроков делать поправку на ветер. Любопытный ритм вырисовывается.

Правда с несколькими ботами количество хаоса довольно быстро переливает за край. Потенциал к менеджменту стамины у бота выше, чем у игрока, и даже один единственный может представлять серьезную угрозу. Как будто бы сюда напрашивается система менеджмента отряда, but maybe I'll find some other way to bring some order to this chaos, I like systemic chaos.

Ну а если есть блок, пришлось и какую-то визуализацию делать. Тут еще одна счастливая случайность вышла, я изначально планировал другой материал энергетическому щиту делать, но натыкал не совсем по плану и вышло интереснее.

В игру можно чуть-чуть и поиграть наконец, ура.
  • 🔥 15
  • ❤ 4
Post #514 492
В этот раз про проджектайлы.

Технически #icebreaker — не супер сложная штука, добрых три четверти времени я полагаюсь на уже готовые решения. Например, система способностей в игре — довольно мудреная, но это потому, что я использую родной фреймворк MOBA-like способностей от Epic Games, Gameplay Ability System. А GAS сам по себе мудреный. Я бы даже сказал, перемудреный, как это часто бывает с generic-решениями, которые пытаются покрыть как можно больше пользовательских кейсов.

Но пара самописных заумных штук в моей игре все же есть, и система проджектайлов — как раз одна из них.

В первую итерацию этой системы я полагался на наивную прямолинейную имплементацию. Есть проджектайл-голова паттерна, он выдергивает из пула заранее созданных проджектайлов-последователей нужное количество, и по мере движения обновляет по заданным уравнениям позиции последователей. Это работает сносно, но пока общее количество проджектайлов не слишком велико. Потому что каждый проджектайл — полновесный Actor Blueprint.

В игровых движках частенько есть какая-то минимальная сущность, которую можно положить в сцену. В Unity это GameObject. В Unreal это Actor Blueprint. Штука тут в том, что каждая такая минимальная сущность не менее часто впивается в цикл движковых обновлений: тикает, обновляет свою позицию и в сцене и в иерархии сцены, слушает коллизии, реагирует на (или может реагировать на, поэтому все равно слушает) все остальные движковые события. Когда таких сущностей в сцене много (а проджектайлов в буллет хелл играх никогда не бывает слишком много), накладные расходы начинают ощутимо подрезать бюджет на кадр, а ведь в сцене еще должно найтись место не только проджектайлам.

Sometimes you don't know how bad a solution is until you implement it and do some profiling. В старой имплементации игровой тред начинал захлебываться на отметке около 2к проджектайлов, что, конечно же, несерьезно.

Есть ряд сторон, с которых можно начать решать эту конкретную проблему. Я пришел к решению избавиться от всех проджектайлов-последователей, вместо них оставить в проджектайле-голове массивы сдвигов всех проджектайлов в паттерне, каждый кадр масс-свипать физические коллизии по массиву сдвигов, и еще для этих массивов сделать отдельную графическую систему, которая уже просто рисует проджектайлы.

Я, к сожалению, в хороший-то день крайне посредственный графический программист, но хотя бы усидчивый и упорный, чем и спасаюсь. В зависимости от сложности паттернов, могу теперь иметь около 10к проджектайлов на экране и не проседать ниже 80 FPS на моей вот уже шестилетней рабочей лошадке.

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

But the work is never done. Мало просто сделать систему для проджектайлов, нужно сделать еще и паттерны интересные и живые, а потом еще из всего пула получившихся возможностей выбрать то, что в самой игре будет работать. So we keep on keeping on.
  • ❤ 15
  • 🔥 2
Post #513 490
Опять выхожу на связь со своими девлогами, опять жонглирую десятком шляп, в параллельных попытках и перелопатить старое / больше не пригодное, и воткнуть в #icebreaker новое.

Цитируя одного широко известного в узких кругах игрового разработчика, a "work in progress" video game is one of the ugliest works in progress in all of existence. I personally have nothing against "intentional" ugly, well, most of the time. А вот непреднамеренную незаконченную уродливость являть широкой публике все же не хочется.

Тем не менее, какие-то штуки за месяц с последнего поста получилось привести в некое подобие полу-финального состояния, вот про них в этот раз и буду рассказывать.

Когда-то, в неблизкие уже мирные времена, когда огонь в глазах еще не притух, я несколько раз бегал марафоны. До сих пор отчетливейше помню, как в первый свой марафон на отметке в 26 километров поймал себя на мысли, что сил больше нет и все тело в огне (еще и соски в кровь стер, я тогда еще не знал, что их надо перед марафоном пластырем заклеивать), но ровно так же я себя чувствовал и километр назад, а значит и через километр ничего сильно не поменяется. А если я могу находиться в этом состоянии непрерывного потока истощения, я и до финиша добегу. Ну и добежал.

С разблокированием, пусть и плохоньких, навыков 3D-моделирования, у меня возникло вполне себе родственное тому марафонскому опыту ощущение.

Когда появились какие-то модельки в игре, каскадом пошли и анимации к ним, и сборка звуковых эффектов, и даже какие-то партиклы.

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

Тут, правда, открылась отдельная бездна проблем c физикой: если пытаться как-то по сети сглаживать блендинг процедурных реакций на урон с анимациями из текущей позы персонажа, получается очень дергано. I don't have neither time nor patience to deal with all that, there are hundreds of other things with this game, что привело к решению вырезать фреймы из анимаций персонажа, потому что:

- Если вырезать фреймы, не видно, что между двумя соседними дерготня

- No extra work here, это у меня и раньше работало: в зависимости от размера анимируемого объекта на экране я понижал частоту обновлений контроллера анимации, чтобы экономить производительность и не анимировать то, что не в кадре. Просто теперь первые несколько фреймов в заданной последовательности фреймов контроллер пропускает всегда

- Нравится неестественность и возникающее ощущение чуть ли не спрайтовости анимаций

Уже после всего этого захотелось и HUD к какому-то подобию финального вида привести, so here's that.

Отдельным маленьким кошмаром для меня стал капремонт всех моих bullet hell систем (потому что вышла Saros и болезненно напомнила, как можно bullet hell в 3D играх делать), но об этом уже в другой раз.
  • ❤ 20
Post #512 493
Закончил моделить, текстурить, риггать первую (на самом деле третью) модельку игрового болванчика для #icebreaker и риггать одежду поверх.

Для кого-то может выглядеть стыдно и смешно, но не для меня. It isn't much but it's an honest work. В третьей итерации заняло около недели (считать как 60 рабочих часов) от начала и до конца (половина этого времени ушла на возню с риггингом), и пока делал, узнал про 3D моделирование и связанное с ним больше, чем из всех туториалов вместе взятых. Ну и точно больше, чем за 10 лет карьеры программиста.

Теперь к процессу, because that's what we do here: we share not only gains but pains too, ну и может мои потуги сберегут вам немного времени и помогут не наступить на граблю-другую, если когда-нибудь понадобится.

Стадия концепта: в очередной раз убедился, что 2D-артист из меня никчемный. Я смотрю на белое полотно, а обратно в меня смотрит мучительная неспособность транслировать на него какие бы то ни было художественные мысли. It probably gets better the more you do it, but I have enough work cut out for me as it is. И пока искал способы срезать углы и разблочить способность мыслить, обнаружил, что руками мне думается лучше. Моток проволоки и пачка пластилина сдвинули дело с мертвой точки, пусть финальный результат и отличается от пластилинового прототипа практически во всем (оставлю в комментах).

3D моделирование: последние пару месяцев между другими арт-потугами и задачами отсмотрел сколько-то туториалов и наковырял сколько-то десятков часов в Blender, просто чтобы приучить руки пользоваться инструментом и проложить в голове нужную проводку. Мои находки и инсайты на этом поприще:
- Do not attempt fucking donut tutorials, they're useless
- Туториалы Гранта Эббита по базе хороши (но на английском)
- Полезно не зацикливаться на одном авторе туториалов и подсматривать рабочий процесс у сразу нескольких, потому что все очень по-разному работают и можно подворовывать прикольные находки (например, буду использовать double subdiv технику сильно больше в будущем, для органических форм)
- Нашел утилиту PureRef, которая позволяет собирать мудборды локально на машине и умеет висеть поверх всех остальных окон в Windows (PowerToys тоже умеет закреплять, но когда не приходится к нему прибегать — приятно)
- Помогает посмотреть, какие плагины для Blender люди в целом используют, но тут уже зависит от ваших конкретных нужд

Текстурирование: в целом поставил себе цель выстроить арт пайплайн так, чтобы максимально полагаться на free and/or open source software. Полезный сайт для такого тут. К тому же очень еще не хотелось пользоваться продуктами Adobe. По счастью, для Blender существует бесплатный аддон Ucupaint, который избавляет от нужды пользоваться Substance Painter и покрывает мои юзкейсы с лихвой.

Риггинг: is a motherfucker. Weight painting for UE5 Mannequin is torture. Во всяком случае, стоковыми средствами Blender. Поэтому сдался и достал еще один плагин для Blender — Auto-Rig Pro. С риггингом персонажа и раскраской весов стало сильно меньше головной боли, а вот с риггингом одежды оказалось уже не так полезно, но в среднем по палате помогло сохранить остатки волос на голове.

В будущем, с новоприобретенными умениями и улучшенным пониманием болевых точек, надеюсь, процесс пойдет быстрее и глаже.
  • 🔥 11
  • ❤ 8
  • ❤‍🔥 3
  • 🤩 1
Older posts →

About this channel

How can I read @spaceisthegogasplace without a Telegram account?
TGViewer shows the public web preview Telegram publishes for Goga's Space: recent posts, photos, videos and the subscriber count, with no app, login or account.
How many subscribers does Goga's Space have?
Goga's Space (@spaceisthegogasplace) has 271 subscribers on Telegram, refreshed roughly every 30 minutes.
Does Goga's Space know I viewed it here?
No. Public channel previews carry no viewer identity, and TGViewer has no accounts or tracking of what you look up.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →