Comments 68
Видел что то подобное на редстоунах (размеры куда больше и работает много дольше), вы же используете командные блоки, я полагаю? Как вы сами признались, смысла в этом не очень много. Конкретно вам это помогло понять, как работает процессор, но скачав вашу карту, думаю, мало кто разберется в особенностях реализации всего этого. Если вы хотите общественного признания, то на хабре вы его вряд ли получите, если же вы хотите поделиться собственным опытом с другими, то курс видео по теме или книжка будет к стати. С другой стороны есть довольно много профессиональной литературы по теме, но, возможно, именно ассоциация с чем то простым, как minecraft, поможет новичкам действительно понять, как эта маленькая «железяка» работает.
Я бы совсем не сказал бы, что это бесполезно. Очень круто, если логику сложных редстоун устройств можно было бы писать программно, а не в реализировать каждый раз вручную в виде схемотехники на логический гейтах, как это сейчас обычно делается. Забавно, что программирование в майнкрафте в своем роде повторяет историю вычислительных машин в реальной жизни, и в этом свете появление полноценного процессора общего назначения с ассемблером к нему — это важная веха.
В качестве иллюстрации, вот скриншот с куском реализации («серверной комнатой») популярной сейчас мини-игры в майнкрафте «Missile Wars» — там сотни command blocks и тонна редстоуна. Думаю по объему и сложности это сопоставимо с описанным в статье процессором, и такие штуки строят для каждой нетривиальной мини-игры.



В чем то согласен. Я считаю, что это не более чем забавно, но не полезно.
В комментариях к прошлому хабратопику (или это был гиктаймотопик, хммм...) выяснилось, что большинство комментаторов не знают, что такое командные блоки в Майнкрафте, что именно они делают, как работают и как они помогают решать задачи вроде «полный сброс всех регистров и стека» и «инструкция читает число из памяти и помещает его в регистр А».

Не могли бы вы осветить этот вопрос, потому что как я понял, это нечто принципиально отличное от редстоуна, на котором традиционно строили процессоры в Майнкрафте?
Командный блок выполняет любую серверную команду (типа /give и т.д.) при подачи сигнала.
Вместе с командными блоками в последних патчах еще очень много разных команд понадабовляли, вроде заливки области блоками и подобные.
В таком случае интересно как раз какие серверные команды использовались и для чего. Без этих деталей блогозапись больше напоминает инструкцию от мультиварки, чем запись в техническом хабе.

Я ни в коем разе не умаляю заслуги автора сабжа в том, что он разобрался в работе CPU, но наиболее неочевидными для читателей являются не то, что «УУ декодирует это число и понимает, что это инструкция load», а то, как вообще реализовано хранение числа, что из себя представляет регистр, а что — ячейка RAM, как реализовано сравнение значения «0х01» и «load», как реализован доступ к этим 256 байтам и так далее…
мне нравится энтузиазм автора. чтобы поддержать инициативу, я планирую сделать подобный процессор на TTL-логике.
А мне вдруг стало интересно когда под такие процессоры начнут писать вирусы. Это же тоже большой шаг в мире компьютеризации.
Я для разбора устройства процессора в своё время пытался его повторить в EWB. Энтузиазма на долго не хватило, чтобы на логике всё собрать.
UFO landed and left these words here
Можно ли смотреть что происходит «под капотом»? Как меняются блоки, куда бегут сигналы и прочее.
Блин, да что такое эти ваши «редстоуны», «вычислительные блоки»? Как это всё работает? Может кто-то напишет нормальную статью для тех, кто в этот ваш «Майнкрафт» не играет и даже не особо представляет что это?
Если на пальцах, то редстоун — это проводник с некоторым уровнем сигнала внутри. Где есть провода, там есть и блоки вроде «И», «ИЛИ», «НЕ» и так далее. В своём апогее оно превращается в творения вроде www.youtube.com/watch?v=lB684ym3QY4, которые в некоторой степени моделируют настоящую электронику. Всё это частенько снабжается кучей хаков, чтобы в проводе была нулевая задержка и так далее, подробности есть тут: minecraft.gamepedia.com/Redstone_circuit

