Перейти к содержимому

Что такое мировой процессор

Тот же язык, те же блоки — но он умеет менять саму карту, и построить его в обычной игре нельзя

Всё, что было в курсе до сих пор, работает в обычной игре: поставил процессор, написал программу, она крутится. Мировой процессор — другой зверь. Он часть карты, а не постройки на ней.

тик 0
Установить блок0
слойблокиxyкомандавращение
Получить блок1
слойрезультатxy
Установить2
=
Стоп3
@counter0number
поставилnullnull
скоростьnullnull

Две программы, строка в строку одинаковые. Мировой процессор ставит маршрутизатор на клетку 8 7 — и тот появляется. Обычный делает то же самое на клетке 8 2 — и не происходит ничего. Ни ошибки, ни сообщения.

Двадцать пять инструкций в игре помечены как привилегированные, и обычный процессор их не исполняет. Это они:

Что умеет Чем
менять карту setblock, getblock
создавать юнитов и пули spawn, bullet
менять правила игры setrule, spawnwave
говорить с игроком message, cutscene, localeprint
рисовать метки на карте makemarker, setmarker
хранить общие данные setflag, getflag, sync, fetch
трогать всё подряд setprop, status, explosion, effect

Обычный процессор такую строку соберёт — редактор её примет, и ошибки не будет, — а при выполнении просто пропустит.

В меню строительства мирового процессора нет, и купить его нельзя. Он ставится редактором карт: открываете карту в редакторе, берёте его в списке блоков и ставите.

Отсюда и его место в игре:

  • кампания и сценарии. Задания, диалоги, волны по расписанию, скрипты миссий — всё это мировые процессоры на карте;
  • свои карты и режимы. Правила, которые нельзя выставить в настройках: своя экономика, свои условия победы;
  • сервер. Там карту делает хозяин сервера, и он же кладёт на неё мировые процессоры.
тик 0
Установить0
=
Скорость1
ipt =
Установить2
=
Стоп3
@counter0number
обычнаяnullnull
разогнаннаяnullnull

Скорость. Обычная у него восьмёрка — как у логического процессора, — но setrate поднимает её до 1000 инструкций за тик. Ни один обычный процессор так не умеет: их потолок — их собственная скорость.

Дальность. У обычного процессора связи ограничены: микропроцессор дотягивается на десять клеток, гиперпроцессор на сорок две. У мирового ограничений нет — он связывается с любым блоком карты, где бы тот ни стоял.

Невидимость для соседей. Обычный процессор умеет читать переменные соседа — но не у мирового. Тот закрыт: ни прочитать, ни записать. Иначе программа игрока могла бы залезть в сценарий карты и переписать его.

Неофициальный проект, с Anuke не связан. Спрайты, шрифты и переводы Mindustry © Anuke, используются по GPL-3.0; Fira Code — по OFL-1.1. Код сайта — GPL-3.0.