Виталя делает игры – Telegram
Виталя делает игры
346 subscribers
212 photos
48 videos
159 links
Что может быть лучше, чем запах кода поутру? Только запах запёкшихся теней в Godot.

Чат: https://news.1rj.ru/str/gambala_chat
X: https://x.com/gambala_codes
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
О нет. Спасайтесь.
Они пришли.
И снова атакуют.
🤡10😁3
А это прям принцип жизни делать игры и ты занимаешься этим с профессиональной точки зрения, а не с любительской, это не хобби, работа и ты на это учился, так? Или ты самоучка который зарабатывает на своих проектах?


Кратко о моём пути я упоминаю в посте закрепе (https://news.1rj.ru/str/gambala_codes/421), а вообще таймлайн такой:

– С 3-х лет я начинаю играть в видеоигры (NES, Sega, PSone)
– В 12 лет у меня появляется первый ПК, там ПК-игры, эмуляторы консолей
– В 13 лет я ставлю Game Maker / RPG Maker / Blitz Basic 3D и начинаю делать свои первые игры, и изучаю геймдев (первые 4 года без интернета, хожу в городскую библиотеку и читаю книги и рубрики в журналах там)
– Ближе к выпуску из школы понимаю две вещи:

1️⃣ Я хочу заниматься играми всю жизнь, создавать и выпускать проекты по собственным идеям, самостоятельно себя обеспечивая

2️⃣ На тот момент, я не могу достичь успеха, мне не хватает денег, опыта в геймдизайне, опыта в программировании, насмотренности, знаний, умения коммуницировать, быть лидером, продвигать игры и т.д.

И я принимаю решение уйти в другие сферы, чтобы восполнить пробелы там.

Ухожу в программирование нативных приложений (Delphi C++ C# Java) и в веб-разработку, где за 13 лет делаю карьеру, поднимаюсь с нищего фрилансера до тим/тех-лида / архитектора / CTO с доходом в $7000/мес.

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

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

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

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

Как вам история? Есть вопросы? Делитесь в комментариях 🥂
50🔥7👍43🤡2
Media is too big
VIEW IN TELEGRAM
День 26

Улучшил две системы, до которых долго не доходили руки.

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

2. Передача цвета из modulate внутрь шейдеров
Заметил что если я перекрашиваю объект через modulate (меняю его оттенок, или яркость, или прозрачность), и при этом применяю к этому объекту шейдер, эффект от modulate перестаёт действовать. Это было видно со статичными кустами на островах. Они «развеваются на ветру» благодаря шейдеру. И когда я их бью, я не вижу на них белой вспышки, в отличие от других объектов, т.к. белая вспышка это изменение modulate, но шейдер ветра на статичных кустах перекрывал собой этот modulate. Нашёл способ исправить и исправил, теперь всё сказочно органично.

Закрыто фич 🏀 106 из 169
Игра готова на 63%
👍3🔥3🤡3
Интересно, когда я уже приступлю к кодингу прогрессии и начну тюнить игровой баланс в игре? 🤔

Есть идеи?
👍3🤡3
Блин надо же наверное еще на Itch.io игру выложить чтобы получить обратную связь. И страницу в стиме завести для накопления вишлистов...
🤡7👍5
Media is too big
VIEW IN TELEGRAM
День 27

Подкрутил пост-эффекты, добавил виньетку и цветокор, за счёт этого сделал смену дня и ночи!

Ещё добавил немного музыки, повесил звуки на анимацию перехода, и приглушаю музыку на время перехода.

Закрыто фич 🏀 112 из 176
Игра готова на 64%
1👍5🤡31🔥1
А откуда уверенность, что игру будут покупать в стиме, и это окупит вклад в игру?


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

Поэтому ожидания на первую игру у меня супер низкие, в районе $15-20к

Для последующих четырех игр ожидания $50к-$100к-$150к, пока не знаю в каком порядке т.к. порядок выпуска последующих игр буду утверждать после выпуска первой.
🤡13👍52😁1
Интересно, а вот если собрать всех клоунов с канала и посчитать, сколько в сумме собрали все выпущенные ими игры – как думаете, там какое число будет? Ближе к $15к, или к $150к?
🤡11😁52
Я нашёл музыку к игре 🥹
🔥6🤡2
Как вы все знаете, успешный продукт в творческих сферах (фильмы, игры) строится на синергии сильных её частей.

В фильмах, берём сильного режиссера, сильнейших актёров, композитора, оператора → на выходе получаем сильнейшее авторское кино. За примерами далеко ходить не надо, это почти все фильмы Акиры Куросавы (с ключевыми ролями у Такаси Симуры и Тосиро Мифуне), фильмы Сергея Бондарчука, Никиты Михалкова (музыку к которым всегда писал Эдуард Артемьев).

В инди-играх такое тоже встречается. Весь успех игр Supergiant Games (Hades, Transistor, Bastion) строится на сотрудничестве музыканта Даррена Корба с талантливыми иллюстраторами, на глубокой интеграции музыкальных произведений Даррена с артом и нарративом в играх. И на постепенном исправлении геймдизайнерами своих кривых рук (я еще не играл в Hades, но видел некоторую прогрессию – в Bastion играть было невыносимо, в Transistor просто неприятно, в Hades я надеюсь уж ко второй хотя бы части они научились делать нормальные игры).

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

Сегодня я нашёл идеальную сильнейшую музыку.

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

И игру можно будет готовить к релизу.
🤡52🤔1
В смысле в Bastion и Transistor неприятно... Это же шедевры, особенно последнее.


По части аудио-визуального нарратива да, шедевры, но по части геймплея (а мне как игроку важно чтобы в игру было приятно играть, чтобы управление было отзывчивым, чтобы игровой процесс в моменте был интересным) эти игры слабы/недоработаны.

Я периодически упоминаю «6 слоёв» (систему, сформированную мной самим, о том на чём нужно делать упор в видеоигре, чтобы игра получилась интересной и финансово успешной), так вот

1-й и самый базовый слой: Core или «Интерес в моменте»

Ещё до того как игрок задумается, а что там в игре за сюжет, а какая у меня игрока цель, а есть ли в игре глубина – мозг задумается: «А мне интересно в это играть в моменте или нет?»

Если нет – игру можно закрывать. И большинство игроков её закроют.

И неважно как глубоко у вас прописан сюжет и персонажи. Неинтересный или отталкивающий кор – игра закрывается и удаляется.

Хороший 1-й слой достигается несколькими приёмами, всех их сейчас расписывать не буду, упомяну только один: Ассистеры/Помощники.

Это код, специальный код, который «помогает» игроку чувствовать себя в коре нормально в рамках жанра. В платформерах это койот-тайм, event-buffering, вы о них наверняка слышали.

В каждом жанре и типе кор-механики – свои устоявшиеся ассистеры.

И в Bastion/Transistor (изометрические RPG/слешеры с прямым контролем персонажа) геймдизайнерами и программистами банально не было внедрено достаточно ассистеров. Из-за чего кор-механика ощущается скудной/неудобной.

Интересно? Продолжать?) Ставьте огни если хотите узнать больше о слоях и о том как создавать игры правильно.
1🔥7🤡3👎1
This media is not supported in your browser
VIEW IN TELEGRAM
1🤡7🔥21😁1💩1🗿1
Отвечаю на ваши вопросы:

🙍‍♂️: Виталя, а ты играл в Clair Obscur Expedition 33? Вроде тоже многим не нравится боевка и тд, но за сюжет и другие вещи игру люди просто обожают


Верно, в игры можно не играть, игры можно смотреть (как CG-фильмы). Я тоже в детстве любит играть в вещи вроде Final Fantasy IX, потому что, знаете, в первый раз интересно, как будет идти сюжет, как раскроют персонажей, какая у игры будет концовка, интересно что ещё сможет предложить игра.

Но запущу ли я Final Fantasy IX сейчас? Да ни в жизнь.

Даже с синтетическими ассистерами ПК-версий (позволяющими пропускать random encounters с врагами например), приделанными к таким играм как костыли, чтобы хоть сколько то скрасить недостатки их кор-механик.

🦹‍♂️: Так щя давай по полочкам:


Давай.

🦹‍♂️: С точки зрения кор-механик для тебя бастион и транзистор хуйня, они про аудиовизуальный нарратив


Верно.

🦹‍♂️: Который, как мы узнали из твоих постов, нихуя не значит потому что на уровне кор-механик игра удаляется сразу как только мозг осознает что кор-механика неудобна


Верно, мной удаляется, я поиграл уже в достаточное количество Final Fantasy IX like игр и ценю своё время.

🦹‍♂️: Почему-то твоя логика с удалением игры сразу как мы осознали плохую кор-механику не срабатывает судя по отзывам и кассам бастиона и транзистора.


Написал выше: Есть люди что не играют в игры, а смотрят их. Таким людям достаточно дать посредственный кор, и они всё равно будут довольны. За примерами далеко ходить не надо. В Expedition 33 ещё не играл, за неё не могу сказать. Но Bastion да, Transistor да. To the Moon, прости господи, одно большое да 🤢

В своих играх я предпочту не жертвовать кором ради аудиовизуального нарратива. Не нужно быть кем-то исключительным, чтобы мочь и в то и в другое. Гляньте игры Хидео Кодзимы, начиная с самого первого Metal Gear (тот который на MSX/NES), все они обладают отличным аудиовизуальным нарративом (особенно начиная с первой Metal Gear Solid на PSX, где стала возможной полноценная режиссура с озвучкой персонажей), и таким же отличным интересным кором.

И я тоже, выбираю создавать ИГРЫ, а не ролики на движке.
🤡4👍31
Media is too big
VIEW IN TELEGRAM
День 28

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

Закрыто фич 🏀 116 из 179
Игра готова на 65%
🔥3🤡3👍1
Виталя делает игры
Отвечаю на ваши вопросы: 🙍‍♂️: Виталя, а ты играл в Clair Obscur Expedition 33? Вроде тоже многим не нравится боевка и тд, но за сюжет и другие вещи игру люди просто обожают Верно, в игры можно не играть, игры можно смотреть (как CG-фильмы). Я тоже в детстве…
А ещё, обратите внимание, для игры с запоминающимся сильным нарративом, необязательно делать упор на графику, режиссуру и озвучку.

Bastion и Transistor красивые, факт.

Undertale нарисована в пейнте. Но при этом: (1) она вся выдержана в этом стиле, что способствует погружению, (2) там всё ещё сильный нарратив, (3) там хороший приятный кор.

Или гляньте скрин. Это An Unnoscriptd Story. Она вся такая, с paint-like графикой, midi-like музыкой. Но кор и прогрессия там прекрасны, и нарратив хорошо прописан, к главным персонажам проникаешься и сопереживаешь им. Всё это было сделано одним человеком и на выходе получилась прекрасная игра (не первая и не последняя у этого разработчика, позже он объединится с талантливыми художниками и композитором и разовьёт один из своих PICO-8 прототипов до полноценной игры, так выйдет Celeste).
🤡5🤔2
Пробовал ли ты https://github.com/csprance/gecs/ и видишь ли смысл в ECS в Godot?


Посмотрел API этого GECS. И нет, он того не стоит. Сильно больше лишних действий в сравнении с ООП подходом (с той же композицией через компоненты для нод). Усложнение на пустом месте, ради иллюзорного перфоманс буста.

Запомните, с точки зрения кода, главный принцип это:
1) Делай чтоб работало
2) Делай чтоб было красиво
3) Делай чтоб было быстро

