Привет, это я - твой единственный зритель (1), я на протяжении 120+ дней создавал иллюзию того, что нас становится больше. Сейчас подпишусь со всех аккаунтов.
Сегодня посты уже не в силах буду написать, пойду сейчас уже спать (щас только 19:00, но я уже "всё")
Завтра напишу про вчерашний результат с стилизацией кнопок и менюшек и еще про мой вчерашний поход в горы
Вкратце - я, почти что ходячий центнер + комнатное растение поехал в горы (не первый раз конечно, но всё же). Мы вышли в 7 утра и думали уже к 17:00 быть дома. В итоге в 18:00 мы только дошли на вершину горы (2000 метров вершина вроде) и уже было полностью темно и вся группа уже на нервах была, т.к. последний автобус/маршрутка от парковки был в 17-18:00, а мы к парковке дошли только к 21:45. А я то думал: "Эх, как хорошо, дома будем в 17:00, это я и работу успею доделать и поучиться и посты написать", ну, а получилось как всегда👀
Сейчас ощущения будто меня били палкамиза вчерашние посты и переехал грузовик (два раза)
Прикреплю скрин моих наработок с кнопками (результат в игре не буду спойлерить, эт уже завтра будет) и еще пару видео с горы и статистику "горного итога"
Сегодня посты уже не в силах буду написать, пойду сейчас уже спать (щас только 19:00, но я уже "всё")
Завтра напишу про вчерашний результат с стилизацией кнопок и менюшек и еще про мой вчерашний поход в горы
Вкратце - я, почти что ходячий центнер + комнатное растение поехал в горы (не первый раз конечно, но всё же). Мы вышли в 7 утра и думали уже к 17:00 быть дома. В итоге в 18:00 мы только дошли на вершину горы (2000 метров вершина вроде) и уже было полностью темно и вся группа уже на нервах была, т.к. последний автобус/маршрутка от парковки был в 17-18:00, а мы к парковке дошли только к 21:45. А я то думал: "Эх, как хорошо, дома будем в 17:00, это я и работу успею доделать и поучиться и посты написать", ну, а получилось как всегда
Сейчас ощущения будто меня били палками
Прикреплю скрин моих наработок с кнопками (результат в игре не буду спойлерить, эт уже завтра будет) и еще пару видео с горы и статистику "горного итога"
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3😱2❤1
День 125
Юайная часть закончена✔️ (на данный момент)
Переделал стилизацию кнопок - сделал их объемными. Спасибо wrongath за совет, это реально то, чего не хватало этим кнопкам. Еще добавил стилизацию для состояния "Pressed" (когда кнопка нажата)
Доделал Win/Lose экран - теперь они выглядят не ущербно и появляются с небольшой "упругой" анимацией
К слову про кнопки и вообще визуальщину - для этого в том же вебе есть отдельный человек (или даже несколько):
- UI => User Interface => То, что видит пользователь. Грубо говоря это просто раскраска кнопочек
- UX => User Experience => Удобство пользователя. "Кнопку поставить слева или справа? Где будет удобнее? А надо ли эта кнопка вообще?"
Это прям реально серьёзная вещь, которой в идеале должен будет заниматься отдельный человек в будущем. UX дизайнер применяет лучшие практики, которые привычны пользователю, проводит разные исследования, A/B тесты и так далее
Самый банальный пример - кнопка "позвонить" в телефоне. Почему там "трубка" от старого телефона, ведь у нас смартфоны и никаких трубок в помине нет.. Это всё привычка и удобство - все знают и привыкли к такому, поэтому никто это не меняет
Про кнопки - у них есть много состояний, но вот основные:
1. Default - обычное состояние, допустим цвет "оранжевый". То, как выглядит кнопка в свою обычную кнопочную жизнь
2. Hover - состояния при наведении. Кнопка должна быть светлее на +- один тон от основного цвета (оранжевого)
3. Active/Pressed - состояние при нажатии. Кнопка должна быть темнее на +- один тон от основного цвета
4. Focus - состояние при фокусировке на кнопке. Это состояние вы можете наблюдать на консолях/приставках/стимдеках/геймпадах и т.д., когда вы клацаете вверх-вниз в менюшке, то какой-то элемент подсвечивается/выделяется, и это даёт вам понять что если вы нажмёте кнопку [кнопка_действия], то вы нажмёте именно на то, что хотите. Обычно цвет не меняется, чаще всего делается какая-то обводка поверх кнопки (outline)
5. Disabled - неактивная кнопка. Обычно просто серая полностью
Конечно еще есть несколько состояний, но это основные. Это конечно же UI, но он напрямую влияет на UX, т.к. пользователь/игрок видит отзывчивость - навёл на кнопку и она посветлела, значит, можно клацнуть и так далее
Прикрепил видео с процессом разработки UI и коротким конечным результатом
И также обновил версию игры на itch.io, поиграть и скачать разные версии можно тут - https://sundwell.itch.io/ritka-rampage
#ritkarampage #разработка #godot
Юайная часть закончена
Переделал стилизацию кнопок - сделал их объемными. Спасибо wrongath за совет, это реально то, чего не хватало этим кнопкам. Еще добавил стилизацию для состояния "Pressed" (когда кнопка нажата)
Доделал Win/Lose экран - теперь они выглядят не ущербно и появляются с небольшой "упругой" анимацией
К слову про кнопки и вообще визуальщину - для этого в том же вебе есть отдельный человек (или даже несколько):
- UI => User Interface => То, что видит пользователь. Грубо говоря это просто раскраска кнопочек
- UX => User Experience => Удобство пользователя. "Кнопку поставить слева или справа? Где будет удобнее? А надо ли эта кнопка вообще?"
Это прям реально серьёзная вещь, которой в идеале должен будет заниматься отдельный человек в будущем. UX дизайнер применяет лучшие практики, которые привычны пользователю, проводит разные исследования, A/B тесты и так далее
Самый банальный пример - кнопка "позвонить" в телефоне. Почему там "трубка" от старого телефона, ведь у нас смартфоны и никаких трубок в помине нет.. Это всё привычка и удобство - все знают и привыкли к такому, поэтому никто это не меняет
Про кнопки - у них есть много состояний, но вот основные:
1. Default - обычное состояние, допустим цвет "оранжевый". То, как выглядит кнопка в свою обычную кнопочную жизнь
2. Hover - состояния при наведении. Кнопка должна быть светлее на +- один тон от основного цвета (оранжевого)
3. Active/Pressed - состояние при нажатии. Кнопка должна быть темнее на +- один тон от основного цвета
4. Focus - состояние при фокусировке на кнопке. Это состояние вы можете наблюдать на консолях/приставках/стимдеках/геймпадах и т.д., когда вы клацаете вверх-вниз в менюшке, то какой-то элемент подсвечивается/выделяется, и это даёт вам понять что если вы нажмёте кнопку [кнопка_действия], то вы нажмёте именно на то, что хотите. Обычно цвет не меняется, чаще всего делается какая-то обводка поверх кнопки (outline)
5. Disabled - неактивная кнопка. Обычно просто серая полностью
Конечно еще есть несколько состояний, но это основные. Это конечно же UI, но он напрямую влияет на UX, т.к. пользователь/игрок видит отзывчивость - навёл на кнопку и она посветлела, значит, можно клацнуть и так далее
Прикрепил видео с процессом разработки UI и коротким конечным результатом
И также обновил версию игры на itch.io, поиграть и скачать разные версии можно тут - https://sundwell.itch.io/ritka-rampage
#ritkarampage #разработка #godot
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7
День 126-127
Горные истории 🌄
В прошлую пятницу я поехал с компанией в горы, это не впервой уже для меня, но этот раз был прям фатальным☠️
Началось всё в субботу - проснулись в 6:30, в 7+- вышли, пошли в кафешку, покушали и попили кофе и поехали на маршрутке к чекпоинту (эх, если бы так и было). К паркингу в общем приехали, потому что дальше уже только пешком
Последняя маршрутка оттуда в 18:00, ну это так, на будущее..
Где-то около 9 утра уже шли по тропе, поднимались в горы. Мы рассчитывали где-то уже в 17:00 быть ДОМА (ага)
Но вот незадача - мы прошли где-то 75% пути к целевой точке (вершина горы), но эти 25% были просто нереально сложными, и я как ходячий центнер (почти) могу это с уверенностью подтвердить. У меня и давление скакало, и немного было ощущение что я умру (ну да), высота то большая уже была, а я привык к высоте примерно 50см над уровнем пола в комнате на мягком кресле
Красиво было это точно, да только на гору мы взобрались к.. 17:00. Т.е. путь в одну сторону забрал как минимум 7-8 часов. Конечно мы фотографировались еще и всё такое, но был один человек, который тормозил всех последние 25% пути (да я🎩 )
И у водопада побывали, и в тучках тоже, и на вершине 2200м+ побывали, а потом.. нам же спускаться, назад идти минимум 3 часа (до паркинга самого), а последняя маршрутка уходит в 18:00. В общем уже думали ночевать в горах, типа сделать какой-то шалаш с хвои и всё такое, но нет - всё-таки пошли дальше
Если при подъёме я тормозил всех каждые 5-10 минут чтобы мой пульс не убежал раньше меня, то при спуске всё было гораздо хуже - у меня тупо схватила судорога на ноге.. и на второй тоже. И это было всю дорогу назад (~18км), приходилось постоянно отдыхать первые 4км+-, потом попроще стало. Везде камни, неровности, супер сложно было неподготовленному кожаному мешку идти вот так. Конечно же тяжело было всем, но дайте поныть про себя, ну👀
И эти судороги так сильно душили мои ноги, что мышцы так сильно и долго напрягались, что это всё перешло в постоянную жуткую боль (типа как на синяк большой постоянно давят), но я потом потихоньку начал идти не спеша и еще боком, а не прямо - и стало попроще. Ведь это спуск вниз, постоянно надо напрягать ноги чтобы не упасть, это всё мышечное напряжение (ментального напряжения не было - только воздух в голове)
В общем пришли мы к "хостелу" где-то в 19:00, а от него еще 10км к паркингу идти, но это хоть по асфальту уже ровному +-. Собрались с силами и вышли в 19:30 к паркингу, пришли в 21:45, нам очень повезло вызвать туда такси, ну так мы и поехали домой
"Ох, щас покупаемся и спать" думали мы. Ага, фиг там, горячей воды не было, постельного и полотенцев для пятого кента не было, электричество в половине квартиры включалось только тогда.. когда была включена горячая вода. Да да - чтобы был свет, надо оставить включенную горячую воду (горячей воды не было, всегда бежала холодная, но энивей надо на горячей отметке оставлять). Короче с квартиркой не повезло конкретно. Ну да ладно, разок можно и повонять ночью (или не разок)
На этом всё не закончилось - когда я проснулся на следующий день в воскресенье я понял, что больше не могу ходить ☠️
Шагал как полусогнутый дед со скоростью 0.5км/ч, все тело болело даже без какого-то движения (верх из-за рюкзака, руки из-за ползаний по горам, ноги из-за гор тоже). Даже, блин, жопа болела - натёр себе штанами свои ляшки и не только, у меня там будто шрифт Брайля был
Но мне понравилось, всем понравилось - было реально круто, красиво и необычно. В следующий раз перед походом в горы надо скинуть 15кг и будет вообще четко
Прикреплю пару фоточек, результат и видосик смонтированный
Горные истории 🌄
В прошлую пятницу я поехал с компанией в горы, это не впервой уже для меня, но этот раз был прям фатальным
Началось всё в субботу - проснулись в 6:30, в 7+- вышли, пошли в кафешку, покушали и попили кофе и поехали на маршрутке к чекпоинту (эх, если бы так и было). К паркингу в общем приехали, потому что дальше уже только пешком
Последняя маршрутка оттуда в 18:00, ну это так, на будущее..
Где-то около 9 утра уже шли по тропе, поднимались в горы. Мы рассчитывали где-то уже в 17:00 быть ДОМА (ага)
Но вот незадача - мы прошли где-то 75% пути к целевой точке (вершина горы), но эти 25% были просто нереально сложными, и я как ходячий центнер (почти) могу это с уверенностью подтвердить. У меня и давление скакало, и немного было ощущение что я умру (ну да), высота то большая уже была, а я привык к высоте примерно 50см над уровнем пола в комнате на мягком кресле
Красиво было это точно, да только на гору мы взобрались к.. 17:00. Т.е. путь в одну сторону забрал как минимум 7-8 часов. Конечно мы фотографировались еще и всё такое, но был один человек, который тормозил всех последние 25% пути (да я
И у водопада побывали, и в тучках тоже, и на вершине 2200м+ побывали, а потом.. нам же спускаться, назад идти минимум 3 часа (до паркинга самого), а последняя маршрутка уходит в 18:00. В общем уже думали ночевать в горах, типа сделать какой-то шалаш с хвои и всё такое, но нет - всё-таки пошли дальше
Если при подъёме я тормозил всех каждые 5-10 минут чтобы мой пульс не убежал раньше меня, то при спуске всё было гораздо хуже - у меня тупо схватила судорога на ноге.. и на второй тоже. И это было всю дорогу назад (~18км), приходилось постоянно отдыхать первые 4км+-, потом попроще стало. Везде камни, неровности, супер сложно было неподготовленному кожаному мешку идти вот так. Конечно же тяжело было всем, но дайте поныть про себя, ну
И эти судороги так сильно душили мои ноги, что мышцы так сильно и долго напрягались, что это всё перешло в постоянную жуткую боль (типа как на синяк большой постоянно давят), но я потом потихоньку начал идти не спеша и еще боком, а не прямо - и стало попроще. Ведь это спуск вниз, постоянно надо напрягать ноги чтобы не упасть, это всё мышечное напряжение (ментального напряжения не было - только воздух в голове)
В общем пришли мы к "хостелу" где-то в 19:00, а от него еще 10км к паркингу идти, но это хоть по асфальту уже ровному +-. Собрались с силами и вышли в 19:30 к паркингу, пришли в 21:45, нам очень повезло вызвать туда такси, ну так мы и поехали домой
"Ох, щас покупаемся и спать" думали мы. Ага, фиг там, горячей воды не было, постельного и полотенцев для пятого кента не было, электричество в половине квартиры включалось только тогда.. когда была включена горячая вода. Да да - чтобы был свет, надо оставить включенную горячую воду (горячей воды не было, всегда бежала холодная, но энивей надо на горячей отметке оставлять). Короче с квартиркой не повезло конкретно. Ну да ладно, разок можно и повонять ночью (или не разок)
На этом всё не закончилось - когда я проснулся на следующий день в воскресенье я понял, что больше не могу ходить ☠️
Шагал как полусогнутый дед со скоростью 0.5км/ч, все тело болело даже без какого-то движения (верх из-за рюкзака, руки из-за ползаний по горам, ноги из-за гор тоже). Даже, блин, жопа болела - натёр себе штанами свои ляшки и не только, у меня там будто шрифт Брайля был
Но мне понравилось, всем понравилось - было реально круто, красиво и необычно. В следующий раз перед походом в горы надо скинуть 15кг и будет вообще четко
Прикреплю пару фоточек, результат и видосик смонтированный
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤1👏1
День 128
Вчера продолжил смотреть курс, ничего особо нового там не было - преподаватель доделывает визуальные эффекты, добавляет улучшения и все то, что я уже сделал ранее. Но я не пропускаю ни одного видео, ведь случайно могу упустить какую-то важную деталь, за свои 5+ лет разработки и обучения я в этом удостоверился на все 100% (не пропускать ни одного видео)
И конечно же мне есть о чем рассказать интересного, в том числе про "загрузочный экран" (но о нём в следующем посте👀 )
Но сперва про другие не менее важные вещи
Первое - я задал вопрос и получил ответ (ого). Я уже вскользь упоминал про проблему с изменением размеров дочерним Control нодам. Снова вкратце про проблему - если у нас есть контейнер, то только он может отвечать за ширину, высоту, масштабирование и всякое такое, те, кто внутри контейнера - уже не могут сами себе это менять, и в этом есть большая проблема - как мне изначально задать условной панели scale = 0, а потом сделать так, чтобы панелька появилась с анимацией scale 0 => 1 за 300мс условно. Ответ - через костыли.. В общем официального способа нет, но все пользуются Tween или интерполяцией, но чаще Tween (инфа раз, два, три, четыре), как-то запишу об этом видео или напишу пост, тема то важная все-таки
Второе - пофиксил пару багов
Спавн врагов
Враги у меня спавнятся в радиусе вокруг игрока, если грубо и вкратце - есть невидимый круг, и каждую секунду выбирается случайная точка на границе этого круга (или окружности, не важно👀 ) и таким образом враг появляется вне зоны видимости игрока (должен был)
Минутка математики. Размер viewport'а (видимое пространство для игры) у меня 640х360px, а радиус спавна был почему-то... 180px. Враги спавнились почти всегда в поле зрения игрока, и было только две "невидимые" точки (из сотен вариантов) - 0 по горизонтали и 180px или -180px по вертикали. Ведь если враг заспавнится слева, это будет расстояние 180px от игрока, а игрок видит влево и вправо по 320px, т.е. враги появлялись на полпути к Ритке
Как вычислить правильный радиус для спавна - очень легко, нам нужно просто найти диагональ нашего viewport'а и это будет диаметром нашего круга, а радиус = диаметр/2
Диагональ вьюпорта = √(a^2 + b^2), где a и b - стороны прямоугольника. В нашем случае это √(640^2 + 360^2) = √(409000 + 129600) ≈ 734px, добавим еще немного для надёжности и будет 740px диагональ, берём половину = 370px - это и есть наш реальный радиус спавна врагов, чтобы мы не видели их появление
Пофиксил незаметный баг с границами арены - нельзя было передвигаться впритык к краям арены, потому что там была невидимые спрайты воды, а спрайты воды это границы арены. В общем сейчас можно по-настоящему забиться в угол😎
#godot #ritkarampage #разработка
Вчера продолжил смотреть курс, ничего особо нового там не было - преподаватель доделывает визуальные эффекты, добавляет улучшения и все то, что я уже сделал ранее. Но я не пропускаю ни одного видео, ведь случайно могу упустить какую-то важную деталь, за свои 5+ лет разработки и обучения я в этом удостоверился на все 100% (не пропускать ни одного видео)
И конечно же мне есть о чем рассказать интересного, в том числе про "загрузочный экран" (но о нём в следующем посте
Но сперва про другие не менее важные вещи
Первое - я задал вопрос и получил ответ (ого). Я уже вскользь упоминал про проблему с изменением размеров дочерним Control нодам. Снова вкратце про проблему - если у нас есть контейнер, то только он может отвечать за ширину, высоту, масштабирование и всякое такое, те, кто внутри контейнера - уже не могут сами себе это менять, и в этом есть большая проблема - как мне изначально задать условной панели scale = 0, а потом сделать так, чтобы панелька появилась с анимацией scale 0 => 1 за 300мс условно. Ответ - через костыли.. В общем официального способа нет, но все пользуются Tween или интерполяцией, но чаще Tween (инфа раз, два, три, четыре), как-то запишу об этом видео или напишу пост, тема то важная все-таки
Второе - пофиксил пару багов
Спавн врагов
Враги у меня спавнятся в радиусе вокруг игрока, если грубо и вкратце - есть невидимый круг, и каждую секунду выбирается случайная точка на границе этого круга (или окружности, не важно
Минутка математики. Размер viewport'а (видимое пространство для игры) у меня 640х360px, а радиус спавна был почему-то... 180px. Враги спавнились почти всегда в поле зрения игрока, и было только две "невидимые" точки (из сотен вариантов) - 0 по горизонтали и 180px или -180px по вертикали. Ведь если враг заспавнится слева, это будет расстояние 180px от игрока, а игрок видит влево и вправо по 320px, т.е. враги появлялись на полпути к Ритке
Как вычислить правильный радиус для спавна - очень легко, нам нужно просто найти диагональ нашего viewport'а и это будет диаметром нашего круга, а радиус = диаметр/2
Диагональ вьюпорта = √(a^2 + b^2), где a и b - стороны прямоугольника. В нашем случае это √(640^2 + 360^2) = √(409000 + 129600) ≈ 734px, добавим еще немного для надёжности и будет 740px диагональ, берём половину = 370px - это и есть наш реальный радиус спавна врагов, чтобы мы не видели их появление
Пофиксил незаметный баг с границами арены - нельзя было передвигаться впритык к краям арены, потому что там была невидимые спрайты воды, а спрайты воды это границы арены. В общем сейчас можно по-настоящему забиться в угол
#godot #ritkarampage #разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👏2
Media is too big
VIEW IN TELEGRAM
Так вот зачем загрузочный экран 😱
И, наконец-то, про экран загрузки. Зачем экран загрузки, если игра уже скачана то?
Замечали ли вы подлагивания в играх, когда переходите в новую локацию? Особенно когда эти переходы должны быть бесшовными, как в Kenshi. Так вот - это подгружаются ресурсы, нужные для этой сцены (для этой части локации). Ведь если всё-всё держать в памяти, то это будет ой как неприятно сказываться на производительности, а нам ведь нужно оптимизировать игру чтобы всё работало стабильно и без фризов
Например у меня в игре есть эффект поедания апельсина, при первом поедании апельсина есть микро-фриз (это называется stutter), а во всех последующих - всё идеально-плавно. Это всё потому, что этот эффект использует шейдер под капотом, а шейдеры сами по себе "ленивые", то есть пока их не используют хотя бы раз - они не загрузятся в память и не закешируются. А при загрузке чего-то в память может произойти статтер/фриз/подлаг - каждый по-разному называет, но болит у всех одинаково😢
Есть два подхода к решению этой проблемы:
1. Билд всех шейдеров перед игрой, перед самим заходом в игру, возможно в лаунчере или установщике
2. Подгрузка шейдеров во время экрана зарузки
Первый подход подразумевает компиляцию всех шейдеров до начала игры. Например в The Last of Us или.. Genshin Impact шейдеры комплириуются перед первым началом игры (в Геншине вроде в лаунчере вообще) и потом при каждом обновлении. Это занимает какое-то время, иногда даже очень большое время, в зависимости от мощности пекарни (компьютера/PC ). Т.е. игру можно скачать за пару часов, а шейдеры будут билдится часа 4, но, думаю, это редкость (или нет?)
Второй подход говорит сам за себя - те шейдеры, что используется на подгружаемой локации/уровне мы просто разочек запускаем во время загрузочного экрана, и все последующие эффекты уже работают без статтеров
Минусы и плюсы:
Предварительная компиляция/билд шейдеров (1)
+ Плавная игра без статтеров, т.к. всё уже заранее подготовлено
+ Оптимизированный кеш. При билде всех шейдеров они более эффективно сохраняются и используются в памяти, т.к. заранее структурируются. И стабильность тоже из-за этого лучше (вряд-ли будут графические артефакты)
- Долгий билд, нельзя сразу взять и сесть играть и каждая обнова требует ребилд всех шейдеров или их части
Компиляция/билд нужных шейдеров на лету (во время загрузочного экрана) (2)
+ Скачал и сразу играешь, не надо каждую обнову билдить все шейдеры (покрывает минус первого подхода)
+ Все шейдеры не хранятся в кеше, а подгружаются туда когда надо = меньше нагрузка на комп
- Всё еще возможны артефакты и подергивания (статтеры), т.к. реализация этого подхода намного сложнее и все нюансы можно не учесть
- Сложность реализации (из пункта выше)
Я так понимаю что эти два подхода можно комбинировать, но пока что для моей супер-мощной игры думаю этого не требуется😎
Вот интересное видео как чел решал проблему с статтерами - https://youtu.be/oG-H-IfXUqI?t=438. Он сам лично проходил весь уровень, записывал все движения и потом во время загрузочного экрана очень быстро проигрывал эту сцену за кадром, таким образом загружая все (имхо вряд-ли все ) шейдеры в кеш
Я же решил проблему проще - создал сцену, где будут все эффекты, и я их один раз запущу перед началом игры во время экрана загрузки. Прикреплю видео с моим решением
И, наконец-то, про экран загрузки. Зачем экран загрузки, если игра уже скачана то?
Замечали ли вы подлагивания в играх, когда переходите в новую локацию? Особенно когда эти переходы должны быть бесшовными, как в Kenshi. Так вот - это подгружаются ресурсы, нужные для этой сцены (для этой части локации). Ведь если всё-всё держать в памяти, то это будет ой как неприятно сказываться на производительности, а нам ведь нужно оптимизировать игру чтобы всё работало стабильно и без фризов
Например у меня в игре есть эффект поедания апельсина, при первом поедании апельсина есть микро-фриз (это называется stutter), а во всех последующих - всё идеально-плавно. Это всё потому, что этот эффект использует шейдер под капотом, а шейдеры сами по себе "ленивые", то есть пока их не используют хотя бы раз - они не загрузятся в память и не закешируются. А при загрузке чего-то в память может произойти статтер/фриз/подлаг - каждый по-разному называет, но болит у всех одинаково
Есть два подхода к решению этой проблемы:
1. Билд всех шейдеров перед игрой, перед самим заходом в игру, возможно в лаунчере или установщике
2. Подгрузка шейдеров во время экрана зарузки
Первый подход подразумевает компиляцию всех шейдеров до начала игры. Например в The Last of Us или.. Genshin Impact шейдеры комплириуются перед первым началом игры (в Геншине вроде в лаунчере вообще) и потом при каждом обновлении. Это занимает какое-то время, иногда даже очень большое время, в зависимости от мощности пекарни (
Второй подход говорит сам за себя - те шейдеры, что используется на подгружаемой локации/уровне мы просто разочек запускаем во время загрузочного экрана, и все последующие эффекты уже работают без статтеров
Минусы и плюсы:
Предварительная компиляция/билд шейдеров (1)
+ Плавная игра без статтеров, т.к. всё уже заранее подготовлено
+ Оптимизированный кеш. При билде всех шейдеров они более эффективно сохраняются и используются в памяти, т.к. заранее структурируются. И стабильность тоже из-за этого лучше (вряд-ли будут графические артефакты)
- Долгий билд, нельзя сразу взять и сесть играть и каждая обнова требует ребилд всех шейдеров или их части
Компиляция/билд нужных шейдеров на лету (во время загрузочного экрана) (2)
+ Скачал и сразу играешь, не надо каждую обнову билдить все шейдеры (покрывает минус первого подхода)
+ Все шейдеры не хранятся в кеше, а подгружаются туда когда надо = меньше нагрузка на комп
- Всё еще возможны артефакты и подергивания (статтеры), т.к. реализация этого подхода намного сложнее и все нюансы можно не учесть
- Сложность реализации (из пункта выше)
Я так понимаю что эти два подхода можно комбинировать, но пока что для моей супер-мощной игры думаю этого не требуется
Вот интересное видео как чел решал проблему с статтерами - https://youtu.be/oG-H-IfXUqI?t=438. Он сам лично проходил весь уровень, записывал все движения и потом во время загрузочного экрана очень быстро проигрывал эту сцену за кадром, таким образом загружая все (
Я же решил проблему проще - создал сцену, где будут все эффекты, и я их один раз запущу перед началом игры во время экрана загрузки. Прикреплю видео с моим решением
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍2❤1
День 129
Вчера приступил к новому разделу в курсе - звуки и музыка (а еще я хотел вчера написать пост за вчера, каламбур или реальность?)
Хоть отчасти у меня уже есть какие-то звуки в игре, но далеко не факт что я их правильно "использую" если можно так выразиться
Например из текущих вопросов по звукам есть один нерешённый
Пример из игры - персонаж поедает апельсин, апельсин сразу же очищается, а звук поедания должен еще проиграться до конца.. и как это сделать правильно? Ведь звук то внутри сцены апельсина
Пока что решение у меня довольно банальное, но очень и очень неудобное - использовать AnimationPlayer. Т.е. когда я подбираю апельсин, то он у меня становится невидимым, проигрывается звук и спустя пол секунды я удаляю апельсин с помощью
Препод на курсе сделал костыль, что не есть плохо в контексте микроигры, но для чего-то большего его вариант уже не подходит. Варианты на курсе:
1 - Враги. Враг получает урон - проигрывается звук, когда враг умирает - то у него есть специальный DeathComponent, который оставляет какой-то след после врага (у меня это "души" врагов), и в этом DeathComponent он запихивает тот же самый звук и вызывает его при смерти врага. Довольно сложно это описать вот так сразу - но надеюсь что-то понятно 👀
2 - Поднятие опыта. Звук поднятия опыта у него сделан не при соприкосновении "опыта" с персонажем, а в момент, когда опыт попадает в радиус подбора этого опыта, анимация полёта длится около 0.3 секунды и звук успевает проиграть за это время
Но вот в комментах к видео кто-то предложил интересный вариант - проигрывать звук поднятия опыта в ExperienceManager, т.е. когда опыт увеличивается - тогда и звук проигрывать. Звук не прервётся, потому что наш ExperienceManager всегда существует и не удаляется из сцены
Про опыт понятно, а про врагов и остальное? В общем изучаю сейчас этот вопрос, задам его сейчас преподавателю и потом поделюсь с вами решением этой проблемы
Еще уже как почти месяц у нас есть саундтрек для первой арены, ну ооочень хочется с вами поделиться им, я вообще в шоке с того, какой он классный вышел и профессиональный (саундтрек > вся игра). Но добавлением его в игру я займусь или же сейчас или же завтра, а также добавлю его в видео-отчет за 30 дней, который кстати задерживается уже почти на 10 дней🤝 🤝
Саундтрек вообще мощнейший реально, он состоит из 5-ти частей, которые имеют "хвосты" в начале и в конце, тем самым я могу после первой части включить сразу пятую и наоборот, что это даёт? Я могу менять настроение музыки незаметно для игрока в зависимости от ситуации на экране, допустим битва с боссом это максимальное напряжение (5-я часть), когда много врагов на арене - 3 или 4-я часть, когда врагов мало - 1 или 2-я. У нас очень похожие вкусы с звукарем и будущие игры будем делать с большим упором на музыкальное и звуковое сопровождение - динамика, световые эффекты, вкусные звуки и визуальщина.. эх, мечты😊 (но мечта выполнимая)
#godot #ritkarampage #разработка
Вчера приступил к новому разделу в курсе - звуки и музыка (а еще я хотел вчера написать пост за вчера, каламбур или реальность?)
Хоть отчасти у меня уже есть какие-то звуки в игре, но далеко не факт что я их правильно "использую" если можно так выразиться
Например из текущих вопросов по звукам есть один нерешённый
Как правильно проигрывать звук до конца, если родительская нода "очищена/удалена"?
Пример из игры - персонаж поедает апельсин, апельсин сразу же очищается, а звук поедания должен еще проиграться до конца.. и как это сделать правильно? Ведь звук то внутри сцены апельсина
Пока что решение у меня довольно банальное, но очень и очень неудобное - использовать AnimationPlayer. Т.е. когда я подбираю апельсин, то он у меня становится невидимым, проигрывается звук и спустя пол секунды я удаляю апельсин с помощью
queue_free(), но это прям реально неудобно если делать для всех врагов, для каких-то разрушаемых объектов и т.д.Препод на курсе сделал костыль, что не есть плохо в контексте микроигры, но для чего-то большего его вариант уже не подходит. Варианты на курсе:
1 - Враги. Враг получает урон - проигрывается звук, когда враг умирает - то у него есть специальный DeathComponent, который оставляет какой-то след после врага (у меня это "души" врагов), и в этом DeathComponent он запихивает тот же самый звук и вызывает его при смерти врага. Довольно сложно это описать вот так сразу - но надеюсь что-то понятно 👀
2 - Поднятие опыта. Звук поднятия опыта у него сделан не при соприкосновении "опыта" с персонажем, а в момент, когда опыт попадает в радиус подбора этого опыта, анимация полёта длится около 0.3 секунды и звук успевает проиграть за это время
Но вот в комментах к видео кто-то предложил интересный вариант - проигрывать звук поднятия опыта в ExperienceManager, т.е. когда опыт увеличивается - тогда и звук проигрывать. Звук не прервётся, потому что наш ExperienceManager всегда существует и не удаляется из сцены
Про опыт понятно, а про врагов и остальное? В общем изучаю сейчас этот вопрос, задам его сейчас преподавателю и потом поделюсь с вами решением этой проблемы
Еще уже как почти месяц у нас есть саундтрек для первой арены, ну ооочень хочется с вами поделиться им, я вообще в шоке с того, какой он классный вышел и профессиональный (саундтрек > вся игра). Но добавлением его в игру я займусь или же сейчас или же завтра, а также добавлю его в видео-отчет за 30 дней, который кстати задерживается уже почти на 10 дней
Саундтрек вообще мощнейший реально, он состоит из 5-ти частей, которые имеют "хвосты" в начале и в конце, тем самым я могу после первой части включить сразу пятую и наоборот, что это даёт? Я могу менять настроение музыки незаметно для игрока в зависимости от ситуации на экране, допустим битва с боссом это максимальное напряжение (5-я часть), когда много врагов на арене - 3 или 4-я часть, когда врагов мало - 1 или 2-я. У нас очень похожие вкусы с звукарем и будущие игры будем делать с большим упором на музыкальное и звуковое сопровождение - динамика, световые эффекты, вкусные звуки и визуальщина.. эх, мечты
#godot #ritkarampage #разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3🤝2❤1
День 130-131
Вчера и сегодня занимался звуками и музыкой и.. как же это нереально сложно😫
Нет-нет, включить звук, выключить его - ничего сложного. Но просто как представлю сколько звуков нужно нам сделать и чтобы оно всё было в одном стиле, чтобы четко ложилось под саундтрек и, самое главное, под геймплей - меня это просто ужасает😳
Т.е. как минимум все звуки должны:
- Быть одной громкости
- Быть в одном стиле (ретро, фэнтези, рпг и т.д.)
- Быть в "тему", чтобы не перегружать звуками игру
- И еще какие-то пункты, которые я забыл👀
Ну ладно, это мы что-то придумаем с звукарём потом, может есть какой-то курс "Как сделать звуки хорошо и не сделать плоха к игре", который поможет в этом всём
Про фактический прогресс:
- Закончил главу с звуками в курсе
- Сделал пару компонентов для проигрывания случайных звуков (такое уже есть встроенное, но его не хватает). Под "случайные звуки" имеется в виду один из нескольких звуков для одного и того же действия, например может быть 3 вариации звука выстрела и каждый раз будет случайный проигрываться (ну или же pitch_scale менять)
- Добавил музыку в игру. Пока что она "глупая" и не подстраивается под игру, но хоть что-то уже есть
- Расстроился, потому что "блин, как же сложно, проще код писать, чем звуки подбирать"
И как же я рад, что наконец-то закрыл все "хвосты" по работе (работам) и даже в завтрашнюю пятницу я смогу уделить нереально много времени разработке игры и, наконец-то, закончу видео с отчетом за дни с 90 по 120 (руки не доходили доделать)
И еще пару слов насчет звуков и музыки - скорее всего я их доделывать буду в самую последнюю очередь, потому что всякие элементы в игре могут меняться во время активной фазы разработки и звуки могут быстро стать как минимум неактуальными, а как максимум.. вообще-то надо сначала сделать играбельную игру, а не просто музыку со звуками впаять, пора бы мне научиться расставлять приоритеты
К слову музыку и звуки делает мне Женя, и у него есть ютуб канал с его музыкой, в основном это фонк, вот парочка прям мощных треков - первый и второй. Женя прям обожает музыку с "дропами", и я, кстати, тоже. Поэтому концепт следующих игр, их динамику и всё такое буду делать учитывая наш звуковой стиль (динамичный, агрессивный, современный или даже киберпанковский)
Прикреплю пару видео - одно с процессом поиска и добавления звуков и музыки, второе - превью с результатом (с 0 кадрами временами, ох уж этот макбук на интеле... )
Сам трек и его части я закину в комменты. Меня лично трек прям разрывает, осталось как-то правильно его в игру интегрировать (но возможно даже и такое, что мы поменяем саундтрек🤔 )
#godot #ritkarampage #разработка
Вчера и сегодня занимался звуками и музыкой и.. как же это нереально сложно
Нет-нет, включить звук, выключить его - ничего сложного. Но просто как представлю сколько звуков нужно нам сделать и чтобы оно всё было в одном стиле, чтобы четко ложилось под саундтрек и, самое главное, под геймплей - меня это просто ужасает
Т.е. как минимум все звуки должны:
- Быть одной громкости
- Быть в одном стиле (ретро, фэнтези, рпг и т.д.)
- Быть в "тему", чтобы не перегружать звуками игру
- И еще какие-то пункты, которые я забыл
Ну ладно, это мы что-то придумаем с звукарём потом, может есть какой-то курс "Как сделать звуки хорошо и не сделать плоха к игре", который поможет в этом всём
Про фактический прогресс:
- Закончил главу с звуками в курсе
- Сделал пару компонентов для проигрывания случайных звуков (такое уже есть встроенное, но его не хватает). Под "случайные звуки" имеется в виду один из нескольких звуков для одного и того же действия, например может быть 3 вариации звука выстрела и каждый раз будет случайный проигрываться (ну или же pitch_scale менять)
- Добавил музыку в игру. Пока что она "глупая" и не подстраивается под игру, но хоть что-то уже есть
- Расстроился, потому что "блин, как же сложно, проще код писать, чем звуки подбирать"
И как же я рад, что наконец-то закрыл все "хвосты" по работе (работам) и даже в завтрашнюю пятницу я смогу уделить нереально много времени разработке игры и, наконец-то, закончу видео с отчетом за дни с 90 по 120 (руки не доходили доделать)
И еще пару слов насчет звуков и музыки - скорее всего я их доделывать буду в самую последнюю очередь, потому что всякие элементы в игре могут меняться во время активной фазы разработки и звуки могут быстро стать как минимум неактуальными, а как максимум.. вообще-то надо сначала сделать играбельную игру, а не просто музыку со звуками впаять, пора бы мне научиться расставлять приоритеты
К слову музыку и звуки делает мне Женя, и у него есть ютуб канал с его музыкой, в основном это фонк, вот парочка прям мощных треков - первый и второй. Женя прям обожает музыку с "дропами", и я, кстати, тоже. Поэтому концепт следующих игр, их динамику и всё такое буду делать учитывая наш звуковой стиль (динамичный, агрессивный, современный или даже киберпанковский)
В музыке дроп − это своеобразная «яма» в треке, затишье, после которого трек возобновляется с новой силой
Прикреплю пару видео - одно с процессом поиска и добавления звуков и музыки, второе - превью с результатом (
Сам трек и его части я закину в комменты. Меня лично трек прям разрывает, осталось как-то правильно его в игру интегрировать (но возможно даже и такое, что мы поменяем саундтрек
#godot #ritkarampage #разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥4🎉2👍1
Media is too big
VIEW IN TELEGRAM
Отчет готов 🐸
За дни с 90-го по 120-й
Разработка и фактические результаты по игре
- Новый дизайн, некоторые новые текстуры и анимации
- Переработал систему улучшений оружия и.. внедрил её👀
- Архитектура. Я реально стал увереннее себя чувствовать в архитектурном подходе к игре (хотя много чего еще хромает)
Менеджерские штучки
Тот месяц я больше был менеджером и геймдизайнером, чем разработчиком
- Сделал гейм дизайн-документ
- Собрал команду с двух художников и одного звукаря (и я есесна - разработчик)
- Как-никак организовал работу в команде с помощью HacknPlan и группы в ТГ
Утиные истории
- Поделился велоисториями и моей гениальной аварией
- Рассказал про начало карьеры - "работяга на заводе"
Видео монтировал 20тыщ часов, мне в принципе понравилось, надеюсь вам тоже зайдёт, глянуть в норм качестве можно на ютубе - https://youtu.be/cMBEN8S75j8
А так прикреплю его и к этому посту (в конце превьюшку для ютуба не убрал, да да я.. )
За дни с 90-го по 120-й
Разработка и фактические результаты по игре
- Новый дизайн, некоторые новые текстуры и анимации
- Переработал систему улучшений оружия и.. внедрил её
- Архитектура. Я реально стал увереннее себя чувствовать в архитектурном подходе к игре (хотя много чего еще хромает)
Менеджерские штучки
Тот месяц я больше был менеджером и геймдизайнером, чем разработчиком
- Сделал гейм дизайн-документ
- Собрал команду с двух художников и одного звукаря (и я есесна - разработчик)
- Как-никак организовал работу в команде с помощью HacknPlan и группы в ТГ
Утиные истории
- Поделился велоисториями и моей гениальной аварией
- Рассказал про начало карьеры - "работяга на заводе"
Видео монтировал 20тыщ часов, мне в принципе понравилось, надеюсь вам тоже зайдёт, глянуть в норм качестве можно на ютубе - https://youtu.be/cMBEN8S75j8
А так прикреплю его и к этому посту (
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤1👍1
This media is not supported in your browser
VIEW IN TELEGRAM
День 132
Юайная часть готова.. я так думал
Вчера (в пятницу) продолжил смотреть курс (я так рад что я его уже почти досмотрел☺️ )
Препод сделал главное меню, меню с настройками и меню паузы, которое можно вызывать во время игры
Сейчас выходные, но команде уже подкинул пару заданий - сделать заставку для главной менюшки и сделать мелодию для неё же
На данный момент делаю все менюшки, которые были во всех пройденных видео, ведь я всё еще считаю, что лучший вариант обучения по видео-материалам это:
1. Просмотреть часть видео/несколько видео до логичной точки
2. Попробовать сделать это всё самому не подглядывая никуда и, что самое главное, делать немного иначе и не повторять 1 в 1
3. Если не выходит - заново всё пересмотреть и вернуться к пункту №2
Всем рекомендую придерживаться именно такой "тактики" в обучении по видео, ведь если смотреть видео и параллельно писать код/повторять за преподом, то толку от этого меньше, чем просто смотреть видео без практики, ведь:
1. Вы не сосредоточены ни на том, что происходит на видео, ни на том, что вы пишите
2. Вам приходится постоянно перематывать, чтобы успевать за преподом и происходит пункт №1
3. Вы не закрепляете это всё на практике и не сталкиваетесь с возможными проблемами при самостоятельной работе. Ведь уже всё "на блюдечке" подано, а если не бороться с какой-то проблемой, то готовое решение не закрепится в голове надолго (или вовсе)
И, что самое радостное - так это следующее видео в курсе.. метапрогрессия💃
Сама по себе эта механика мне не прям чтобы нравится, потому что она так или иначе ломает изначально заложенный геймплей и там в любом случае будет числодрочерство в улучшениях (+0.2 к урону за уровень, +3% к скорости передвижения...)
Но для меня самое главное это попрактиковаться с разными системами улучшений, ведь в будущем диаблоиде мне нужно будет ой как хорошо разбираться в перманентных улучшениях (и не только), поэтому мне такое надо🎩
Уже есть мутации и улучшения для оружий, а будет еще и метапрогрессия, главное не превратить игру в что-то по типу:
1. Первая наковальня и выпала +1 пуля? - Это легкая и скучная победа
2. Первая наковальня и не выпало редкое улучшение? - Скучно, не интересно + смэрть
Но с балансом уже потом разберусь, сначала доделать метапрогрессию, менюшки и еще пару небольших (очень больших ) изменений
Еще нужно бы подумать как обратную связь от игроков собирать, типа если нашли баг или какое-то пожелание по улучшение и т.п., подумаю над этим и сделаю опросник, может обратную связь прям в самой игре реализую, я ведь веб-разработчик, туда-сюда базу данных прикрутил, на почту уведомляшки настроил и поехал😎
И, как всегда (почти) - прикрепляю видео с результатом
#godot #ritkarampage #разработка
Юайная часть готова.. я так думал
Вчера (в пятницу) продолжил смотреть курс (я так рад что я его уже почти досмотрел
Препод сделал главное меню, меню с настройками и меню паузы, которое можно вызывать во время игры
Сейчас выходные, но команде уже подкинул пару заданий - сделать заставку для главной менюшки и сделать мелодию для неё же
На данный момент делаю все менюшки, которые были во всех пройденных видео, ведь я всё еще считаю, что лучший вариант обучения по видео-материалам это:
1. Просмотреть часть видео/несколько видео до логичной точки
2. Попробовать сделать это всё самому не подглядывая никуда и, что самое главное, делать немного иначе и не повторять 1 в 1
3. Если не выходит - заново всё пересмотреть и вернуться к пункту №2
Всем рекомендую придерживаться именно такой "тактики" в обучении по видео, ведь если смотреть видео и параллельно писать код/повторять за преподом, то толку от этого меньше, чем просто смотреть видео без практики, ведь:
1. Вы не сосредоточены ни на том, что происходит на видео, ни на том, что вы пишите
2. Вам приходится постоянно перематывать, чтобы успевать за преподом и происходит пункт №1
3. Вы не закрепляете это всё на практике и не сталкиваетесь с возможными проблемами при самостоятельной работе. Ведь уже всё "на блюдечке" подано, а если не бороться с какой-то проблемой, то готовое решение не закрепится в голове надолго (или вовсе)
И, что самое радостное - так это следующее видео в курсе.. метапрогрессия
Сама по себе эта механика мне не прям чтобы нравится, потому что она так или иначе ломает изначально заложенный геймплей и там в любом случае будет числодрочерство в улучшениях (+0.2 к урону за уровень, +3% к скорости передвижения...)
Но для меня самое главное это попрактиковаться с разными системами улучшений, ведь в будущем диаблоиде мне нужно будет ой как хорошо разбираться в перманентных улучшениях (и не только), поэтому мне такое надо
Уже есть мутации и улучшения для оружий, а будет еще и метапрогрессия, главное не превратить игру в что-то по типу:
1. Первая наковальня и выпала +1 пуля? - Это легкая и скучная победа
2. Первая наковальня и не выпало редкое улучшение? - Скучно, не интересно + смэрть
Но с балансом уже потом разберусь, сначала доделать метапрогрессию, менюшки и еще пару небольших (
Еще нужно бы подумать как обратную связь от игроков собирать, типа если нашли баг или какое-то пожелание по улучшение и т.п., подумаю над этим и сделаю опросник, может обратную связь прям в самой игре реализую, я ведь веб-разработчик, туда-сюда базу данных прикрутил, на почту уведомляшки настроил и поехал
И, как всегда (почти) - прикрепляю видео с результатом
#godot #ritkarampage #разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤1👍1
Нас становится всё больше и больше (даже не знаю почему 👀 ) и я бы хотел вкратце рассказать про то, как обстоят дела сейчас и что планируется в будущем
Начну с самого главного - конечная цель
Мне очень нравится играть во всякие игрушки с прокачкой, лутом, гриндом боссов/ресурсов (но умеренным), поэтому моя цель - это сделать ARPG диаблоид с видом сверху, в котором будет как обычная сюжетка, так и серьёзный лейтгейм (как в Path of Exile)
Пример я буду брать из следующих игр:
- Path of Exile (основная)
- Last Epoch
- Diablo 2
- Torchlight и Torchlight 2
- Titan Quest
- Grim Dawn
- Slormancer
Во всех этих играх у меня очень много наигранных часов (от 70 до 800+) и во всех кроме POE мне вот чего-то не хватало. С течением того, как я разбираюсь в самой разработке игр и в самом геймдизайне я начинаю понимать проблемы каждой игры (стараюсь объективно смотреть на такие игры)
Основные проблемы большинства из них - это общий темп игры, лейтгейм и.. бесполезные механики, тонны бесполезных механик. Игра условно рассчитана на прохождение сюжетки, а дальше делай что хочешь.. но делать то нечего уже, больше контента нет.
Общий темп игры
Лично мне нравится подинамичнее, в то время как в Grim Dawn и особенно в Titan Quest всё довольно таки медленное в сравнении с другими ARPG'шками
Про лейтгейм
В Grim Dawn по личным ощущениям уже после 30% сюжетки делать в игре нечего, всё однообразно и монотонно, а уровни сложности просто повышают здоровье и урон врагов, а твой уменьшают.. классное решение, обожаю такой скейл сложности👍
Механики
Всё очень банально - есть 10 навыков, но одним удобно пользоваться, зажал кнопку - и пошло с автонаводкой. А для другого надо ждать заряд, потом перезарядка, потом пока этот скилл борщ сварит, а DPS (урон в секунду) больше ну максимум на 10%, если вообще не меньше чем у первого навыка. И этих всех навыков десятки, они просто бесполезны, игрок никак не вознаграждается за задротство сложных механик, их совмещение и так далее и эти механики, условный огонь, кровотечение, яд - это всё просто 10тыщ видов ядов, которые почти никогда друг с другом даже не синергируют (взаимодействуют)
Например игра Slormancer. Воин - кровотечение, стрелок - яд, маг - arcane bond (хз как перевести, в общем тоже яд, только магический). Но.. эти все "яды" ни с какими навыками не синергируют, а сами навыки бесполезны и наносят меньше урона, чем первый навык каждого персонажа - обычный удар/выстрел
Есть еще разные проблемы, но в это всё нужно углубляться еще больше - чем я обязательно и займусь
Чем я занимаюсь сейчас
С самого первого дня геймдева я твёрдо решил - никаких "игр мечты" пока не наберусь опыта, иначе я прогорю/расстроюсь/вырежу 90% контента с игры или всё одновременно
Поэтому сейчас я делаю небольшие игры, в которых набираюсь опыта в этом самом геймдеве - набиваю себе шишки на ошибках в кодинге, изучаю потихоньку геймдизайн (в особенности мне нужно будет уделить время балансировке) и всё такое
Общие дела
Нас сейчас в команде четверо - я (разработчик), двое художников и один звукарь
Работаем через HacknPlan, но, возможно, скоро пересядем на чет другое
Текущая игра - R.I.T.K.A. Rampage, смесь Vampire Survivors, Brotato и 20 Minutes Till Dawn
Поиграть в неё можно тут - https://sundwell.itch.io/ritka-rampage, исходный код открыт и лежит на гитхабе - https://github.com/Sundwell/ritka-rampage
На ютуб канале стараюсь иногда что-то выкладывать, сейчас в основном экспериментирую, но в ближайшие пару месяцев займусь им серьёзно
P.S. Поешка - ван лав❤️
P.S.S. Очень рекомендую поиграть во все игры, которые упомянул в посте - каждая затянет на десятки часов
Начну с самого главного - конечная цель
Мне очень нравится играть во всякие игрушки с прокачкой, лутом, гриндом боссов/ресурсов (но умеренным), поэтому моя цель - это сделать ARPG диаблоид с видом сверху, в котором будет как обычная сюжетка, так и серьёзный лейтгейм (как в Path of Exile)
Пример я буду брать из следующих игр:
- Path of Exile (основная)
- Last Epoch
- Diablo 2
- Torchlight и Torchlight 2
- Titan Quest
- Grim Dawn
- Slormancer
Во всех этих играх у меня очень много наигранных часов (от 70 до 800+) и во всех кроме POE мне вот чего-то не хватало. С течением того, как я разбираюсь в самой разработке игр и в самом геймдизайне я начинаю понимать проблемы каждой игры (стараюсь объективно смотреть на такие игры)
Основные проблемы большинства из них - это общий темп игры, лейтгейм и.. бесполезные механики, тонны бесполезных механик. Игра условно рассчитана на прохождение сюжетки, а дальше делай что хочешь.. но делать то нечего уже, больше контента нет.
Общий темп игры
Лично мне нравится подинамичнее, в то время как в Grim Dawn и особенно в Titan Quest всё довольно таки медленное в сравнении с другими ARPG'шками
Про лейтгейм
В Grim Dawn по личным ощущениям уже после 30% сюжетки делать в игре нечего, всё однообразно и монотонно, а уровни сложности просто повышают здоровье и урон врагов, а твой уменьшают.. классное решение, обожаю такой скейл сложности
Механики
Всё очень банально - есть 10 навыков, но одним удобно пользоваться, зажал кнопку - и пошло с автонаводкой. А для другого надо ждать заряд, потом перезарядка, потом пока этот скилл борщ сварит, а DPS (урон в секунду) больше ну максимум на 10%, если вообще не меньше чем у первого навыка. И этих всех навыков десятки, они просто бесполезны, игрок никак не вознаграждается за задротство сложных механик, их совмещение и так далее и эти механики, условный огонь, кровотечение, яд - это всё просто 10тыщ видов ядов, которые почти никогда друг с другом даже не синергируют (взаимодействуют)
Например игра Slormancer. Воин - кровотечение, стрелок - яд, маг - arcane bond (хз как перевести, в общем тоже яд, только магический). Но.. эти все "яды" ни с какими навыками не синергируют, а сами навыки бесполезны и наносят меньше урона, чем первый навык каждого персонажа - обычный удар/выстрел
Есть еще разные проблемы, но в это всё нужно углубляться еще больше - чем я обязательно и займусь
Чем я занимаюсь сейчас
С самого первого дня геймдева я твёрдо решил - никаких "игр мечты" пока не наберусь опыта, иначе я прогорю/расстроюсь/вырежу 90% контента с игры или всё одновременно
Поэтому сейчас я делаю небольшие игры, в которых набираюсь опыта в этом самом геймдеве - набиваю себе шишки на ошибках в кодинге, изучаю потихоньку геймдизайн (в особенности мне нужно будет уделить время балансировке) и всё такое
Общие дела
Нас сейчас в команде четверо - я (разработчик), двое художников и один звукарь
Работаем через HacknPlan, но, возможно, скоро пересядем на чет другое
Текущая игра - R.I.T.K.A. Rampage, смесь Vampire Survivors, Brotato и 20 Minutes Till Dawn
Поиграть в неё можно тут - https://sundwell.itch.io/ritka-rampage, исходный код открыт и лежит на гитхабе - https://github.com/Sundwell/ritka-rampage
На ютуб канале стараюсь иногда что-то выкладывать, сейчас в основном экспериментирую, но в ближайшие пару месяцев займусь им серьёзно
P.S. Поешка - ван лав
P.S.S. Очень рекомендую поиграть во все игры, которые упомянул в посте - каждая затянет на десятки часов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17❤2👍2
Media is too big
VIEW IN TELEGRAM
День 133-134
Главное меню✔️
Настройки✔️
Пауза✔️
Сделал все нужные менюшки на данный момент, жаль конечно что часть про метапрогрессию не успел потрогать, но с юайкой на несколько дней я уж точно закончил
Также добавили с звукарем мелодию в главное меню, закину её полную версию в комменты (может пора делать плейлист на ютубе с OST как у других🤔 )
Сейчас еще размышляю над тем, чтобы не сразу приступать к метапрогрессии, а вот закончить игру как она сейчас есть, а уже после добавлять перманентные улучшения (или не добавлять) и заниматься остальной "шлифовкой" игры. Т.е. сейчас досмотреть курс "вхолостую", это где-то 3 часа и параллельно заканчивать играбельную версию игры
Что сейчас нужно для того, чтобы игра считалась играбельной:
1. Добавить еще 6 улучшений для пистолета
2. Добавить Лук с уникальной механикой стрельбы для игры (не просто зажать ЛКМ) + продумать и добавить 10 улучшений ему же
3. Добавить разделение мутаций на три класса - стрелок, призыватель и ... третьего еще не придумал. Воин это классно, но игра про стрельбу 👀
4. Заплейтестить игру, чтобы игралось +- адекватно и не было дикого дисбаланса. Подгонять, вероятно, буду всё одновременно - улучшения для оружий, мутации и систему прогрессивной сложности. Кстати, напоминаю про табличку, где я "изобретаю" сложность - https://docs.google.com/spreadsheets/d/1h0yJn5iCdGbwNw9AluOc30mQPv30KUZ34NJrTOjpJzE/edit?usp=sharing, эксель мощная вещь😎
5. Боссы. Каждые 5 минут будет босс
6. Самое главное - система сохранений, а то без сохранений как-то не ахти
А для того, чтобы полностью закончить этот проект и приступить к следующему нужно будет дополнительно:
1. Добавить 2 локации со своими мобами и боссами. Каждая локация будет сложнее предыдущей. Это не просто редизайн мобов и локации, а вот чтобы даже начальные мобы были сложнее/умнее чем на предыдущей локации
2. Добавить метапрогрессию
3. Отшлифовать UI (добавить иконок, картинок, исправить некоторые неточности)
4. Добавить недостающие звуки и отшлифовать/изменить существующие. Вообще щас звуки так-то не готовы по-большему счету, мы их будем делать в последнюю очередь, как говорил ранее
5. Добавить эффектов (уместная тряска экрана и в некоторых местах побольше визуальных эффектов aka VFX)
6. Поспать (опционально)
Также только что обновил версию на itch.io - https://sundwell.itch.io/ritka-rampage
#godot #ritkarampage #разработка
Главное меню
Настройки
Пауза
Сделал все нужные менюшки на данный момент, жаль конечно что часть про метапрогрессию не успел потрогать, но с юайкой на несколько дней я уж точно закончил
Также добавили с звукарем мелодию в главное меню, закину её полную версию в комменты (может пора делать плейлист на ютубе с OST как у других
Сейчас еще размышляю над тем, чтобы не сразу приступать к метапрогрессии, а вот закончить игру как она сейчас есть, а уже после добавлять перманентные улучшения (или не добавлять) и заниматься остальной "шлифовкой" игры. Т.е. сейчас досмотреть курс "вхолостую", это где-то 3 часа и параллельно заканчивать играбельную версию игры
Что сейчас нужно для того, чтобы игра считалась играбельной:
1. Добавить еще 6 улучшений для пистолета
2. Добавить Лук с уникальной механикой стрельбы для игры (не просто зажать ЛКМ) + продумать и добавить 10 улучшений ему же
3. Добавить разделение мутаций на три класса - стрелок, призыватель и ... третьего еще не придумал. Воин это классно, но игра про стрельбу 👀
4. Заплейтестить игру, чтобы игралось +- адекватно и не было дикого дисбаланса. Подгонять, вероятно, буду всё одновременно - улучшения для оружий, мутации и систему прогрессивной сложности. Кстати, напоминаю про табличку, где я "изобретаю" сложность - https://docs.google.com/spreadsheets/d/1h0yJn5iCdGbwNw9AluOc30mQPv30KUZ34NJrTOjpJzE/edit?usp=sharing, эксель мощная вещь
5. Боссы. Каждые 5 минут будет босс
6. Самое главное - система сохранений, а то без сохранений как-то не ахти
А для того, чтобы полностью закончить этот проект и приступить к следующему нужно будет дополнительно:
1. Добавить 2 локации со своими мобами и боссами. Каждая локация будет сложнее предыдущей. Это не просто редизайн мобов и локации, а вот чтобы даже начальные мобы были сложнее/умнее чем на предыдущей локации
2. Добавить метапрогрессию
3. Отшлифовать UI (добавить иконок, картинок, исправить некоторые неточности)
4. Добавить недостающие звуки и отшлифовать/изменить существующие. Вообще щас звуки так-то не готовы по-большему счету, мы их будем делать в последнюю очередь, как говорил ранее
5. Добавить эффектов (уместная тряска экрана и в некоторых местах побольше визуальных эффектов aka VFX)
6. Поспать (опционально)
Также только что обновил версию на itch.io - https://sundwell.itch.io/ritka-rampage
#godot #ritkarampage #разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍4