Screeps - ММО игра для программистов. Описание.




Screeps ММО игра для программистов, отличием от игр не для программистов является то, что:
 - игровая логика выполняется с помощью скриптов написанных на JavaScript(node.js),
- код игроков сохраняется на сервере и выполняется в режиме оффлайн, то есть когда игрок не в сети, но на сервере он выполняется круглосуточно.
- есть возможность играть локально, не выходя в онлайн.

По сути это обычная стратегия, в которой нужно добывать ресурсы, возводить строения, создавать юнитов(я их называю крепышами) со своими характеристиками, воевать с другими игроками, и т.д., но необычность тут то, что всю логику прийдется программировать собственоручно :-)
Код можно писать в любом редакторе.
По мере развития код нужно оптимизировать, применять(разрабатывать) различные алгоритмы, улучшать логику и прочее, так как производственные ресурсы сервера не бесконечные. Поэтому здесь есть над чем подумать, и подумать неоднократно. Возможностей очень много. Хотя на первый взгляд может показаться что это не так.
Играть можно либо с помощью браузера, либо установить клиент.
Игра доступна в Steam.
Для игры, нужно чуть больше чем базовые знания программирования, хотя и базовые знания подойдут, и в процессе игры они уже станут не совсем базовыми :-)

Игровой мир состоит из соединенных друг с другом комнат, каждая из которых имеет 50 клеток шириной и 50 клеток высотой.
У каждой комнаты есть от одного до четырех выходов из нее. При увеличении игроков на сервере, количество этих комнат также растет. Ландшафт каждой комнаты уникален.
Существует три типа поверхности:
 

земля - стоимость перемещения по ней равна 2

 
болото - стоимость перемещения по ней равна 10



стена   -  блокирует движение


В комнате есть точка с энергией(одна или больше), за счет которой можно возводить строения, улучшать их, создавать крепышей.
Может быть точка с минералом(редкий ресурс).
Кроме этого, в каждой комнате присутствует контроллер, от уровня которого зависит то какие постройки вы можете строить в этой комнате. Контроллер нужно захватывать, и улучшать.
И в каждой комнате под вашим контролем можно построить от одного до трех точек возрождения(зависит от уровня контроллера).
Точка возрождения создает крепышей.
Так как ваши скрипты выполняются на сервере в режиме реального времени, то есть такое понятие как тик игры. На локальном компьютере один тик игры равен одной секунде, на сервере screeps.com один тик может быть равен 3 секундам, 5 секундам, и т.д. Зависит от загрузки сервера, то есть от количества игроков, так как в один тик игры должны выполниться все скрипты всех игроков, только после этого начинается новый тик. Есть ограничение по времени на выполнение ваших скриптов, если оно превышено то ваш скрипт перестает выполняться до следующего тика, в игре это время меряется количеством CPU, которое зависит от определенных факторов. На старте игры вам дается 30 CPU, далее есть такая штука как Global Control Level,
по мере увеличения его уровня, вам дается дополнительно 10 CPU за каждый уровень, но не больше 300 CPU в сумме, и есть платная подписка, которая дает вам + 60CPU.

Каждый новый игрок начинает игру в специально отведенных комнатах для новичков, когда вы выбираете сервер на котором хотите начать, вы видете мир состоящий из комнат
Зеленым цветом подсвечены комнаты для новичков, для этих комнат действуют следующие правила:
  • Эти сектора(с комнатами для новичков) отделены от остального мира стеной. Переместиться в сектор для новичков можно только уничтожив все свои контроллеры, и только тогда можно выбрать новое место для своей колонии. Это означает что какое-то количество дней(обычно пишется во всплывающей подсказке, сколько дней эта комната будет под защитой) новички защищены от опытных игроков.
  • Только игроки с уровнем Global Level Controller равным 3 и ниже могут начать игру в этой комнате.
  • Каждый игрок в этих секторах имеет возможность захватить не больше 3-х комнат. Но резервирование комнаты неограничено. Резервирование означает что, пока ваш уровень GCL не позволяет иметь больше комнат, то вы можете ее зарезервировать на будущее.
  • Нет перезарядки между безопасными режимами(у контроллера комнаты есть такая вещь как безопасные режимы, количество которых ограничено, и после использования которого происходит перезарядка этого режима). 
  • Запрещается строить и использовать такое строение как Nuker
После того как закончится защита для новичков(у каждого сектора есть счетчик дней), этот сектор включается в основной мир(на картинке нет подсветки этих комнат, как по аналогии с подсветкой зеленым комнат для новичков). Ну и понятное дело снимаются все ограничения с этих комнат. Что означает возможные атаки со стороны других, более опытных игроков.
Кроме этого есть еще сектора с комнатами выделенные синим цветом, у которых тоже есть свой счетчик дней, называются они RespawnArea. Все игроки с любым уровнем GCL могут поселиться в этих секторах, единственным ограничением для этих секторов является запрет использования строений Nukers.

Старт игры начинается с выбора комнаты, и выбора в этой комнате места для размещения такого строения как spawn(далее точка возрождения).
После размещения точки возрождения, вы получаете под контроль свою первую комнату, с уровнем контроллера 1. Количество энергии которое содержит точка возрождения, равно 300. Чего хватает для создания своего первого крепыша. Кроме этого эта энергия возобновляется с каждым тиком на 1. Соответственно для полного возобновления энергии нужно 300 тиков. При старте игры у вашего контроллера комнаты есть возможность включить режим защиты, длительность которого 20 000 тиков игры. С каждым новым уровнем контроллера комнаты, вы получаете дополнительную активацию этого режима кроме этого крепыши могут дополнительно сгенерировать этот режим, но для этого нужен редкий минерал.

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

Начнем разбирать screeps API с примерами, идеями по использованию и прочим.
Для начала нужно обязательно рассмотреть глобальные объекты.

Продолжение: Screeps - ММО игра для программистов. Часть 2.

Комментарии

  1. Кто-нибудь помнит раздел "Цитология" из школьного курса биологии? Помните, как организована и как функционирует клетка (комната) живого организма? В ней есть ядро (контроллер), рибонуклеиновые кислоты различного типа (крипы) и прочие элементы, похожие аналогии которых реализованы в screeps.
    А если почитать на Википедии про вирус (биология), то зашевелятся волосы на жопе, потому что все эти сценарии в игре по своей сути являются вредоносным кодом, который захватывает здоровые клетки, модифицирует их в своих интересах и размножается, поражая всё больше клеток.
    Что мешает использовать самые удачные скрипты в качестве программного обеспечения искусственно созданного вируса? Аппаратная часть наукой уже создана. А если в сценарий добавить деструктивную процедуру?
    Понимаете, какая тут может быть обратная сторона медали? Ведь мы же не знаем истинных намерений разработчиков игры, а они ещё и деньги с нас гребут, гады...

    ОтветитьУдалить
    Ответы
    1. Чем меньше знаешь тем крепче спишь :-)
      Беспредел на самом деле, недавно зашел на сервер, смотрю уровень контроллера 3, что до идее равно 30 CPU, щаз... у меня 10 CPU, и написано если хочешь увеличить то купи подписку. Караул!!

      Удалить

Отправить комментарий