Comments 26
Было бы не плохо сделать так, чтобы враги стреляли когда видят тебя на небольшом расстоянии.
Чтобы сильно не усложнять можно уменьшить скорость пули врагов.
Наконец-то вижу нормальную статью, а не "Я тут юнити скачал, наверное нужно написать статью для начинающих про то, как я тут наговнокодил". Продолжай!
Знаете, это моя самая большая боль. Заходишь в тег unity3D и одна пятая статья достойна хотя бы чтения. Есть классные статьи, из которых можно подчерпнуть что-то хорошее, но их изчезающе мало.
Пытаюсь что-то с этим сделать, но один, конечно, не справлюсь. :)
Так что, господа, присоединяйтесь к написанию статей. )
Знаете, вот да, когда собрал прототип, обратил внимание, что они похожи, со своим замедлением времени. Но, к слову сказать, есть как минимум ещё 2 инди проекта, появившиеся до superhot, где течение времени зависило от хода.
А Тут механика различается: по сути, игра пошаговая, но с обычной, не пошаговой физикой. Да и упор в основном — на постоянную и невыключаемую стрельбу.
Думал. :)
В том числе и про возможность не стрелять воовсе в некоторые ходы и т.д. И с большим трудом заставил себя от усложнения отказаться: в этом самоограничении весь фан.
Смотрите сами, сколько сейчас плюсов и сложностей для игрока:
- Всего один жест на ход. Иногда нужно сделать несколько шагов вперед, чтобы куда-то прийти, чем меньше жестов, тем лучше;
- Игроку нужно собирать кристаллы, но при этом, не попав в них пулей. Механика работает за счет одного направления у движения и пули;
- Можно делать хитрые уровни с "таймерами" из зеркал: игрок должен успеть пройти по тоннелю, пока его пули не вернутся обратно.
Ну и т.д. Так что общее направление — хорошая фича. :)
1. Свайп заставляет перса идти, не останавливаясь. Останавливается только если упрется в препятствие. Таким образом решается проблема частых свайпов.
2. Тап другой рукой заставляет его стрелять в направлении движения. Ведь зачем-то нужны 2 руки игроку? :)
Возможны еще варианты стрельбы в стороны.
Тоже думал об этом. :)
Вы не представляете, сколько бумаги я перевел на зарисовки и схемы. :)
В общем, т.к. время идет, только пока движется игрок, получается, что долгие ходы вредят: слишком быстро всё происходит вокруг.
Сейчас в момент проигрыша я специально оставляю время "включенным", чтобы игрок мог оценить карту в динамике и, поверьте, играть так было бы сложно.
Но в целом, идея, одна: упрощать как можно сильнее. Игрок может играть одной рукой? Отлично! Игрок может играть одним пальцем? Ещё лучше!
За счет этого даже аудитория расширяется: в метро одна рука держится за поручень, вторая держит телефон, а игра ведётся одним большим пальцем.
И общий подход к графике «примитивизм украшенный освещением и эффектами» это то, что надо если нет художника, а игры делать хочется:-)
Мы провернули похожий трюк в нашей игре(и статья про освещение кстати на хабре тоже имеется:-))
Движение игрока и пули сделано через transform.position, а не velocity, поэтому игрока колбасит, когда он упирается в стены;
По-моему, тут проблема не в transform.position и velocity, а в том что для всех действий которые аффектят физику нужно юзать FixedUpdate, а не Update — апдейт отрабатывает на каждом фрейме(т.е. вызовы в секунду = фпс), FixedUpdate — отрабатывает на каждый "физический тик" который вызывается каждые Time.fixedDeltaTime.
Офицальная документация говорит что для работы с объектами, у которых есть RigidBody мы должны использовать FixedUpdate:
FixedUpdate should be used instead of Update when dealing with Rigidbody.
Ссылка
Так же в игре есть стандартный интерфейс с взаимодействием с временем: Time.timeScale.
Офф.Док:
The scale at which the time is passing. This can be used for slow motion effects.
Вся логика по перемещению игроков/ботов/пуль и так была в FixedUpdate. Просто скорость движения довольно большая и если я меняю позицию тела в FixedUpdate, движку приходится выталкивать тело из препятствия. По ощущениям, при стандартных настройках физики это выталкивание может быть заметно (на больших скоростях, как у меня).
А про timeScale — мой Clock меняет и timeScale и fixedDeltaTime (в доке Unity про это есть). Если этого не делать — на паузе физика продолжит отрабатывать с нормальной скоростью и будет видно, как расталкиваются объекты.
Усатый стрелок из двадцати трёх полигонов