Я в одиночку разрабатываю браузерную игру про жизнь микроорганизма. В прошлый раз я рассказывал о мире и Хранителях, а сейчас хочу подробнее показать само развитие организма.
Наверное, это одна из главных систем игры. Без неё всё довольно быстро сведётся к обычной прокачке: накопил опыт, открыл меню, добавил немного урона и пошёл дальше.
Для игры про эволюцию такой вариант показался мне слишком простым. Организм ведь не знает, что после десятого уровня ему положена новая челюсть. Он просто живёт, ищет пищу, получает повреждения и пытается не умереть.
Поэтому развитие в игре зависит от того, что происходило с организмом.
Вот как сейчас выглядит обычный игровой отрезок. Сначала организм исследует населённую область и сталкивается с другими существами. Затем я открываю экран развития, а в конце ролика появляется один из Хранителей.
Теперь подробнее о том, как игра решает, какие варианты развития предложить.
Как игра решает, что предложить
Общей полоски эволюционного опыта в игре нет.
Вместо неё игра запоминает, чем питается организм, какие части тела использует, на кого нападает, от кого убегает, какие повреждения получает, в каких условиях живёт и что находит во время исследования мира.
Допустим, организм регулярно охотится на живую добычу и использует прокалывающий стилет. Игра замечает не просто количество атак. Она учитывает, чем именно организм атаковал, кого смог победить и какую пищу после этого получил.
Постепенно начинают открываться направления, связанные с захватом добычи, проколами и перевариванием живой ткани.
Другой организм может почти не драться. Он находит богатый поток мелкой пищи, выращивает поглощающую складку и постепенно уходит в фильтрацию.
Оба начинают с одной и той же клетки и могут жить в одном мире. Но развиваться они будут по-разному.
Правда, одной привычки для появления новой части недостаточно. Нельзя сто раз укусить кого-нибудь и внезапно получить готовую челюсть.
Обычно нужны пережитый опыт, подходящая ткань или генетический материал, свободное место на теле и достаточный запас биомассы.
Новые части приходится выращивать
Когда новое направление становится доступным, игра только предлагает его. Готовая часть тела сразу не появляется.
Игрок выбирает проект развития, после чего структура начинает постепенно расти. На это тратятся биомасса и игровое время.
Одновременно можно развивать только один такой орган. Его можно отменить и выбрать другой, но уже потраченные ресурсы никто не вернёт.
Новую внешнюю часть ещё нужно куда-то поставить. У тела ограничено количество мест крепления. Некоторые сложные структуры требуют подходящих внутренних органов или уже развитых частей.
Поэтому нельзя просто выбрать всё самое сильное.
Защищённое тело получается тяжелее и хуже разгоняется. Активные части могут требовать дополнительной энергии. Если занять всё тело оружием, может не остаться места для нормального движения, чувств или питания.
Повреждения тоже локальные. Если хищник откусил конкретную часть, организм теряет именно её функцию. Сломанный орган движения нельзя компенсировать тем, что где-то в характеристиках всё ещё написано «скорость 12».
Почему нельзя собрать универсальную клетку
На ранних этапах организм можно довольно свободно перестраивать. Игрок пробует разные способы питания, движения и защиты.
Но чем дальше развивается тело, тем сильнее оно начинает специализироваться. Некоторые направления хорошо работают вместе, а другие становятся слишком дорогими или несовместимыми.
Мне хочется, чтобы быстрый охотник, тяжёлый защищённый организм и спокойный фильтратор отличались не только цифрами.
Они должны по-разному двигаться по миру, искать пищу и реагировать на опасность.
При этом в игре нет кнопки «стать хищником». Хищником организм становится потому, что охотится, питается живой добычей и выращивает подходящее для этого тело.
То же самое касается других способов жизни. Сначала организм что-то делает, потом его тело постепенно закрепляет этот образ жизни.
Конечно, полностью предсказуемой систему делать тоже не хочется. Иногда интересная находка или редкий генетический материал могут открыть неожиданное направление. Игрок может решить, что с ним делать: проигнорировать, попробовать встроить в текущее тело или вообще изменить прежний способ жизни.
При чём здесь Хранители
Хранители не заменяют эволюцию и не нужны только для того, чтобы дать игроку десять больших целей.
Скорее это необычные ситуации, в которых получившийся организм можно проверить.
Где-то пригодится хорошая подвижность. Где-то потребуется устойчивость к опасной среде. Одного Хранителя можно попытаться разрушить, но подготовленный организм сможет найти другой способ.
Поэтому два игрока могут добраться до одной встречи с разными телами и увидеть разные варианты решения.
Один из Хранителей появляется в конце ролика. Он не нападает на игрока и не показывает над собой полоску здоровья. Сначала нужно хотя бы понять, что перед вами и может ли текущее тело с этим взаимодействовать.
Что пока не получается
Самая сложная часть сейчас связана не с формулами, а с объяснением всей этой системы.
Если показать игроку все условия, числа и накопленные свидетельства, экран развития превратится в таблицу.
Если всё спрятать, новые части будут казаться случайными. Игрок просто откроет редактор и увидит орган, который почему-то стал доступен.
Сейчас я пытаюсь найти середину. Хочется показывать, какие события привели к появлению нового направления, но не заставлять игрока изучать внутреннюю математику.
Основной цикл уже работает. Действия организма влияют на развитие, находки открывают новые возможности, а выбранные части постепенно выращиваются. Но глубокие ветви, темп развития и понятность интерфейса ещё нужно проверять.
Мне интересно, какой вариант вам был бы ближе.
Вы бы предпочли получать несколько вариантов, связанных с прожитыми событиями, или сразу открыть полный каталог и самостоятельно собирать любое тело?