Игра для программистов Snek Fite

Привет, CoreMission. Пару недель я занимаюсь тем, что рассказываю везде про свою игру — это небольшая и в меру хардкорная браузерка про змей. Общего с той самой Snake маловато, больше она похожа на Snake Battle (это, если кто помнит, это старая игрушка под MS-DOS, где нужно было программировать змею, и дальше она играла автономно.

Геймплейное видео Snake Battle

https://youtu.be/7n2WmItoInw

Snek fite

В общем, быстро пройду по основным моментам, если заинтересует — то буду рад новым игрокам вот здесь: snek.app. Еще у нас есть задорный фейсбук и телеграм-канал Snek Fite Discussions для запрещенных обсуждений игровых механик, добавляйтесь.

Что представляет из себя Snek Fite

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

Вот как тут

https://youtu.be/ZSP5-QlqFpw

Цель матча: как можно чаще кусать врагов за хвосты и как можно реже подставлять свой. Матч длится 1000 ходов, по времени — чуть больше, чем полторы минуты.

Чтобы змея стала умной (а в Snek Fite умные всегда побеждают) — придется поколдовать над ее поведением. Для этого в игре есть встроенный визуальный редактор. Такой подход еще называют сценарным программированием — когда ты не пишешь код напрямую, а выбираешь разные «если», «то» и прочие логические операторы, и строишь из них цепочку.

У нас сценарии выглядят как вот такие клетчатые поля.


Экран настройки змеи

В редакторе есть:

  • 9 «инструментов»: голова, тело и хвост твоей змеи (красный цвет), то же самое для любой вражеской (белый), препятствие, незанятая клетка.
  • 3 логических правила: must, must not, optional.
  • 9 клетчатых полей — на них вы моделируете ситуации. Поле представляет собой «радиус обзора» змеи.

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

Змея ставит «блок»: прикрывает свой хвост, когда голова вражеской змеи окажется в одном из положений на картинке. Змея никогда не занимается самообороной, агрессивная тактика.

Еще пара примеров, а после будет две полезные ссылки. Ну это для тех, кто уже заинтересовался.

Приказываем змее атаковать чужой хвост поблизости. Чтобы это сделать, нужна такая схема:

Частая ошибка — игроки ставят перед змеей несколько хвостов в надежде, что она будет атаковать любой. Но на самом деле такая команда будет означать «ползи туда, где перед тобой и впереди-сбоку есть сразу два хвоста вражеских змей». Как вы поняли, змея поползет куда ее змеиная душа пожелает.

Чтобы команда работала как надо, нужно повесить на хвосты логику optional — тогда команда будет читаться как «ползи туда, где перед тобой и впереди-сбоку есть хотя бы один хвост вражеских змей».

Еще одна хитрость — «дальность погони». Как в GTA, помните? Полиция отставала от тебя, если тебе удавалось от нее оторваться или спрятаться.

Можно прописать такой паттерн поведения:

Он будет означать: «преследуй чужой хвост, пока расстояние между ним и твоей головой не больше двух пустых клеток». Можно было бы не ставить объект «пустая клетка», правда? Сначала так и хочется сделать. Но в таком случае змея стала бы активно впиливаться во все, что попадается ей на пути — ведь ее цель догнать хвост.

Если заинтересовало — то вот свод правил на сайте с игрой. А тут руководство, которое подготовил один из игроков-энтузиастов.

Итак, когда змея настроена, ее можно пускать в бой. Есть три режима — дуэль 1х1, снейкоцид (FFA на 4 змеи) и, куда без него, батл-рояль (FFA на 9 змей).

Пример королевской битвы. Эпичное групповое поедание хвостов

https://www.youtube.com/watch?v=e74r4cvaOgk&feature=youtu.be

Игра сложная в освоении и в ней нет на 100% победных тактик — просто одни показывают себя лучше других в определенных игровых режимах. Так что путь настоящего змеевода — ставить опыты, улучшать, снова пробовать, опять улучшать. И забираться на верхние строчки таблицы лидеров.

Ну всё. Сыграть (бесплатно, без смс, но с быстрой и безболезненной регистрацией) можно здесь: snek.app

Пишите вопросы и пожелания. Выкладывайте реплеи лучших боев в комменты.

Ребята! Пожалуйста, если Вам понравилась статья — пошарьте её в соц. сетях, особенно ценны Facebook и Google+
Это очень поможет нашему блогу, огромное спасибо!
Читай также:  Игры на Юнити. Лучшие на движке Unity3d