День 135
Самый свежий вчерашний пост
В понедельник полностью посвятил себя теории - просмотр курса и просмотр видео на ютубе из плейлиста "Смотреть Позже" (их там миллиард..)
По курсу всё-таки было еще небольшое видео по юайке - анимация перехода между сценами/уровнями, глянул, обработал мысленно и пошел на ютуб, т.к. очень давно уже планировал пересмотреть множество полезных (я так думал ) видео по разработке, а часть в курсе про метапрогрессию состоит из нескольких уроков, которые я не успевал вчера уже глянуть, так что решил пойти проветрить свой плейлист
Что я глянул:
- 2D glow in Godot 4 - Вроде как и показано как сделать эффект "сияния", но вот без теории что-то не то. Глянуть можно, всего-то 35 секунд
- How to use Classes in Godot! - Intermediate Tutorial - Меня обманули😢 . Тут не intermediate, тут beginner, ничего нового не узнал, в ролике просто показывается как используются классы на микропримере с деревьями, но толком ничего не объясняется
- Premature Optimization (преждевременная оптимизация) - Для меня это не в новинку, но иногда стоит напоминать себе про "очевидные" вещи, чтобы не забывать о них. Настоятельно рекомендую вообще всем для просмотра и, дополнительно, еще рекомендую эту статью для прочтения. А еще классную фразу из комментов под видео процитирую:
Именно поэтому нет плохих языков (кроме пхп конечно же ), на C++ можно сделать нереально быстро работающий код, а надо ли это вообще бизнесу? Ведь написание эффективного кода с точки зрения перформанса сильно бьёт по скорости разработки, а пока нет что оптимизировать - не надо над этим и задумываться (естественно на отвались код тоже писать не надо)
Последний год я стараюсь подходить к написанию любого кода со следующей стратегией:
1. Написать абы-как, но быстро, чтобы оно работало
2. Отрефакторить - разбить на маленькие части если надо, поправить названия функций и всякие другие мелочи и не только
Самое главное пункт №2 не пропускать👀
- Learn how to structure scenes! || Composition Demo - Снова обманули, тут чел не композицию делает, а наследование, еще и стиль кода у него скажем так странненький.. не рекомендую, лучше бы эти 30 минут поиграл в весёлую ферму
- How To Create A Health Controller In Godot (Tutorial) - И тут я понял, что не надо заглядывать в своё "Посмотреть позже", а лучше продолжать читать документацию Godot до потери пульса, а то с такими гайдами пульс можно потерять раньше времени. Контроллер из видео (по факту компонент) был сделан чтобы его использовать и переиспользовать в виде композиции, он прям создан для этого, но автор видео не развил полностью идею композиции и сделал гайд на "отвались", по крайней мере мне так показалось
- Let's Fix Your Sprite's Sorting Order... - А вот это видео рекомендую всем, тут за полторы минуты реально показывается как фиксить Y-Sort спрайтов, что особенно актуально для top-down игр. Только z-index не надо поднимать как он это делает, это лишнее
Также забыл написать про ответ на вопрос про звуки "Как правильно проигрывать звук до конца, если родительская нода очищена/удалена?". Я предложил своё сомнительное решение, но препод сказал что так как раз нормально делать, только надо следить чтобы слишком много звуков одновременно не было и все такое
Решение заключается в том, чтобы создать глобальный скрипт, у которого будет функции по типу "play_sound(stream)" и эти функции будут добавлять прям в корень сцены звуки, которые будут автоматически удаляться по проигрыванию. К слову для "летающих чисел" тоже прикручу такую же логику, а то сейчас там неюзабельный подход через "общий" компонент-спавнер и еще один спавнер, только он подключается к HealthComponent и переиспользует "общий" спавнер, в общем это неудобно и надо переделать
Ночь - идеальное время чтобы просмотреть часть про метапрогрессию (страшная механика), а сразу после можно и к доделкам игры приступить, всё по плану😎
#godot #разработка
Самый свежий вчерашний пост
В понедельник полностью посвятил себя теории - просмотр курса и просмотр видео на ютубе из плейлиста "Смотреть Позже" (их там миллиард..)
По курсу всё-таки было еще небольшое видео по юайке - анимация перехода между сценами/уровнями, глянул, обработал мысленно и пошел на ютуб, т.к. очень давно уже планировал пересмотреть множество полезных (
Что я глянул:
- 2D glow in Godot 4 - Вроде как и показано как сделать эффект "сияния", но вот без теории что-то не то. Глянуть можно, всего-то 35 секунд
- How to use Classes in Godot! - Intermediate Tutorial - Меня обманули
- Premature Optimization (преждевременная оптимизация) - Для меня это не в новинку, но иногда стоит напоминать себе про "очевидные" вещи, чтобы не забывать о них. Настоятельно рекомендую вообще всем для просмотра и, дополнительно, еще рекомендую эту статью для прочтения. А еще классную фразу из комментов под видео процитирую:
Если твой код не работает, нам не важно насколько быстро он не работает
[EN] If your code doesn't work, we don't care how fast it doesn't work
Именно поэтому нет плохих языков (
Последний год я стараюсь подходить к написанию любого кода со следующей стратегией:
1. Написать абы-как, но быстро, чтобы оно работало
2. Отрефакторить - разбить на маленькие части если надо, поправить названия функций и всякие другие мелочи и не только
Самое главное пункт №2 не пропускать
- Learn how to structure scenes! || Composition Demo - Снова обманули, тут чел не композицию делает, а наследование, еще и стиль кода у него скажем так странненький.. не рекомендую, лучше бы эти 30 минут поиграл в весёлую ферму
- How To Create A Health Controller In Godot (Tutorial) - И тут я понял, что не надо заглядывать в своё "Посмотреть позже", а лучше продолжать читать документацию Godot до потери пульса, а то с такими гайдами пульс можно потерять раньше времени. Контроллер из видео (по факту компонент) был сделан чтобы его использовать и переиспользовать в виде композиции, он прям создан для этого, но автор видео не развил полностью идею композиции и сделал гайд на "отвались", по крайней мере мне так показалось
- Let's Fix Your Sprite's Sorting Order... - А вот это видео рекомендую всем, тут за полторы минуты реально показывается как фиксить Y-Sort спрайтов, что особенно актуально для top-down игр. Только z-index не надо поднимать как он это делает, это лишнее
Также забыл написать про ответ на вопрос про звуки "Как правильно проигрывать звук до конца, если родительская нода очищена/удалена?". Я предложил своё сомнительное решение, но препод сказал что так как раз нормально делать, только надо следить чтобы слишком много звуков одновременно не было и все такое
Решение заключается в том, чтобы создать глобальный скрипт, у которого будет функции по типу "play_sound(stream)" и эти функции будут добавлять прям в корень сцены звуки, которые будут автоматически удаляться по проигрыванию. К слову для "летающих чисел" тоже прикручу такую же логику, а то сейчас там неюзабельный подход через "общий" компонент-спавнер и еще один спавнер, только он подключается к HealthComponent и переиспользует "общий" спавнер, в общем это неудобно и надо переделать
Ночь - идеальное время чтобы просмотреть часть про метапрогрессию (страшная механика), а сразу после можно и к доделкам игры приступить, всё по плану
#godot #разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2🤔2🤝2🔥1
День 136
Наконец-то добрался к постам✋
Сначала про вторник
Как и планировал - глянул часть про метапрогрессию в курсе. Что самое страшное для меня было это система сохранений, чтобы при перезапуске игры не приходилось начинать всё с самого нуля, даже те 3 поля в настройках чтобы не сбрасывались
Страшное оно было почему - потому что я начитался в чатике по годоту 20тыщ вариантов реализации сохранений, 30тыщ вопросов про эти самые сохранения, и тут я сижу, смотрю курс - а сохранения.. реализуются в "пару строк", так еще и максимально удобно и там ну вообще никаких разногласий даже быть не может, м-да🙂
Грубо говоря это просто три этапа:
1. Определить путь к сохранению. Используется папка с user data, на каждой ОС она своя и годот любезно делает всю работу по поискам за нас, нам же только надо дать название файлу с сохранением
2. Сохранять игру когда надо
3. Загружать данные когда надо
И все? Да, и всё.. а я то в чатиках столько ужасов и костылей насмотрелся, кто-то в .txt файл сохранял данные, потом их парсил чтобы в дикт собирать, кто-то тупо в res:// (корень проекта) сохранял данные через файлы ресурсов .tres и так далее
А сохранять-то игру просто и удобно - закинул словарь с данными в метод
Прикреплю скриншот с видео, где показана реализация сохранения мета-улучшений. Один "чистый", а второй с комментариями от меня лично😎
Конечно же при сохранении текущего состояния игры, всех сцен и нод на экране это будет слегка сложнее, но костылями-то и не пахнет, всё по-человечески🤷♂️
В документации есть даже пример сохранения текущего состояния игры
#godot #разработка
Наконец-то добрался к постам
Сначала про вторник
Как и планировал - глянул часть про метапрогрессию в курсе. Что самое страшное для меня было это система сохранений, чтобы при перезапуске игры не приходилось начинать всё с самого нуля, даже те 3 поля в настройках чтобы не сбрасывались
Страшное оно было почему - потому что я начитался в чатике по годоту 20тыщ вариантов реализации сохранений, 30тыщ вопросов про эти самые сохранения, и тут я сижу, смотрю курс - а сохранения.. реализуются в "пару строк", так еще и максимально удобно и там ну вообще никаких разногласий даже быть не может, м-да
Грубо говоря это просто три этапа:
1. Определить путь к сохранению. Используется папка с user data, на каждой ОС она своя и годот любезно делает всю работу по поискам за нас, нам же только надо дать название файлу с сохранением
2. Сохранять игру когда надо
3. Загружать данные когда надо
И все? Да, и всё.. а я то в чатиках столько ужасов и костылей насмотрелся, кто-то в .txt файл сохранял данные, потом их парсил чтобы в дикт собирать, кто-то тупо в res:// (корень проекта) сохранял данные через файлы ресурсов .tres и так далее
А сохранять-то игру просто и удобно - закинул словарь с данными в метод
file.store_var(save_data) и готово, загрузить данные? Пожалуйста - file.get_var() и все данные уже "на столе"Прикреплю скриншот с видео, где показана реализация сохранения мета-улучшений. Один "чистый", а второй с комментариями от меня лично
Конечно же при сохранении текущего состояния игры, всех сцен и нод на экране это будет слегка сложнее, но костылями-то и не пахнет, всё по-человечески
В документации есть даже пример сохранения текущего состояния игры
#godot #разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👏3👍2
День 137
TL;DR Звуки это сложно.. снова
В среду япродолжил разрабатывать игру был проджект-менеджером
Нам нужны звуки. И музыка.🏃♂️
Раньше мы каждый раз созванивались с звукарем на пару часов и он в это время активно что-то делал, а я слушал и так по кругу. Это всё конечно хорошо, но, пока что, намного удобнее вести разработку асинхронно, не завися друг от друга
Поэтому я доделал дебаг-сцену, на которую добавил и дальше буду добавлять разные кнопки по типу "Открыть это", "Открыть то", "Поднять уровень", "Заспавнить что-то" и т.п.
После этого мы созвонились с звукарем под вечер и настроили ему проект, я помог ему минимально разобраться в движке, чтобы он сам мог сначала делать звуки, потом закидывать в игру и сразу же тестировать без моего вмешательства - это очень удобно
На данный момент мы работаем над следующими звуками:
- Экран поражения
- Экран победы
- Повышение уровня / экран выбора мутаций
- Улучшение оружия / экран выбора улучшения
- Выбор улучшения оружия
- Выбор мутации
Вроде еще несколько, но я как-то подзабыл (подзабил ) и не вписал это в нашу борду в HacknPlan 🥴
В любом случае мы постепенно будет обновлять и добавлять звуки, их там еще предостаточно. Никто из нас раньше не делал звуки для игр, так что пока что активно качаем скилл в этом, тренируемся, экспериментируем, в итоге получится бомбезно (но уже не в этой игре👀 )
Т.к. в тот день я уделил так или иначе всё время звукам - то решил поизучать вопрос насчет проигрывания звуков без прерывания детальнее и, к моему искреннему и приятному удивлению популярным и хорошим решением и правда считается динамическое создание нод-звуков в корне сцены и их автоматическое освобождение, вот в этом видео очень даже неплохо (хоть и косвенно) показано и рассказано решение проблем со звуками
Звукарь немного поигрался со звуками в движке и сказал, что "работа со звуком в годоте мягко говоря никакущая, так сказать ползунки громкости это максимум что работает стабильно и хорошо, фильтры грубые/не точные" и всё в таком духе
Но вот я наткнулся на интеграцию WWISE в виде плагина для годот (это официальный плагин от WWISE к слову). WWISE (Wave Works Interactive Sound Engine) - это профессиональная "программа-посредник", которая позволяет создавать, редактировать и делать практически что-угодно со звуком в игровых движках, конечно же включая тот же Unity и Unreal Engine. Осталось только обрадовать звукаря и сказать, что жизнь у него удалась🤝 🤝
Женя (звукарь) - реально талантливый и жесткий чел, так что мы будем уделять особое внимание звукам и, в особенности, музыке/композициям/саундтрекам в играх
Когда-то давно вначале пути я хотел быть разработчиком-одиночкой, но это долгий и тернистый путь, который, скорее всего, приведёт к разочарованию, огромному труду и.. "вникуда"
Я уже расписывал очень подробно почему быть "мастером на все руки" плохо, очень рекомендую прочитать тот пост, вот пара важных цитат с поста:
Довольно много игр вывозят стилистикой ИЛИ музыкальным сопровождением ИЛИ геймплеем и т.д.. Чаще всего это из-за того, что главный разработчик это "человек-оркестр", который физически не может быть экспертом-экспертом в очень разных областях. Если же есть команда - можно стараться вывозить если не сразу всем, то как минимум несколькими, что более чем реально
Это правда тяжело - находить время на хобби, когда уже есть грубо говоря семья + две работы, но мне нравится и я разгружаюсь этим (как бы странно это не звучало). Через пару месяцев вероятно времени станет значительно больше (на 8 часов как минимум, если вы понимаете о чем я👀 ) и я смогу уделять х2 времени разработке. Мечты мечты..
Прикрепил видео с процессом создания дебаг сцены и результатом дебага сцены, а на днях (мб сегодня) смонтирую небольшой видосик с забавными моментами с созвона с звукарем (один микромомент прикреплю к этому посту тоже👀 )
#godot #разработка
TL;DR Звуки это сложно.. снова
В среду я
Нам нужны звуки. И музыка.
Раньше мы каждый раз созванивались с звукарем на пару часов и он в это время активно что-то делал, а я слушал и так по кругу. Это всё конечно хорошо, но, пока что, намного удобнее вести разработку асинхронно, не завися друг от друга
Поэтому я доделал дебаг-сцену, на которую добавил и дальше буду добавлять разные кнопки по типу "Открыть это", "Открыть то", "Поднять уровень", "Заспавнить что-то" и т.п.
После этого мы созвонились с звукарем под вечер и настроили ему проект, я помог ему минимально разобраться в движке, чтобы он сам мог сначала делать звуки, потом закидывать в игру и сразу же тестировать без моего вмешательства - это очень удобно
На данный момент мы работаем над следующими звуками:
- Экран поражения
- Экран победы
- Повышение уровня / экран выбора мутаций
- Улучшение оружия / экран выбора улучшения
- Выбор улучшения оружия
- Выбор мутации
Вроде еще несколько, но я как-то подзабыл (
В любом случае мы постепенно будет обновлять и добавлять звуки, их там еще предостаточно. Никто из нас раньше не делал звуки для игр, так что пока что активно качаем скилл в этом, тренируемся, экспериментируем, в итоге получится бомбезно (но уже не в этой игре
Т.к. в тот день я уделил так или иначе всё время звукам - то решил поизучать вопрос насчет проигрывания звуков без прерывания детальнее и, к моему искреннему и приятному удивлению популярным и хорошим решением и правда считается динамическое создание нод-звуков в корне сцены и их автоматическое освобождение, вот в этом видео очень даже неплохо (хоть и косвенно) показано и рассказано решение проблем со звуками
Звукарь немного поигрался со звуками в движке и сказал, что "работа со звуком в годоте мягко говоря никакущая, так сказать ползунки громкости это максимум что работает стабильно и хорошо, фильтры грубые/не точные" и всё в таком духе
Но вот я наткнулся на интеграцию WWISE в виде плагина для годот (это официальный плагин от WWISE к слову). WWISE (Wave Works Interactive Sound Engine) - это профессиональная "программа-посредник", которая позволяет создавать, редактировать и делать практически что-угодно со звуком в игровых движках, конечно же включая тот же Unity и Unreal Engine. Осталось только обрадовать звукаря и сказать, что жизнь у него удалась
Женя (звукарь) - реально талантливый и жесткий чел, так что мы будем уделять особое внимание звукам и, в особенности, музыке/композициям/саундтрекам в играх
Когда-то давно вначале пути я хотел быть разработчиком-одиночкой, но это долгий и тернистый путь, который, скорее всего, приведёт к разочарованию, огромному труду и.. "вникуда"
Я уже расписывал очень подробно почему быть "мастером на все руки" плохо, очень рекомендую прочитать тот пост, вот пара важных цитат с поста:
Довольно много игр вывозят стилистикой ИЛИ музыкальным сопровождением ИЛИ геймплеем и т.д.. Чаще всего это из-за того, что главный разработчик это "человек-оркестр", который физически не может быть экспертом-экспертом в очень разных областях. Если же есть команда - можно стараться вывозить если не сразу всем, то как минимум несколькими, что более чем реально
Это правда тяжело - находить время на хобби, когда уже есть грубо говоря семья + две работы, но мне нравится и я разгружаюсь этим (как бы странно это не звучало). Через пару месяцев вероятно времени станет значительно больше (на 8 часов как минимум, если вы понимаете о чем я
Прикрепил видео с процессом создания дебаг сцены и результатом дебага сцены, а на днях (мб сегодня) смонтирую небольшой видосик с забавными моментами с созвона с звукарем (один микромомент прикреплю к этому посту тоже
#godot #разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8
Media is too big
VIEW IN TELEGRAM
День 138-139
Вчера я наконец-то приступил к игровым доделкам, начал с первого пункта - "Добавить 6 оставшихся улучшений для пистолета"
Начал с Пронзающих Выстрелов, сделать их было очень просто, ведь я уже реализовал когда-то ранее систему прочности у пуль, переиспользовав компонент HealthComponent и создав ProjectileHurtboxComponent, ведь я знал что оно мне понадобится🎩
Для пуль будет одна логика прочности, для стрел - другая
У пуль прочность/здоровье отвечает за кол-во максимально пораженных целей, после которых пуля исчезнет
У стрел же оно будет отвечать (в теории) одновременно и за наносимый урон и за кол-во прочности
Как будут работать стрелы:
1. У стрелы есть 6 прочности
2. Стрела летит в Кролика, который имеет 4хп
3. Стрела наносит Кролику 4хп, убивает его и летит дальше, НО у стрелы теперь урон = прочности = 2
С такой механикой мне или придется ограничить максимально наносимый урон или же ну уж очень хорошо продумать улучшения для лука, чтобы не было дисбаланса из-за этой механики прочности
Сегодня же был практически день-отдых, только созвонился с звукарем на часок, обсудили текущий результат и следующие звуки, которые нам нужны, включая самый главный - звук нанесения урона врагу. Он должен быть не надоедливым и приятным, ведь игра должна приносить удовольствие😉
Также я узнал почему даже с внешним микрофоном у меня всё еще звук будто из подвала - встроенная звуковая карта в моём ноуте не очень, и если взять даже самую бюджетную, то разница в записи голоса будет как небо и земля. Хотел сегодня купить её, но все магазины уже как раз закрывались, так что в субботу у меня будет студийная запись голоса (из подвала )
На выходных планы наполеоновские:
1. Добавить все недостающие улучшения пистолету
2. Добавить лук (вряд-ли улучшения успею к нему запилить, так что главная цель - сделать второе играбельное оружие)
К слову в каждом оружии будут взаимоисключающие улучшения, для пистолета можно взять или Рикошет или Пронзающие Пули. Логику такого поведения уже продумал, если вкратце - то всё просто👀
Всё просто - к каждому улучшению добавляется массив
Также прикрепил микро-видео с наработками для пронзающих пуль
Всем хороших выходных, наконец-то отдых🥲
#ritkarampage #разработка #godot
Вчера я наконец-то приступил к игровым доделкам, начал с первого пункта - "Добавить 6 оставшихся улучшений для пистолета"
Начал с Пронзающих Выстрелов, сделать их было очень просто, ведь я уже реализовал когда-то ранее систему прочности у пуль, переиспользовав компонент HealthComponent и создав ProjectileHurtboxComponent, ведь я знал что оно мне понадобится
Для пуль будет одна логика прочности, для стрел - другая
У пуль прочность/здоровье отвечает за кол-во максимально пораженных целей, после которых пуля исчезнет
У стрел же оно будет отвечать (в теории) одновременно и за наносимый урон и за кол-во прочности
Как будут работать стрелы:
1. У стрелы есть 6 прочности
2. Стрела летит в Кролика, который имеет 4хп
3. Стрела наносит Кролику 4хп, убивает его и летит дальше, НО у стрелы теперь урон = прочности = 2
С такой механикой мне или придется ограничить максимально наносимый урон или же ну уж очень хорошо продумать улучшения для лука, чтобы не было дисбаланса из-за этой механики прочности
Сегодня же был практически день-отдых, только созвонился с звукарем на часок, обсудили текущий результат и следующие звуки, которые нам нужны, включая самый главный - звук нанесения урона врагу. Он должен быть не надоедливым и приятным, ведь игра должна приносить удовольствие
Также я узнал почему даже с внешним микрофоном у меня всё еще звук будто из подвала - встроенная звуковая карта в моём ноуте не очень, и если взять даже самую бюджетную, то разница в записи голоса будет как небо и земля. Хотел сегодня купить её, но все магазины уже как раз закрывались, так что в субботу у меня будет студийная запись голоса (
На выходных планы наполеоновские:
1. Добавить все недостающие улучшения пистолету
2. Добавить лук (вряд-ли улучшения успею к нему запилить, так что главная цель - сделать второе играбельное оружие)
К слову в каждом оружии будут взаимоисключающие улучшения, для пистолета можно взять или Рикошет или Пронзающие Пули. Логику такого поведения уже продумал, если вкратце - то всё просто
Всё просто - к каждому улучшению добавляется массив
incompatible_uprades: Array[Id], который содержит улучшения, которые будут исключены из пула при подборе текущегоТакже прикрепил микро-видео с наработками для пронзающих пуль
Всем хороших выходных, наконец-то отдых
#ritkarampage #разработка #godot
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤2🫡1
День 140-141
Снова двойной пост, но это последний (не обещаю )
Это будет небольшой пост, основная интересная визуальная часть связанная с улучшениями оружий будет сегодня/завтра
— Часть про график —
В общем что самое важное произошло - я настроил себе график, прям реально расписал по часам что и когда я должен делать. Начал я со вчерашнего дня, а сегодня уже полностью влился в график, и это офигеть как эффективно, я знаю когда я могу отдохнуть, когда и сколько мне надо поработать/поучиться. В теории теперь даже постов за вчера не будет, т.к. я буду учиться не под ночь, а как нормальный белый человек - вечером/днем после работы
Приложение называется Sectograph, офигеть какое удобное. Я поставил виджет на главный рабочий стол на телефоне + добавил уведомления за 10 минут до начала какого-то "дела" и теперь времени просто нереально много
Пару скринов прикрепил с моего так называемого графика
Прокрастинация выходит на уровень "по графику"🎩
— Разработка —
Сделать всё не успел за два дня, но вышло сделать самое главное - WeaponUpgradesPoolComponent, это компонент, который я подсоединяю к WeaponUpgradeManager и менеджер просто вызывает upgrades_pool.pick_upgrades() и всё, больше в менеджере нет логики по выбиранию нужного улучшения, удаления из пула улучшений, которых больше нельзя подобрать. Фильтрация всякая, дополнительная логика, например:
1. Эволюционные улучшения появляются только начиная с 3-й наковальни
2. Если игрок по любой причине не взял эволюционное улучшение для оружия, а уже поднято 5 или больше наковален, то при каждом подборе наковальни будет появляться как минимум одно эволюционное улучшение
В общем для баланса некоторые штуки накрутил, чтобы было всё честно
Компонент пула улучшений полностью самостоятельный - он подписывается на разные сигналы от GameEvents и реагирует на них, то ли обновить полностью пул улучшений то ли отфильтровать его, оставив только "доступные". Менеджер в эти дела не лезет
Еще я начал именовать приватные методы через нижнее подчеркивание "_", раньше мне это не нравилось, но теперь я понимаю логику этого и.. теперь мне нравится👀 , тем более так рекомендуется в стайлгайде от годота
WeaponUpgradeManager почистил (коммит), а WeaponUpgradesPoolComponent создал (коммит) и перенёс туда всю логику пула улучшений
— Маркетинг на будущее —
Нашел специалиста, который прям нереально разбирается в том, как успешно выпустить свою игру, где её продвигать, что можно делать, а что нельзя и так далее
Сейчас готовлю ему список вопросов, а потом мы созвонимся и я поделюсь самыми интересными вещами, может даже видосик смонтирую совсем небольшой
На данном этапе я-то делаю игры просто для практики, но в планах спустя 3-6+ месяцев начать разрабатывать серьёзный коммерческий проект, но для этого нужна серьёзная подготовка
Я когда-то это писал и вот решил снова упомянуть - рекламы в канале никогда не будет, это вот моя отдушина, история, и если и рекомендовать что-то, то только по собственному желанию и что реально будет всем полезно (как тот курс на юдеми - он божественен). А деняк мне и так хватает, работы то две🤝 🤝
Пост вышелнебольшой, ведь я хозяин своего слова, слово дал - слово забрал 😎
#godot #ritkarampage #разработка
Снова двойной пост, но это последний (
Это будет небольшой пост, основная интересная визуальная часть связанная с улучшениями оружий будет сегодня/завтра
— Часть про график —
В общем что самое важное произошло - я настроил себе график, прям реально расписал по часам что и когда я должен делать. Начал я со вчерашнего дня, а сегодня уже полностью влился в график, и это офигеть как эффективно, я знаю когда я могу отдохнуть, когда и сколько мне надо поработать/поучиться. В теории теперь даже постов за вчера не будет, т.к. я буду учиться не под ночь, а как нормальный белый человек - вечером/днем после работы
Приложение называется Sectograph, офигеть какое удобное. Я поставил виджет на главный рабочий стол на телефоне + добавил уведомления за 10 минут до начала какого-то "дела" и теперь времени просто нереально много
Пару скринов прикрепил с моего так называемого графика
Прокрастинация выходит на уровень "по графику"
— Разработка —
Сделать всё не успел за два дня, но вышло сделать самое главное - WeaponUpgradesPoolComponent, это компонент, который я подсоединяю к WeaponUpgradeManager и менеджер просто вызывает upgrades_pool.pick_upgrades() и всё, больше в менеджере нет логики по выбиранию нужного улучшения, удаления из пула улучшений, которых больше нельзя подобрать. Фильтрация всякая, дополнительная логика, например:
1. Эволюционные улучшения появляются только начиная с 3-й наковальни
2. Если игрок по любой причине не взял эволюционное улучшение для оружия, а уже поднято 5 или больше наковален, то при каждом подборе наковальни будет появляться как минимум одно эволюционное улучшение
В общем для баланса некоторые штуки накрутил, чтобы было всё честно
Компонент пула улучшений полностью самостоятельный - он подписывается на разные сигналы от GameEvents и реагирует на них, то ли обновить полностью пул улучшений то ли отфильтровать его, оставив только "доступные". Менеджер в эти дела не лезет
Еще я начал именовать приватные методы через нижнее подчеркивание "_", раньше мне это не нравилось, но теперь я понимаю логику этого и.. теперь мне нравится
WeaponUpgradeManager почистил (коммит), а WeaponUpgradesPoolComponent создал (коммит) и перенёс туда всю логику пула улучшений
— Маркетинг на будущее —
Нашел специалиста, который прям нереально разбирается в том, как успешно выпустить свою игру, где её продвигать, что можно делать, а что нельзя и так далее
Сейчас готовлю ему список вопросов, а потом мы созвонимся и я поделюсь самыми интересными вещами, может даже видосик смонтирую совсем небольшой
На данном этапе я-то делаю игры просто для практики, но в планах спустя 3-6+ месяцев начать разрабатывать серьёзный коммерческий проект, но для этого нужна серьёзная подготовка
Я когда-то это писал и вот решил снова упомянуть - рекламы в канале никогда не будет, это вот моя отдушина, история, и если и рекомендовать что-то, то только по собственному желанию и что реально будет всем полезно (как тот курс на юдеми - он божественен). А деняк мне и так хватает, работы то две
Пост вышел
#godot #ritkarampage #разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍2❤1
Media is too big
VIEW IN TELEGRAM
День 142
Сегодня финализировал улучшение PiercingShots и немного порефакторил логику пистолета и пули
— Апдейт по прогрессу —
Добавил уменьшение урона на 30% с каждым попаданием по врагу, уменьшение именно базового урона, а не текущего. Т.е. если урон был 10, то после 1-го врага будет 7, а после - 4. К слову на прикреплённом видео я еще это не пофиксил, и там урон отнимался от текущего, т.е. 10 => 7 => 4.9 (7 - 30% = 4.9)
Также добавил уменьшение скорости пули, единоразовое замедление пули на 20% при подборе PiercingShots
И перенёс ответственность за кол-во наносимого урона из сцены пистолета в сцену пули, а то раньше в скрипте пистолета было что-то такое:
Теперь же пуля сама решает, сколько урона ей наносить, сильная и независимая😎
Завтра в планах добавить рикошет и взрывопули
Да вот только я никак не могу придумать пятое улучшение для пистолета типа "Механика", которое добавляло бы еще какой-то эффект пистолету/пуле, может кто идею подкинет?👀
— Технические детали —
Я познал небольшую боль типизации в GDScript - тут нет дженериков. И мне их уже начинает не хватать
У меня есть универсальный класс - WeightedTable, и в функции pick_random_items и pick_random_item я возвращаю заранее неизвестный тип данных, вот к примеру возьмём pick_random_items - он возвращает массив.. чего-то, чего-угодно. Во многих языках я могу ему сказать что: "Тут я ожидаю от тебя Array[WeaponUpgrade], а тут я ожидаю от тебя Array[int]", делается это примерно таким образом:
Но так нельзя, и приходится лопатить костыли (как мне кажется) для точной типизации. Я делаю это таким образом:
Еще мне ответил добрый человек в чатике насчет использования Array.assign, я еще не тестировал, но должно работать, в доке есть упоминание про типы "... Performs type conversions if the array is typed.". Если это будет работать корректно - то это просто спасение
Как обычно - прикрепляю видео с прогрессом и делаю акцент на багах с врагами, когда они краснеют (буквально). Об этом баге и еще нескольких мне очень помог еще один добрый человек, который написал большой фидбек про текущее состояние игры
Когда игра уже будет примерно законченной (через пару недель(верим) ), то я добавлю возможность давать фидбек из самой игры (почти), может будет кнопка "Нашел баг / Есть идея?" и по нажатию скорее всего будет открываться форма гугловская, где можно будет и видосик с скриншотами прикрепить и может идеи расписать
Вообще я же "веб-погромист", то может я запилю небольшой удобный сайт, где можно будет добавлять и просматривать все идеи/баги для конкретной игры, комментировать идеи/баги и отслеживать их прогресс (рассылка спама на мейл). Кто-то открыл баг - статус переходит в "на рассмотрении", когда там я или кто-то другой потестил и такая проблема присутствует - то статус становится "в процессе" и так далее, я думаю было бы удобно, но надо еще подумать хорошенько об этом, стоит ли оно того
#godot #ritkarampage #разработка
Сегодня финализировал улучшение PiercingShots и немного порефакторил логику пистолета и пули
— Апдейт по прогрессу —
Добавил уменьшение урона на 30% с каждым попаданием по врагу, уменьшение именно базового урона, а не текущего. Т.е. если урон был 10, то после 1-го врага будет 7, а после - 4. К слову на прикреплённом видео я еще это не пофиксил, и там урон отнимался от текущего, т.е. 10 => 7 => 4.9 (7 - 30% = 4.9)
Также добавил уменьшение скорости пули, единоразовое замедление пули на 20% при подборе PiercingShots
И перенёс ответственность за кол-во наносимого урона из сцены пистолета в сцену пули, а то раньше в скрипте пистолета было что-то такое:
var bullet = bullet_scene.instantiate()
...
bullet.hitbox_component.damage = 2.0
Теперь же пуля сама решает, сколько урона ей наносить, сильная и независимая
Завтра в планах добавить рикошет и взрывопули
Да вот только я никак не могу придумать пятое улучшение для пистолета типа "Механика", которое добавляло бы еще какой-то эффект пистолету/пуле, может кто идею подкинет?
— Технические детали —
Я познал небольшую боль типизации в GDScript - тут нет дженериков. И мне их уже начинает не хватать
У меня есть универсальный класс - WeightedTable, и в функции pick_random_items и pick_random_item я возвращаю заранее неизвестный тип данных, вот к примеру возьмём pick_random_items - он возвращает массив.. чего-то, чего-угодно. Во многих языках я могу ему сказать что: "Тут я ожидаю от тебя Array[WeaponUpgrade], а тут я ожидаю от тебя Array[int]", делается это примерно таким образом:
var picked_items = pick_random_items<Array[WeaponUpgrade]>()
# или так
var picked_items = pick_random_items<Array[int]>()
Но так нельзя, и приходится лопатить костыли (как мне кажется) для точной типизации. Я делаю это таким образом:
var random_picked_upgrades = upgrade_pool.pick_random_items(3)
var picked_upgrades: Array[WeaponUpgrade] = []
for upgrade in random_picked_upgrades:
if upgrade is WeaponUpgrade:
picked_upgrades.append(upgrade)
else:
push_error("Picked item is not WeaponUpgrade")
Еще мне ответил добрый человек в чатике насчет использования Array.assign, я еще не тестировал, но должно работать, в доке есть упоминание про типы "... Performs type conversions if the array is typed.". Если это будет работать корректно - то это просто спасение
Как обычно - прикрепляю видео с прогрессом и делаю акцент на багах с врагами, когда они краснеют (буквально). Об этом баге и еще нескольких мне очень помог еще один добрый человек, который написал большой фидбек про текущее состояние игры
Когда игра уже будет примерно законченной (через пару недель
Вообще я же "веб-погромист", то может я запилю небольшой удобный сайт, где можно будет добавлять и просматривать все идеи/баги для конкретной игры, комментировать идеи/баги и отслеживать их прогресс (рассылка спама на мейл). Кто-то открыл баг - статус переходит в "на рассмотрении", когда там я или кто-то другой потестил и такая проблема присутствует - то статус становится "в процессе" и так далее, я думаю было бы удобно, но надо еще подумать хорошенько об этом, стоит ли оно того
#godot #ritkarampage #разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3
День 143
Сделал улучшение "Рикошет"
— Улучшение "Рикошет" —
Думал будет быстрее, но я долго тупил над нахождением угла поворота пули для следующей цели, чтобы пуля повернулась куда нужно и полетела в сторону врага
В общем угол я искал постоянно не тот, пробовал
Почему-то пристал я к этому angle_to, хотя решение оказалось очень простым -
— Красные враги —
Пофиксил баг с бесконечно краснеющими врагами, спасибо Bridge Burning за наводку, но я решил не "убивать" твин перед использованием, а просто создавать каждый раз новый, таким образом старые автоматически останавливаются и умирают
До этого я пару раз искал "А как же мне переиспользовать Tween?" - ответ почти всегда был однозначный: "Никак. Их не нужно переиспользовать". В общем-то так и есть, но все-таки надо будет найти способ переиспользовать анимации появления/затухания/и т.п., ведь AnimationPlayer нельзя нормально переиспользовать для разных нод (а часто вообще невозможно)
Пока что идеи как решить это две:
1. Создать функции-аниматоры в каком-то синглтоне под названием TweenEffector, где каждая функция будет принимать настройки для анимации (длительность, элемент), а первым аргументов будет tween, который создается перед вызовом этой функции, но самое главное создавать этот твин в той ноде, где будет происходить анимация, иначе не сработает (они привязаны к текущей ноде походу)
2. Похожий вариант на первый, но с одним отличием - это будет метод для анимации, а использовать его нужно будет как-то так:
Пока писал это всё то решил сделать вариант №2, потому что вариант №1 у меня уже реализован и он мне не нравится 👀
— Дебаг Сцена —
Потихоньку улучшаю дебаг сцену и очень активно ей пользуюсь, хотя изначально она делалась только для звукаря, но вот эти кнопочки и "защита" от обезяны(меня) мне очень сильно помогает и ускоряет разработку и тестирование игры
Прикрепил видео с процессом моих страданий с поиском угла для рикошета и сам результат
#godot #ritkarampage #разработка
Сделал улучшение "Рикошет"
— Улучшение "Рикошет" —
Думал будет быстрее, но я долго тупил над нахождением угла поворота пули для следующей цели, чтобы пуля повернулась куда нужно и полетела в сторону врага
В общем угол я искал постоянно не тот, пробовал
global_position.angle_to(enemy.global_position) и дебажил что тут не так, потом Vector2.RIGHT.angle_to(enemy.global_position) и снова дебаггинг, принты в консоль и всё такоеПочему-то пристал я к этому angle_to, хотя решение оказалось очень простым -
global_position.direction_to(enemy.global_position).angle()— Красные враги —
Пофиксил баг с бесконечно краснеющими врагами, спасибо Bridge Burning за наводку, но я решил не "убивать" твин перед использованием, а просто создавать каждый раз новый, таким образом старые автоматически останавливаются и умирают
До этого я пару раз искал "А как же мне переиспользовать Tween?" - ответ почти всегда был однозначный: "Никак. Их не нужно переиспользовать". В общем-то так и есть, но все-таки надо будет найти способ переиспользовать анимации появления/затухания/и т.п., ведь AnimationPlayer нельзя нормально переиспользовать для разных нод (а часто вообще невозможно)
Пока что идеи как решить это две:
1. Создать функции-аниматоры в каком-то синглтоне под названием TweenEffector, где каждая функция будет принимать настройки для анимации (длительность, элемент), а первым аргументов будет tween, который создается перед вызовом этой функции, но самое главное создавать этот твин в той ноде, где будет происходить анимация, иначе не сработает (они привязаны к текущей ноде походу)
2. Похожий вариант на первый, но с одним отличием - это будет метод для анимации, а использовать его нужно будет как-то так:
var tween := create_tween()
tween.tween_method(TweenEffector.fade_in.bind(panel_element), 0, 1, 0.3)
...
#TweenEffector
func fade_in(value: float, item: CanvasItem):
item.modulate.a = 1 * value
Пока писал это всё то решил сделать вариант №2, потому что вариант №1 у меня уже реализован и он мне не нравится 👀
— Дебаг Сцена —
Потихоньку улучшаю дебаг сцену и очень активно ей пользуюсь, хотя изначально она делалась только для звукаря, но вот эти кнопочки и "защита" от обезяны
Прикрепил видео с процессом моих страданий с поиском угла для рикошета и сам результат
#godot #ritkarampage #разработка
👍2🔥2❤1
Как-то я уже делал опросник насчет частоты постов, так вот спустя 2 месяца решил провести еще один
Суть при каждом варианте останется та же - я буду писать результат за какое-то кол-во дней (ака двойные посты, только тройные или больше👀 )
Скорее всего теперь посты о девлоге будут каждые 3-5 дней, в зависимости от опросника. На посты и некий монтаж микровидео уходит час-два в день (или раз в два дня 👀 👀 👀 👀 👀 ), а это время я могу уделять другим аспектам разработки игр:
- Сама разработка
- Проджект менеджмент (поговорить с звукарем, посоздавать и поперетаскивать тасочки на борде)
- Изучение гейм-дизайна. Придётся все-таки читать книги по гейм-дизайну, а технические книги неинтересно читать, там нет картинок😢
- Сам процесс геймдизайна как текущей игры, так и следующих
А еще я прям кайфую от монтажа видосов, мне кажется еще месяц-два практики и монтаж будет уже на таком уровне, чтобы более активно и серьёзно вести ютуб канал и, может, тикток🎩
Также время от времени буду писать про какие-то интересные технические вещи + записывать про это видео, а не просто голым полотном текста это писать. Например сейчас на очереди такие вещи:
- Проблемы со шрифтами в Godot. Почему в редакторе шрифт пиксельный, а при запуске все хорошо? Хотя сам шрифт подключен векторный и не bitmap (пиксельный)
- Метод уточки. Как правильно задавать вопрос, чтобы получить ответ? Как получить ответ на вопрос даже не успев отправить сообщение?
- Видео про стейт-машину и разные подходы. У меня это очень болело вначале, разные подходы для состояний, то просто енамы внутри скрипта, то отдельные ноды для каждого состояния. Зачем нужен enter, process и exit в состояниях с реальным примером, а не каким-то абстрактным. Ну и конечно же расскажу про свой подход (фактически подход с курса на юдеми от Firebelley)
- Видео про архитектуру проекта. Как и что организовывать, как и что между собой связывать. Это тоже очень сильно болело у меня, потому что множество гайдов даже с англоязычного ютуба просто отвратительного качества, и я не про качество звука, ведь нам интересна сама польза материала - она перегружена и, чаще всего, просто нулевая. На русскоязычном ютубе про архитектуру почти ни слова🫡
В общем такие дела, ща закину опросник
Суть при каждом варианте останется та же - я буду писать результат за какое-то кол-во дней (ака двойные посты, только тройные или больше
Скорее всего теперь посты о девлоге будут каждые 3-5 дней, в зависимости от опросника. На посты и некий монтаж микровидео уходит час-два в день (
- Сама разработка
- Проджект менеджмент (поговорить с звукарем, посоздавать и поперетаскивать тасочки на борде)
- Изучение гейм-дизайна. Придётся все-таки читать книги по гейм-дизайну, а технические книги неинтересно читать, там нет картинок
- Сам процесс геймдизайна как текущей игры, так и следующих
А еще я прям кайфую от монтажа видосов, мне кажется еще месяц-два практики и монтаж будет уже на таком уровне, чтобы более активно и серьёзно вести ютуб канал и, может, тикток
Также время от времени буду писать про какие-то интересные технические вещи + записывать про это видео, а не просто голым полотном текста это писать. Например сейчас на очереди такие вещи:
- Проблемы со шрифтами в Godot. Почему в редакторе шрифт пиксельный, а при запуске все хорошо? Хотя сам шрифт подключен векторный и не bitmap (пиксельный)
- Метод уточки. Как правильно задавать вопрос, чтобы получить ответ? Как получить ответ на вопрос даже не успев отправить сообщение?
- Видео про стейт-машину и разные подходы. У меня это очень болело вначале, разные подходы для состояний, то просто енамы внутри скрипта, то отдельные ноды для каждого состояния. Зачем нужен enter, process и exit в состояниях с реальным примером, а не каким-то абстрактным. Ну и конечно же расскажу про свой подход (фактически подход с курса на юдеми от Firebelley)
- Видео про архитектуру проекта. Как и что организовывать, как и что между собой связывать. Это тоже очень сильно болело у меня, потому что множество гайдов даже с англоязычного ютуба просто отвратительного качества, и я не про качество звука, ведь нам интересна сама польза материала - она перегружена и, чаще всего, просто нулевая. На русскоязычном ютубе про архитектуру почти ни слова
В общем такие дела, ща закину опросник
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍1
Как часто выкладывать посты?
Final Results
41%
Раз в 3️⃣ дня
34%
Раз в 5️⃣ дней
25%
Удаляй канал, я любил посты каждый день 🤬
День 144-145
Я еще живой если что😉
— Маркетинговые и менеджерские штучки —
Вчера пообщался с топовым маркетологом, конечно же предварительно подготовив перед этим вопросы
Записал всю консультацию, чтобы ничего не упустить полезного, а завтра "обработаю" всё и напишу пост про вопросы-ответы, а пока что прикреплю скрин-затравку о том, какой минимум вопросов был на консультации
— Про посты —
Голоса из опросника выше разделились почти поровну, чего я вообще ожидал если честно🤔
Но, как я понимаю, очень много кто не против постов пореже
Как я пока планирую делать следующее
Разделить посты на разные типы
Теперь не будет "полотен" текста, в которых смешан и девлог и технические части и еще что-то. Теперь будет как минимум 2 типа постов:
Девлог
Короткий пост-результат с видео каждые 5 дней (для зумеров, как и заказывали🤝 🤝 )
Технические вещи и не только
Я частенько встречаю/сталкиваюсь с какими-то сложностями (надуманными в том числе) или с интересными решениями проблем, может какие-то мысли и/или полезные материалы
Такие посты будут с неопределённым графиком, но у меня каждый день было что рассказывать, так что я буду сжимать информацию и раз в несколько дней рассказывать что-то для разработчиков тоже
По планам именно на этот телеграм-канал - здесь будет уникальный контент, а не только девлоги и тех. штуки
Буду максимально открыто говорить про все мои действия, успехи/неудачи, суммы, стратегию маркетинга и так далее, уверен это будет полезно - мне можно будет оглянуться и увидеть условные ошибки, а вам можно будет учиться на моих ошибках (я так предпочитаю тоже делать, но не всегда есть возможность)
Я еще живой если что
— Маркетинговые и менеджерские штучки —
Вчера пообщался с топовым маркетологом, конечно же предварительно подготовив перед этим вопросы
Записал всю консультацию, чтобы ничего не упустить полезного, а завтра "обработаю" всё и напишу пост про вопросы-ответы, а пока что прикреплю скрин-затравку о том, какой минимум вопросов был на консультации
— Про посты —
Голоса из опросника выше разделились почти поровну, чего я вообще ожидал если честно
Но, как я понимаю, очень много кто не против постов пореже
Как я пока планирую делать следующее
Разделить посты на разные типы
Теперь не будет "полотен" текста, в которых смешан и девлог и технические части и еще что-то. Теперь будет как минимум 2 типа постов:
Девлог
Короткий пост-результат с видео каждые 5 дней (для зумеров, как и заказывали
Технические вещи и не только
Я частенько встречаю/сталкиваюсь с какими-то сложностями (надуманными в том числе) или с интересными решениями проблем, может какие-то мысли и/или полезные материалы
Такие посты будут с неопределённым графиком, но у меня каждый день было что рассказывать, так что я буду сжимать информацию и раз в несколько дней рассказывать что-то для разработчиков тоже
По планам именно на этот телеграм-канал - здесь будет уникальный контент, а не только девлоги и тех. штуки
Буду максимально открыто говорить про все мои действия, успехи/неудачи, суммы, стратегию маркетинга и так далее, уверен это будет полезно - мне можно будет оглянуться и увидеть условные ошибки, а вам можно будет учиться на моих ошибках (я так предпочитаю тоже делать, но не всегда есть возможность)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤4🔥3🎉1💯1🫡1
Пост про консультацию с маркетологом #1
Пост будет в стиле "Вопрос-Ответ", где мой вопрос будет слегка упрощён, а ответ будет содержать больше информации, чем в вопросе (так мне кажется будет лучше восприниматься информация)
Все умещу в один пост, так что разобью на парочку частей
Q: Как лучше собирать фидбек с игроков? Критика, баги, идеи и т.п.
Q: Стоит ли мне сосредоточиться на телеграмме именно как на площадке по продвижению моих игр?
Q: Стоит ли рассчитывать на СНГ аудиторию или лучше метить в Европу/США и т.п.?
Q: Как правильно анализировать рынок по играм моего жанра?
P.S. если ссылка на STEAMиздат не открывается (канал по инвайтам только) - то вот инвайт https://news.1rj.ru/str/+qWcZc4g1arRhMGY6
Q: Как понять, какую цену ставить за игру?
Q: ^ Дополнительный вопрос - Стоит ли выпускать Early Access/альфа/бета версии игр?
Q: Когда стоит начинать маркетинговую кампанию?
Пишу вторую часть🫡
#маркетинг
Пост будет в стиле "Вопрос-Ответ", где мой вопрос будет слегка упрощён, а ответ будет содержать больше информации, чем в вопросе (так мне кажется будет лучше восприниматься информация)
Все умещу в один пост, так что разобью на парочку частей
Q: Как лучше собирать фидбек с игроков? Критика, баги, идеи и т.п.
A: Пока нет странички в Стиме - собирать его в других соцсетях, например реддит/твиттер/тикток/Ютуб/itch.io. Насчёт опросников-анкет в тех же гугл формах - ну вот ты сам такое любишь? Представь - ты играешь, нажимаешь на кнопку в игре и тебя выкидывает на сайт и/или же тебя просит где-то разработчик заполнить форму, удобно? Такое никто не любит. Фидбек идёт "автоматически". Какой-то небольшой процент людей сами будут писать критику (поливать говном), хвалить или же предлагать что-то добавить. И это все на страничках с играми люди делают, но не в гугл формах и подобном
Q: Стоит ли мне сосредоточиться на телеграмме именно как на площадке по продвижению моих игр?
A: Нет. Телеграмм популярен в основном в СНГ, а основная платежеспособная аудитория идёт именно с Европы/США и других стран, а там телеграмм мягко говоря не распространен
Q: Стоит ли рассчитывать на СНГ аудиторию или лучше метить в Европу/США и т.п.?
A: Не стоит рассчитывать на СНГ, основной доход идёт от зарубежных стран
Q: Как правильно анализировать рынок по играм моего жанра?
A: Есть два основных показателя - кол-во денег к кол-ву игр
1. Если игр много, а денег мало - жанр не стоит выбирать как основной (он почти мертв)
2. Если игр мало, а денег много - это либо специфичный жанр (можно забуриться и залутать денег), либо что-то "оккупированное" ААА-проектами/компаниями, туда не стоит соваться
3. Если игр средне и денег средне - практически идеальный вариант, на это и рассчитываем
Вот тут хороший пост об этом от STEAMиздат
P.S. если ссылка на STEAMиздат не открывается (канал по инвайтам только) - то вот инвайт https://news.1rj.ru/str/+qWcZc4g1arRhMGY6
Q: Как понять, какую цену ставить за игру?
А: Есть три основных диапазона - $4.99, $9.99 и $14.99. Назначать стоит отталкиваясь от комплексности игры, её контента, качества и так далее
Q: ^ Дополнительный вопрос - Стоит ли выпускать Early Access/альфа/бета версии игр?
A: Нет, забудь про это всё. Выпускай только готовый продукт. Негативные отзывы тебе не нужны
Q: Когда стоит начинать маркетинговую кампанию?
А: За год до релиза
Пишу вторую часть
#маркетинг
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16❤5👍3
Пост про консультацию с маркетологом #2
Q: Стоит ли развивать ютуб и/или тикток? Если да - то какой контент туда лучше заливать?
Я спросил про этот тикток-аккаунт: "Вот как-то так это всё делать?", маркетолог ответил: "Да, очень хороший пример, даже себе сохраню"
Q: ^ Дополнительный вопрос - Что развивать, какие соц-сети?
Q: Какой бюджет мне потребуется для продвижения?
Q: ^ Дополнительный вопрос - Стоит ли покупать рекламу от самих площадок? Например реклама от тиктока/ютуба
Q: Какую роль играет локализация? Нужно ли переводить на 20тыщ языков или есть какие-то несколько основных?
Q: ^ Дополнительный вопрос - С помощью чего переводить? Это на каждый язык нанимать переводчика?
И сейчас будет третья часть - заключительная
#маркетинг
Q: Стоит ли развивать ютуб и/или тикток? Если да - то какой контент туда лучше заливать?
А: Да, стоит. Стоит развивать вообще ВСË, куда руки дотянутся, нужно всё трогать и всё прокачивать. Насчет контента:
1. Я работаю над игрой, в которой можно то и то (гифка), что думаете?
2. У меня сломалась игра, когда я добавил ...
3. Девлоги
4. Поначалу можно и всякие технические штуки, чтобы набрать начальную аудиторию
В идеале нужно нанять комьюнити-менеджера, чтобы он за всем самостоятельно следил, выкладывал и развивал соц. сети. Он будет приходить к тебе, запрашивать какие-то футажи или информацию и потом будет делать контент и развивать аккаунты
Я спросил про этот тикток-аккаунт: "Вот как-то так это всё делать?", маркетолог ответил: "Да, очень хороший пример, даже себе сохраню"
Q: ^ Дополнительный вопрос - Что развивать, какие соц-сети?
А: Основное твоё пристанище - это реддит. Помимо него нужно как минимум развивать твиттер, ютуб, тикток и itch.io
Q: Какой бюджет мне потребуется для продвижения?
А: Я бы не советовал для первой игры тратить больше $5000
Q: ^ Дополнительный вопрос - Стоит ли покупать рекламу от самих площадок? Например реклама от тиктока/ютуба
А: Нет, не стоит. Когда будешь уже приближаться к релизу и заниматься серьёзно маркетингом то нужно связываться с прессой и игровыми изданиями, чтобы они продвигали/обсуждали твой проект
Q: Какую роль играет локализация? Нужно ли переводить на 20тыщ языков или есть какие-то несколько основных?
А: Зависит от игры, но вот основные - Английский, Китайский (упрощённый), Испанский, Немецкий, Французский и Русский. Чаще всего их достаточно
Q: ^ Дополнительный вопрос - С помощью чего переводить? Это на каждый язык нанимать переводчика?
А: Есть специальные агенства по переводу игр
И сейчас будет третья часть - заключительная
#маркетинг
🔥11❤1
Пост про консультацию с маркетологом #3
Заключительный пост
Q: Сколько людей в небольшой команде должно быть?
Q: ^ Дополнительный вопрос - А что если я буду и разработчиком и геймдизайнером? У меня большой опыт в разработке и я могу выучить геймдизайн и тоже этим заниматься на хорошем уровне
Q: ^ Дополнительный вопрос - Как лучше делать звуки? Это так сложно даётся, я не всегда могу сам понять что я хочу от звукаря
Q: Какие инструменты/платформы лучше использовать для управления проектом и командой?
Q: На каком языке вести соц. сети?
Полезные материалы:
- Группа STEAMиздат. Обсуждение маркетинга в стиме и не только, огромное кол-во полезных материалов и постоянные обсуждения того же маркетинга и стратегий (реально полезно, прямо кладезь знаний). P.S. отдельное спасибо @repindevelop за наводку и инвайт в эту группу
- Тот самый маркетолог Daniel Stone, основатель группы STEAMиздат. К слову недавно он создал личный блог Уставший Паблишинг с статистиками, личными мыслями и полезными статьями
#маркетинг
Заключительный пост
Q: Сколько людей в небольшой команде должно быть?
А: Пятеро - разработчик, геймдизайнер, звукарь и два артиста (художника). Один художник занимается рисовкой чего-то сложного-большого, типа заставок, сложных спрайтов и т.д., а второй должен быть экспертом в анимировании
Q: ^ Дополнительный вопрос - А что если я буду и разработчиком и геймдизайнером? У меня большой опыт в разработке и я могу выучить геймдизайн и тоже этим заниматься на хорошем уровне
А: На двух стульях не усидишь. Документацию надо писать, плейтестить игру постоянно, менеджить проект и общаться с художниками и звукарями, и, что основное - заниматься самим геймдизайном, балансировка, проработка механик и так далее. Всё упирается во время, его просто не хватит чтобы двумя направлениями заниматься и приносить пользу
Q: ^ Дополнительный вопрос - Как лучше делать звуки? Это так сложно даётся, я не всегда могу сам понять что я хочу от звукаря
А: Все звуки и музыку делает звукарь, он вкладывает свой стиль, эмоции и душу в свои звуки и музыку, так что просто скидывай ему референсы, а там уже он пусть сам решает как он видит. И да, как ты упомянул - настроить проект для звукаря это распространённое решение. Он самостоятельно сможет вставлять и тестировать звуки и сразу же смотреть как они будут в игре
Q: Какие инструменты/платформы лучше использовать для управления проектом и командой?
А: Однозначно Notion. Придется с ним разобраться, да, но оно того стоит. С ним можно сделать что-угодно и как-угодно
Q: На каком языке вести соц. сети?
А: Полностью на английском
Полезные материалы:
- Группа STEAMиздат. Обсуждение маркетинга в стиме и не только, огромное кол-во полезных материалов и постоянные обсуждения того же маркетинга и стратегий (реально полезно, прямо кладезь знаний). P.S. отдельное спасибо @repindevelop за наводку и инвайт в эту группу
- Тот самый маркетолог Daniel Stone, основатель группы STEAMиздат. К слову недавно он создал личный блог Уставший Паблишинг с статистиками, личными мыслями и полезными статьями
#маркетинг
🔥12❤1
Media is too big
VIEW IN TELEGRAM
День 146-150. Девлог
Всем подготовиться к трём постам подряд товарищи🫡
Первый зумерский пост как и заказывали (одобряю такое )
Добавил улучшение "Взрывопули"
- Наносят 15/30% от текущего урона пули врагам в среднем радиусе
- Взрыв считается отдельным источником урона, а это значит что урон наносится дважды, первый раз - от пули, второй - от самого взрыва
- Взрыв наносит урон персонажу
- Взрыв появляется только при первом контакте с врагом (с трансформацией Zenith - при первых двух)
Продумал пятое улучшение
Пятое улучшения типа "Механика" для пистолета - Bloody Burden / Кровавое Бремя
- При попадании по врагу вызывает кровотечение
- Максимум 3 стака кровотечения (с трансформацией Zenith - 5 стаков)
- Персонаж двигается на 20% медленнее
Числа урона/длительности еще не продумал
По планам на ближайшие дни
Переработать улучшение More Bullets - уж какое-то дисбалансное оно щас, +1 пуля за улучшение это слишком сильно. Будет 40/80% шанс на дополнительную пулю, а вместо случайного разброса в 90° будет "стабильный" разброс в 30°, одна пуля летит с поворотом в -15°, вторая с поворотом в 15°
Также теперь каждые 5 дней буду вместе с девлогом обновлять версию игры на itch.io - https://sundwell.itch.io/ritka-rampage
Код игры полностью открыт - https://github.com/Sundwell/ritka-rampage
#девлог #ritkarampage
Всем подготовиться к трём постам подряд товарищи
Первый зумерский пост как и заказывали (
Добавил улучшение "Взрывопули"
- Наносят 15/30% от текущего урона пули врагам в среднем радиусе
- Взрыв считается отдельным источником урона, а это значит что урон наносится дважды, первый раз - от пули, второй - от самого взрыва
- Взрыв наносит урон персонажу
- Взрыв появляется только при первом контакте с врагом (с трансформацией Zenith - при первых двух)
Продумал пятое улучшение
Пятое улучшения типа "Механика" для пистолета - Bloody Burden / Кровавое Бремя
- При попадании по врагу вызывает кровотечение
- Максимум 3 стака кровотечения (с трансформацией Zenith - 5 стаков)
- Персонаж двигается на 20% медленнее
Числа урона/длительности еще не продумал
По планам на ближайшие дни
Переработать улучшение More Bullets - уж какое-то дисбалансное оно щас, +1 пуля за улучшение это слишком сильно. Будет 40/80% шанс на дополнительную пулю, а вместо случайного разброса в 90° будет "стабильный" разброс в 30°, одна пуля летит с поворотом в -15°, вторая с поворотом в 15°
Также теперь каждые 5 дней буду вместе с девлогом обновлять версию игры на itch.io - https://sundwell.itch.io/ritka-rampage
Код игры полностью открыт - https://github.com/Sundwell/ritka-rampage
P.S. ох и мороки было с взрывопулями, пришлось перевернуть с ног на голову HurtboxComponent и HitboxComponent, если вкратце - полностью поменял систему временной неуязвимости (чтобы персонаж не получал 20тыщ ударов в секунду)
P.P.S пока тестил игру в браузере увидел что иглы от Дикобраза не пропадают при попаданию по персонажу, видимо чет я сломал, буду фиксить
#девлог #ritkarampage
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2🔥2