Автор Тема: Mega Man Nero (не рабочее не название)  (Прочитано 3841 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Eugen

  • Пользователь
  • Сообщений: 859
  • Пол: Мужской
    • Просмотр профиля
Mega Man Nero (не рабочее не название)
« : 28 Сентябрь 2018, 14:23:37 »
Собственно вот да. Внезапно вкатился в Game Maker Studio (старый, еще 1.4), нарипал спрайтов Зеро (кое-где пришлось из двух старых лепить новый, лол) и пытаюсь воссоздать движок серии игор Mega Man Zero и в то же время прикрутить к нему некоторые несвойственные ему фишки из DMC4. Собственно, из реализованного на данный момент у меня есть

Небоевой мувсет: бег, прыжки, дэш, дэшджамп, воллслайд, воллджамп, воллдэшджамп (идентичный натуральному), даблджамп. Еще можно просто стоять на месте.
TODO: гарпун-snatch с раскачкой на потолке и цеплянием за стены

Боевой мувсет: тройное наземное комбо, апперкот, апперкот с продолжением, тройное воздушное комбо (brand new хрень, которой не было в оригинальных играх линейки Zero) хелмкрашер.
TODO: стрельба с подобием автоприцела, несколько дополнительных комб наземных и воздушных, гарпун-snatch и взаимодействие врагов с ним.

Разумеется, еще многое требует отладки - это даже еще не готовый движок, а так, заготовочка под него. Но самые основные основы вроде бы даже получаются именно такими, как я их задумал. Будем посмотреть, как оно пойдёт.

Последний видосик: https://www.youtube.com/watch?v=6VBmqoFxpkI

ЗЫ: там же на канале есть несколькоо видосиков с неторопливым прогрессом, то добавил, сё добавил.

Жду ваших гнилых помидоров с нетерпением. Негнилых тоже жду, жрать же что-то нужно.

Оффлайн Werton

  • Пользователь
  • Сообщений: 878
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
Mega Man Nero (не рабочее не название)
« Ответ #1 : 28 Сентябрь 2018, 14:37:55 »
Гнилой коммент: на 5ой секунде последний удар в прыжке явно вифает, да и после через раз :crazy:

Оффлайн Eugen

  • Пользователь
  • Сообщений: 859
  • Пол: Мужской
    • Просмотр профиля
Mega Man Nero (не рабочее не название)
« Ответ #2 : 28 Сентябрь 2018, 14:43:17 »
Werton, а по-моему - не вифает. Просто у него взаимодействие другое же. Первые два - подбрасывают врага чуть повыше, третий - наоборот, отправляет вниз.
Проверил покадрово - не вифает.
Но в целом ты прав, хитбоксы меча еще править и править. Чтобы визуал с функционалом нормально совмещался.

Вообще добавлю, что взаимодействия-хитбоксы пилил в самую последнюю очередь, вот буквально вчера - поэтому отлажены они криво. До этого врагов не было вообще и я работал только над механиками ГГ - действия, стейты и всякое такое. Хитбоксы щас - самые базовые, издалека похожие на то, что должно быть.
« Последнее редактирование: 28 Сентябрь 2018, 15:12:06 от Eugen »

Оффлайн Werton

  • Пользователь
  • Сообщений: 878
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
Mega Man Nero (не рабочее не название)
« Ответ #3 : 28 Сентябрь 2018, 15:39:48 »
Werton, а по-моему - не вифает. Просто у него взаимодействие другое же. Первые два - подбрасывают врага чуть повыше, третий - наоборот, отправляет вниз.
Проверил покадрово - не вифает.
Может и не вифает, но выглядит именно так, хотя видно, что здоровье уменьшилось. Физика последнего удара не видна, надо чтобы тело ускорялось вниз или по диагонали, а сейчас выглядит как будто оно под силой тяжести просто падает, потому такое ощущение наверное :neznayu:

Оффлайн Eugen

  • Пользователь
  • Сообщений: 859
  • Пол: Мужской
    • Просмотр профиля
Mega Man Nero (не рабочее не название)
« Ответ #4 : 28 Сентябрь 2018, 16:28:05 »
Werton, да, в этом ты абсолютно прав, поэтому я уже поправил - шарахнул ему ускорения побольше от третьего удара воздушной комбы.
Плюс там систему хитбоксов начал перерабатывать - начинает выглядеть уже лучше. Пришлось хитстан поделить на визуальный и актуальный. Визуальный - для того, чтобы враг корячился, когда его бьешь мечом, а актуальный - чтобы его хитбоксом цепляло только в определенных условиях.

Оффлайн Eugen

  • Пользователь
  • Сообщений: 859
  • Пол: Мужской
    • Просмотр профиля
Mega Man Nero (не рабочее не название)
« Ответ #5 : 06 Апрель 2019, 14:43:44 »
ИИИи....
И таки особого прогресса пока нет, и работы впереди - целые вагоны.
Однако я могу сказать, что боевку, задуманную ранее, я доделал процентов на 90.
Все обычные атаки, которые я хотел добавить - я добавил. Подробности на кривом инглише в дескрипшене видео.


буду рад замечаниям-комментариям.

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5050
    • Просмотр профиля
Mega Man Nero (не рабочее не название)
« Ответ #6 : 06 Апрель 2019, 15:57:35 »
Eugen, я бы рекомендовал сделать тестовый уровень с разными врагами и выложить саму игру, если хотите больше комментариев, при условии что будут желающие.

Оффлайн Eugen

  • Пользователь
  • Сообщений: 859
  • Пол: Мужской
    • Просмотр профиля
Mega Man Nero (не рабочее не название)
« Ответ #7 : 06 Апрель 2019, 19:47:09 »
Eugen, я бы рекомендовал сделать тестовый уровень с разными врагами и выложить саму игру, если хотите больше комментариев, при условии что будут желающие.

Да, на это и целюсь. Собственно, в планах дальше правки мелких багов боевки (буде таковые найдутся), и отладка механики гарпуна. Как только разберусь с этим - смогу нормально заняться AI врагов, а там уже можно и демку прототипа пилить.

Оффлайн Eugen

  • Пользователь
  • Сообщений: 859
  • Пол: Мужской
    • Просмотр профиля
Mega Man Nero (не рабочее не название)
« Ответ #8 : 23 Август 2019, 09:37:09 »
Заскочил, чтобы апнуть немножечко тему. Чем чёрт не шутит, вдруг кому интересно.

Разработка, чтоб вы понимали, движется черепашьими шагами: отчасти - потому что я один, отчасти - потому что я тупой, отчасти - из-за того что я прыгаю выше головы (это подпункт второго пункта да).

Сделан - самый базовый АИ самых базовых врагов. Умеет преследовать, перепрыгивать препятствия, бить по горизонтали, бить по диагонали, стрелять издалека. Не умеет, но планирует научиться: анализировать наличие врагов вокруг героя и действовать соответственно.

Добавил несколько твиков боевой системы. Теперь комбы можно "отменять". Это не совсем додж-оффсет из байонетты, но я пытался сделать нечто аналогичное. Суть в чем: теперь удар комбинации на кадрах рекавера можно отменить в дэш (или в бросок гарпуна), и потом - отменить дэш (или бросок гарпуна) в продолжение этой же самой комбы. Также теперь можно разворачивать комбы в произвольном направлении при очередном ударе. Добавил мелкий твик для гарпуна - теперь на враге, в которого полетит "почти-самонаводящийся" гарпун появляется кроссхейр.

Последнее, над чем работал - движущиеся платформы. Отдельно горизонтальные и отдельно вертикальные. Скажу так: после гарпуна - это самое сложное, над чем я вообще трудился для проекта, лол. Найденный в интернете туториал по горизонтальным платформам пришлось очень знатно дорабатывать для своих нужд, а вертикальные - вообще делать самому с нуля, ибо там немножко другой подход. И вертикальные еще предстоит немножко фиксить - они не очень хорошо взаимодействуют с гарпуном

Также - пара поздних видео


« Последнее редактирование: 23 Август 2019, 09:43:15 от Eugen »

Оффлайн Globotronik

  • Пользователь
  • Сообщений: 956
  • MADNESS. GREEN. UNSTABLE.
    • Просмотр профиля
Mega Man Nero (не рабочее не название)
« Ответ #9 : 23 Август 2019, 10:36:30 »
выглядит неплохо, главное, чтобы самому создавать нравилось и пользоваться результатом
с удовольствием посмотрю играбельную демку, когда и если будет

Оффлайн Eugen

  • Пользователь
  • Сообщений: 859
  • Пол: Мужской
    • Просмотр профиля
Mega Man Nero (не рабочее не название)
« Ответ #10 : 23 Август 2019, 14:30:25 »
Спасибо за отзыв)