Под красотой понимается лаконичность кода и, как цель, простота его чтения/изменения. Это важно. И внедрение ECS в готовый движок неизбежно ухудшит лаконичность и простоту чтения/поддержки.

В теории ECS мог бы дать перфоманс буст за счёт уменьшения random-memory-access операций, но в Godot я уверен весь такой выигрыш сожрут component queries.

Если в вашей игре тысячи объектов на экране, я бы пошёл:
1) Сперва банально в сокращение draw-calls
2) Потом в пулинг
3) Потом в низкоуровневое Godot-API – PhysicsServer2D / RenderingServer (на самом деле уже их использую в своей игре)
4) Потом в изменение концепции игры (ну не подходит движок для симуляции каждого атома в игре, сорри)
5) Если концепцию не поменять – переходите в другой движок
👍4🥰2
У кого есть тви – подпишитесь на меня

Совсем скоро я начну сбор аудитории игроков для игры, твиттер это один из каналов, и ваши лайки и реакции там дадут мне необходимый начальный буст 🙏

https://x.com/gambala_pro

Всем рад
🤡2😁1
Виталя делает игры
Пробовал ли ты https://github.com/csprance/gecs/ и видишь ли смысл в ECS в Godot? Посмотрел API этого GECS. И нет, он того не стоит. Сильно больше лишних действий в сравнении с ООП подходом (с той же композицией через компоненты для нод). Усложнение на пустом…
Как вы тогда делаете в Godot компонентный подход? Через чисто код или ноды как компоненты воспринимаете?


