Читатели ни разу не просили меня написать второй девлог к моей инди-игрушке, поэтому я воспринял это как призыв к действию.
Всем известно, что фраза Drive Like You Stole It переводится как «пиши девлоги на SG, так, будто бы Иван Лоев прочтёт его», поэтому придётся вставить в текст пару упоминаний о Factorio.
Так как я произвёл жёсткий feature cut, концепт игры немного упростился. Теперь это можно описать как «олдовый X-COM в космосе, с боёвкой в стиле Carnage Heart».
Вместо наземных юнитов и пошаговой тактики у нас action pause real-time битвы в космосе, с модульными кораблями и программируемым поведением. Под нашим контролем не одна планета, а вся солнечная система.
Однако на одном программировании далеко не уедешь. Хорошая игра, обычно, чередует активности, не давая вам тормозить на неприятной рутине. График геймплея выглядел бы как синусоида — где-то более активный, потом менее активный, но главное — не однообразный.
В NebuLeet у пилотов кораблей есть два архетипа:
- Наёмники (пилоты с готовым поведением)
- Андроиды (программируемые пилоты)
Наёмники — это личности с особенностями. Они могут быть трусливыми, командными игроками или одинокими волками. Их поведение зависит от их уровня, навыков и поведенческих пассивок.
Андроиды же просто исполняют программу. Эта программа может быть самой базовой из набора по умолчанию, или вашей собственной разработкой. Эффективность андроида напрямую зависит от качества его программы, прокачка усиливает лишь базовые характеристики, но не меняет поведение.
Отряд игрока может состоять из любой комбинации этих двух архетипов: только наёмники (автобаттлер без программирования), только андроиды (программируемый автобаттлер), или и те, и другие.
А ещё можно сделать себе ручное управление и играть в аркадный шутер. Для этого нужно написать андроиду программу, реагирующую на нажатия клавиш. Вот пример простейшего управления кораблём:

Добавить в игру и наёмников, и андроидов — это рискованный ход. Оба вида пилотов должны быть полезны и иметь свои плюсы с минусами.
Сила наёмника чаще всего превосходит андроида, так как они получают гораздо больше очков навыков и им доступно больше перков. Плюс андроида же в том, что он гораздо более послушен и будет делать ровно то, что вам нужно. Если наёмник — это что-то вроде NPC-компаньона, который может как бесить, так и быть весьма полезным, в зависимости от фазы Луны, то андроиды — это глина, которая действует ровно по вашему плану (даже если этот план бесконечно плох).
Потенциал андроидов на старте должен быть ограничен не только ради баланса, но и для более плавного обучения игрока. Давать вам весь арсенал для программирования на старте нельзя.
Поэтому, на старте все алгоритмы довольно простые и компактные:

В игре программируются не сами андроиды, а детали корабля. У разных оружий могут быть свои программы и алгоритмы, а навигационный мостик содержит алгоритм перемещения. Помогает снизить порог входа в эту сложность прошивки оборудования по умолчанию. Лазер знает, как базово, хоть и не очень точно, стрелять по врагу, а разные модели мостиков содержат свои программы перемещения.
Выше был пример стартовой программы для одного из оружий, но это ещё не всё. Обычно, у каждого предмета есть 2-3 программы, но более продвинутые версии прошивок можно загрузить только если игрок имеет в доступе все используемые в прошивке команды. Иначе говоря, более продвинутые примеры кода открываются по мере прохождения игры.
А открываем новые команды для программирования мы через дерево (матрицу) прокачки:
Эта матрица случайно генерируется каждый раз при начале новой кампании. Каждая ячейка матрицы — набор команд. Обычно в каждом наборе содержится 2–3 тесно связанных между собой операции.
Вы начинаете с выбора корня технологического дерева — это может быть любая ячейка, и она открывается бесплатно. Далее вы можете открывать соседние ячейки, но уже за очки развития. Стоимость каждой следующей ячейки увеличивается, поэтому важно правильно расставлять приоритеты и осторожно выбирать стартовую позицию на матрице.
После открытия ячейки, команды из соответствующего набора добавляются в ваш арсенал. Это позволяет создавать более сложные программы самостоятельно или использовать более продвинутые предустановленные программы на устройствах.
Очки эволюции андроидов начисляются, когда андроиды-пилоты получают опыт в бою. Если в отряде нет андроидов, очки не начисляются.
Возможности программирования значительно расширяются ближе ко второй половине игры. Вы сможете создавать конечные автоматы (FSM) — но я не буду портить удовольствие от самостоятельного открытия этой возможности! Дам лишь тизер, что все компьютерные оппоненты в игре, включая нанимаемых пилотов, управляются через написанные внутри самой игры алгоритмы!
Я надеюсь, что эта система сделает разные стили игры более-менее сбалансированными: от полностью авто-боя с нулевым или минимальным программированием до полноценной программной дуэли в духе Carnage Heart или Gladiabots.
10 Factorio из 10, рефанд и вишлист на Стиме
Лучшие комментарии