До 30 ноября

Скидки до 81 000 руб и вторая профессия в подарок!

Главная | Все статьи | Дневник студента

Когда руки превращаются в код

Время чтения статьи ~3 минуты
Статья написана студентом Хекслета. Мнение автора может не совпадать с позицией редакции
Когда руки превращаются в код главное изображение

Мир программирования начинает удивлять всё больше по мере его изучения.

Что такое Screeps

"Многопользовательская стратегическая песочница в реальном времени для программистов" - гласит официальный сайт. Игра была анонсирована в 2014-ом году и увидела свет в 2016-ом, наверняка люди сведущие в программировании, о ней как минимум слышали, но своей целью я вижу поведать о ней неофитам этой профессии, пусть и сама я ещё зелёная.

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

Возможно данная задача покажется вам не слишком сложной, однако в игре присутствует и лимит памяти, ввиду чего у вас должен быть не просто мощный код, он должен быть оптимизирован.

Вы заняли комнату

Все начинают своё развитие с одной комнаты, в которой размещают главное сооружение, в начале оно будет отвечать почти за всё - создание юнитов (так называемых "крипов" (далее юниты/крипы)), приём ресурсов и прочее.

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

Первое, что вы скорее всего напишете, будучи новичком.

Game.spawns['spwan_name'].spawnCreep( [BODY_PART, BODY_PART, ...] 'creep_name' );

команда заставляющая создать крипа указанным "спавном".

Следующая информация указана в документации, но я напишу её и тут, чтобы вы поняли возможности ваших юнитов.

  • WORK - способность собирать энергию, возводить и ремонтировать структуры, улучшать контроллеры.
  • MOVE - способность передвигаться.
  • CARRY - способность переносить энергию.
  • ATTACK - способность атаковать на ближней дистанции.
  • RANGED_ATTACK - способность атаковать на расстоянии.
  • HEAL - способность лечить других.
  • CLAIM - способность брать территории под контроль.
  • TOUGH - "пустая" часть тела, нужная для защиты.

Время в игре и почему оно важно

Время течёт по "тикам", один тик - выполнение кода, время глобально для сервера.

Нужно упомянуть, что время и способности взаимосвязаны, простейший пример - чем больше частей тела "MOVE", тем на большее количество ячеек в тик будет передвигаться юнит.

Режим безопасности

Screeps - ММО, а значит игра не прекратится при вашем уходе, чтобы меньше беспокоиться о своей базе, вы можете активировать "режим безопасности" на 20.000 тиков (если верить документации это равняется 20-ти часам), ваши крипы, способные к обороне, перейдут в режим охраны, любой ценой защищая других юнитов и строения, однако учитывайте, что атаке подвергнутся и случайные путники.

Но "режим безопасности" не единственный способ обороны.

Первый из них - стены. Простой и понятный способ защитить ваши территории. Может быть разрушена, но выиграет вам время.

Второй - силовое поле. Минус стен в том, что они одинаково блокируют путь как противнику, так и вам, в свою очередь силовое поле позволяет проходить через себя вашим юнитам.

Третий - башня. Интересное строение, по своим функциям сильно напоминающее крипов. Башня может атаковать, лечить ближайших юнитов и чинить расположенные рядом постройки (включая стены и сил. поля), однако в отличии от пассивной защиты - потребляет энергию.

Четвёртый - крипы. Ну, эта их функция была описана и ранее.

Это ещё далеко не всё

Но статья уже весьма длинная и мне кажется, что стоит заканчивать. Я описала не мало вещей, часть из них взята из официальной документации, и думаю вы уже могли понять, что такое "Screeps", а если вы это читаете, то видимо и успели заинтересоваться. Если так - советую опробовать данный проект, он имеет демо, доступное прямо из браузера. Купить же игру можно в Steam, на момент написания статьи она стоит 699 рублей (а так же можно приобрести снятие лимита памяти,уже за 8699 pублей).

Всего доброго и до встречи в Screeps.

Аватар пользователя Лён Милко
Лён Милко 23 октября 2020
5
Рекомендуемые программы
профессия
Осваивайте разработку веб-страниц, оживляйте дизайн макетов, публикуйте сайты и приложения. Отслеживайте ошибки в интерфейсе и устраняйте их
10 месяцев
с нуля
Старт 28 ноября
профессия
Обучитесь разработке бэкенда сайтов и веб-приложений — серверной части, которая отвечает за логику и базы данных
10 месяцев
с нуля
Старт 28 ноября
профессия
Выполняйте ручное тестирование веб-приложений, находите ошибки в продукте. Узнайте все о тест-дизайне.
4 месяца
с нуля
Старт 28 ноября
профессия
Научитесь разработке веб-приложений, сайтов и программного обеспечения на языке Java, программируйте и используйте структуры данных
10 месяцев
с нуля
Старт 28 ноября
профессия
новый
Собирайте, анализируйте и интерпретируйте данные, улучшайте бизнес-процессы и продукт компании. Обучитесь работе с библиотеками Python
9 месяцев
с нуля
Старт 28 ноября
профессия
Занимайтесь созданием сайтов, веб-приложений, сервисов и их интеграцией с внутренними бизнес-системами на бекенд-языке PHP
10 месяцев
с нуля
Старт 28 ноября
профессия
Создание веб-приложений со скоростью света
5 месяцев
c опытом
Старт 28 ноября
профессия
Обучитесь разработке визуальной части сайта — фронтенда, а также реализации серверной — бэкенда. Освойте HTML, CSS, JavaScript
16 месяцев
с нуля
Старт 28 ноября
профессия
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 28 ноября
профессия
новый
Организовывайте процесс автоматизации тестирования на проекте, обучитесь языку программирования JavaScript, начните управлять процессом тестирования
8 месяцев
c опытом
Старт 28 ноября