Ноды как компоненты. Вон они, розовенькие. У каждой свой скрипт и class_name, и там свойства и код, нужные компоненту, связь с другими компонентами через @export переменные.

И все компоненты наследуются от одного базового класса.

Через него любой компонент получает свойство enabled – можно в Godot'е отключать и включать компоненты (полезно для тестов и динамики в поведении).

И parent – это ссылка на ноду, в которой лежат компоненты. Можно было бы использовать стандартную годотовскую owner, но она ссылается на рут-ноду, а я хочу вешать компоненты не только на рут-ноду сцены, но и на подноды.
👍1
Есть может какой практический пример? Желательно с кодом. Чет я туплю и не могу въехать.


Вот например компонент Pause.

Когда он в сцене и включен (enabled), он сам ловит инпут, сам по инпуту (Esc) включает паузу. Добавив его в редакторе в сцену, нужно указать UI-ноду паузы в pause_menu – и компонент будет её показывать/скрывать при паузе.

Больше этот компонент ничего не заботит.

И неважно в какой сцене я нахожусь, и какой это жанр игры. Добавил в ноду компонент Паузы – значит в этой части игры будет возможна пауза.
👍1
Или такой пример

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

А хотим чтобы NPC/враг/босс/герой двигался иначе? Не прямо а по синусоиде, или ходил кругами. Кидаем в него другой компонент с другим кодом и вероятно другими свойствами.
👍1🔥1