Как только забацаю что-то отдалённо похожее на демку - обязательно запощу попробовать для всех желающих. Так-то у меня уже много проходных билдов накопилось, я даже спавнер базовый для тестеров запилил.

Буквально только-только что добавленное видео ещё, раз уж мне сегодня так поперло.
(с вертикальными платформами я возился больше недели, лол)

Оффлайн Eugen

  • Пользователь
  • Сообщений: 859
  • Пол: Мужской
    • Просмотр профиля
Mega Man Nero (не рабочее не название)
« Ответ #11 : 25 Август 2019, 17:13:46 »
Запилил всё-таки afterimage (или trail-эффект), прям как было в оригинальном Зеро. Ну конечно же чуть иначе выглядит, и чуть иначе работает, но механически дело своё делает.

(попутно нашёл и пофиксил еще несколько багов коллизий и взаимодействия гарпуна с платформами)


Оффлайн Nereid

  • Пользователь
  • Сообщений: 250
  • Пол: Мужской
    • Просмотр профиля
Mega Man Nero (не рабочее не название)
« Ответ #12 : 26 Август 2019, 00:44:43 »
Доделай  trail-эффект. А то странно смотрится, что при последующем касании объекта эффект мигом пропадает.
Какова цель проекта?

Оффлайн Eugen

  • Пользователь
  • Сообщений: 859
  • Пол: Мужской
    • Просмотр профиля