По поводу «вычислительных блоков» самому интересно, могу разве что направить к комментариям habrahabr.ru/post/243013/#comment_8121999. Из статьи minecraft.gamepedia.com/Command_Block не очевидно, как на этом реализовать память и вычисления.
Плюсую за статью! Многие думают, что в Minecraft только здания и строят. А тут такое… Автономного робота тоже можно создать?)
ПвПшит в Доту


ну не знаю, я там ПвЕшу, крипов бью в основном. /оффтоп
Если парни справляются в 4ром, давая пространство для фарма тому же войду, то почему бы не поПвЕшить минут 20 от купола до купола?
> Различные цифровые схемы и процессоры создают в Minecaft уже с давних пор

Так вот ты какой, Skynet в молодости!
Ну а где видео работы самого микропроцессора? Так сказать, что у него под капотом?

Хотелось бы увидеть как работает программа, например сложения всех чисел от 0 до 15 в цикле.
Давайте поставим вопрос так: почему процессор именно в Minecraft? Почему бы, если уж душа просит хардкора, не взять какой-нибудь схемный редактор (OrCAD тот же, Microcap или даже GNU Electric) и не нарисовать процессор на транзисторах в нем?
А если транзисторы вас не интересуют, а хочется понять, как команды выполняются, то Verilog вам поможет.
Я, конечно, могу не понимать каких-то достоинств именно Minecraft. Расскажите о них пожалуйста.
Все довольно просто. Люди начинают играть в довольно захватывающую игру, позже узнают о том, что в ней есть некие провода и электричество, затем начинают с их помощью мастерить всякие штуки и в результате получается вот это. Если человек пришел к моделированию процессора через специализированный софт, то значит он студент или это его работа, а тут постепенный переход от игры к моделированию.
Просто не понятно: почему людям работать с реальными проводами и электричеством менее интересно, чем с Minecraft-овским? Странно это как-то. Я вот тоже думаю, ну хочется тебе сделать процессор, ну делай в реальных инженерных пакетах. Какой смысл убивать уйму времени на простейший процессор в неприспособленном для этого «редакторе»? Тем более, что полученный потом RTL-код из реального пакета можно будет прошить в FPGA за 10 баксов, подключить куда-нибудь и т.д. и т.п. Так же гораздо интереснее, нет?
Люди ещё и в Guitar Hero играют вместо того, чтобы взять настоящую гитару :-)
Они «играют» в процессор. Относится к этому нужно как конструкторам для детей, например. Автор прямо заявляет, что он понял как работает процессор. В результате на лицо развитие за счёт игры, что даёт нам понятие «развивающая игрушка».
Нет, правда, если вам всерьез понравилось делать именно процессор, попробуйте сделать его в каком-то более подходящем софте. Это ужасно интересно, инфа 100% )
Покажи друзьям работающую схему в Каде и в Майнкрафте (когда друзья тоже фанаты игры) — разница очевидна :)
Еще в Майнкрафте (с модами) есть компьютеры (маленькие одноблочные) и роботы, которые можно программировать на Lua, со своей мини ОС, с дискетами, мониторами и т.п… Возможностей, тут очень много: роботы и компьютеры могут быть объединены в «сетку» и обмениваться информацией. Видел даже подобие вируса для компьютеров Майнкрафта.

Ну а я программировал роботов, которые автоматически копали и собирали полезную руду, складывали ее в сундук и при этом пользовались своего рода GPS позиционированием, которое в свою очередь пришлось создавать из трех компьютеров а-ля трех спутников, которые позволяли узнать дистанцию до них.

Было весело, пока я не осознал, что на работе программирую, и на отдыхе программирую, только «виртуально» =))
И я подумал, что писать программы для реальных роботов может быть веселее и приобрел Ардуину. С нее перешел на квадрокоптеры и понеслась. Теперь, благодаря Майнкрафту у меня есть классное хобби :-)
Поделитесь ссылками на эти моды, пока у меня сын фанатит по майнкрафту надо использовать )
Человече, читал коммент и себя узнавал (с той лишь разницей, что не люблю моды в майн). А потом вспомнил как мы делились впечатлениями о настройке ПИД-регулятора. Помните: P=0.2;
I=0.005; D=0.1? Закладка на блог коптероводов теперь в экспресс-панели. Наверное надо и мне квадракоптерами заняться… а пока… я копаю…
Да, конечно помню! :-)
Сайт мы, к сожалению, подзабросили пока. Знакомые помогают с небольшой группой ВК, если что:
vk.com/kopterovod
тем временем медленно собирается огромная окта.

