Скидки до 28% + 2-ая профессия бесплатно и подарки на 50 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
Похожие статьи
Рекомендуемые программы
профессия
Верстка на HTML5 и CSS3, Программирование на JavaScript в браузере, разработка клиентских приложений используя React
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Python, Разработка веб-приложений и сервисов используя Django, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Тестирование веб-приложений, чек-листы и тест-кейсы, этапы тестирования, DevTools, Postman, SQL, Git, HTTP/HTTPS, API
4 месяца
с нуля
Старт 26 декабря
профессия
Программирование на Java, Разработка веб-приложений и микросервисов используя Spring Boot, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Google таблицы, SQL, Python, Superset, Tableau, Pandas, визуализация данных, Anaconda, Jupyter Notebook, A/B-тесты, ROI
9 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на PHP, Разработка веб-приложений и сервисов используя Laravel, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Ruby, Разработка веб-приложений и сервисов используя Rails, проектирование и реализация REST API
5 месяцев
c опытом
Старт 26 декабря
профессия
Программирование на JavaScript в браузере и на сервере (Node.js), разработка бекендов на Fastify и фронтенда на React
16 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на JavaScript, разработка веб-приложений, bff и сервисов используя Fastify, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Git, JavaScript, Playwright, бэкенд-тесты, юнит-тесты, API-тесты, UI-тесты, Github Actions, HTTP/HTTPS, API, Docker, SQL
8 месяцев
c опытом
Старт 26 декабря