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
Отчет за прошедшие 30 дней
В этот раз без видео, зато всё по плану
Апдейты по пунктам
Интерфейс
- Сделал UI для карточек улучшения, включая анимации
- Добавил главное меню, настройки и паузу
Механики игры
- Добавил улучшения Piercing Shots, Ricochet, Explosive Impact
- Продумал 5-ое улучшение "Механика" для пистолета - Bloody Burden / Кровавое Бремя. Пули разрывают врагов и у них появляется кровотечение, но все движения персонажа замедлены
- Начал работу над системой "Статусов", грубо говоря бафов и дебафов
Техническая часть
- Изучил систему сохранений
- Разобрался (в каком-то смысле) с кешированием и загрузочным экраном
- Пофиксил пару багов связанных с спавном врагов (не до конца как оказалось) и с вечно красными врагами
Звуки и музыка
- Добавили саундтрек для главного меню
- Подготовили звуки: Проигрыш, Победа, Нанесение урона врагам, Обновлённый звук выстрела пистолета, Выбор и наведение на карточки улучшения, звук нанесения урона персонажу
В общих чертах узнал основные вещи про маркетинг
И, самое главное - теперь у нас в команде есть геймдизайнер
По совету маркетолога решил заполнить последний пробел в команде, теперь разработка будет идти еще более серьёзно
Ну и чтобы не так сухо выглядел пост прикреплю недавно законченный арт от художника для главного меню, а в комменты закину небольшую анимированную версию
#отчет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3❤2
Числовой пост
За 30 дней нас стало больше на.. в почти 4 раза
Нас уже ❗️497❗️, месяц назад нас было 141, и я всё еще не догадываюсь почему сообщество выросло
Хочу поблагодарить всех за повышенную активность - реакции и особенно комментарии с критикой/идеями/фидбеком под постами, это очень сильно помогает, сам на себя со стороны не посмотришь
Эти 30 дней были наименее продуктивными со стороны разработки игр, слишком много времени уделял монтажу видео и написанию постов, но теперь есть геймдизайнер и монтажер (есть догадки чей монтажер будет мне помогать?
К числам:
Программирование - 23 часа 26 минут
Пиксель-арт - 1 час 32 минуты
Геймдизайн - 1 час 28 минут
Бренд-Менеджмент - 39 часов 26 минут.. да, много, часов 20+ ушло на монтаж одного видео
Проджект менеджмент - 2 часа 30 минут
Это ж скока я мог разрабатывать если бы не монтаж
В этом месяце было тоже много пропусков - снова 10 дней (подработки и всякие рабочие штуки). Каждый день, за исключением 29 и 30 Октября, а также 2, 5, 8, 11, 20-22 и 26 Ноября я так или иначе уделял время геймдеву
Минимально уделённое время за день - 11 минут (
Максимальное - 3 часа 2 минуты на разработку
В общем нужно удалить пункт про бренд-менеджмент и времени станет больше в 3 раза
#отчет
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🔥5👍2👏1
Развиваю свой Reddit 📱
Начал потихоньку делать посты в реддит - простые, короткие и интересные (по возможности)
Недавно художник закончил арт для главного меню - вот я решил его выставить как пост и подписал "Making first big pixel art for my Capybara game main menu was really tough" в сабреддите r/indiegames, я хотел изначально запостить это в r/pixelart, но там надо 100 общей кармы чтобы постить что-то по их правилам
Этот пост набрал уже 13 апвоутов (лайков), а это значит что карма потихоньку повышается😎
Я даже не думал что там вот так легко набирать просмотры и апвоуты, уже 900+ просмотров, 4 коммента (фактически 2) и 3 раза кто-то поделился постом, это прям подняло мне настроение, я вообще не ожидал никакой активности там
Буду и дальше время от времени что-то постить в разные сабреддиты, сохранил себе список из основных и теперь буду в них активничать (иногда)
Вот кстати список из сабреддитов, которые мне подходят:
r/gaming
r/games
r/IndieDev
r/IndieGames
r/IndieGaming
r/gamedev
r/pcgaming
r/PlayMyGame
r/godot
r/pixelart
#маркетинг #reddit
Начал потихоньку делать посты в реддит - простые, короткие и интересные (по возможности)
Недавно художник закончил арт для главного меню - вот я решил его выставить как пост и подписал "Making first big pixel art for my Capybara game main menu was really tough" в сабреддите r/indiegames, я хотел изначально запостить это в r/pixelart, но там надо 100 общей кармы чтобы постить что-то по их правилам
Этот пост набрал уже 13 апвоутов (лайков), а это значит что карма потихоньку повышается
Я даже не думал что там вот так легко набирать просмотры и апвоуты, уже 900+ просмотров, 4 коммента (фактически 2) и 3 раза кто-то поделился постом, это прям подняло мне настроение, я вообще не ожидал никакой активности там
Буду и дальше время от времени что-то постить в разные сабреддиты, сохранил себе список из основных и теперь буду в них активничать (иногда)
Вот кстати список из сабреддитов, которые мне подходят:
r/gaming
r/games
r/IndieDev
r/IndieGames
r/IndieGaming
r/gamedev
r/pcgaming
r/PlayMyGame
r/godot
r/pixelart
#маркетинг #reddit
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14❤3👍2
Media is too big
VIEW IN TELEGRAM
День 151-155. Девлог
Лучше поздно (на пару дней ), чем никогда
Апдейты за период 27 Ноября - 1 Декабря
Переделал улучшение "Больше Пуль"
Как и говорил - оно было дисбалансным и уродливым (разброс пуль), так что теперь оно переделано
- Шанс на дополнительную пулю 15/30% по мере выбора улучшения
- Теперь разброс статический и равен 5° * кол-во пуль отклонения для каждой пули поочередно, если их 2 и больше, например:
- 1 пуля - летит по прямой
- 2 пули - первая имеет вращение/отклонение -5°, вторая 5°. Т.е. летят по диагонали
- 3 пули - первая -5°, вторая 5°, третья -10°
Переработал летающий текст
- Теперь текст имеет "разброс" и не накладывается друг на друга, например если две пули попали одновременно во врага
- Если тип текста = "Урон", то его размер зависит от нанесённого урона, но если урон меньше 2х единиц, то размер текста будет минимальный
Про технические штуки не особо буду рассказывать, но если вкратце - всё-таки сделал глобальную сцену для спавна текста, и теперь просто обращаюсь к ней и говорю "создай летающий текст в том месте, значение вот такое, и тип текста Урон|Опыт|Лечение
Пофиксил баг с взрывами
Если взять улучшение "Взрывопули" и подойти впритык к двум+ врагам и выстрелить между них - пуля взорвется дважды, хотя должна только единожды. Проблема была в отложенном вызове "exploded_count += 1"
Версия v0.0.10 уже на itch.io - https://sundwell.itch.io/ritka-rampage
И девлоги тож туда начал добавлять - https://sundwell.itch.io/ritka-rampage/devlog
#девлог #ritkarampage
Лучше поздно (
Апдейты за период 27 Ноября - 1 Декабря
Переделал улучшение "Больше Пуль"
Как и говорил - оно было дисбалансным и уродливым (разброс пуль), так что теперь оно переделано
- Шанс на дополнительную пулю 15/30% по мере выбора улучшения
- Теперь разброс статический и равен 5° * кол-во пуль отклонения для каждой пули поочередно, если их 2 и больше, например:
- 1 пуля - летит по прямой
- 2 пули - первая имеет вращение/отклонение -5°, вторая 5°. Т.е. летят по диагонали
- 3 пули - первая -5°, вторая 5°, третья -10°
Переработал летающий текст
- Теперь текст имеет "разброс" и не накладывается друг на друга, например если две пули попали одновременно во врага
- Если тип текста = "Урон", то его размер зависит от нанесённого урона, но если урон меньше 2х единиц, то размер текста будет минимальный
Про технические штуки не особо буду рассказывать, но если вкратце - всё-таки сделал глобальную сцену для спавна текста, и теперь просто обращаюсь к ней и говорю "создай летающий текст в том месте, значение вот такое, и тип текста Урон|Опыт|Лечение
Пофиксил баг с взрывами
Если взять улучшение "Взрывопули" и подойти впритык к двум+ врагам и выстрелить между них - пуля взорвется дважды, хотя должна только единожды. Проблема была в отложенном вызове "exploded_count += 1"
Версия v0.0.10 уже на itch.io - https://sundwell.itch.io/ritka-rampage
И девлоги тож туда начал добавлять - https://sundwell.itch.io/ritka-rampage/devlog
#девлог #ritkarampage
👍6🔥4❤2
Рейтинг в играх 😱 #1
Я не планирую делать мультиплеерные игры, но вот очень захотел поделиться с вами тем, как работает матчмейкинг в играх и какие проблемы/особенности с этим есть
Инфы много, разбил на три поста, но я постарался сделать её интересной😎
Для начала возьмём несколько популярных игр для будущего мини-разбора. Нам нужны игры, в которых за рейтингмать родную готовы продать надо попотеть
1. Шахматы (удивительно, но это тоже игра🤷♂️ 🤷♂️ 🤷♂️ )
2. Dota 2 - Игра, в которой ты всегда играешь 1vs9 и твои тиммейты знают про твою семью больше, чем ты сам
3. CS:GO / CS2 - Игра, в которой у врагов есть стратегия, а у вас 5 челов с AWP на миду
4. World of Tanks - игра для серьёзных людей
5. PUBG - Игра, после которой появляется боязнь кустов в ирл
Сначала разберём общие проблемы, присущие для всех игр
Справедливость матчей
- Подбор игроков с одинаковым уровнем скилла, при этом учитывая другие факторы: пинг, время ожидания, регион
- Долгое ожидание матчей. Чем более сложная и реально честная система матчмейкинга, тем больше нужно ждать
- Токсичность. Та самая ситуация, когда в игре 5vs5 играешь 1vs9, т.е. ломается баланс игры
- Твинки/Смурфы. Это не синие мультяшные человечки, а голубые (если вы понимаете о чем я). Смурфы ломают баланс матчей
- Манипуляции с рейтингом. "Ща солью свой ммрчик на пару тыщ чтобы нубиков поунижать"
- Пинг и регионы. Даже если вам в команду залетел сын маминой подруги, но у него пинг под 300, то считайте что у вас на 1 игрока меньше
Теперь, когда есть общая база, разберём специфичные для каждой игры проблемы
Уникальные проблемы и особенности для каждой игры
Сразу скажу за читы - они есть везде, будь то ИИшка в шахматах (Stockfish или Lc0), скрипты в доте, где можно видеть действия за туманом войны или аимбот и вх в кске. Алгоритмы рейтинга всегда считают, что игрок честный. Если у него читы и он постоянно побеждает - для алгоритма этот игрок просто смурф либо очень эффективный игрок. В CS2 есть Trust Factor (скрытый рейтинг доверия), доверие низкое - тебя кидают к таким же, в основном это читеры и токсики, грубо говоря тоже скрытый пул как и в доте
Шахматы
Суть - рейтинг
Алгоритм - Elo или Glicko/Glicko-2
Алгоритм зависит от платформы. На Chess.com и Lichess.org используется Glicko-2. Эти алгоритмы рассчитаны на игры 1vs1, и, если очень упростить, работают по следующему принципу:
- Проигрыш. Враг был сильнее? Теряешь меньше очков. Враг слабее? Теряешь больше очков. Враг такой же? Теряешь N очков
- Победа. Аналогично с проигрышем
- Ничья. Игрок с рейтингом выше теряет немного очков, а другой получает немного. Если рейтинг одинаковый, то рейтинг не меняется (Elo алгоритм) или меняется минимально (Glicko/Glicko-2)
Отличие Elo от Glicko только в RD (Rating Deviation), грубо говоря это уверенность алгоритма в рейтинге игрока. Если ты только зашел в шахматы, то Glicko даёт тебе условных 1500 очков, но уверенность у него почти нулевая в твоём рейтинге (он думает что твой рейтинг находится в пределах от 500 до 2500 очков). Elo завязан чисто на победах и поражениях
В настоящих "мужских" шахматах на соревнованиях FIDE (international chess federation) используется старый алгоритм Elo, т.к. оч давно когда соревнования только появились был только этот алгоритм. А еще шахматы это первая игра, которая внедрила алгоритмы системы рейтингов
Чего-то уникального из особенностей/проблем как таковых не могу назвать, мб гроссмейстеры подскажут?
#геймдизайн #интересное
Я не планирую делать мультиплеерные игры, но вот очень захотел поделиться с вами тем, как работает матчмейкинг в играх и какие проблемы/особенности с этим есть
Инфы много, разбил на три поста, но я постарался сделать её интересной
Для начала возьмём несколько популярных игр для будущего мини-разбора. Нам нужны игры, в которых за рейтинг
1. Шахматы (удивительно, но это тоже игра
2. Dota 2 - Игра, в которой ты всегда играешь 1vs9 и твои тиммейты знают про твою семью больше, чем ты сам
3. CS:GO / CS2 - Игра, в которой у врагов есть стратегия, а у вас 5 челов с AWP на миду
4. World of Tanks - игра для серьёзных людей
5. PUBG - Игра, после которой появляется боязнь кустов в ирл
Сначала разберём общие проблемы, присущие для всех игр
Справедливость матчей
- Подбор игроков с одинаковым уровнем скилла, при этом учитывая другие факторы: пинг, время ожидания, регион
- Долгое ожидание матчей. Чем более сложная и реально честная система матчмейкинга, тем больше нужно ждать
- Токсичность. Та самая ситуация, когда в игре 5vs5 играешь 1vs9, т.е. ломается баланс игры
- Твинки/Смурфы. Это не синие мультяшные человечки, а голубые (если вы понимаете о чем я). Смурфы ломают баланс матчей
- Манипуляции с рейтингом. "Ща солью свой ммрчик на пару тыщ чтобы нубиков поунижать"
- Пинг и регионы. Даже если вам в команду залетел сын маминой подруги, но у него пинг под 300, то считайте что у вас на 1 игрока меньше
Теперь, когда есть общая база, разберём специфичные для каждой игры проблемы
Уникальные проблемы и особенности для каждой игры
Сразу скажу за читы - они есть везде, будь то ИИшка в шахматах (Stockfish или Lc0), скрипты в доте, где можно видеть действия за туманом войны или аимбот и вх в кске. Алгоритмы рейтинга всегда считают, что игрок честный. Если у него читы и он постоянно побеждает - для алгоритма этот игрок просто смурф либо очень эффективный игрок. В CS2 есть Trust Factor (скрытый рейтинг доверия), доверие низкое - тебя кидают к таким же, в основном это читеры и токсики, грубо говоря тоже скрытый пул как и в доте
Шахматы
Суть - рейтинг
Алгоритм - Elo или Glicko/Glicko-2
Алгоритм зависит от платформы. На Chess.com и Lichess.org используется Glicko-2. Эти алгоритмы рассчитаны на игры 1vs1, и, если очень упростить, работают по следующему принципу:
- Проигрыш. Враг был сильнее? Теряешь меньше очков. Враг слабее? Теряешь больше очков. Враг такой же? Теряешь N очков
- Победа. Аналогично с проигрышем
- Ничья. Игрок с рейтингом выше теряет немного очков, а другой получает немного. Если рейтинг одинаковый, то рейтинг не меняется (Elo алгоритм) или меняется минимально (Glicko/Glicko-2)
Отличие Elo от Glicko только в RD (Rating Deviation), грубо говоря это уверенность алгоритма в рейтинге игрока. Если ты только зашел в шахматы, то Glicko даёт тебе условных 1500 очков, но уверенность у него почти нулевая в твоём рейтинге (он думает что твой рейтинг находится в пределах от 500 до 2500 очков). Elo завязан чисто на победах и поражениях
В настоящих "мужских" шахматах на соревнованиях FIDE (international chess federation) используется старый алгоритм Elo, т.к. оч давно когда соревнования только появились был только этот алгоритм. А еще шахматы это первая игра, которая внедрила алгоритмы системы рейтингов
Чего-то уникального из особенностей/проблем как таковых не могу назвать, мб гроссмейстеры подскажут?
#геймдизайн #интересное
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3❤1