Меню
StopGame  Блоги Блог serious_ham Игра Snek Fite: серпентарий для нердов

Самое актуальное

  • «Инфакт» от 20.08.2018 — Читера в GTA Online засудили, Steam будет Twitch, Spyro перенесли, конец Forza Horizon 2…
  • Обзор игры Undertale
  • Видеообзор игры Dead Cells
  • Пользовательский обзор недели
  • Интервью по игре Conqueror's Blade
  • Портивное ориентирование — лучшие и худшие порты на PC
  • ДиагноSteam. Пишем обзоры в прямом эфире!
  • Onechanbara Z2: Chaos. Что-то с сиськами
  • Превью по пресс-версии к игре The Messenger
  • Трудности перевода. The Elder Scrolls V: Skyrim
  • P.A.S. Приговорённые к замесу
  • Обзор игры WarioWare Gold
  • Рефанд?! — Mechanism, BORIS the Mutant Bear with a Gun, Semblance, Combat rush, Dig or Die, Hag’s Castle, GARAGE: Bad Trip
  • Онлайновый апокалипсис в Fallout 76 и прямая речь Тодда Говарда
  • Молотилово, панель Bethesda и премьера DOOM Eternal
  • Своя игра. Герои, злодеи и прочие случайные прохожие
  • Видеопревью игры Red Dead Redemption 2
  • Обзор игры This Is the Police 2
  • Обзор игры Dead Cells
  • Пользовательский обзор недели
  • Как пройти все Fallout за час! [Спидран в деталях]
  • Обзор игры Flat Heroes
  • SCP, рептилоиды, акулы, верёвки (экспресс-запись)
  • 20 фактов о Spyro к выходу переиздания
  • История серии Metro 2033. Рождение метро
  • Earth Defense Force 4.1. Мочи жуков!
  • PUBG. ФИЛЬМ 2 (русский дубляж)
  • Обзор игры Chasm
  • Превью по бета-версии к игре Conqueror's Blade
  • PUBG. ФИЛЬМ (русский дубляж)

Игра Snek Fite: серпентарий для нердов

0


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


Первая игра


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

Если помните, то текстовый квест — это такая карта-лабиринт с локациями, персонажами и собственно, заданиями. Я придумал главного героя, его предысторию и то, как все должно закончиться. А вот с локациями погорячился, зафигачил две тысячи — мир получился громадным.

При этом каждая локация требовала своего описания, а моя фантазия иссякла уже на двухсотой. На помощь пришел Пришвин с его потрясающими литературными пейзажами и подкинул еще 900. Для сравнения, Толкина только на 30 хватило. Остальные дописывал в духе «Луг, густой лес, дорога». Успеть — успел, но без косяков не обошлось. Во время демонстрации игра вылетела из-за бага с репликами гоблина. Сошлись на ничьей.

И хотя Snek Fite тут ни при чем, ее корни уходят примерно в те же времена. Точнее — к легендарной Snake Battle.

Snake Battle


Компания Gamos, которой все геймеры девяностых обязаны нервным тиком за квест с холодильником из «Братьев-пилотов», выпустила Snake Battle в 1992 году. От классических змеек эти отличались тем, что управлялись не с клавиатуры и не с мыши — их надо было программировать.


Экран создания программной логики змеи: девять слотов, объекты («голова», «тело», «хвост» — свои и врага, «барьер», «пустое поле») и логические операторы («кроме», «или», «и»).



Когда ты настраивал логику, змея шла отгрызать хвосты своим братьям-пресмыкающимся. Ну или наоборот — в зависимости от того, как ты ее настроил. Выглядело это так:


Конечно, для детей это было чересчур. В смысле, даже если тебе суждено стать программистом, вряд ли ты будешь самозабвенно разбираться с этими гадами несколько часов кряду. Особенно, когда тебе десять. Я, как и многие, не смог оценить все прелести Snake Battle по достоинству в то время. Зато потом вернулся, разобрался и захотел отдать дань уважения.

Идея и воплощение


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

Пару раз я пытался увлечь своей задумкой знакомых и не очень ребят — в России как раз стали набирать популярность хакатоны. Запилить игру за 48 часов в принципе реально, но каждый раз что-то не срасталось. В конце концов решил делать сам от и до: создать прототип, найти аудиторию, разобраться, без каких фич можно обойтись, а какие реально нужны.

