Отчет за прошедшие 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
Рейтинг в играх 😱 #2
World of Tanks
Суть - Шевроны и ранги
Алгоритм - встроенный никакой, от сообщества есть WN8
Здесь несколько режимов - обычные бои, рейтинговые (ранговые) и клановые. Разберём обычные и рейтинговые
Обычные бои - тут нет рейтинга вообще, полный рандом. Есть алгоритм, который минимально "сортирует" игроков по:
1. Уровень техники. Обычно это +-2 уровня, т.е. если у тебя танк 6 уровня, то в бою могут быть как 4 так и 8 уровни. Это не значит что всегда так, часто это +-1 уровень, а иногда вообще вся техника одного уровня в бою. Для танков низких уровней (например первого) всегда работает +-1 уровень. Да-да, те самые 100тыщ боёв 99% побед на MS-1/Leichttraktor 1 лвла против новичков, потому что нет подбора по рейтингу
P.S. Для некоторого списка премиум техники есть "льготы". Т.е. разброс становится не +-2 уровня, а -2 / +1 или даже -2 / 0, т.е. всегда попадаешь к своим уровням или даже ниже. Например на каком-то IS-6 8го лвла у тебя разброс -2 / +0, т.е. все бои будут от 6 до 8 лвла
2. Тип техники. Баланс тяжев, средних, легких, пт-сау и сау. А жаль, я бы поиграл в какой-то режим с названием "Инвалиды" 10vs10 где одни только САУ
Ранговые бои - тут и правда всё очень интересно, да только не со стороны разработчиков, а от сообщества. Тут есть две основные составляющие - автоматическая и "ручная":
1. Автоматическая - ранговый алгоритм встроенный в игру (бронза, серебро, золото), в виде рейтинга тут "шевроны"
Минимальный баланс присутствует, а именно:
- Победа. Топ-3 лучших игрока команды +2 шеврона. Все остальные +1.
- Поражение. Топ-1 игрок команды (MVP) +1 шеврон. Все остальные -1. Да-да, хоть где-то есть справедливость если ты "тащил", а команда слила
- Ничья. Топ-3 лучших игрока каждой команды +1 шеврон. Все остальные -1. Сделано это для того, чтобы не было "выжить любой ценой". Победа - основная цель, ничья = недостижение цели
Встроенный алгоритм очень банальный, ничего сложного нет, всё упростили донельзя
2. Ручная - тут всё просто, игроки скачивают мод на отображение WN8 рейтинга у каждого игрока, и если чел слабый по рейтингу - они его не принимают в команду или кикают
Особенностей нет, потому что танки - этоадская дрочильня гринд и задротство. Сюда приходят после работки под пивасик зарубиться, а не серьёзно играть, поэтому в обычных боях нет никакого алгоритма. Также в танках ключевую роль играет техника, а не только скилл игрока, уровень техники важнее скилла почти всегда, поэтому игроки замотивированы в прокачке техники (и донате, конечно же)
Таким образом варгейминг делает игру доступной для всех игроков, потому что тут убер-рандом, ты можешь попасть как против профи, так и против "ботов". С алгоритмами это было бы или всегда "боты" или всегда "профи", конечно же основываясь на твоём личном рейтинге
Dota 2
Суть - MMR, ранги и Behavior Score (порядочность)
Алгоритм - раньше был модифицированный Elo (+-25 ммр за игру), но в обновлении 7.33 New Frontiers его изменили на Glicko
Вот статейка небольшая про текущую логику ММРа в доте
В доте рейтинг разделён на две группы - групповой и соло. В среднем, за соло игру изменение будет +-30 рейтинга, за групповую +-20. Но может быть и значительно больше/меньше, например если алгоритм не уверен в рейтинге игрока (в том числе если это смурф/бустер), то она будет давать/отнимать даже по 40 или больше
- Иногда(часто) команда получается перекошенной, например 4 кора и 1 саппорт (и саппорт это лесник, ну да)
- Скрытый пул. Скрытая необычная система рейтинга. Вероятнее всего зависит от репортов, ливов, частоты игры, токсичного поведения, фидинга, афк шадоу амулета на миду.. в общем кто понял тот понял
#геймдизайн #интересное
World of Tanks
Суть - Шевроны и ранги
Алгоритм - встроенный никакой, от сообщества есть WN8
Здесь несколько режимов - обычные бои, рейтинговые (ранговые) и клановые. Разберём обычные и рейтинговые
Обычные бои - тут нет рейтинга вообще, полный рандом. Есть алгоритм, который минимально "сортирует" игроков по:
1. Уровень техники. Обычно это +-2 уровня, т.е. если у тебя танк 6 уровня, то в бою могут быть как 4 так и 8 уровни. Это не значит что всегда так, часто это +-1 уровень, а иногда вообще вся техника одного уровня в бою. Для танков низких уровней (например первого) всегда работает +-1 уровень. Да-да, те самые 100тыщ боёв 99% побед на MS-1/Leichttraktor 1 лвла против новичков, потому что нет подбора по рейтингу
P.S. Для некоторого списка премиум техники есть "льготы". Т.е. разброс становится не +-2 уровня, а -2 / +1 или даже -2 / 0, т.е. всегда попадаешь к своим уровням или даже ниже. Например на каком-то IS-6 8го лвла у тебя разброс -2 / +0, т.е. все бои будут от 6 до 8 лвла
2. Тип техники. Баланс тяжев, средних, легких, пт-сау и сау. А жаль, я бы поиграл в какой-то режим с названием "Инвалиды" 10vs10 где одни только САУ
Ранговые бои - тут и правда всё очень интересно, да только не со стороны разработчиков, а от сообщества. Тут есть две основные составляющие - автоматическая и "ручная":
1. Автоматическая - ранговый алгоритм встроенный в игру (бронза, серебро, золото), в виде рейтинга тут "шевроны"
Минимальный баланс присутствует, а именно:
- Победа. Топ-3 лучших игрока команды +2 шеврона. Все остальные +1.
- Поражение. Топ-1 игрок команды (MVP) +1 шеврон. Все остальные -1. Да-да, хоть где-то есть справедливость если ты "тащил", а команда слила
- Ничья. Топ-3 лучших игрока каждой команды +1 шеврон. Все остальные -1. Сделано это для того, чтобы не было "выжить любой ценой". Победа - основная цель, ничья = недостижение цели
Встроенный алгоритм очень банальный, ничего сложного нет, всё упростили донельзя
2. Ручная - тут всё просто, игроки скачивают мод на отображение WN8 рейтинга у каждого игрока, и если чел слабый по рейтингу - они его не принимают в команду или кикают
Особенностей нет, потому что танки - это
Таким образом варгейминг делает игру доступной для всех игроков, потому что тут убер-рандом, ты можешь попасть как против профи, так и против "ботов". С алгоритмами это было бы или всегда "боты" или всегда "профи", конечно же основываясь на твоём личном рейтинге
Dota 2
Суть - MMR, ранги и Behavior Score (порядочность)
Алгоритм - раньше был модифицированный Elo (+-25 ммр за игру), но в обновлении 7.33 New Frontiers его изменили на Glicko
Вот статейка небольшая про текущую логику ММРа в доте
В доте рейтинг разделён на две группы - групповой и соло. В среднем, за соло игру изменение будет +-30 рейтинга, за групповую +-20. Но может быть и значительно больше/меньше, например если алгоритм не уверен в рейтинге игрока (в том числе если это смурф/бустер), то она будет давать/отнимать даже по 40 или больше
- Иногда
- Скрытый пул. Скрытая необычная система рейтинга. Вероятнее всего зависит от репортов, ливов, частоты игры, токсичного поведения, фидинга, афк шадоу амулета на миду.. в общем кто понял тот понял
#геймдизайн #интересное
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2❤1
Рейтинг в играх 😱 #3
CS:GO / CS2
Суть - Skill Groups (скрытый MMR и ранги) + Trust Factor (рейтинг доверия)
Алгоритм - Скрыт. Вероятно это что-то типа Glicko-2 как и в доте. Про алгоритм в кске известно столько же, сколько про рецепт кока-колы
И (барабанная дробь) конечно же пинг. Игроки с пингом 300 играют с такими же слоупоками, игроки с низким пингом вероятнее всего будут играть друг с другом. Но есть одно скрытое правило - лично в твоей команде всегда будут игроки хуже, без рук, с пингом 999 и без монитора, это общеизвестный факт🤝 🤝
Также учитывается Prime-статус игрока, если он есть - матчи более точно подбирают игроков и меньше шанс на читеров
В CS2 переделали систему рейтинга, и стало всё немного иначе. CS:GO - рейтинг и ранги были общими для всех карт, в CS2 у игрока есть рейтинг отдельно для каждой карты
В кске самая неизвестная, скрытая и непонятная логика и формула начисления ММРа, Габен тщательно скрывает её, будто это рецепт кока-колы. Но в общем-то известно, что за победу - повышают рейтинг, за поражение - понижают, всё остальное - только догадки. Игроки конечно замечают, что если ты постоянно тащишь и являешься MVP в игре, то рейтинг быстрее повышается, но Габен отрицает это. Если будет ничья - то чисто в теории, рейтинг меняется так же само, как и в случае с шахматами с алгоритмом Glicko-2
- Пинг. В шутерах пинг решает всё. Даже если у тебя в команде Ник Вуйчич у которого пинг 30, а у врагов 300-400, то он без проблем (и без рук) зальёт соляру
PUBG
Суть - скрытый MMR и ранги
Алгоритм - Вероятно, его нет
В пабге вообще-то 100 игроков в одном матче, и там просто миллиард возможных факторов и еще миллиард догадок, но я нарыл инфы и на первое и на другое
✔ Открытая официальная подтвержденная информация
- Скрытый MMR есть и то, что ранги строятся на нём
- Влияние на ранг
-> Занятое место. Чем выше место - тем больше рейтинга. Первостепенный фактор
-> Убийства и ассисты (помощь в убийствах), немного компенсирует низкие места. Второстепенный фактор
-> Выживаемость. Чем дольше игра и чем дольше ты живой - тем больше рейтинга
- Соло, дуо и сквады имеют свои отдельные MMR и ранги
- Боты - есть, особенно у новичков
🥴 Догадки игроков aka неизвестная информация
- Точная формула расчета MMR неизвестна
- Влияние уровня соперников. Если ты выиграл против топ-1 планеты, не факт что тебе дадут больше рейтинга
- Не понятно как боты влияют на ммр
И пара особенностей именно PUBG
- Чел с дробовиком в туалете или афк-человек-куст, который занял топ-2 получит больше рейтинга (и вообще получит его), чем агрессивный киллер с 20ю убийствами, но который не дожил даже до топ-40
- Рандом. Летишь ты и твой враг в одно и то же место, он находит оружие, ты - сковороду, гг
P.S. Следующий девлог будет через 3 дня за 15 дней (а не 5), работа убивает человека🥺
#геймдизайн #интересное
CS:GO / CS2
Суть - Skill Groups (скрытый MMR и ранги) + Trust Factor (рейтинг доверия)
Алгоритм - Скрыт. Вероятно это что-то типа Glicko-2 как и в доте. Про алгоритм в кске известно столько же, сколько про рецепт кока-колы
И (барабанная дробь) конечно же пинг. Игроки с пингом 300 играют с такими же слоупоками, игроки с низким пингом вероятнее всего будут играть друг с другом. Но есть одно скрытое правило - лично в твоей команде всегда будут игроки хуже, без рук, с пингом 999 и без монитора, это общеизвестный факт
Также учитывается Prime-статус игрока, если он есть - матчи более точно подбирают игроков и меньше шанс на читеров
В CS2 переделали систему рейтинга, и стало всё немного иначе. CS:GO - рейтинг и ранги были общими для всех карт, в CS2 у игрока есть рейтинг отдельно для каждой карты
В кске самая неизвестная, скрытая и непонятная логика и формула начисления ММРа, Габен тщательно скрывает её, будто это рецепт кока-колы. Но в общем-то известно, что за победу - повышают рейтинг, за поражение - понижают, всё остальное - только догадки. Игроки конечно замечают, что если ты постоянно тащишь и являешься MVP в игре, то рейтинг быстрее повышается, но Габен отрицает это. Если будет ничья - то чисто в теории, рейтинг меняется так же само, как и в случае с шахматами с алгоритмом Glicko-2
- Пинг. В шутерах пинг решает всё. Даже если у тебя в команде Ник Вуйчич у которого пинг 30, а у врагов 300-400, то он без проблем (и без рук) зальёт соляру
PUBG
Суть - скрытый MMR и ранги
Алгоритм - Вероятно, его нет
В пабге вообще-то 100 игроков в одном матче, и там просто миллиард возможных факторов и еще миллиард догадок, но я нарыл инфы и на первое и на другое
- Скрытый MMR есть и то, что ранги строятся на нём
- Влияние на ранг
-> Занятое место. Чем выше место - тем больше рейтинга. Первостепенный фактор
-> Убийства и ассисты (помощь в убийствах), немного компенсирует низкие места. Второстепенный фактор
-> Выживаемость. Чем дольше игра и чем дольше ты живой - тем больше рейтинга
- Соло, дуо и сквады имеют свои отдельные MMR и ранги
- Боты - есть, особенно у новичков
- Точная формула расчета MMR неизвестна
- Влияние уровня соперников. Если ты выиграл против топ-1 планеты, не факт что тебе дадут больше рейтинга
- Не понятно как боты влияют на ммр
И пара особенностей именно PUBG
- Чел с дробовиком в туалете или афк-человек-куст, который занял топ-2 получит больше рейтинга (и вообще получит его), чем агрессивный киллер с 20ю убийствами, но который не дожил даже до топ-40
- Рандом. Летишь ты и твой враг в одно и то же место, он находит оружие, ты - сковороду, гг
P.S. Следующий девлог будет через 3 дня за 15 дней (а не 5), работа убивает человека
#геймдизайн #интересное
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥4
Media is too big
VIEW IN TELEGRAM
День 156-175. Девлог
Апдейты за период 2 Декабря - 21 Декабря
Пара обновлений/фиксов были сделаны по советам из комментариев, всем спасибо🤝 🤝
Обновлен UI
- Спрайтбурёнки коровы изменён с белого на коричневый
- Добавлена заставка в главное меню и менюшки сдвинуты вправо (да, я должен был это написать)
- Обновлена арена. Теперь есть большие и маленькие камни, меньше кустов и более приятное минималистическое наполнение тайлмапа
- При изменении ползунков звука/музыки проигрывается звук
Доработка разброса пуль
В v0.0.10 уже писал что пофиксил это - но как бы не так. Теперь-то точно всё работает как надо, логика следующая:
—
1 пуля - летит прямо
2 пули - летят по диагонали, между ними 10°
3, 5, 2n + 1 пуль - одна летит по центру, остальные по диагоналям, между всеми пулями 5°
4, 6, 2n пуль - все летят по диагоналям, между пулями 5°
—
Пофикшена возможность стрельба-бег-стрельба
Раньше можно было клацнуть => стрельнуть => отпустить мышку => сразу бежать дальше. Сейчас после выстрела персонаж не переходит в режим бега пока оружие не перезарядилось
Версия v0.0.11 уже на itch.io - https://sundwell.itch.io/ritka-rampage
P.S. в видео попала частичка музыки из скайрима🤷♂️ 🤷♂️ 🤷♂️
#девлог #ritkarampage
Апдейты за период 2 Декабря - 21 Декабря
Пара обновлений/фиксов были сделаны по советам из комментариев, всем спасибо
Обновлен UI
- Спрайт
- Добавлена заставка в главное меню и менюшки сдвинуты вправо (да, я должен был это написать)
- Обновлена арена. Теперь есть большие и маленькие камни, меньше кустов и более приятное минималистическое наполнение тайлмапа
- При изменении ползунков звука/музыки проигрывается звук
Доработка разброса пуль
В v0.0.10 уже писал что пофиксил это - но как бы не так. Теперь-то точно всё работает как надо, логика следующая:
—
1 пуля - летит прямо
2 пули - летят по диагонали, между ними 10°
3, 5, 2n + 1 пуль - одна летит по центру, остальные по диагоналям, между всеми пулями 5°
4, 6, 2n пуль - все летят по диагоналям, между пулями 5°
—
Пофикшена возможность стрельба-бег-стрельба
Раньше можно было клацнуть => стрельнуть => отпустить мышку => сразу бежать дальше. Сейчас после выстрела персонаж не переходит в режим бега пока оружие не перезарядилось
Версия v0.0.11 уже на itch.io - https://sundwell.itch.io/ritka-rampage
P.S. в видео попала частичка музыки из скайрима
#девлог #ritkarampage
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍1🤝1
Всех с наступающим или наступившим!
Моё главное пожелание банальное, но, как по мне, самое главное что есть - здоровье
До поры до времени его можно "купить", но обычно все (и я) закрывают глаза и думают что "само пройдёт", так что желаю всем наконец-то сходить по своим серьёзным и не очень болячкам к врачам, сдать анализы и вылечить зубы
Непрошеный совет - всегда ставьте себе конкретные цели, а не абстрактные, тогда реально будет результат, на своём примере:
Вместо "Я пойду в зал" - "Я буду ходить в зал на протяжении месяца"
Вместо "Я начну делать игры" - "Я потрачу на разработку игр 200 часов" или "Я сделаю такую-то игру"
Желаю всем достичь своих целей в новом году, а если их нет - то поставить их себе (а то жить так не интересно, ну реально ж)
Себе же пожелаю удачи и дисциплины в контексте разработки игр, как-то на днях поделюсь планами на 2025й
И, самое главное -
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤7🎉3🔥2
Отчет за прошедшие 30 дней
Было выпущено 2 версии - v0.0.10 и v0.0.11
Интерфейс
- Обновлено главное меню - теперь есть анимированная заставка (и немного сдвинуты менюшки 👀)
- При изменении ползунков звук/музыка проигрываться звук
Графика
- Спрайт Коровы изменён с белого на коричневый
Механики игры
- Закончил разработку системы статусов, а вместе с ней подготовил фундамент для "Plug and Play" любого ДОТ урона/хила (еще не релизнуто)
- Доработан разброс пуль (на этот раз точно)
- Переработаны и улучшены летающие числа
- Переделано улучшение "Больше Пуль"
Баги
- Исправлен баг с "мульти-взрывом"
- Исправлен
Продолжаю развивать потихоньку Reddit, больше информации в ближайшие дни
P.S. За дни с 27 Ноября - 27 Декабря
#отчет
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥3
За 30(+) дней нас стало больше на -3 (минус три) участника, это новый антирекорд, я считаю этим можно гордиться
Нас
Реалистичный - канал в муте+архиве у 90% людей
Не очень - канал и правда интересен
Всё больше и больше разных людей (примерно трое
Декабрь был нереально никакущим с точки зрения геймдева, но прямо сейчас уже всё меняется (например в 6 утра я не сплю) и в ближайшие пару недель у меня станет на целых 8 свободных часов больше в день (навсегда), из которых я серьёзно нацелен тратить на разработку. Где-то слышал фразу "Все деньги не заработаешь" - тут я точно соглашусь
К числам
Программирование - 12 часов 8 минут
Бренд-Менеджмент - 9 часов 43 минуты
Проджект менеджмент - 54 минуты
..всё? Ага
За прошлый месяц проще назвать число, когда пропусков не было - 11 дней из 30 было успешно распилено на разработку и проджект менеджмент
Минимально уделённое время за день - 27 минут на проджект менеджмент
Максимальное - 2 часа 16 минут на разработку
Планы на год - просто грандиозные и абсолютно реалистичные. Множество изменений и куча плотненького контента (не только тут) будет на протяжении всего Января
#отчет
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12❤3👍1🎉1
Планы #1
Хочу поделиться с вами моим списком целей на 2025 год, как в общем до конца года, так и "помесячно"
Начну с "финальных" целей к концу года
С первого взгляда они могут показаться "слишком" нереальными, но если реально вложиться в это дело с душой и конкретным подходом, а не выпустить игру в один день с AAA проектом без маркетинга, то это более чем реально. Цели амбициозные - но реалистичные
-Геймдев-
Закончить и успешно выпустить следующую игру в Стим самостоятельно без паблишера
Успешность будет измеряться в:
1. Кол-во вишлистов. Минимум 5000
2. Продажи игр(ы) брутто. Минимум $5000
Развивать соц. сети
Пока что я решил, что 70% сил и времени буду уделять именно тиктоку и реддиту, ютуб только если смогу в монтаж нормально, а твиттер - вообще пока что не уверен насчет него
Метрики "успеха" следующие:
Тикток. 10000 подписчиков и минимум 10% вовлеченность просмотров. Вовлеченность считаю по формуле (лайки + репосты/шейры + комментарии) / кол-во просмотров. Т.е. если видео набрало 1000 просмотров, на нём 100 лайков, 5 репостов и 5 комментариев, то это 110 / 1000 = 0.11 = 11% вовлеченность. Только не кекайте с меня что я сюда еще какую-то формулу приплел, все-таки чем-то надо вычислять успешный успех😎
Реддит. Минимум 2000 апвоутов суммарно со всех постов
-Общее-
Похудание
В общем-то я жирный, здоровый (в смысле большой) бычара 98кг с ростом 185см, что мягко говоря выше нормы (даже учитывая мои 7 лет "спортивности" в прошлом). Жировая прослойка присутствует, что не может не давать минус мораль при взгляде на себя в зеркало
К концу года цель сбросить вес до 85кг и "стабилизировать" его. У меня ужасные пищевые привычки (переедаю, хаваю по приколу когда нечего делать), и если их убрать (легко сказать) - то набор веса прекратится
Больничные штуки
1. Зрение. Сделать коррекцию зрения. В очках - неудобно (слезают, ограниченная видимость), в линзах - неудобно (надо снимать перед сном, глаза устают, дорогие). Страшно - но так хочется быть нормальным белым человеком с "единичкой"
2. Зубы. Имеется кривая челюсть и кривые зубы (не смертельно, но дальше - хуже). Я уже ходил к ортодонту и мне сказали (цитирую): "Удачи, тебе будет хуже и больнее чем большинству". В общем ситуация непростая, но пора бы решать уже её, начну с удаления 4х коренных зубов, без удаления ортодонт не приступает к работе
3. Чекап. Проще говоря - полное обследование. Т.к. я комнатное растение уже почти 6 лет (разработчик) и сижу в позе креветки - сто процентов что-то да не так, особенно с сосудами/кровоснабжением в шее (с детства какие-то траблы)
Отпуск
Все работа и работа - но отдых обязателен. На 2 недели обязательно нужно куда-то поехать и расслабиться, а то за почти 6 лет работы я только один раз отдыхал, и то это было несколько дней, но тогда прям люто кайфанул от того, что никуда не надо спешить, ничего не надо делать и всё такое (главное себя не "ругать" за отдых)
Хочу поделиться с вами моим списком целей на 2025 год, как в общем до конца года, так и "помесячно"
Начну с "финальных" целей к концу года
С первого взгляда они могут показаться "слишком" нереальными, но если реально вложиться в это дело с душой и конкретным подходом, а не выпустить игру в один день с AAA проектом без маркетинга, то это более чем реально. Цели амбициозные - но реалистичные
-Геймдев-
Закончить и успешно выпустить следующую игру в Стим самостоятельно без паблишера
Успешность будет измеряться в:
1. Кол-во вишлистов. Минимум 5000
2. Продажи игр(ы) брутто. Минимум $5000
Развивать соц. сети
Пока что я решил, что 70% сил и времени буду уделять именно тиктоку и реддиту, ютуб только если смогу в монтаж нормально, а твиттер - вообще пока что не уверен насчет него
Метрики "успеха" следующие:
Тикток. 10000 подписчиков и минимум 10% вовлеченность просмотров. Вовлеченность считаю по формуле (лайки + репосты/шейры + комментарии) / кол-во просмотров. Т.е. если видео набрало 1000 просмотров, на нём 100 лайков, 5 репостов и 5 комментариев, то это 110 / 1000 = 0.11 = 11% вовлеченность. Только не кекайте с меня что я сюда еще какую-то формулу приплел, все-таки чем-то надо вычислять успешный успех
Реддит. Минимум 2000 апвоутов суммарно со всех постов
-Общее-
Похудание
В общем-то я жирный, здоровый (в смысле большой) бычара 98кг с ростом 185см, что мягко говоря выше нормы (даже учитывая мои 7 лет "спортивности" в прошлом). Жировая прослойка присутствует, что не может не давать минус мораль при взгляде на себя в зеркало
К концу года цель сбросить вес до 85кг и "стабилизировать" его. У меня ужасные пищевые привычки (переедаю, хаваю по приколу когда нечего делать), и если их убрать (легко сказать) - то набор веса прекратится
Больничные штуки
1. Зрение. Сделать коррекцию зрения. В очках - неудобно (слезают, ограниченная видимость), в линзах - неудобно (надо снимать перед сном, глаза устают, дорогие). Страшно - но так хочется быть нормальным белым человеком с "единичкой"
2. Зубы. Имеется кривая челюсть и кривые зубы (не смертельно, но дальше - хуже). Я уже ходил к ортодонту и мне сказали (цитирую): "Удачи, тебе будет хуже и больнее чем большинству". В общем ситуация непростая, но пора бы решать уже её, начну с удаления 4х коренных зубов, без удаления ортодонт не приступает к работе
3. Чекап. Проще говоря - полное обследование. Т.к. я комнатное растение уже почти 6 лет (разработчик) и сижу в позе креветки - сто процентов что-то да не так, особенно с сосудами/кровоснабжением в шее (с детства какие-то траблы)
Отпуск
Все работа и работа - но отдых обязателен. На 2 недели обязательно нужно куда-то поехать и расслабиться, а то за почти 6 лет работы я только один раз отдыхал, и то это было несколько дней, но тогда прям люто кайфанул от того, что никуда не надо спешить, ничего не надо делать и всё такое (главное себя не "ругать" за отдых)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤3👍2
Планы #2
Следующий пост уже по теме канала (хотя этот вообще-то тоже🤝 🤝 )
Теперь расскажу про планы на каждый месяц
На каждый месяц имеется ввиду "ближайшие два месяца", потому что если сделать план на весь год помесячно, а потом на второй месяц уже все собьется, то во-первых - будет лютая дизмораль, во-вторых - придётся переделывать все планы(или заскуфиться и пойти играть в доту под пиво на пару лет) , что вообще не весело
Если же делать планы на ближайшие пару месяцев - то остаётся некоторая гибкость и если не вкладываешься в планы по причине "Переоценил свои силы", "Это мне уже не нужно" или "Я не встал с кровати" то всегда можно подкорректировать их, чтобы не было прям большого стресса
К планам
-Январь-
Закончить R.I.T.K.A. Rampage
Да, пора закончить этого монстра прокрастинации, и, объективно, работы там ну очень мало чтобы доделать полноценно работающую версию игры
Изучать геймдизайн 10 часов
План буду брать с этого видео - клик. А если серьёзно - у меня огромное кол-во материалов насчет геймдизайна, и, как инди-разработчику, мне эти знания жизненно необходимы. Все-таки именно я задаю направление игры, даже если работаю в команде. И нужно разрабатывать в пределах адекватности, собственно для этого и буду изучать геймдизайн и его составляющие - левел дизайн, балансировка, сторителлинг
Уделить 50 часов геймдеву
Максимум который был - 47 часов 5 минут. Дальше всё пошло на спад из-за подработок/работы и прокрастинации, ну да. Как говорил парой постов ранее - уже дела мягко говоря намного лучше со временем, и я наконец-то снова могу 24/7 топить в моё любимое занятие😌
Научится делать девлоги как teedeezet
Это просто идеальный вариант девлогов, динамика, глубина, все визуально показывается с анимациями - я в шоках. Даже написал ему на почту и спросил есть ли возможность оплачиваемого созвона с показом процесса работы или записи видео (к сожалению, нет). Но он поделился основными подходами и тулзами, которые использует для девлогов, цитата:
Начать заниматься собой
Похудать до 95кг, проехать на велотренажере 250км и ходить в зал 3 раза в неделю, звучит как план, нечего добавить
На Февраль планы составлены, но описывать уже их не буду - просто прикреплю скрин
К слову про Motion Canvas - выглядит как просто нереальная вещь для монтажа + довольно простая (учитывая мой предыдущий опыт с js/ts), пройду какой-то курс на юдеми по DaVinci Resolve и параллельно буду пробовать делать сложные сцены в Motion Canvas
Следующий пост уже по теме канала (хотя этот вообще-то тоже
Теперь расскажу про планы на каждый месяц
На каждый месяц имеется ввиду "ближайшие два месяца", потому что если сделать план на весь год помесячно, а потом на второй месяц уже все собьется, то во-первых - будет лютая дизмораль, во-вторых - придётся переделывать все планы
Если же делать планы на ближайшие пару месяцев - то остаётся некоторая гибкость и если не вкладываешься в планы по причине "Переоценил свои силы", "Это мне уже не нужно" или "Я не встал с кровати" то всегда можно подкорректировать их, чтобы не было прям большого стресса
К планам
-Январь-
Закончить R.I.T.K.A. Rampage
Да, пора закончить этого монстра прокрастинации, и, объективно, работы там ну очень мало чтобы доделать полноценно работающую версию игры
Изучать геймдизайн 10 часов
План буду брать с этого видео - клик. А если серьёзно - у меня огромное кол-во материалов насчет геймдизайна, и, как инди-разработчику, мне эти знания жизненно необходимы. Все-таки именно я задаю направление игры, даже если работаю в команде. И нужно разрабатывать в пределах адекватности, собственно для этого и буду изучать геймдизайн и его составляющие - левел дизайн, балансировка, сторителлинг
Уделить 50 часов геймдеву
Максимум который был - 47 часов 5 минут. Дальше всё пошло на спад из-за подработок/работы и прокрастинации, ну да. Как говорил парой постов ранее - уже дела мягко говоря намного лучше со временем, и я наконец-то снова могу 24/7 топить в моё любимое занятие
Научится делать девлоги как teedeezet
Это просто идеальный вариант девлогов, динамика, глубина, все визуально показывается с анимациями - я в шоках. Даже написал ему на почту и спросил есть ли возможность оплачиваемого созвона с показом процесса работы или записи видео (к сожалению, нет). Но он поделился основными подходами и тулзами, которые использует для девлогов, цитата:
Я не провожу мастер-классы, да и ничего уникального для роликов я, на самом деле, не делаю.
Графику я рисую и располагаю на экране в Figma (используя Frames), так что в Premiere Pro остаётся только наложить переходы.
Насчёт комплексных сцен: могу порекомендовать канал aarthificial и его бесплатную программу Motion Canvas. Вот демонстрация работы: https://www.youtube.com/watch?v=H5GETOP7ivs
(да и в целом, монтаж у него намного лучше моего)
Начать заниматься собой
Похудать до 95кг, проехать на велотренажере 250км и ходить в зал 3 раза в неделю, звучит как план, нечего добавить
На Февраль планы составлены, но описывать уже их не буду - просто прикреплю скрин
К слову про Motion Canvas - выглядит как просто нереальная вещь для монтажа + довольно простая (учитывая мой предыдущий опыт с js/ts), пройду какой-то курс на юдеми по DaVinci Resolve и параллельно буду пробовать делать сложные сцены в Motion Canvas
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤2👍1
Media is too big
VIEW IN TELEGRAM
+жизнь 💃
Писал я значит пост на интересную тему (техническую правда, но ничего), и тут звонок в домофон - я такой "да ну нафиг"
Спустя месяц мне приехал мой новый ноут, на замену помойке pro 2019 года с перегревающимся процессором на интеле
Теперь я смогу и стримить и снова записывать видео процесса работы, а то, к сожалению, при записи видео с OBS у моего ноута начинался кризиз "3фпс" и спустя пару минут приходилось полностью его перезагружать, теперь этих проблем не будет👍
И монтажем заниматься тоже смогу адекватно - а то монтаж видео я делал тоже в 0фпс😔
Решил я сразу на видео записать распаковку и мини-сравнение размеров с предыдущим ноутом, тут монтажа не будет - просто поток рандомных мыслей на непонятном языке в течении 6-и минут
Сейчас допишу следующий пост и займусь настройкой ноута, вероятно как буду работать над игрой буду всегда стримчанский запускать чисто для истории
P.S. Скоро постригусь (возможно)
Писал я значит пост на интересную тему (техническую правда, но ничего), и тут звонок в домофон - я такой "да ну нафиг"
Спустя месяц мне приехал мой новый ноут, на замену помойке pro 2019 года с перегревающимся процессором на интеле
Теперь я смогу и стримить и снова записывать видео процесса работы, а то, к сожалению, при записи видео с OBS у моего ноута начинался кризиз "3фпс" и спустя пару минут приходилось полностью его перезагружать, теперь этих проблем не будет
И монтажем заниматься тоже смогу адекватно - а то монтаж видео я делал тоже в 0фпс
Решил я сразу на видео записать распаковку и мини-сравнение размеров с предыдущим ноутом, тут монтажа не будет - просто поток рандомных мыслей на непонятном языке в течении 6-и минут
Сейчас допишу следующий пост и займусь настройкой ноута, вероятно как буду работать над игрой буду всегда стримчанский запускать чисто для истории
P.S. Скоро постригусь (возможно)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9🔥4
Текстуры² #1
Пост больше технический, чемзумерский человеческий, эдакое исследование от меня лично
— Введение —
Я думаю любой, кто разрабатывал 2D игры слышал, может где-то читал, делает, использовал или продолжает использовать текстуры в степени двойки (32х32, 8х8 и т.п.), но есть ли реальная польза в этом? Почему все в гайдах по пиксель-арту создают именно такие размеры холстов, а не 31х47 или 108х97?
Пара аббревиатур и полезной информации для понимания поста:
POT (Power Of Two) - степень двойки, будет означать "текстуры в степени двойки"
NPOT (Non Power Of Two) - текстуры не в степени двойки
Ортографический вид/камера - все текстуры на экране одинакового размера, вне зависимости от расстояния (вблизи враг или вдали - он всегда будет 16x16 размером)
Перспективный вид/камера - в общем-то как в жизни, чем дальше объект от глаз (камеры) - тем он меньше
Padding - "Выравнивание" NPOT текстур для приведения их к POT, например 15х31 => 16x32, 91х15 => 128x16
Важное примечание - абсолютно везде говорят и пишут что POT это 16х16, 32х32 и так далее, то есть квадраты, НО это не так. POT - это когда каждая сторона текстуры является степенью двойки, т.е. 16х32, 64х128, 2х16 - это всё еще POT. Я поднял архивы OpenGL 2.0 чтобы в этом удостоверится, ну да я (всё еще не уверен на 100%)
TL;DR
- Основное различие в POT и NPOT это эффективность мипмаппинга (о нём далее) и компрессии (уменьшение в размерах)
- Текущие графические "движки" (OpenGL 4.x+, Vulkan, DirectX 12, Metal) работают отлично как с POT так и с NPOT
- В 2D играх с ортографической камерой смысла от POT практически нет, так что можно не париться насчет этого
- В 2.5D/3D играх с перспективной камерой это играет роль, особенно в компрессии, хоть и не такую большую
Моё личное решение - предпочитать делать текстуры POT если это не затрудняет меня и использовать NPOT только по необходимости (например заставка в главное меню)
Материалы брал понемногу со всего света - но вот пара реально полезных ссылок и обсуждений:
- Зачем мип-маппинг и как он работает
- Вики OpenGL по NPOT текстурам
- Тред на реддите про текстуры и степень двойки
- Сравнение в эффективности компрессии для POT и NPOT текстур в юнити
#интересное
Пост больше технический, чем
— Введение —
Я думаю любой, кто разрабатывал 2D игры слышал, может где-то читал, делает, использовал или продолжает использовать текстуры в степени двойки (32х32, 8х8 и т.п.), но есть ли реальная польза в этом? Почему все в гайдах по пиксель-арту создают именно такие размеры холстов, а не 31х47 или 108х97?
Пара аббревиатур и полезной информации для понимания поста:
POT (Power Of Two) - степень двойки, будет означать "текстуры в степени двойки"
NPOT (Non Power Of Two) - текстуры не в степени двойки
Ортографический вид/камера - все текстуры на экране одинакового размера, вне зависимости от расстояния (вблизи враг или вдали - он всегда будет 16x16 размером)
Перспективный вид/камера - в общем-то как в жизни, чем дальше объект от глаз (камеры) - тем он меньше
Padding - "Выравнивание" NPOT текстур для приведения их к POT, например 15х31 => 16x32, 91х15 => 128x16
Важное примечание - абсолютно везде говорят и пишут что POT это 16х16, 32х32 и так далее, то есть квадраты, НО это не так. POT - это когда каждая сторона текстуры является степенью двойки, т.е. 16х32, 64х128, 2х16 - это всё еще POT. Я поднял архивы OpenGL 2.0 чтобы в этом удостоверится, ну да я (всё еще не уверен на 100%)
TL;DR
- Основное различие в POT и NPOT это эффективность мипмаппинга (о нём далее) и компрессии (уменьшение в размерах)
- Текущие графические "движки" (OpenGL 4.x+, Vulkan, DirectX 12, Metal) работают отлично как с POT так и с NPOT
- В 2D играх с ортографической камерой смысла от POT практически нет, так что можно не париться насчет этого
- В 2.5D/3D играх с перспективной камерой это играет роль, особенно в компрессии, хоть и не такую большую
Моё личное решение - предпочитать делать текстуры POT если это не затрудняет меня и использовать NPOT только по необходимости (например заставка в главное меню)
Материалы брал понемногу со всего света - но вот пара реально полезных ссылок и обсуждений:
- Зачем мип-маппинг и как он работает
- Вики OpenGL по NPOT текстурам
- Тред на реддите про текстуры и степень двойки
- Сравнение в эффективности компрессии для POT и NPOT текстур в юнити
#интересное
🔥9
Текстуры² #2
Теперь к основному контенту
— Мипмаппинг —
Во-первых, что такое мипмаппинг?
Если попроще - то у нас есть текстура 64х64, уменьшенная копия текстуры это.. 63х63, 13х13 и так далее, НО компьютеры работают с бинарной системой (би = два) т.е. нолик и единичка, включен и выключен,Пупа и Лупа две цифры - два сигнала, поэтому всё, что использует данные в виде степени двойки работает значительно лучше, поэтому текстура уменьшается вдвое при каждом "шаге", т.е. 64х64 => 32x32 => 16x16 => ... => 1x1 (да-да, даже до одного пикселя). GPU (видеокарта) работает тоже лучше с бинарной системой и именно видеокарта решает когда какой мип-уровень отрисовать
Но если текстура будет NPOT, то уменьшение будет слегка "непонятным", например 63х63 => 31x31 => 15x15 => ... => 1x1, работать работает, но вычислений занимает чуточку больше. Раньше (лет 10 назад) видеокарты вообще не умели работать с NPOT, но сейчас уже всё стабильно (за редким исключением в виде старых калькуляторов)
А еще движки могут специально делать Padding для NPOT текстуры, чтобы было проще с ней работать, т.е. сначала идёт превращение текстуры NPOT => POT, например 15х39 => 16x64 и потом уже делать мипмаппинг или компрессию, но это частные случаи
Да, это всё интересно - а нафига этот мипмаппинг?
Он используется только там, где есть отдаление, т.е. в 3D играх с перспективной камерой или же в 2.5D (изометрия) играх, где некоторые текстуры тоже эмулируют отдалённость
Допустим у нас текстура весит 0.5мб, и таких текстур 10тыщ на экране, но две с них близко к персонажу (камере), а остальные - вдали. И для экономии места в GPU VRAM (оперативная память видеокарты) отрисовывается тот мип-уровень, который больше всего подходит, а какой больше подходит - решает видеокарта (она решает больше чем я в этой жизни). Т.е. если дерево с текстурой Ultra HD 16k находится на таком расстоянии, что там видно только пару пикселей - будет отображаться мип-уровень 2х2, который в видеокарте занимает 0кб места (грубо говоря) вместо 0.5мб
Также если отображать текстуру Ultra HD 16k в очень маленьком размере в игре - то будет возникать или рябь (мелькание/мигание текстуры или на текстуре), или "зубчатые края", уверен вы все видели "лесенки" в текстурах в играх. Так вот - рябь убирается фильтрацией, а "лесенка" - сглаживанием
В общем мипмаппинг используется для:
- Фильтрации. Анизотропная, трилинейная, билинейная (последние две устарели)
- Сглаживания. Убирает лесенки в текстурах
- Оптимизации. Уменьшение нагрузки на видеокарту, ускорение рендеринга
- Еда. Может сварить борщ (не точно, но очень вероятно)
Прямо чудо какое-то этот ваш "мэпмаппинк"
#интересное
Теперь к основному контенту
— Мипмаппинг —
Во-первых, что такое мипмаппинг?
Mipmapping - это процесс генерации набора уменьшенных копий одной текстуры, которые используются при отображении объекта на разных расстояниях от камеры. Эти копии называются мип-уровнями. Генерация обычно происходит во время билда игры (за редкими исключениями)
Если попроще - то у нас есть текстура 64х64, уменьшенная копия текстуры это.. 63х63, 13х13 и так далее, НО компьютеры работают с бинарной системой (би = два) т.е. нолик и единичка, включен и выключен,
Но если текстура будет NPOT, то уменьшение будет слегка "непонятным", например 63х63 => 31x31 => 15x15 => ... => 1x1, работать работает, но вычислений занимает чуточку больше. Раньше (лет 10 назад) видеокарты вообще не умели работать с NPOT, но сейчас уже всё стабильно (за редким исключением в виде старых калькуляторов)
А еще движки могут специально делать Padding для NPOT текстуры, чтобы было проще с ней работать, т.е. сначала идёт превращение текстуры NPOT => POT, например 15х39 => 16x64 и потом уже делать мипмаппинг или компрессию, но это частные случаи
Да, это всё интересно - а нафига этот мипмаппинг?
Он используется только там, где есть отдаление, т.е. в 3D играх с перспективной камерой или же в 2.5D (изометрия) играх, где некоторые текстуры тоже эмулируют отдалённость
Допустим у нас текстура весит 0.5мб, и таких текстур 10тыщ на экране, но две с них близко к персонажу (камере), а остальные - вдали. И для экономии места в GPU VRAM (оперативная память видеокарты) отрисовывается тот мип-уровень, который больше всего подходит, а какой больше подходит - решает видеокарта (она решает больше чем я в этой жизни). Т.е. если дерево с текстурой Ultra HD 16k находится на таком расстоянии, что там видно только пару пикселей - будет отображаться мип-уровень 2х2, который в видеокарте занимает 0кб места (грубо говоря) вместо 0.5мб
Также если отображать текстуру Ultra HD 16k в очень маленьком размере в игре - то будет возникать или рябь (мелькание/мигание текстуры или на текстуре), или "зубчатые края", уверен вы все видели "лесенки" в текстурах в играх. Так вот - рябь убирается фильтрацией, а "лесенка" - сглаживанием
В общем мипмаппинг используется для:
- Фильтрации. Анизотропная, трилинейная, билинейная (последние две устарели)
- Сглаживания. Убирает лесенки в текстурах
- Оптимизации. Уменьшение нагрузки на видеокарту, ускорение рендеринга
- Еда. Может сварить борщ (не точно, но очень вероятно)
Прямо чудо какое-то этот ваш "мэпмаппинк"
#интересное
🔥11
Текстуры² #3
POT и NPOT - еще различия?
— Компрессия —
В общем-то тут ничего сверхъестественного - у вас есть текстура размером 1024х1024px с цветовым форматом RGBA 32 бита, такая текстура будет весить 4мб. При билде игры движок сжимает текстуру с помощью специальных алгоритмов и размер уменьшается.. до 8 раз, то есть с 4мб текстура может стать 0.5мб и, что самое главное, практически не потерять в качестве. "Практически" значит что даже с лупой в 4к мониторе не заметить разницы. Если честно - я был очень сильно удивлён, когда узнал, что такое вообще возможно
-
Мини-отступление - "RGBA 32 бита" это что? RGBA это такой формат текстур, где каждый пиксель содержит четыре канала - R (red), G (green), B (blue), A (alpha - прозрачность, где 0 = прозрачный, а 255 - непрозрачный), который позволяет отображать миллионы разных цветов. На каждый канал выделяется 8бит, 8бит = 2^8 = 256 значений. Например полностью красный цвет это (255, 0, 0, 255) - красный на максимум, зелёный и синий на ноль и непрозрачный. Почему 255 это максимум? Исчисление начинается с нуля, а не с единицы (в общем как почти во всём программировании)
Так вот, на каждый пиксель у нас 32бита, на каждый канал по 8бит (R + G + B + A = 32), 32бита = 4байта (просто для расчёта памяти используются байты). Каждая сторона текстуры 1024px, и выходит, что 1024*1024*4байта = 4мб (4 194 304 байта)
-
Алгоритмы сжатия бывают разные - DXT1, ETC2, ASTC, но у них есть кое-что общее - они все работают значительно лучше на POT текстурах, это связано с тем, что алгоритмы компрессии делят текстуру на блоки фиксированного размера (обычно 4×4) и для текстур со сторонами степени двойки это делается без остатка, что улучшает производительность и экономит память
Аналогия из жизни - вот позвали вас кушать, вы приходите, а там пюрешка с котлеткой (POT), ну вы довольные сразу принимаетесь за утилизацию еды. Другая ситуация - вас позвали кушать, вы приходите, а там сырая грязная картошка, рядом с ней фарш (живой) и вам нужно сначала приготовить это всё дело, перед тем как поесть
Так же само и с сжатием текстур - движки, GPU, графический API (OpenGL, Vulkan и т.д.) если видят текстуру 63х63, они сначала приводят её к размеру 64х64 и только потом делают компрессию. Чаще всего конечно же это делает игровой движок вместе с графическим API на этапе билда игры. Это стандартная оптимизация, чтобы компрессия работала без артефактов (или аномалий, как в сталкере)
Подытожим про POT и NPOT, мипмаппинг и компрессию - сейчас в принципе все видеокарты очень хорошо и эффективно работают с NPOT текстурами, особенно для мипмаппинга, но если возможно - используйте/делайте POT текстуры, и только когда надо используйте NPOT. Для 2D игр это особо не роляет, но для 2.5D/3D может быть немного заметно. Это конечно всё "микрооптимизации", но это настолько простая вещь, что если вы целенаправленно используете/делаете NPOT текстуры без причины - то это прямо грех на душу берётся
—
И да, вместо деланья игры иногда я изучаю практически бесполезные вещи, ну что поделать - мне реально было интересно почему все делают POT текстуры и не говорят почему🥴
POTный пост получился
#интересное
POT и NPOT - еще различия?
— Компрессия —
В общем-то тут ничего сверхъестественного - у вас есть текстура размером 1024х1024px с цветовым форматом RGBA 32 бита, такая текстура будет весить 4мб. При билде игры движок сжимает текстуру с помощью специальных алгоритмов и размер уменьшается.. до 8 раз, то есть с 4мб текстура может стать 0.5мб и, что самое главное, практически не потерять в качестве. "Практически" значит что даже с лупой в 4к мониторе не заметить разницы. Если честно - я был очень сильно удивлён, когда узнал, что такое вообще возможно
-
Мини-отступление - "RGBA 32 бита" это что? RGBA это такой формат текстур, где каждый пиксель содержит четыре канала - R (red), G (green), B (blue), A (alpha - прозрачность, где 0 = прозрачный, а 255 - непрозрачный), который позволяет отображать миллионы разных цветов. На каждый канал выделяется 8бит, 8бит = 2^8 = 256 значений. Например полностью красный цвет это (255, 0, 0, 255) - красный на максимум, зелёный и синий на ноль и непрозрачный. Почему 255 это максимум? Исчисление начинается с нуля, а не с единицы (в общем как почти во всём программировании)
Так вот, на каждый пиксель у нас 32бита, на каждый канал по 8бит (R + G + B + A = 32), 32бита = 4байта (просто для расчёта памяти используются байты). Каждая сторона текстуры 1024px, и выходит, что 1024*1024*4байта = 4мб (4 194 304 байта)
-
Алгоритмы сжатия бывают разные - DXT1, ETC2, ASTC, но у них есть кое-что общее - они все работают значительно лучше на POT текстурах, это связано с тем, что алгоритмы компрессии делят текстуру на блоки фиксированного размера (обычно 4×4) и для текстур со сторонами степени двойки это делается без остатка, что улучшает производительность и экономит память
Аналогия из жизни - вот позвали вас кушать, вы приходите, а там пюрешка с котлеткой (POT), ну вы довольные сразу принимаетесь за утилизацию еды. Другая ситуация - вас позвали кушать, вы приходите, а там сырая грязная картошка, рядом с ней фарш (живой) и вам нужно сначала приготовить это всё дело, перед тем как поесть
Так же само и с сжатием текстур - движки, GPU, графический API (OpenGL, Vulkan и т.д.) если видят текстуру 63х63, они сначала приводят её к размеру 64х64 и только потом делают компрессию. Чаще всего конечно же это делает игровой движок вместе с графическим API на этапе билда игры. Это стандартная оптимизация, чтобы компрессия работала без артефактов (или аномалий, как в сталкере)
Подытожим про POT и NPOT, мипмаппинг и компрессию - сейчас в принципе все видеокарты очень хорошо и эффективно работают с NPOT текстурами, особенно для мипмаппинга, но если возможно - используйте/делайте POT текстуры, и только когда надо используйте NPOT. Для 2D игр это особо не роляет, но для 2.5D/3D может быть немного заметно. Это конечно всё "микрооптимизации", но это настолько простая вещь, что если вы целенаправленно используете/делаете NPOT текстуры без причины - то это прямо грех на душу берётся
—
И да, вместо деланья игры иногда я изучаю практически бесполезные вещи, ну что поделать - мне реально было интересно почему все делают POT текстуры и не говорят почему
POTный пост получился
#интересное
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥5
Media is too big
VIEW IN TELEGRAM
День 176-195. Девлог
Апдейты за период 22 Декабря - 10 Января
Как всегда - пара обновлений/фиксов были сделаны по фидбеку из комментов, спасибо👍
Там еще много чего из комментов есть что добавить - всё в процессе
Обновлен курсор
- Системный курсор заменён на спрайт прицела
Хотелось конечно еще накрутить логики типа "прицел становится красным при наведении на врагов", но лучше сосредоточиться на главном
Добавлена система статусов
Техническая вещь, попотел над ней конечно. Теперь есть возможность вешать любой DOT/HOT на врагов и персонажа
DOT (Damage Over Time) - Периодический урон
HOT (Heal Over Time) - Периодическое лечение
Добавлено улучшение Bloody Burden для пистолета
Наносит урон со временем, работает как кровотечение. При очередном попадании во врага эффект обновляется
Пофикшен спавн врагов за ареной
Теперь уж точно🤝 🤝
Проблема была в новых камнях, которые появились на арене
Версия v0.0.12 уже на itch.io - https://sundwell.itch.io/ritka-rampage
И небольшое напоминание, что код полностью открыт - https://github.com/Sundwell/ritka-rampage
#девлог #ritkarampage
Апдейты за период 22 Декабря - 10 Января
Дисклеймер - качество видео шакальное (новый ноут еще не настроил, а на старом чет ОБС вообще загрустил)
Как всегда - пара обновлений/фиксов были сделаны по фидбеку из комментов, спасибо
Там еще много чего из комментов есть что добавить - всё в процессе
Обновлен курсор
- Системный курсор заменён на спрайт прицела
Хотелось конечно еще накрутить логики типа "прицел становится красным при наведении на врагов", но лучше сосредоточиться на главном
Добавлена система статусов
Техническая вещь, попотел над ней конечно. Теперь есть возможность вешать любой DOT/HOT на врагов и персонажа
DOT (Damage Over Time) - Периодический урон
HOT (Heal Over Time) - Периодическое лечение
Добавлено улучшение Bloody Burden для пистолета
Наносит урон со временем, работает как кровотечение. При очередном попадании во врага эффект обновляется
Пофикшен спавн врагов за ареной
Теперь уж точно
Проблема была в новых камнях, которые появились на арене
Версия v0.0.12 уже на itch.io - https://sundwell.itch.io/ritka-rampage
И небольшое напоминание, что код полностью открыт - https://github.com/Sundwell/ritka-rampage
#девлог #ritkarampage
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤1👍1