Лучшие уровни для Knytt Stories: видео

Guacamelee! 2

Stranded II

Trine 2

Рисую портреты персонажей / пиксель-арт / маппинг

Посты пользователя

Non-reflective: Готово

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

https://drive.google.com/file/d/1ZVPwrvzynjNYCgh28K3vxHJQnPvscwUP/view?usp=sharing — линукс-версия (вдруг кто-то, кроме меня, пользуется?)

https://drive.google.com/file/d/1zapa7Tda_7F7q3dUroKTP6Ad_HOQK8nJ/view?usp=sharing — windows

Non-reflective: Случайно узнал, что сдавать работу нужно сегодня, а не 5 числа

Почему-то чётко отложилась упомянутая дата:)

Поэтому сегодня не спал, попробовал успеть хоть что-то. Конечно, ни о какой полировке геймплея и разных типах врагов (а ещё о нормальной модели врага) речи не идёт, но, по крайней мере, это больше не похоже на битву с далеками. Можно ходить, отбиваться от врагов, прошмыгивать по неработающим ловушкам, материться по поводу не находящегося портала (или по поводу слишком просто находящегося), а ещё кликать по надписи gamin.me из главного меню.

WV0dOpq

читать дальше >>

Non-reflective: Победил артефакты, но снова стали актуальны тормоза:)

Пришлось купить платный ассет Magic Mirror Pro, и, аллилуйя, наконец несколько зеркал стали отображаться нормально. Правда, с вариантом скрипта по умолчанию всё снова начало тормозить. Добавил оптимизацию с выключением зеркал, когда они не попадают в frustum камеры, но это не сильно улучшило положение. Пока добавил к этому ещё выключение по дистанции — похоже, это лучше, чем каждый кадр делать raycast к камере, и у меня есть где-то ещё полдня, чтобы поиграться с параметрами самого отражения и найти приемлемый баланс между внешним видом и быстродействием.

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

F2DNd8f

Non-reflective: Странный баг с зеркалами

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

owsK79e

oj8lWqJ

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

Non-reflective: Генератор уровня и зеркала - всё нужно переделать

На этой неделе было гораздо меньше свободного времени, я всё-таки успел реализовать свой алгоритм замощения лабиринта, сделать «тайлы» в блендере (попутно узнав, что булевы операции почему-то неминуемо оставляют какие-то левые полигоны, и единственный путь — составлять сложные формы из простых), выяснить, что ассет Magic Mirror работает, только когда зеркало существует в единственном экземпляре, начать использовать для этой цели шейдер и скрипт из Unity wiki, после генерации полного уровня столкнуться с тем, что FPS жутко проседает и зеркал при этой нет, а ещё — что алгоритм периодически генерирует большие поля с пустыми клетками.

В общем, в первую очередь нужно будет выяснить источник проседания FPS (связан ли он с зеркалами, и, если да, попробовать «включать» их только когда они попадают в кадр, если это что-то даст), потом посмотреть, что можно сделать с генерацией лабиринта

glmSVHH

Non-reflective: Война кубиков с невидимкой и генератор уровня

В визуальном плане пока показывать особо нечего: поле выглядит как равнина с одиноко стоящим дефолтным блоком лабиринта, вокруг которого ездит кубик с шариком-оружием спереди — он догоняет главного героя, но тот может зайти сбоку и укусить, отъев в свою пользу несколько HP. На открытом пространстве это давало отличные от нуля шансы на победу, но, подозреваю, в лабиринте всё будет хуже, и куда перспективнее будет нападать со спины. Все враги чуют, где сейчас находится вампир, но чем дальше, тем с большим запаздыванием. Плюс есть некоторый таймаут (сейчас — полсекунды), в течение которого они оборачиваются, поняв, что их жрут с той стороны, с которой они сами не могут атаковать. В плане звуков всё хорошо, сгоряча даже хотел добавить анимацию притягивающих к себе незадачливого охотника рук с когтями, но понял, что Unity — не самая удобная для этого программа, а готовой анимации не особо могу найти. Поэтому пока полностью переключился на логику, если успею — сделаю нужное в Blender, или попробую по бартерному принципу найти моделлера в других проектах. Сейчас делаю свой генератор лабиринта — пока неясно, насколько он будет успешно делать карты без мёртвых зон. Сейчас я просто смотрю на всех 8 соседей и проверяю, и кого из них открыты входы в данную клетку. Если вход открыт, я не имею права ставить клетку, которая его перекрывает, и убираю соответствующий вариант из числа возможных. После всех вычёркиваний выбираю случайный из «выживших». Возможно, придётся добавить логику, действующую на более крупном уровне, чем соседние клетки. Пока делаю сами вычёркивания. Прилагаю список клеток без учёта их поворотов там, где в них есть смысл. Белым обозначены проходы, голубым — стены, чёрным — зеркала.

ImNDTS4

читать дальше >>