Mega Man Nero (не рабочее не название)
« Ответ #13 : 27 Август 2019, 08:46:55 »
Доделай  trail-эффект.
Уже. Перекавардакал так, что трейл преследует персонажа до определенной точки, а потом исчезает постепенно (первый трейл исчезает, второй становится первым, третий вторым) и повторять пока все не исчезнут. Короче, трейл персонажа "догоняет" теперь.

Какова цель проекта?
Честно - определенной цели и нет. Во-первых - захотелось поизучать гамак (ну и подход к геймдизайну в целом), во-вторых - вдруг из этого на выходе получится что-нибудь адекватное, вроде фан-игры, или, чем чорт не шутит, очередной индиподелки.
Ну и мне всегда было интересно смешать мегаменский платформинг с дмэсишной боевкой.

Оффлайн Eugen

  • Пользователь
  • Сообщений: 859
  • Пол: Мужской
    • Просмотр профиля
Mega Man Nero (не рабочее не название)
« Ответ #14 : 01 Сентябрь 2019, 10:22:14 »
Когда я говорил, что "доделал" трейл, я погорячился - там возникло множество багов и просто неожиданных последствий. Но, слава гамаку, я вроде со всем справился, пару раз переделелывал скрипт с нуля, но теперь всё вроде бы окей.

А еще выяснил, что прошлая реализация движущихся платформ была сломана настолько, что спавн более чем 30 врагов заставлял двумерную игру проседать. И память утекала.

Утечки памяти починил не без помощи англоязычных ребят, а вот с оптимизацией платформ было сложнее.

Там всё было немножко проклятовато: для нормального определения коллизий требовалось, чтобы в степе обычных платформ тоже выполнялись проверки этих самых коллизий. И когда таких платформ на экране много - ну, сами понимаете. К счастью, я сумел от этого полностью избавиться, и скорость комнаты остаётся стабильной при спавне до 120 врагов. Дальше уже, конечно, могут начаться просадки, но к чему мне на экране более 120 (если уж на то пошло - больше десятка) врагов одновременно? Абсолютно низачем, но стресс-тест провести надо было. Успех короч. Сам создал проблему, сам ее решил.

