Screeps의 세계는 그리 안전한 곳이 아닙니다. 이 문서에서는 침공으로부터 자신을 보호하기 위해 사용할 수 있는 수단들을 설명합니다.
세이프 모드(Safe mode)
게임을 시작하면 여러분의 룸에는 Safe Mode가 켜져 있습니다. 이는 다른 크립이 이 룸에서 여러분의 크립이나 오브젝트에 영향을 줄 수 있는 어떤 메서드도 사용할 수 없다는 뜻입니다(다만 여러분은 여전히 외부인을 상대로 방어할 수 있습니다). 자세한 내용은 StructureController 설명을 참고하세요.

세이프 모드는 20,000 게임 틱 동안 지속됩니다(틱 길이에 따라 대략 20시간). 또한 룸 컨트롤러에 추가 활성화 횟수가 남아 있다면, StructureController.activateSafeMode 메서드로 세이프 모드를 다시 켤 수 있습니다:
Game.rooms.W1N1.controller.activateSafeMode()컨트롤러는 새 레벨마다 활성화 1회를 얻습니다. 이후에는 Creep.generateSafeMode 메서드로 ghodium 자원을 사용해 컨트롤러에 활성화를 더 추가할 수 있습니다.
세이프 모드는 “마지막 수단”의 방어 전술입니다. 또한 세이프 모드는 샤드당 동시에 하나의 룸에서만 활성화될 수 있습니다. 더 견고한 방어를 위해서는 벽, 램파트, 타워, 그리고 방어 크립을 사용해야 합니다.
수동 방어: 벽
룸을 방어하는 가장 쉽고 단순한 방법은, 초반 유예 기간에 초보자 지역을 둘러싸고 있는 것과 같은 벽(walls) 을 건설하는 것입니다. 다만 차이가 있습니다. 초반 벽은 출구(doorway) 위에 바로 놓여 외부 크립을 막지만, 새로 짓는 벽은 룸 가장자리에서 최소 2칸 떨어진 곳에만 건설할 수 있으며, 적 크립은 여전히 룸 안으로 들어와 여러분의 방어 시설을 파괴할 수 있습니다. 그래서 단순히 “짓는 것”이 아니라, 적이 파괴하는 데 오랜 시간이 걸리도록 벽을 강화(fortify) 하는 것이 매우 중요합니다.

벽을 건설하면 해당 타일은 처음에 체력 1 hits만 가집니다. 따라서 공격자에게 최소 몇 시간(혹은 며칠)이라도 버티게 하려면, 워커와 repair 액션으로 벽을 강화해야 합니다. 벽의 최대 강화 가능 체력은 300,000,000 hits입니다. 자원을 충분히 투자하면, 벽 한 칸이 며칠 동안 공격을 버틸 수 있습니다. 게다가 벽은 한 줄만 짓는 것이 아니라 여러 줄로 겹겹이 건설할 수도 있습니다!
수동 방어: 램파트
하지만 벽에는 큰 단점이 있습니다. 적 크립뿐 아니라 여러분의 크립도 막아버립니다. 출구를 벽으로 막으면 여러분의 룸 확장도 제한됩니다.
그래서 다른 수동 방어 수단인 램파트(ramparts) 가 있습니다. 램파트는 적 크립에게는 벽처럼 동작하여 이동을 막지만, 여러분의 크립은 자유롭게 통과할 수 있습니다. 더 나아가, 램파트 타일 위에 있는 크립은 램파트가 파괴되기 전까지 어떤 공격에도 완전히 무적입니다. 보호받는 상태에서도 상대를 공격할 수 있습니다.

벽과 마찬가지로 램파트도 처음에는 1 hits로 건설되며, 이후 워커로 필요한 수준까지 강화해야 합니다. 램파트의 최대 hits는 Room Controller 레벨에 따라 달라집니다. 자세한 내용은 컨트롤 문서를 참고하세요.
램파트에는 또 하나의 특징이 있습니다. 강력한 방어 능력을 적절한 수준으로 “지속적으로” 유지해야 합니다. 몇 틱마다 램파트는 몇 hits씩 잃기 때문에, 모든 램파트가 마모되지 않도록 워커를 배치해 관리해야 합니다.
능동 방어: 타워
잘 설계된 수동 방어는 (여러분이 오프라인일 때처럼) 며칠 동안 공격을 버틸 수 있지만, 언젠가는 무너지기 마련입니다. 그래서 요새화만 믿지 말고, 필요할 때 적을 몰아낼 방어 시스템을 설치하는 것이 매우 중요합니다.

RCL 3부터 건설 가능한 타워(towers) 를 능동 방어 수단으로 사용할 수 있습니다. 벽/램파트와 달리 타워는 공격 함수를 호출할 때 에너지를 소비해야 하므로 “능동적”입니다. 타워는 크립을 attack하고 heal할 수 있으며, 구조물을 repair할 수도 있습니다(예: 손상된 벽과 램파트).
타워의 사정거리는 룸 전체를 커버하지만, 대상과의 거리가 멀어질수록 효과가 약해집니다. 타워는 가능한 한 잠재적 타깃에 가깝게 배치하세요.
각 액션은 에너지 10을 소비하므로, 크립이 타워의 에너지 보급을 감시하고 필요할 때 보충하도록 해 두세요.
다음은 한 룸에서 타워로 적 크립을 공격하는 간단한 예시 코드입니다:
function defendRoom(roomName) {
var hostiles = Game.rooms[roomName].find(FIND_HOSTILE_CREEPS);
if(hostiles.length > 0) {
var username = hostiles[0].owner.username;
Game.notify(`User ${username} spotted in room ${roomName}`);
var towers = Game.rooms[roomName].find(
FIND_MY_STRUCTURES, {filter: {structureType: STRUCTURE_TOWER}});
towers.forEach(tower => tower.attack(hostiles[0]));
}
}능동 방어: 크립
타워는 편리한 능동 방어 수단이지만, 모든 공격에 대한 만능 해결책은 아닙니다. 잘 구성된 침공 크립 팀은 여러 타워의 근접 공격도 버틸 수 있습니다. 이런 공격에 대응하려면 대칭적인 대응, 즉 방어 크립이 필요합니다.

램파트는 같은 타일 위의 모든 것을 피해로부터 보호할 수 있으므로, 어떤 타일이 공격받더라도 램파트로 보호받는 방어 크립이 인접해 있도록 방어 시스템을 설계하세요. 다만 평시에도 지속적으로 방어 크립을 유지하는 것은 자원 낭비가 될 수 있습니다. 공성전 중에 빠르게 구축하는 편이 더 좋습니다.
이런 크립의 AI 로직을 작성하는 일은 꽤 복잡하지만, 사실상 어떤 침공에도 룸을 보호하는 유일한 방법입니다.
방어를 테스트하기 위해 룸에서 NPC invader creeps를 스폰할 수 있습니다.
결국, 올바른 행동 로직과 함께 좋은 요새화 시스템을 설계하면 여러분의 룸은 침략자에게 매우 어려운 목표가 됩니다. 하지만 방 안에 틀어박혀 안주하지는 마세요. 아시다시피 최고의 방어는 공격입니다.