В мае этого года увидела свет первая версия. Она могла регистрировать змей, программировать их с помощью BPI (basic programming interface) и устраивать бои на четыре персоны. Платформа — браузер, бекенд — Ruby on Rails и PostgreSQL. Все про все заняло восемь часов.

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


Но давайте обо всем по порядку.

Как устроена Snek Fite


Ты заходишь на snek.app, создаешь змею, даешь ей имя. Каждому игроку выдается змеюка с уникальным окрасом и узором. Дизайн на этом все. Ну, еще аватарка и обложка в фейсбуке. Там, кстати, я периодически веду дневник разработки и общаюсь с игроками.


Так выглядит топ самых опасных: у каждого своя боевая раскраска



Чтобы подготовить питомца к бою, его нужно настроить. Визуальный редактор программной логики похож на тот, что был в Snake Battle.


Сейчас редактор поведения змеи выглядит так



Только всего полей не шесть, как на картинке, а девять. Каждое поле — это ситуация, которая может произойти во время битвы. Ты добавляешь на поле объекты: голова, тело и хвост собственной змеи или змеи противника, стена или пустое пространство. Логических операторов три: must, must not и optional. Когда змея столкнется в бою с заданной ситуацией, она будет себя вести так, как ты ее настроил.

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


Надо сказать, что игра едва ли зайдет далеким от программирования людям. Чтобы понять всю серьезность ситуации, почитайте руководство нашего топового игрока. Его змеи Zerro и Undefined занимают первые две строчки снек-парада. Даже если не будете вникать в суть, просто посмотрите на объем и поймете, почему.

Примеры настройки

Паттерны варьируются от простых, которые занимают одно поле, до сложных — в три и больше. Например, такой сценарий заставляет змею прикрывать свой хвост в случае опасности.


Здесь белые головы принадлежат вражеским змеям



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


Сложный паттерн, который занимает сразу три поля



А теперь вернемся к процессу.

Собственно бой

На игровом экране (слева) можно выбрать режим битвы, вкл-выкл автобитвы и заодно посмотреть историю боев.



Режима три: Дуэль, Снейкоцид и Батл-рояль — бой один на один, FFA для четырех и для девяти змей соответственно.

В бою у каждой змеи есть 1000 ходов, которые заканчиваются через минуту-полторы для Батл-рояля и секунд через 15 для прочих битв, так что ждать недолго. Асинхронный мультиплеер позволяет сражаться с теми, кого нет онлайн — змея настроена и ведет себя так, как ее научили.

Не так давно для самых опасных змей я добавил кнопку «Реванш». Теперь если ты бьешься с кем-то из лидеров, то можешь отыграться. В теории.

Перспективы


Как и первая версия, игра сейчас работает на Ruby on Rails и PostgreSQL. Бэкапа набежало на 15 гигабайтов — за счет того, что записывается каждый ход каждого боя. Эти данные в свободном доступе, так что можно смотреть, анализировать, перенастраивать змею. А если есть желание — учить нейросеть. Но это для фанатиков.

Для них же есть PRO-статус — он дает дополнительные возможности для обучения рептилии. Это единственная платная функция, а так можно и нужно играть бесплатно. Это не менее увлекательно.

К этому моменту я потратил на Snek Fite около ста часов, и продолжаю вкладывать в нее каждую свободную минуту. В планах привести дизайн в порядок, сделать темную версию игры, добавить возможность выгрузки истории боев и заняться турнирами. Еще задумываюсь о различных рейтингах и перспективе объединения в кланы. Но для этого нужно больше змей. Поэтому присоединяйся и играй с нами. Также буду рад обратной связи — пиши в фейсбук.
Комментарии (1 шт.)
Предлагаю к ознаКомлению!
Для комментирования необходима регистрация.
Прямой эфир «Блоги»
Курилка имени ничего
Блог курилок и длинных разговоров
Seventh Cross: низкополигональная эволюция
Персональный блог LeOnWiNsToN
Перевод книги «Горе-творец/The Disaster Artist» [Глава 3]
Персональный блог великого комбинатора
[ШОУ] Вопросы для «Что? Где? Когда?»
Персональный блог имени Плюшевого Динозавра
Бессмертные и горячие | Эльфы в видеоиграх
Персональный блог Пепельного Тейна
Наверх ↑