Короче, видосик с нормальным трейлом.
« Последнее редактирование: 02 Сентябрь 2019, 11:14:05 от Eugen »

Оффлайн Eugen

  • Пользователь
  • Сообщений: 859
  • Пол: Мужской
    • Просмотр профиля
Mega Man Nero (не рабочее не название)
« Ответ #15 : 21 Сентябрь 2019, 15:02:19 »
Небольшой апдейт. К сожалению, визуально тут особо смотреть не на что, поэтому видосик - чистая формальность. Немножко почистил спрайты, немножко пофиксил баги. И очень-очень-очень сильно улучшил поведение (и перфоманс игры, кстати) движущихся платформ - теперь они работают максимально "чисто" и так, как это нужно мне.

И у гарпуна теперь есть почти нормальная цепочка, лол.


А еще у врагов есть лайфбары собранные из двух прямоугольников.


Оффлайн Eugen

  • Пользователь
  • Сообщений: 859
  • Пол: Мужской
    • Просмотр профиля
Mega Man Nero (не рабочее не название)
« Ответ #16 : 25 Сентябрь 2019, 14:45:44 »
Видео покрупнее - на целых шесть минут.

Собрал всё в кучу и постарался показать, что на данный момент есть в движке.

Год работы, да.

В описании ссылка на экзешник, который можно прям пощупать.

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5050
    • Просмотр профиля
Mega Man Nero (не рабочее не название)
« Ответ #17 : 25 Сентябрь 2019, 17:50:02 »
О, первый билд. Можно чуть подробностей по реализации платформ? Когда-то давно на Unity их часто реализовывали через установку персонажа как дочернего элемента платформы. Я заметил, что вы сделали проверку столкновений платформ с другими объектами, но в таких играх как мне кажется просто заранее задаются пределы движения и столкновения обрабатываются только с персонажами (через матрицу коллизий, например). Ваш подход необходим только если вы хотите чтобы платформы могли то сталкиваться, то проходить, даже в этом случае можно исключить проверку со статическими платформами, пересчитав пределы движения движущихся платформ при добавлении на уровень.

Оффлайн Eugen

  • Пользователь
  • Сообщений: 859
  • Пол: Мужской
    • Просмотр профиля
Mega Man Nero (не рабочее не название)
« Ответ #18 : 25 Сентябрь 2019, 19:59:17 »
Можно чуть подробностей по реализации платформ?

Да без проблем. Можно на "ты", я не кусаюсь, правда-правда  :)

а) статичные, недвижимые платформы - ничего не просчитывают. Никакого кода, никаких проверок. Их слишком много, и исполняемый код в таком количестве объектов (даже самый простой) превратит производительность в тыкву. Все коллизии движущихся объектов с неподвижными - обрабатываются со стороны движущихся объектов.

б) Матрицу коллизий я не использовал. Как сказал выше - все коллизии обрабатываются со стороны **движщухися** объектов. Бейсикалли, каждый движущийся объект движется одновременно по двум осям - по иксу и по игреку - с какой-то скоростью (ну естессна, если с нулевой, то он по этой оси не движется вовсе). Когда объект движется по вертикали - он проверяет перед собой наличие "твёрдых" предметов (y+vertical_speed) Если в пределах y+vsp есть такой объект - то он к нему "подкрадывается", пока не подойдёт на расстояние одного пикселя. Код очень простой, я его брал из туториала Спалдинга.

Пример кода вертикальной коллизии:


То же самое (но немножко сложнее) для горизонтальных коллизий. Ну, там еще доп.скорость платформы, на которой игрок "стоит", но в целом, идейно - то же самое.

ц) Сложнее, когда движутся оба объекта (и игрок и платформа). Тут уже приходится извращаться. У меня движущаяся платформа (любая) каждый кадр формирует для себя список объектов, которых она касается. Этому списку объектов она передаёт нужную инфу (к примеру, дополнительную скорость или же просто координаты). Если интересует, могу код приложить, потому что описывать словами его - немножко не мой конёк, получается сумбурно.

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5050
    • Просмотр профиля
