Делаю Xonix, в который можно играть вчетвером
CrossDesk вырос из Xonix игры 1984 года: рисуешь линию от своей земли, замыкаешь её, и отрезанный кусок поля становится твоим. Делаю его на Godot. Сейчас в игре 30 уровней кампании, 14 видов врагов, редактор уровней и онлайн до четырёх человек. Под трейлером рассказываю, как это играется, плюс пара историй из разработки.
Как играется
Корабль стоит на своей территории. Стоит вывести его за край, как за ним потянется линия. Пока она открыта, остановиться нельзя. Если враг задел линию или сам корабль, попытка обрывается.
Вернулся на свою землю: меньшая из двух отрезанных областей перекрашивается в твой цвет, а враги внутри разлетаются на куски. Отдыхать можно только у себя, там корабль замирает. Цель уровня: захватить 100% поля, но с 90% остаток заполняется сам. На уровень даётся три жизни.
Враги
Перед уровнем игра показывает, кто на нём будет. К каждому врагу там есть подсказка. От Перехватчика, например, уходят так: ждёшь, пока он возьмёт курс наперерез, и поворачиваешь только после этого.
Самый неприятный тут Пожиратель, в вики у него угроза 5 из 5. Он ест землю, метеориты и незащищённых врагов, а от еды у него растёт хвост. Хвост отрезается захватом, а укус можно сбить импульсом. Импульс оглушает врагов вокруг корабля, это одна из способностей.
Заснять, как Пожиратель кусает землю, я пока не смог. Ролики я пишу рекордером Godot кадр за кадром. Игра при этом идёт в несколько раз медленнее обычного. Играть руками в таком замедлении неудобно, так что кораблём управляет бот для съёмки (в саму игру он не входит). Бот проигрывает раньше, чем Пожиратель добирается до захваченной земли.
Способности
Способностей 13, в бой берёшь четыре, на клавиши Q, E, R и F. Покупаются они за рубины, каждая один раз, а у рывка есть ещё ранги. Рубины дают за победу, за руду в захваченных метеоритах и за раунды выживания.
Рывок мгновенно переносит корабль и строит линию по всему пути прыжка, прокачанным можно прыгнуть до трёх раз подряд. Стазис-поле на 5 секунд замедляет врагов в зоне до четверти скорости. Пассивка «Диагональ» добавляет кораблю диагонали: без неё он ходит в четыре стороны, с ней в восьми.
Набор меняется прямо на экране перед уровнем, когда уже видно, какие там враги. А в ангаре двигатель, реактор, щит, импульс и сканер прокачиваются по 5% за ранг.
Кампания
30 уровней в пяти секторах, у каждого уровня своя форма поля: спираль, песочные часы, крест, архипелаг, бастион и ещё 25.
С шестого уровня на поле стоит вражеская станция. Сначала у неё один модуль, ангар, а к концу кампании до трёх. Системы станции отключаются, если перерезать кабель или захватить модуль. Без кабеля ангар перестаёт присылать подкрепления.
После кампании открывается выживание: каждый раунд новая карта, сложность растёт, между раундами выбираешь награду. Лучшая серия попадает в таблицу рекордов.
Вчетвером
Онлайн рассчитан на четверых. Кто-то создаёт лобби, остальные находят его в списке или входят по коду комнаты. Порты открывать не нужно.
В кооперативе у каждого свои три жизни. Выбывший становится призраком. Союзник может его вернуть: для этого надо продержаться в зоне возрождения 10 секунд, пока она открыта. Если хост вышел, матч не обрывается: хостом становится другой игрок.
В PvP соперника ловят, перерезав или окружив его открытую линию. Режимов два: «Поймал — победил» с таймером и «Пойманный возрождается» без него. Карта сектора красит землю каждого игрока в его цвет, это как раз видно на обложке.
Вдвоём можно играть и на одном компьютере. Экран делится пополам, управлять можно с одной клавиатуры, с двух геймпадов или с клавиатуры и геймпада.
Редактор
Форму поля рисуешь кистью или прямоугольниками, расставляешь врагов, руду и станцию, жмёшь «Тест» и летишь. Поле может быть от 24×16 до 256×144 клеток. Уровнями можно делиться файлами, а хост может запустить свой уровень в онлайне.
Звук и сеть
Музыку и звуки я не записывал и не брал из библиотек: их синтезирует код, без сэмплов и нейросетей. Треков 20, у каждого сектора два. Музыка разложена на слои и следит за полем. Чем выше угроза, тем она напряжённее, а на последней жизни мрачнеет, и в ней появляется сердцебиение. Захваты звучат в тональности текущего трека.
Сетевой код уже в восьмой версии. Игру просчитывает компьютер хоста, остальные получают от него состояние мира, а свой корабль каждый двигает сразу, не дожидаясь ответа. По моим замерам при пинге около 200 мс свой корабль обычно откликается на нажатие уже в следующем кадре. Без огрехов пока не обходится: примерно раз в минуту или реже хост поправляет позицию корабля, и это видно. Трафик идёт через мой сервер, так что игроки не видят IP друг друга.
Релиз
Игра выйдет в VK Play, для Windows, на русском и английском. Страница сейчас на модерации, ссылку добавлю сюда, когда её откроют.
Больше всего мне сейчас интересно, понятна ли игра по одному трейлеру. Если после него неясно, что делать, напишите, на какой секунде вы потерялись.