TyapLyapDev - Разработка игр | Движуха Сакутина
225 subscribers
127 photos
77 videos
13 files
26 links
Download Telegram
Короче, шутер у нас - плагиат CounterStrike 1.6. Правда, это будет не совсем обычная стрелялка, но пока подробности в секрете.

Управление на телефоне - дико неудобное, но вдруг найдутся и такие мазохисты )

На видео то, что сделано за 2 дня. Карту вот только что в тырнете откопал, лишил хлеба наших 3д-шников в команде ))
👍3
С одной стороны так круто, что в VS есть автозавершение кода. С другой же, он почти половину дописывает и я не особо запоминаю. Кажется, если отключить эту функцию, то выяснится, что я толком ничего и не знаю.
🌚2
Я вот думаю, продолжить сейчас кодить или хапнуть малость выгорания 😁

В момент, когда сталкиваешься со сложной, хоть и решаемой задачей, мозг сознательно откладывает её, лишь бы не напрягаться. И вот сейчас поймал себя на мысли, а не покемарить ли мне пару часиков. Началась внутренняя борьба, которая пока ещё неизвестно чем закончится. Как вы боритесь с выгоранием?
Ладно, давайте поштурмим.

Есть бот, который куда-то движется. Есть анимация его движения. Бот может идти спиной и боком. Важный момент, надо запустить правильную анимацию ходьбы, точнее, настроено смешивание анимаций по направлениям. Если передавать в аниматор параметры, которые передаются в мовер, то всё будет чики-пуки, но до первой стены, т.к. коллайдер (точнее, CharacterController) его не пустит дальше. Но анимация продолжит работать.

Можно просто проверять, не врезался ли бот в стену, но он может врезаться спиной, боком, наглой рожей, так что луч пускать не вариант или кидать его по направлению движения?? Но тогда, если на бота будут действовать прочие силы, пока неведомо какие, то его направление ходьбы мало чем поможет. Можно попробовать детектить столкновения коллайдера с чем-нибудь и как-нибудь получать точку касания, высчитывать, что если идёшь туда, то анимации не должно быть. Шляпа же, да?

Поэтому я решил высчитывать пройденной расстояние за кадр - типа дельты позиции, затем делить на произведение скорости и Time.deltaTime. Но если скорость будет нулевая, это приведёт к ошибке, поэтому надо делать проверку.

Сейчас мой код работает, но нет уверенности, что он делает это корректно. Надо пораскинуть мозгами, затем собрать их в кучу и разобраться с этой математикой. А вы бы как решили такую задачку?
👍1
Media is too big
VIEW IN TELEGRAM
Когда забыл отключить видимость башки ) От создателей "Я твой рот смотрел" и "Вай, какие глаза" 😅
😁2👍1
Media is too big
VIEW IN TELEGRAM
Ура! Со смешиванием анимации более-менее разобрался. Звук в игре не отстаёт от картинки, это косяк при записи. Интерфейс меню полностью готов, сохранения работают. Бот бегает, ходит, крадётся, озирается, смотрит вперёд и по сторонам. Теперь буду писать собственную систему поиска пути, т.к. Nav Mesh не прокатит для выполнения условий доп. темы: "Гравитационные аномалии". Надо ещё много чего сделать, а осталось 2 недели до предоставления итогового билда. Надеюсь, хоть частично успеем доделать.
Всем привет! Т.к. у нас шутер с водяными пистолетами, партиклы струи воды должны дамажить игроков. И если с коллизиями все ок, то получать взаимодействие партиклов с триггерами оказалось излишне замороченно. Так что на игроках будут колладеры, а не триггеры. Только вот если несколько коллайдеров, которые между собой по слоям не взаимодействуют, но пересекается, всё равно будут грузить систему. Пока думаю на это забить, так как лучше неоптимизированная, но уже играбельная игра, чем оптимизированный кусок игры, в который всё ещё нельзя поиграть.

Вчера прилично успел сделать. Сегодня времени на разработку будет не так много.
У ботов своя атмосфера - стратосферная )
Media is too big
VIEW IN TELEGRAM
А вообще это баг, который фича, т.к. тема - гравитационные аномалии 😅

Но я всё же его пофиксил )
Сутки промучался над простой задачей: бросать рейкаст вперёд, получать массив пересечений, а затем исключить ненужные и взять первый подходящий. Ничего не получалось, как я только ни пытался. Я и слои настраивал, и маски менял, но луч отказывался детектить ботов.

И что бы вы подумали? Оказывается, массив надо отсортировать по расстоянию. Очень неочивидный факт.
Не мог понять, почему при спавне стартовые позиции ботов и игрока иногда сбоят. Оказалось, CharacterController не парится и не проверяет, в каком месте персонаж. Он перехватывает инфу в кадре и затирает на своё усмотрение. Решение: отключить контроллер, сменить положение, включить контроллер 😉
Вариант 1:
private void UpdateLayoutComponents()
{
if (_verticalLayoutGroup != null)
{
LayoutRebuilder.ForceRebuildLayoutImmediate(_layout.content);
Canvas.ForceUpdateCanvases();
_verticalLayoutGroup.CalculateLayoutInputVertical();
_verticalLayoutGroup.SetLayoutVertical();
}
}

Вариант 2:
private void UpdateLayoutComponents()
{
if (_verticalLayoutGroup == null)
return;

LayoutRebuilder.ForceRebuildLayoutImmediate(_layout.content);
Canvas.ForceUpdateCanvases();
_verticalLayoutGroup.CalculateLayoutInputVertical();
_verticalLayoutGroup.SetLayoutVertical();
}


Ниже публикну опрос. Интересно, какой вариант записи предпочли бы вы. Буду благодарен, если ещё и напишете почему 🙂
Какая запись приятнее и читабельнее?
Anonymous Poll
42%
Первая
58%
Вторая
TyapLyapDev - Разработка игр | Движуха Сакутина
Какая запись приятнее и читабельнее?
Вижу, что большинство (61%), как и я, за второй вариант. На самом деле это просто вопрос удобства. Мне, например, не нравятся ступеньки (этажи) из фигурных скобок. Второй момент, сразу ясно, что если условие не выполнено, то дальше логики нет. А если она нужна, то надо просто подробить метод на более мелкие составляющие. Тогда будет так же простой выход при невыполнении условия. Понятно, что каждый выбирает стиль под себя, но раз большинство выбрало так же, как и я, наверно это действительно удобнее
Media is too big
VIEW IN TELEGRAM
Как по мне, офигенно получается. Тема - "Шутер". Доп тема - "Гравитационные аномалии".

На видео результат 4 недель кодинга 😎

Спасибо 3-дшнику @TrutnevI за подготовленный ассет пистолета-обливалки 🔫
🔥5
Выше вы могли видеть нашу игру по типу Counter-Strike, но с обливалками вместо стрельбы из оружия. Похоже, что это сейчас плавно переходит в новый проект, который будет работать по сети. За историей разработки можно следить вот тут https://t.me/hydrohavoc

Хоть планы и масштабные, мы рассчитываем (надеемся) через пару месяцев выкатить рабочий прототип для закрытого тестирования.

Команду, с которой мы начали делать на джеме, я не забываю, вот они:

@EpickTime - геймдиз
@TrutnevI - 3D-художник
@Zenderpro1610 - кодер

К проекту присоединился отличный кодер @i1ssaacc

Мы начинаем разработку 🙂
👍2❤‍🔥1🔥1
Наша команда расширилась до 4-х человек. Примем в команду ещё норм кодера, 3d моделлера, звукаря. Настрой вроде как серьёзный. А, ну и да, стартуем на энтузиазме, так что сейчас без выплат.