Mega Man Nero (не рабочее не название)
« Ответ #19 : 25 Сентябрь 2019, 21:05:47 »
Если интересует, могу код приложить
Если не сложно.
Насчёт instance_place(), в доках написано, что если не нужен id, использование place_meeting() будет чуть быстрее.

Оффлайн Eugen

  • Пользователь
  • Сообщений: 859
  • Пол: Мужской
    • Просмотр профиля
Mega Man Nero (не рабочее не название)
« Ответ #20 : 25 Сентябрь 2019, 21:51:08 »
Если не сложно.
Насчёт instance_place(), в доках написано, что если не нужен id, использование place_meeting() будет чуть быстрее.

Код для вертикальных платформ под спойлером, закомменчен слабо, могу чутка позже пояснить.


Про разницу place_meeting и instance_place - знаю, просто мне в некоторых ситуациях айди объекта таки был нужен. А там, где он перестал быть нужен - не стал откатывать обратно.

Оффлайн Eugen

  • Пользователь
  • Сообщений: 859
  • Пол: Мужской
    • Просмотр профиля
Mega Man Nero (не рабочее не название)
« Ответ #21 : 03 Октябрь 2019, 23:41:52 »
И снова небольшой апдейт.

В этот раз добавлены
а) прицел для гарпуна диагонального (наконец-то). Показывает, какой именно из врагов будет притянут
б) "Сквозные" платформы. На них можно приземляться, с них можно спрыгивать, сквозь них можно ходить по горизонтали. Гарпун также проходит сквозь них


Оффлайн Eugen

  • Пользователь
  • Сообщений: 859
  • Пол: Мужской
    • Просмотр профиля
Mega Man Nero (не рабочее не название)
« Ответ #22 : 16 Февраль 2020, 12:30:06 »
Ну, пожалуй, еще несколько видео и всякого.

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

2) Переделана нимношк анимация воздушной рулетки - теперь это буквально рулетка, крутящая атака.

3) Добавлены партикли "крови" при ударе по врагам - не задля эджовости, а чтобы дать понять что урон был нанесен.

4) Добавлен самый натуральный enemy_step. Если вкратце: игрок может отпрыгнуть от любого из врагов, используя его как платформу. Вернее - как стену, потому что enemy_step действует не как обычный прыжок, а как воллджамп. Позволяет продлевать воздушные комбо и даёт некоторую маневренность. Чтобы выполнить - нужно коснуться врага и нажать прыжок (или дэш-прыжок). В него можно оффсетить удары в комбах.

5) Добавлен новый тип врагов - аналог "фаустов" из DMC4. Летают, носят плащик. Без него - почти беззащитны, трусливы и получают больше урона, с ним - агрессивны и сложны. Плащик "снимается" либо броском гарпуна, либо отбиванием прожектайла.

6) Фаусты могут метать в игрока ножи-прожектайлы. Игрок может их отбивать. Отбивание их - отдельный подпункт:

- игрок может отбить прожектайл обратно в метнувшего фауста - любой атакой мечом.
- игрок может отбить прожектайл вперед - любой атакой мечом, нажав "вперед" до атаки или во время атаки
- игрок может отбить прожектайл вверх - апперкотом или любой атакой мечом, нажав "вверх" во время или до атаки
- игрок может отбить прожектайл вниз - хелмкрашером или любой атакой мечом, нажав "вниз" во время или до атаки

7) Еще фаусты могут отталкивать назойливого игрока атакой ближнего боя.

8) Добавлено главное меню игры (с двумя кнопками выхода потому что я художник и так вижу, ни в одной игре еще не было пунктов Exit и Exit 2). Игра автоматически определяет тип подключенного геймпада и выводит соответствующие промпты (для хы-ящика, сони и всех остальных падов). Можно менять управление - как на паде, так и на клавиатуре. Измененное управление сохраняется после выхода из игры, можно вернуть дефолтное.

Видосики: