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.
Как вам история? Есть вопросы? Делитесь в комментариях 🥂
Telegram
Виталя делает игры
Знаю, вы этого ждали. Перезапуск канала!
Если вы читаете меня в тви, вы знаете как в начале этого года я сильнейшим образом выгорел (тред здесь: https://x.com/gambala_codes/status/1905616488356004265) и ушёл из фултайм веб-разработки.
Полностью конечно…
Если вы читаете меня в тви, вы знаете как в начале этого года я сильнейшим образом выгорел (тред здесь: https://x.com/gambala_codes/status/1905616488356004265) и ушёл из фултайм веб-разработки.
Полностью конечно…
50🔥7👍4❤3🤡2
Media is too big
VIEW IN TELEGRAM
День 26
Улучшил две системы, до которых долго не доходили руки.
1. Пикселизация VFX-эффектов
Давно внедрил эту систему, благодаря ей любые желаемые мной эффекты и системы частиц пикселизуются, и это органично смотрится с уже пиксельным окружением. Но эта система работала только при неподвижной камере. Но как только камера стала отклоняться от центра сцены в стороны, у краёв сцены эффекты не были видны вообще. На видео я специально сделал буфер для эффектов видимым, вы видите его как большой темно-синий прямоугольник от края до края экрана. Теперь он ходит за камерой (даже при тряске камеры), и глобальные координаты (где я желаю увидеть эффект) правильно ложатся внутрь этого буфера-прямоугольника.
2. Передача цвета из modulate внутрь шейдеров
Заметил что если я перекрашиваю объект через modulate (меняю его оттенок, или яркость, или прозрачность), и при этом применяю к этому объекту шейдер, эффект от modulate перестаёт действовать. Это было видно со статичными кустами на островах. Они «развеваются на ветру» благодаря шейдеру. И когда я их бью, я не вижу на них белой вспышки, в отличие от других объектов, т.к. белая вспышка это изменение modulate, но шейдер ветра на статичных кустах перекрывал собой этот modulate. Нашёл способ исправить и исправил, теперь всё сказочно органично.
Закрыто фич 🏀 106 из 169
Игра готова на 63%
Улучшил две системы, до которых долго не доходили руки.
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%
Подкрутил пост-эффекты, добавил виньетку и цветокор, за счёт этого сделал смену дня и ночи!
Ещё добавил немного музыки, повесил звуки на анимацию перехода, и приглушаю музыку на время перехода.
Закрыто фич 🏀 112 из 176
Игра готова на 64%
1👍5🤡3❤1🔥1
А откуда уверенность, что игру будут покупать в стиме, и это окупит вклад в игру?
На самом деле мои ожидания на первую игру очень скромные. Я понимаю, что мне нужно время на адаптацию, и что без неё я не смогу выйти на миллионные доходы со стима.
Поэтому ожидания на первую игру у меня супер низкие, в районе $15-20к
Для последующих четырех игр ожидания $50к-$100к-$150к, пока не знаю в каком порядке т.к. порядок выпуска последующих игр буду утверждать после выпуска первой.
🤡13👍5❤2😁1
Интересно, а вот если собрать всех клоунов с канала и посчитать, сколько в сумме собрали все выпущенные ими игры – как думаете, там какое число будет? Ближе к $15к, или к $150к?
🤡11😁5❤2
Как вы все знаете, успешный продукт в творческих сферах (фильмы, игры) строится на синергии сильных её частей.
В фильмах, берём сильного режиссера, сильнейших актёров, композитора, оператора → на выходе получаем сильнейшее авторское кино. За примерами далеко ходить не надо, это почти все фильмы Акиры Куросавы (с ключевыми ролями у Такаси Симуры и Тосиро Мифуне), фильмы Сергея Бондарчука, Никиты Михалкова (музыку к которым всегда писал Эдуард Артемьев).
В инди-играх такое тоже встречается. Весь успех игр Supergiant Games (Hades, Transistor, Bastion) строится на сотрудничестве музыканта Даррена Корба с талантливыми иллюстраторами, на глубокой интеграции музыкальных произведений Даррена с артом и нарративом в играх. И на постепенном исправлении геймдизайнерами своих кривых рук (я еще не играл в Hades, но видел некоторую прогрессию – в Bastion играть было невыносимо, в Transistor просто неприятно, в Hades я надеюсь уж ко второй хотя бы части они научились делать нормальные игры).
В инди-геймдеве без бюджета критически важно находить как можно больше сильных частей, органично смотрящихся вместе. В начале разработки 27 дней назад мне удалось найти графику от нескольких авторов, хорошо сочетающуюся вместе. В течение этих 27 дней я находил сильные решения в цветокоре, анимациях, системах частиц, шейдерах, чтобы оживить статичные картинки от иллюстраторов.
Сегодня я нашёл идеальную сильнейшую музыку.
Последний несложившийся пазл – это звуки, подобрать к буквально каждому действию в игре хотя бы средний по звучанию звук, вплетающийся в общую картину.
И игру можно будет готовить к релизу.
В фильмах, берём сильного режиссера, сильнейших актёров, композитора, оператора → на выходе получаем сильнейшее авторское кино. За примерами далеко ходить не надо, это почти все фильмы Акиры Куросавы (с ключевыми ролями у Такаси Симуры и Тосиро Мифуне), фильмы Сергея Бондарчука, Никиты Михалкова (музыку к которым всегда писал Эдуард Артемьев).
В инди-играх такое тоже встречается. Весь успех игр Supergiant Games (Hades, Transistor, Bastion) строится на сотрудничестве музыканта Даррена Корба с талантливыми иллюстраторами, на глубокой интеграции музыкальных произведений Даррена с артом и нарративом в играх. И на постепенном исправлении геймдизайнерами своих кривых рук (я еще не играл в Hades, но видел некоторую прогрессию – в Bastion играть было невыносимо, в Transistor просто неприятно, в Hades я надеюсь уж ко второй хотя бы части они научились делать нормальные игры).
В инди-геймдеве без бюджета критически важно находить как можно больше сильных частей, органично смотрящихся вместе. В начале разработки 27 дней назад мне удалось найти графику от нескольких авторов, хорошо сочетающуюся вместе. В течение этих 27 дней я находил сильные решения в цветокоре, анимациях, системах частиц, шейдерах, чтобы оживить статичные картинки от иллюстраторов.
Сегодня я нашёл идеальную сильнейшую музыку.
Последний несложившийся пазл – это звуки, подобрать к буквально каждому действию в игре хотя бы средний по звучанию звук, вплетающийся в общую картину.
И игру можно будет готовить к релизу.
🤡5❤2🤔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🔥2❤1😁1💩1🗿1
Отвечаю на ваши вопросы:
Верно, в игры можно не играть, игры можно смотреть (как 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, где стала возможной полноценная режиссура с озвучкой персонажей), и таким же отличным интересным кором.
И я тоже, выбираю создавать ИГРЫ, а не ролики на движке.
🙍♂️: Виталя, а ты играл в 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👍3❤1
Media is too big
VIEW IN TELEGRAM
День 28
Включил цепную молнию при ударах как одно из возможных усилений. Теперь с такой молнией стало физически возможно разрушить все объекты на уровне, и сейчас это заканчивает забег, с автоматическим сбором всех ресурсов, и с частицами (пока падающих сверху монет).
Закрыто фич 🏀 116 из 179
Игра готова на 65%
Включил цепную молнию при ударах как одно из возможных усилений. Теперь с такой молнией стало физически возможно разрушить все объекты на уровне, и сейчас это заканчивает забег, с автоматическим сбором всех ресурсов, и с частицами (пока падающих сверху монет).
Закрыто фич 🏀 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).
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) Если концепцию не поменять – переходите в другой движок
GitHub
GitHub - csprance/gecs: Godot Entity Component System - GECS
Godot Entity Component System - GECS. Contribute to csprance/gecs development by creating an account on GitHub.
👍4🥰2
У кого есть тви – подпишитесь на меня
Совсем скоро я начну сбор аудитории игроков для игры, твиттер это один из каналов, и ваши лайки и реакции там дадут мне необходимый начальный буст 🙏
https://x.com/gambala_pro
Всем рад
Совсем скоро я начну сбор аудитории игроков для игры, твиттер это один из каналов, и ваши лайки и реакции там дадут мне необходимый начальный буст 🙏
https://x.com/gambala_pro
Всем рад
X (formerly Twitter)
Vitaly Gambala (@gambala_pro) on X
🕹️ Indie Game Dev now 🌐 Principal Software Engineer in a past
🤡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/враг/босс/герой двигался иначе? Не прямо а по синусоиде, или ходил кругами. Кидаем в него другой компонент с другим кодом и вероятно другими свойствами.
Вешаем этот компонент на объект (врага, главгероя, NPC, неважно) – задаём при спавне объекта через этот компонент свойства (векторы вращения и движения). И всё остальное компонент делает сам – считает и меняет позицию и вращение у объекта.
А хотим чтобы NPC/враг/босс/герой двигался иначе? Не прямо а по синусоиде, или ходил кругами. Кидаем в него другой компонент с другим кодом и вероятно другими свойствами.
👍1🔥1
Виталя делает игры
У кого есть тви – подпишитесь на меня Совсем скоро я начну сбор аудитории игроков для игры, твиттер это один из каналов, и ваши лайки и реакции там дадут мне необходимый начальный буст 🙏 https://x.com/gambala_pro Всем рад
Кажись пора принимать заявки на курс по Godot и GDScript 😄
И да, не забудьте подписаться на тви ☝️
И да, не забудьте подписаться на тви ☝️
❤1