Справжній CPU у Minecraft | robot_dreams
Для отслеживания статуса заказа — авторизируйтесь
Введите код, который был выслан на почту Введите код с SMS, который был выслан на номер
 
Код действителен в течение 5 минут Код с sms действителен в течение 5 минут
Вы уверены, что хотите выйти?
Сеанс завершен
На главную
Робочий CPU у Minecraft: Як піксельна гра стала інженерним конструктором

Робочий CPU у Minecraft: Як піксельна гра стала інженерним конструктором

Тисячі блоків, цифрова логіка та RAM

Не обов’язково бути геймером, щоб знати про Minecraft — гру, яку без перебільшення вважають найвпливовішою у XXI столітті. Вона розійшлася тиражем понад 300 мільйонів копій, ставши найпродаванішою грою в історії. Minecraft увійшла до World Video Game Hall of Fame, а її саундтрек від C418 додали до Національного реєстру аудіозаписів США як культурно, історично та естетично значущий.

Такий статус Minecraft має цілком заслужено. З роками гра перетворилася на універсальне середовище — не лише для розваг, а й для освіти, моделювання й автоматизації. Її неймовірна гнучкість дає змогу створити майже будь-що.

І нещодавно це «будь-що» набуло нового сенсу — в грі збудували справжній процесор. Не муляж і не спрощену модель, а повноцінний пристрій з оперативною пам’яттю (RAM), тактовою частотою та обчислювальною потужністю.

У цій статті розповідаємо, як це стало можливим, чому це вражає і як Minecraft перетворюється на топовий інструмент для навчання.

Креш-курс: із чого складається світ Minecraft

Перш ніж перейти до складних матерій, розберімося в основах, які роблять побудову процесора можливою. 

За своєю суттю Minecraft дуже проста гра. Це пісочниця (sandbox), де у гравців є майже необмежена свобода для створення, взаємодії та модифікації ігрового світу. Через свій воксельний дизайн гра характерно «кубічна». Все, що є у світі Minecraft, зроблено з квадратних блоків і вони всі різні: від піску, дерева та скла до діамантів, обсидіану й лави. У всіх є свої властивості й способи застосування. 

Умовно їх можна поділити на: 

  • Статичні: самі по собі нічого не роблять, але слугують для крафту спорядження, ресурсів, їжі, розхідних матеріалів тощо.
  • Динамічні: елементи, з якими можна взаємодіяти та які використовують для побудови логіки, подій, механізмів тощо. 

Обширний каталог блоків дає багато свободи. Гравці можуть будувати будинки, рити шахти, створювати ферми, заводи й багато іншого. Для розуміння кейса з побудовою процесора найголовнішими є саме динамічні елементи, тож перейдімо до них.

Minecraft як симулятор логіки

У Minecraft усі блоки й ігрові елементи допомагають моделювати цифрову логіку, віддалено схожу на ту, що лежить в основі реальних компʼютерів. Так у грі можна створити логічні схеми, лічильники, запамʼятовувальні пристрої та інше. 

Для цього використовують редстоун (redstone) — руду, яку можна видобувати у грі. По суті, редстоун — це умовний аналог «електрики» в Minecraft. Вона дає змогу передавати сигнали між блоками, керувати пристроями та створювати ланцюги логіки. Функціонально це двійкова, або ж бінарна логіка, де 1 означає що сигнал є, а 0 — що його немає. 

Основні компоненти

На основі редстоуну можна створити багато інших елементів. 

  • Редстоун-пил — працює як дріт. Він потрібен для передавання сигналу між блоками.
  • Смолоскип з редстоуну — джерело сигналу, або ж інвертор. Він завжди видає сигнал «увімкнено». 
  • Повторювач — застосовують для передавання, оновлення та затримки сигналу від редстоун-пилу.
  • Компаратор (порівнювач) — працює з аналоговими значеннями (наприклад, рівнем наповнення контейнерів). Дає змогу реалізувати умовну логіку, арифметику, режими порівняння.

Minecraft Fandom

Джерело: Minecraft Fandom

Окрім елементів з редстоуну, є й інші, для роботи з механічною логікою. 

  • Поршні — рухають блоки, відкривають/закривають ланцюги. 
  • Натискові плити, важелі, кнопки — вхідні пристрої для генерування сигналів.

На основі всіх цих елементів можна змоделювати базові логічні ворота — елементи цифрової електроніки. Вони виконують логічні операції над двійковими сигналами. 

Простими словами, це працює так: у логічних воротах є входи (наприклад, 0 або 1) і вихід, який визначається відповідно до логічного правила. Наприклад:

  • NOT (інвертор): якщо на вхід подати 1, на виході буде 0, і навпаки.
  • AND (І): на виході буде 1, тільки якщо всі входи дорівнюють 1.
  • OR (АБО): на виході буде 1, якщо хоч один вхід дорівнює 1.
  • XOR (виключне АБО): на виході 1, якщо тільки один із входів дорівнює 1.

У грі ця логіка матиме такий вигляд: 

  • NOT реалізується за допомогою факела, який гасне, якщо блок під ним активний;
  • AND — коли два сигнали подаються одночасно на єдиний блок, і тільки тоді передається сигнал далі;
  • OR — коли сигнал може прийти з будь-якого входу;
  • XOR — трохи складніша схема, яку можна зібрати з повторювачів і факелів.

central processing unit

Джерело: Pinterest

Що значить «повноцінний процесор» у Minecraft?

Дивлячись на обширний список всього, що можна зробити з редстоуну, побудова процесора вже звучить не так футуристично. Тож як це зробити й що для цього потрібно?

1. Програма, яка зчитується з памʼяті

У складних системах на кшталт процесора є ROM. Це ділянка, де записані інструкції програми. Кожна клітинка містить закодовану команду, як-от «додати число А до числа В», «перейти до іншої інструкції, якщо нуль» тощо. Команди виконуються по черзі або з переходами. 

2. Інтерпретація команд

Процесор зчитує інструкцію, декодує її та передає керування потрібному блоку — наприклад, тому, що відповідає за умови або арифметику. У Minecraft це реалізовано через велику систему поршнів, повторювачів і логічних воріт, які, власне, й керують сигналами. 

3. Арифметика та умовні переходи

За це відповідає центральний блок — арифметично-логічний пристрій (ALU). Він виконує додавання, віднімання, порівняння, логічні операції. Також у схемі є умовні переходи: наприклад, якщо результат обчислення дорівнює нулю — перейти до певної адреси у памʼяті. 

Реальний кейс: CHUNGUS 2

Одним з найвідоміших прикладів побудови 8-бітного процесора всередині гри належить гравцю з ніком Sammyuri. Назва його творіння хоч і мемна, але це абревіатура від Computational Humongous Unconventional Number and Graphics Unit by Sammyuri 2.

Його процесор може похвалитися 8-бітною шиною даних та близько 256 байтами оперативної памʼяті. Він має свою програмну памʼять (ROM) з десятками інструкцій, ALU, регістри, програмний лічильник. Крім того, його можна «доукомплектувати» й екраном, і клавіатурою, і навіть звуковою картою. 

Sammyuri продемонстрував, що з його процесором можна грати у класичну змійку й Tetris, візуалізувати математичні графіки та навіть множину Мандельброта.

Окрім архітектури, у цьому проєкті є й елемент програмування. Щоб усе працювало за планом, потрібно написати програму під цю архітектуру. Часто це здійснюють за допомогою спеціально розроблених асемблерів, Python-скриптів і навіть власних компіляторів, які транслюють людський код у сигнали з редстоуну. 

Таким чином, робочий флоу має приблизно такий вигляд:

  • Розробник створює асемблерний файл (список команд) — наприклад, додати числа, перейти на інший блок інструкцій, вивести значення тощо.
  • Кодує ці інструкції у вигляді байтів або сигналів, які потім розміщуються в ROM — частині схеми, що відповідає за памʼять.
  • Minecraft-процесор «зчитує» програму й виконує її.

Розміщувати вручну сотні блоків у памʼяті або писати машинний код — довго і складно. За допомогою Python можна генерувати масиви інструкцій для ROM (наприклад, [00010011, 00100011, ...]), створювати великі схеми за заданим шаблоном та автоматично розміщувати блоки в потрібних координатах.

Чому це круто? (Поза очевидним фактором масштабу)

Здавалося б, дитяча гра ніколи не зможе замінити підручник. Втім, Minecraft — уже давно не дитяча гра, а підручник вона хоч і не заміняє, але доповнює на всі 200 %. Гра буквально дає змогу відчути, протестувати й відтворити те, що зазвичай існує лише на рівні схем, діаграм та правил у підручниках. 

Редстоун у Minecraft — це ідеальний інструмент для вивчення логічних елементів, схем та архітектури на практиці. Такий прикладний підхід працює набагато краще, ніж теорія чи навіть відео. Особливо якщо зважати на те, що вам не потрібно шукати обладнання, брати до рук паяльник чи купувати компоненти. 

На щастя, Minecraft уже активно використовують в освіті. До прикладу, у Microsoft випустили своє STEM-рішення у вигляді Minecraft: Education Edition. Це спеціальна версія гри для освіти, де учнів вчать математики, природничих наук, кібербезпеки тощо. 

До того ж деякі університети теж застосовують гру. Так, в університеті Меріленду створили курс Digital Logic & Computer Architecture in Minecraft, де вивчають цифрові схеми, логічні операції, калькулятори та інше. 

Ще раніше, під час пандемії, Студенти Массачусетського технологічного інституту створили 1:1 копію кампусу в Minecraft, щойно реальний закрився на карантин. Проєкт хоч і був надважким, але ентузіазм переміг, і копію реального MIT використовували для інтерактивних лекцій та дистанційного навчання

На завершення

Схоже, світ технологій ніколи не перестане нас дивувати. Те, що раніше здавалося смішним, зараз абсолютно ефективний інструмент. Так, з появою Minecraft інженерія, архітектура та купа інших напрямів стали доступнішими. Настільки, що від вас потрібні лише умовні $30, щоб купити гру, девайс, щоб її запустити, та запал розвиватися.

Ещё статьи
Порівнюємо швидкість, якість і відповідальність за результат