Modular Computers (SS14)
“ | У этих машин нет здравого смысла; они еще не научились "думать" и делают в точности то, что им говорят, не больше и не меньше. Этот факт - самая трудная концепция для понимания, когда человек впервые пытается пользоваться компьютером. | ” |
–Дональд Кнут |
Модульные компьютеры - смесь модульных компьютеров и интегральных плат из Space Station 13, и мода OpenComputers из игры Minecraft. Но в отличии от них - это полноценные компьютеры, для которых можно написать любое программное обеспечение взаимодействующее с игрой - от простых анализаторов здоровья до компьютеров с операционной системой.
Корпуса
Любой модульный компьютер состоит как минимум - из корпуса. Каждый корпус имеет разное количество PCI слотов и поддерживать разные способы энергопитания, последнее особенно важно - ведь процессор не будет работать без электричества.
Для включения/выключения компьютера необходимо нажать на "Переключить питание" с помощью правой кнопки мыши или с помощью сочетания клавиш для альтернативного использования. Для того - чтобы вытащить или положить внутрь корпуса что-то - необходимо открыть его с помощью отвёртки. Доступные для печати корпуса открываются с помощью технологии "Компьютерная наука".
Портативные корпуса
Главная особенность портативных корпусов - их можно брать в руки, класть в контейнеры и они питают процессоры от батареи.
Некоторые портативные корпуса доступны в протолатах.
Стационарные корпуса
Кроме классических консолей, стационарные корпуса также могут быть и настенными. Эти корпуса уже питают процессоры от ближайшего APC, их можно построить через меню крафта.
Процессоры
Сердце любого компьютера - процессор. Для работы требуются энергия, каждая модель процессора имеет набор характеристик: энергопотребление, IPS (инструкции в секунду), RAM (оперативная память).
- Энергопотребление - количество потребляемой энергии во включённом состоянии.
- IPS - максимальное количество выполняемых инструкции в секунду, чем больше - тем быстрее работает.
- RAM - количество оперативной памяти. Привязано к модели процессора, изменить нельзя.
Каждый процессор имеет архитектуру RISC-V, это необходимо учитывать при создании программного обеспечения.
Новые процессоры полностью пусты и не имеют изначально какой-либо прошивки. Для загрузки программ в процессор - используется программатор.
Программатор
Программатор - устройство для загрузки прошивок в процессор. Доступен в протолате после открытия технологии "Компьютерная наука".
Первым шагом необходимо загрузить саму прошивку в программатор - в интерфейса устройства необходимо нажать на кнопку "Загрузить прошивку", затем откроется окно с выбором файла прошивки на вашем компьютере. После выбора файла начнётся его загрузка, после окончания загрузки вы можете, нажав программатором по процессору, загрузить вашу прошивку. Процесс прошивания занимает несколько секунд.
Также, в игре есть уже заготовленные прошивки для разных устройств в виде дисков. Для загрузки таких прошивок необходимо кликнуть диском по программатору. Часть из них можно распечатать на протолате после открытия технологии "Компьютерная наука".
Отладчик
Отладчики нужны для просмотра регистров и подключённых MMIO устройств. Доступен в протолате после открытия технологии "Компьютерная наука".
PCI устройства
PCI устройства - компоненты, которые можно подключить к процессору, вставив их в корпус компьютера, некоторые из них можно напечатать на протолате после открытия технологии "Компьютерная наука", другие - заказать в карго.
Каждое такое устройство даёт возможность программно взаимодействовать с игровым миром - получения информации о состоянии здоровья, газах, отправка сигналов другим объектам, передача информации по сети и т.д.
Одними из особых и важных устройств являются монитор и видеокарта. Монитор - выводит графику, а также считывает ввод с клавиатуры и мыши игрока, видеокарта - отрисовывает графику.
Программирование
Для создания прошивок подойдёт любой язык программирования, который имеет компилятор под целевую архитектуру rv64gc. Но стандартные драйверы и шаблоны прошивок используют язык Rust.
Шаблон пустой прошивки можно найти в этом репозитории. Драйверы устройств можно найти здесь.
Общие правила для компиляции и линковки прошивок под модульные компьютеры:
- Целевая архитектура: rv64gc
- Начало RAM: 0x20000000