Коптерами, конечно займитесь! Чем раньше, тем лучше! :-)

По поводу модов — тоже некоторое отвращение было сначала, но потом как-то втянулся. Способствовала их установка в один клик на каком-то хостинге Майнкрафта.
Мне кажется или в этом есть какая-то скрытая укоризна? Ну есть и есть, круто же когда человека прёт. Всяко лучше чем делать «полезное дело» и подыхать от тоски и разочарования.
Мне кажется, я бы от тоски сдох бы быстрее в Minecraft. Чтобы сделать большую схему — это ж надо столько однообразных действий повторять сотни раз. Я так понимаю, никакой поддержки макросов в Minecraft нет. Или я ошибаюсь?
Есть моды редактирования мира, которые позволяют copy/paste заданного объёма делать. Впрочем это не радикально упрощает дело.
я использовал МСEdit, команды для заполнения блоками заданной области, скрипты для заполнения командных блоков. Но всё равно 50% делал чисто вручную.
Есть сервера, есть плагины для серверов. Плагины добавляют куча нового функционала с серверной стороны. Есть плагин WorldEdit для удобного редактирования мира (заливка, замена, клонирование, стакование и многое другое). В плагине WorldEdit есть скрипты. Есть скрипт, который может автоматически заполнять командные блоки. Для новичка это сложно объяснить )
Я имел опыт работы только с редактором карт. Выглядит как пиксельная рисовалка, можно линии чертить, блоки, окружности. Есть трехмерные префабы: деревья, домики и т.п.
А сколько в этом чуде миль зацеплений? (см. Гибсон — Машина Различий)
Осталось портировать на эту архитектуру Linpack и можно начинать составлять top500 самых быстрых компьютеров в майнкрафте)
Я бы начал с Novell NetWare 3.11 — всего то написать сетевой драйвер и NLM :-) а то Doom по сети не погонять
Вот прямо только что я понял, чего очень не хватает в майнкрафте.
Инкапсулирующего блока, типа контейнера. Пусть даже с ограниченным внутренним объемом.
То есть, снаружи у такого блока будет 6 входов/выходов (по числу граней), а внутрь блока можно было бы зайти не как в верстак или специализированные блоки с заранее определенными слотами, а вживую, как в виртуальное пространство, чтобы построить там свой механизм, который в конечном счете упаковывается в единичный блок.
Это был бы существенный рывок классического майнкрафта и даже конкуренция разнообразным модам, блоки которых все равно конечны

А чем черт не шутит, вдруг таким образом зародится визуальное 3D — программирование :)
В Майнкрафте пространство генерируется Seed (семенем). Состоит из Chunk minecraft.gamepedia.com/Chunk_format
minecraft.gamepedia.com/Chunk. Раскрашивается всё это Biome. minecraft-ru.gamepedia.com/BiomeTerrain
minecraft.gamepedia.com/Biome.

Стандартная весрия с кодом тут:
github.com/MinecraftForge
Описание «железа»
minecraft.gamepedia.com/Tutorials/Advanced_redstone_circuits

Есть свободные модификации:
github.com/MinecraftPortCentral
github.com/mc-server/MCServer
github.com/minetest/
github.com/fogleman/Minecraft
altsoph.com/projects/conwaytree/

Можно програмировать на чистом JS
github.com/walterhiggins/ScriptCraft/blob/master/docs/YoungPersonsGuideToProgrammingMinecraft.md
Или Java
blogg.bouvet.no/2014/03/10/an-internet-of-things-demo-using-raspberry-pi-arduino-minecraft-and-mqtt/
RPi — python
mcpipy.wordpress.com/
github.com/brooksc/mcpipy
github.com/zhuowei/RaspberryJuice

Попытка стандартизации модов
www.npmjs.org/package/minecraft-protocol
github.com/andrewrk/node-minecraft-protocol

Ссылок очень много… привёл меньше 1%.
А как это собирается? Не руками же? Есть какой-то софт для моделирования таких вещей и перенос в игровой мир? Этот софт имеет эмулятор?
Как эта система дебажится? Какие то тесты для проверки этого проца есть?
Only those users with full accounts are able to leave comments. Log in, please.