спасибо RaspingMango 

Minecraft - игра, в которой возможно создать всё. Причём в буквальном смысле всё, ведь, во-первых, это песочница, в которой нету никаких ограничений - в творческом режиме всё зависит лишь от твоей фантазии. А во-вторых - эту песочницу можно изменять. Моды, плагины - это всё и сделало игру настолько популярной. Без такой возможности изменения не существовало бы огромного количества серверов с различными мини-играми, такими как BedWars, SkyWars, множеств вариаций выживаний, и так далее. 

Среди всех этих Java-творений есть и такой тип как Креатив-сервера. Если вы хоть раз играли в Minecraft, то, думаю, встречали такие. Безкрайнее количество плотов, разделенных дорогами, выглядит это примерно так: 

Типичный креатив сервер
Типичный креатив сервер

Эта идея, безусловно, хорошая. Она дает возможность поделиться с другими своим творчеством. Но на этом, к сожалению, всё и заканчивается. 

Блочное программирование 

Думаю, каждый из вас хоть раз слышал о такой игре как Roblox, и о таком языке программирования как Scratch. Это две гениальные вещи. Roblox - платформа для игр, в которой на простом языке программирования Lua, а так же при помощи, можно сказать, конструктора - открывается возможность создания множества игр. Scratch - язык программирования, в котором разберется, думаю, даже шестилетний ребёнок. Ведь всё просто - слева у тебя есть блоки, слаживая их можно получить какую то игру. 

Но у них есть недостаток. В Roblox, как выше сказано, используется Lua - хоть и простой (по сложности сравнимый с Python), но тем не менее текстовый ЯП. Много текста - сложно. Такое типичное представление о программировании часто отталкивает среднестатистического человека от его изучения, ведь прийдется что-то учить, запоминать, а иногда просто хочется взять и сделать, сильно не напрягаясь. А Scratch - простой, но довольно бесполезный. Ты можешь создать свою игру, да и опубликовать в принципе тоже - просто зайдя на их сайт. Но вряд ли это станет чем-то популярным. Вспомните, когда вы последний раз играли в какие то игры на Scratch, если вообще играли. 

Но что будет если объединить эти две вещи во что-то одно? Так и появилась идея создания режима Creative+ в Minecraft.

Creative+ 

Креатив+ - Minecraft режим и язык программирования, впервые созданный на сервере DiamondFire в 2014 году (ну, почти - он тогда назывался Hypercube). В те времена он напоминал Scratch, справа код а слева игра, и система плотов была такая же - безкрайние и разделённые дорогами квадратики.

Кодинг с DiamondFire
Кодинг с DiamondFire

Позже, в 2017 году, появился сервер CyanWorld, на котором была позаимствована система плотов с LiteGame - у каждого игрока был отдельный мир 70х70 блоков, в котором он мог строить карту, а программировать в отдельном мире /dev. Затем было создано множество Creative+ серверов, около 7, но из них сейчас работают только три - HyNeo Network, JustMC, и MineLand. Это было немного про историю.

Что из себя представляет Creative+ и его программирование? 

Как уже было сказано выше - Creative+ это помесь Roblox и Scratch. Я буду рассматривать HyNeo Network (сайт)

Зайдя на сервер, у нас в инвентаре есть два важных предмета - это Меню Миров, и Свои Миры. В меню миров перед нами представлены игры от игроков, их множество, от BedWars и BuildBattle, до Выживаний, Креативов, и всего что только возможно. Но интереснее меню Своих миров, - тут, логично, можно создать свой мир. Плоский, либо пустой: 

Обычный мир
Обычный мир

В этих мирах, соответственно, и будет происходить всё то что мы напишем в коде. Кодинг доступен по команде /dev: 

Кодинг
Кодинг

В инвентаре кодинга у нас всего 14 блоков и меню переменных. Вот пример самого простого кода:  

Первый пример кодинга
Первый пример кодинга

Если представить это в текстовом виде, то будет выглядеть примерно так:

Событие игрока "Событие чата" >> Если игрок "Имя равно <Garbuz>" >> Если игрок "Сообщение равно <1>" >> Действие игрока "Креатив"; 

Тут, когда игрок пишет что-то в чат, то проверяется, является ли ник игрока Garbuz, затем проверяется, является ли сообщение 1, и если все верно, то игроку выдается креатив. 

