The Brain Eaters Survival - это случайно генерируемый ролевой шутер с элементами Roguelike. Меняйте добытые ресурсы на различные мутагены, оружие, и броню для того чтобы выжить в этом безумно мире.
Уже сейчас можно ознакомиться с тизером, а так же посетить страницу игры в магазине. Уже скоро будет опубликована Демо версия. Чтобы не пропустить, добавляйте игру в желаемое на VK Play.
Послал душную офисную жизнь и бюрократов в ВУЗе. Самостоятельно изучил программирование и гейм-дизайн. Сделал игру «Echoes of the Abyss» (трейлер ниже) – экшн-рогалик, где мир трансформируется в зависимости от уровня Безумия героя.
Регулярно проходил по несколько этапов сомнений, подавленности, воодушевленности и вкалывал целыми сутками
Все, у кого была и есть похожая история, делитесь опытом, и как вы справлялись с трудностями? Если хотите пообщаться, можно в Дискорд https://discord.gg/gtfVhb4q
Твоя жизнь - это битва. Круши демонов, рви на части их жуткие формы, используй любые хитрости и поддержку соратников чтобы избежать поражения, ведь ты не имеешь права остановиться не уничтожив их всех.
Мы взяли всё лучшее из Roguelike и командных сессионных игр. И получили уникальные бои за счет генерации событий в каждой отдельно взятой партии и метагейм с бесконечной прогрессией, в котором каждый может реализовать себя.
Каждый бой является уникальным благодаря:
Генерируемой карте, где локации расставляются случайным образом;
Большого количества сценариев появления противников по мере сражения;
Аффиксов, что меняют условия, создают дополнительные трудности и вынуждают подстраиваться;
В бою вы можете оказаться в одной группе с незнакомцами , которые могут по-разному вести себя, помогая или создавая неудобства, порой и подло предавая вас ради своей выгоды.
Мета прогрессия достигается за счет того, что персонажи повышают уровни и становятся сильнее после каждого матча, а значит в каждом следующем будет проще добиться более высокого результата. Кроме того, мы планируем добавить ряд систем, которые позволят довольно сильно менять стиль игры на персонаже. Но, придется основательно поохотиться за нужными предметами.
Кооператив? О нет!
Это полноценный матчмейкинг. Это не игра, где “можно побегать одному, а можно с друзьями, если хочется”. Да, мы ввели соло-режим, чтобы можно было попробовать игру или сыграть по быстрому, если не хочется ждать сбора команды. Но, геймплей полностью раскрывается в команде, т.к. буквально каждая механика здесь имеет в своей основе взаимодействие с союзниками.
Исследуй просторы Чистилища
Мы даем игрокам достаточно большую игровую карту, которую им предстоит исследовать. Она состоит из заранее созданных островов, но их расположение будет выбираться в каждом матче случайным образом, поэтому никогда нельзя заранее быть готовым к тому, какая конфигурация вас поджидает.
По всей карте распределены группы противников, которых игрокам нужно уничтожать чтобы получать усиления и продвигаться по прогрессу. При чем, чем дальше от центра, тем сильнее будут группы и больше награда.
На карте есть объекты, взаимодействие с которыми дает положительные эффекты, поэтому вам определенно стоит уделить внимание исследованию.
Отряд самоубийц?
Ход партии заключается в том, что игроки, уничтожая армии противников, накапливают шкалу Мести. Как только та накоплена - противники организуются в волны и пытаются атаковать центральный объект - Кузню. Если она будет защищена до конца волны - игрокам снова предстоит накопить шкалу и призвать новую волну. Этот процесс будет продолжаться до тех пор, пока Кузня не будет разрушена.
Чем же мы можем вас увлечь?
Во-первых, уже вышеупомянутый мультиплеер. Это наша главная фича, мы объединяем жанры roguelite и moba, заимствуя лучшее из каждого.
У нас есть довольно глубокая сюжетная составляющая, которая будет постепенно развиваться. Мы не планируем вываливать сюжет на игрока напрямую, вместо этого мы будем использовать косвенные методы для проталкивания отдельных деталей.
В дальнейшем мы планируем ввести крутую и глубокую социальную составляющую, чтобы взаимодействовать внутри комьюнити было максимально увлекательным. Если всё получится - это станет беспрецедентным уровнем социальной составляющей для жанра.
(арт создан при помощи нейросети)
В далёком прошлом…
Однажды наш СЕО пришел ко мне и сказал “У меня есть идея игры, послушай, как тебе.” Через 10 минут я ответил “Мы должны её сделать.”Изначально мы сильно вдохновлялись такими проектами как Vampire Survivors, Brotato, Curse of the Dead gods. Затем, наше понимание что за проект мы хотим начало расширяться и совершенствоваться, мы начали находить более точечные примеры для подражания в отдельных аспектах. В некоторых моментах нам понравился Ravenswatch. Определенная часть принципов и графических идей позаимствованы в League of Legends. Как основной референс графического стиля мы, в итоге, выбрали недавний Mad world.
Нам очень понравилось совмещать лучшие черты и идеи совершенно разных игр, и получить что-то довольно новое в жанре.
(арт создан при помощи нейросети)
Забегая в будущее…
На данный момент мы прорабатываем основной игровой цикл, и хотим чтобы к раннему доступу играть уже было интересно, и не 1-2 вечера, а ровно столько, сколько душа пожелает. Но, у нас есть понимание, что мы хотим сделать этот проект чем-то большим, чем просто интересная игромеханика.
Нам нравится развивать многообразие стратегий и игровых стилей. Поэтому, по мере нарастания контента, мы обязательно постараемся покрыть вообще все виды игрового опыта, который только сможем воспроизвести
Мы решительны в своем желании сделать эту игру по-настоящему социальной, и у нас есть идеи как привнести в очень привычные механики рейтингов черты олдскульных онлайн-проектов, где оказаться на вершине было действительно интересно.
Также, в игре могут появиться совершенно экспериментальные подходы к построению геймплея, но об этом, мы расскажем в следующих выпусках. Лучшая награда для инди разработчика - это конечно же ваша подписка и добавление игры в wishlists.
Взять с собой побольше вкусняшек, запасное колесо и знак аварийной остановки. А что сделать еще — посмотрите в нашем чек-листе. Бонусом — маршруты для отдыха, которые можно проехать даже в плохую погоду.
Около полгода я вынашивал идею игры в которой управление будет построено полностью на программировании. Изначально задумка была крайне примитивной: Жанр: Roguelite арена. Референсом послужил недавно нашумевший Brotato, но управление будет полностью кодом. А ещё можно будет писать свои функции, создавать переменные, потоки, демоны (не те, которые из потустороннего мира, хотя для новичков в программировании они могут быть куда страшнее).
Так выглядит игра референс. Порекомендовал бы её фанатам жанра, но думаю все и любители жанра и так знают эту игру.
В дальнейшем я несколько подробнее расписал своё видение и выделил механики, на которых будет базироваться интересный геймплей. Но это были лишь идеи, которые только предстоит протестировать. Ведь на бумаге идея GTA для Android с возможностью грабить караваны кажется крутой, но суровые реалии опыта игроков все расставляют на свои места.
Подготовка:
Для начала мне нужно определиться с инструментарием. В целом, мой опыт в программировании довольно насыщенный, поэтому критерий "сложность в освоении" был на меня на одном из последних мест.
Самыми важными для меня были:
Удобство. Многим начинающим большое количество элементов визуального программирования и возможность руками расставлять объекты на сцене и на экране кажется крайне удобным, но не мне. Мне больше нравится всё делать через код. Поэтому уже на этом этапе я исключил для себя титанов вроде UE, Unity и Godot. 2. Лицензия. Кодеры любят писать код и не любят делать что-то ещё (вот я например не люблю писать этот пост сейчас, но боль от того, что я буду пилить игру год и про неё никто не узнает куда сильнее, поэтому держусь). Лишние проблемы с лицензиями и авторскими правами мне ни к чему, поэтому UE, насчёт которого я ещё сомневался после первого пункта вылетает. 3. Перформанс и устойчивость к ошибкам. Эти два пункта я объединил в один, чтобы точнее передать муки выбора - большая часть моего опыта - Kotlin и Java. На них можно создавать довольно хороший код с точки зрения ошибкоустойчивости + у меня есть небольшой опыт использования библиотеки LibGDX (популярный игровой движок на Java). Но, учитывая тот факт, что я тот ещё геймдевер, а JVM не самое лучшее решение для производительных игр, я решил отбросить этот вариант. После чего задумался о языках семейства C, узнал о наличии довольно большого количества движков, но понял, что с моими навыками писать безопасный код (они на самом деле неплохие, просто холодно сейчас), это - не лучшая идея и я сел думать.
Так идея и продолжала консервироваться, т.к. я не мог выбрать идеальные для себя инструменты, до того момента, как однажды я не увидел статью про то, что Microsoft стремительно переписывает свою любимую ОС на Rust. Я немного касался этого языка, но по сути не знал о нём ничего и мне стало интересно.
Закинул себе на Kindle вот эту книгу и с каждой страницей всё больше начинал влюбляться в этот язык. Я подумал: "Вот оно!". И принялся искать игровые движки на этом языке, и довольно быстро наткнулся на Bevy.
Движок был относительно молодой и опенсорсный, что внушало некоторое опасение. Я изучил сайт (движок поддерживается неплохой, по меркам смертных, копеечкой), принцип ECS, что значит Data-Driven, пообщался с ребятами в дискорде и понял - это оно!
Как пробу пера я набросал небольшую визуальную новеллу (сейчас понимаю, что это была отличная идея, т.к. для адепта ООП такая парадигма разработки ломает привычное понимание и код получается ужасным), после чего понял, что мне подходит этот инструмент и можно браться за дело.
Вот так выглядела игра, арты любезно сгенерил старина Кандинский.
Прототип (Версия 0.0.1)
Начать разработку я решил с создания простого прототипа, который позволит тестировать механики и отбрасывать то, что не работает без лишних временных затрат. На первых порах я решил использовать бесплатные пискель арты, но очень быстро от них отказался, набросав сам все арты в игре (дешево, сердито, не идеально, но с душой).
Геймплей хотелось немного обосновать логически и я придумал для себя некоторую сюжетную основу игры: мы играем за кодера, который исправляет различные проблемы в системе (баги, вирусы и тд). Так и пришла идея первых двух видов врагов (жуки и черви).
По визуальному стилю я выбрал пиксель арт + стереотипный кодерский стиль (черный фон, зеленый текст). Изначально я хотел сделать всю игровую палитру одноцветной, но враги и снаряды персонажа терялись и было сложно адекватно реагировать на игру, из-за чего враги перекрасились в красный цвет, как и положено ошибкам в коде. После некоторого времени работы у меня получилось что-то такое:
Главное меню с окном в стиле MacOS и возможность почитать описание основных игровых команд.
А вот и наш игровой персонаж.
Крайне интересным опытом было написание своего интерпретатора, наконец получилось воспользоваться всей мощностью регулярных выражений. Помимо простой обработки команд, в первую версию так же вошла возможность добавлять свои функции по мере прокачки. Интерпретатор способен обрабатывать и их. Пока это решение ещё предстоит отполировать, но я уже очень доволен результатом.
Первое геймплейное видео.
Проблемы первой версии
Как это часто бывает, пока я тестировал игру, мой глаз замылился: я набил руку в управлении, из-за чего мне хотелось постоянно увеличивать сложность, все механики казались мне интуитивными, но плейтесты моих товарищей спустили меня с небес на землю.
Сложна, страшна, паника
Частая проблемы была в том, что когда противников становиться больше люди делали ошибки, начинали паниковать и получали много урона, не в силах камбэкнуть в игру, проблема серьёзная и я понял, что её нужно обязательно решать, поэтому добавил эту задачу к себе в бэклог.
Медленно, нет экшона, нудно
Идея управлять всеми действиями кодом изначально показалась крутой: некоторые действия могут быть сложными, тогда для них пишешь функцию, которая упрощает этот процесс. В будущем я планировал добавить больше инструментов, чтобы сделать ощущения прогресса ещё более сильным, но проблема в том, что сейчас таких инструментов мало, а нажимать около 10 клавиш, чтобы пройти пару шагов - очень медленно и надоедает. И даже наличие истории прошлого ввода (при нажатии стрелки вверх) особо эту проблему не решало. Проблема так же улетает в бэклог.
Обучение игре
Обучение управлению в процессе - довольно сложная штука, учитывая, что для игры в идеале использовать 6 команд. Однако освоение проходило довольно быстро, поэтому эту проблему я решил отложить на более позднее время.
Помимо этих проблем было ещё много вещей, которые я изначально (до плейтестов) хотел исправить, поэтому бэклог всё увеличивался. В версии 0.0.2 я решил взять прицел на улучшение пользовательского опыта, но об этом - в следующем посте.
Спасибо за уделённое время, потрогать игру можно по ссылке