Вот еще один пример кодинга: 

Второй пример кодинга
Второй пример кодинга

Если представить это в текстовом виде, то будет выглядеть примерно так: 

Событие игрока "Ломает блок" >> Если игрок "Блок равен <Магма>" >> Если переменная(=) "<%player%abc> = <2>" >> Игровое действие "Отменить событие" >> Действие игрока "Выдать случайный предмет <Железо, Алмаз, Дерево, Хлеб>" 

Тут, когда игрок ломает блок, проверяется, является ли сломанный блок магмой, затем проверяется, равно ли значение переменной %player%abc двум, и если все верно, событие ломания отменяется, тоесть блок не ломается, и игроку выдается случайный предмет из сундука.

Все невероятно просто. Код строится на событиях от игрока, и большего в игре не надо. В кодинге имеется огромное количество функций: условия, действия, циклы, обычные переменные и динамические переменные, а последние бывают общими и личными. Ну и немного мелочей, например 15 этажей кодинга по 23 строки, хотя большинство режимов помещается в 2 этажа, почти нету лимитов, множество настроек мира, и еще долго можно перечислять. При помощи этого всего можно создать абсолютно любую игру, или это можно даже назвать проектом, на котором будут играть игроки.

На последок, вот скриншот моего режима выживания "Пол это Магма", суть которого заключается в ломании блоков из которых выпадают ресурсы. Код большой, но это потому что в мире я добавил триллион функций для игроков. В мире много мусора, не было вайпа год. 

Кодинг Пол это Магма
Кодинг Пол это Магма
Мир Пол это Магма
Мир Пол это Магма

Комментарии (9)


  1. Lex20
    15.06.2023 05:51

    Я бы рисовал код в виде труб и кранов


    1. WinIce
      15.06.2023 05:51

      Пиши на МЭК 61131-3, а конкретнее на Ladder (язык релейных диаграмм)


  1. Gromilo
    15.06.2023 05:51

    А насколько сложно поддерживать и рефакторить такой код?


    1. cacaobob Автор
      15.06.2023 05:51

      в смысле тот который пишется в мире кодинга /dev?

      если да, то это очень просто. тут хорошо что тебе хоть и надо ставить и ломать блоки но не так много, например скобки (поршни на фото) ставятся и ломаются автоматически


      1. Gromilo
        15.06.2023 05:51

        Понял. Показалось, что последняя картинка - это код, со всеми её лесенками. Представил каково бы это было, эти самые лесенки перемещать. Оказалось, что всё намного проще.


  1. kkleverr
    15.06.2023 05:51
    +2

    люблю сервера с Creative+


  1. timaaos
    15.06.2023 05:51

    Как по мне, в ру-сегменте MineLand достаточно хорош, по функционалу обгоняет даже DiamondFire.
    В MineLand есть свои приколы, например, разработчики плотов могут создавать донаты для своих миниигр, которые будут использовать реальные деньги, но на MineLand куча некачественных плотов и куча доната.
    А в целом, мне по душе DiamondFire, там относительно мало донатов (только ранги и дополнительные плоты) и отличное комьюнити, которое разрабатывает настолько большые проекты, что они могли бы быть коммерчески успешной игрой/отдельным сервером.


    1. cacaobob Автор
      15.06.2023 05:51

      мне не нравится MineLand, как и все сервера сформированые под влиянием Ковальчука, например уже закрывшийся YottaCraft, да и сервера от XjCyan1de

      тот же Creative+ на MineLand уже заброшен, официальной причиной стало то что им кажеться, что он не приносит дохода. HyNeo например своему создателю приносит +-200 рублей в месяц, если повезет то больше, но работает он с 2012 года, а Creative+ c 2020. недавно, в апреле, начались массовые обновления кодинга

      ну я уже молчу про токсичность на Mineland, на русскоязычном Creative+ попросту невозможно играть из-за самих игроков, не удивительно что на других Creative+ к игрокам с ML относятся резко негативно


    1. cacaobob Автор
      15.06.2023 05:51

      вообще есть еще Wiki про Creative+, вот ссылка на неё:
      creative-plus.fandom.com/ru/wiki/Creative%2B_Вики